def calcul_conditions_initiales(): print("Lancement du calcul des conditions initiales...") print("On determine ici les conditions de depart necessaires pour l'analyse d'un systeme mecanique.") position_initiale = float(input("Position initiale (m) : ")) vitesse_initiale = float(input("Vitesse initiale (m/s) : ")) acceleration_initiale = float(input("Acceleration initiale (m/s2) : ")) print("\nResume des conditions initiales :") print("Position initiale :", position_initiale, "m") print("Vitesse initiale :", vitesse_initiale, "m/s") print("Acceleration initiale :", acceleration_initiale, "m/s2") input("Appuyez sur une touche pour continuer...") return position_initiale, vitesse_initiale, acceleration_initiale def calcul_PFS(): print("Lancement du calcul du PFS...") print("On applique : SommeF = 0 (equilibre des forces) et SommeM = 0 (equilibre des moments)") force_appliquee = float(input("Force appliquee (N) : ")) reaction_soutien = float(input("Reaction du soutien (N) : ")) q = float(input("Charge lineique q (N/m) : ")) L = float(input("Longueur de la poutre L (m) : ")) moment_applique = (q * L**2) / 8 moment_reaction = moment_applique # Pour une poutre symetrique en appui simple somme_forces = force_appliquee + reaction_soutien - (q * L) somme_moments = moment_applique + moment_reaction print("\nResultats :") print("Moment applique (M = qL^2 / 8) :", moment_applique, "Nm") print("Moment de reaction :", moment_reaction, "Nm") print("Somme des forces :", somme_forces, "N (doit etre nul pour equilibre)") print("Somme des moments :", somme_moments, "Nm (doit etre nul pour equilibre)") input("Appuyez sur une touche pour continuer...") return somme_forces, somme_moments def calcul_DDL(): print("Lancement du calcul des DDL...") print("Un systeme mecanique possede des DDL correspondant aux mouvements independants possibles.") nb_corps = int(input("Nombre de corps dans le systeme : ")) nb_liaisons = int(input("Nombre de liaisons : ")) ddl_totaux = nb_corps * 3 # En 2D, chaque corps a 3 DDL (2 translations, 1 rotation) ddl_contraints = nb_liaisons * 2 # Hypothese : chaque liaison supprime 2 DDL ddl_restants = ddl_totaux - ddl_contraints print("\nResultat :") print("Degres de liberte restants :", ddl_restants) input("Appuyez sur une touche pour continuer...") return ddl_restants def main(): print("Lancement de la calculatrice...") while True: print("\n=== Menu ===") print("1. Calcul des conditions initiales") print("2. Calcul du PFS") print("3. Calcul des DDL") print("0. Quitter") choix = input("Choisissez une option : ") if choix == "1": calcul_conditions_initiales() elif choix == "2": calcul_PFS() elif choix == "3": calcul_DDL() elif choix == "0": print("Fin du programme.") input("Appuyez sur une touche pour quitter...") break else: print("Option invalide, veuillez reessayer.") main()