dg.py

Created by arthurmichel-scolaire

Created on April 29, 2026

4.73 KB


# Fiche de Revision Interactive - Calcul Integral
# Par ton super prof de maths !
# Script pour calculatrice NumWorks

import math

def afficher_menu():
  """Affiche le menu principal des révisions."""
  print("--- MENU REVISIONS INTEGRALE ---")
  print("1. Calculer une integrale (F(b)-F(a))")
  print("2. Le Piege : Integrale vs. Aire")
  print("3. Integration par Parties (IPP)")
  print("4. Aire entre deux courbes")
  print("5. Valeur Moyenne d'une fonction")
  print("6. TESTER : Methode des rectangles")
  print("0. Quitter")
  print("--------------------------------")

def calcul_integrale():
  print("\n--- 1. CALCULER UNE INTEGRALE ---")
  print("Principe : Le theoreme fondamental !")
  print("FORMULE : int(f(x)) de a a b = F(b) - F(a)")
  print("ou F est une primitive de f (F' = f).")
  print("\nExemple Flash : int(2x) de 1 a 3")
  print("1. f(x) = 2x. Primitive -> F(x) = x^2")
  print("2. Calcul : F(3) - F(1) = 3^2 - 1^2")
  print("3. Resultat : 9 - 1 = 8")
  input("\nAppuyez sur EXE pour continuer...")

def integrale_vs_aire():
  print("\n--- 2. LE PIEGE : INTEGRALE vs. AIRE ---")
  print("LA REGLE D'OR :")
  print("- INTEGRALE = Bilan (peut etre negatif)")
  print("- AIRE = Surface (TOUJOURS positif)")
  print("\nDECLIC : Si on demande 'AIRE', il faut")
  print("ETUDIER LE SIGNE de la fonction !")
  print("\nExemple : Aire pour f(x)=x sur [-1, 2]")
  print("1. Signe : f < 0 sur [-1,0[ et f > 0 sur ]0,2]")
  print("2. On coupe : Aire = |int de -1 a 0| + |int de 0 a 2|")
  print("3. int de -1 a 0 = -0.5")
  print("4. int de 0 a 2 = 2")
  print("5. Aire totale = |-0.5| + |2| = 2.5")
  input("\nAppuyez sur EXE pour continuer...")

def ipp():
  print("\n--- 3. INTEGRATION PAR PARTIES (IPP) ---")
  print("Quand ? Pour un produit de fonctions")
  print("ex: (x+1)e^x, x*ln(x)...")
  print("\nFORMULE : int(u'v) = [uv] - int(uv')")
  print("\nExemple : int(x*e^x) de 0 a 1")
  print("1. On pose v=x (se simplifie en derivant)")
  print("   et u'=e^x (facile a integrer)")
  print("2. Donc v'=1 et u=e^x")
  print("3. On applique :")
  print("   [x*e^x] de 0 a 1 - int(1*e^x) de 0 a 1")
  print("   = (1*e^1 - 0) - [e^x] de 0 a 1")
  print("   = e - (e^1 - e^0) = e - e + 1 = 1")
  input("\nAppuyez sur EXE pour continuer...")

def aire_deux_courbes():
  print("\n--- 4. AIRE ENTRE DEUX COURBES ---")
  print("Principe : Integrer la difference.")
  print("FORMULE : Aire = int(f_dessus - f_dessous)")
  print("\nMETHODE :")
  print("1. Trouver les bornes (resoudre f=g)")
  print("2. Savoir qui est au-dessus sur l'intervalle.")
  print("3. Calculer l'integrale de la difference.")
  print("\nExemple : Aire entre f(x)=x et g(x)=x^2")
  print("1. Bornes : x=x^2 -> x=0, x=1")
  print("2. Sur [0,1], x >= x^2 (f est au-dessus)")
  print("3. Aire = int(x - x^2) de 0 a 1 = 1/6")
  input("\nAppuyez sur EXE pour continuer...")

def valeur_moyenne():
  print("\n--- 5. VALEUR MOYENNE ---")
  print("Principe : C'est la 'hauteur moyenne'")
  print("de la fonction sur l'intervalle.")
  print("\nFORMULE : mu = (1/(b-a)) * int(f(x)) de a a b")
  print("\nExemple : Moyenne de f(x)=3x^2 sur [0, 2]")
  print("1. int(3x^2) de 0 a 2 = [x^3] de 0 a 2 = 8")
  print("2. b-a = 2-0 = 2")
  print("3. mu = (1/2) * 8 = 4")
  input("\nAppuyez sur EXE pour continuer...")

def methode_rectangles():
  print("\n--- 6. METHODE DES RECTANGLES ---")
  print("Approche une integrale numeriquement.")
  print("NOTE: utilise eval(), sois prudent.")
  print("Utilise 'math.cos(x)', 'math.exp(x)', etc.")
  
  try:
    f_str = input("Fonction f(x) (ex: x**2): ")
    a = float(input("Borne a : "))
    b = float(input("Borne b : "))
    n = int(input("Nb de rectangles n : "))
    
    if n <= 0:
      print("Erreur: n doit etre positif.")
      return
      
    largeur = (b - a) / n
    somme = 0
    
    # Methode des rectangles a gauche
    for i in range(n):
      x_i = a + i * largeur
      # Le dictionnaire {'x': x_i, 'math': math} permet a eval d'utiliser 'x' et le module math
      hauteur = eval(f_str, {'x': x_i, 'math': math})
      somme += hauteur
      
    aire_approx = somme * largeur
    print(f"\nAire approx. par rectangles : {aire_approx}")
    
  except Exception as e:
    print(f"Erreur de saisie ou de calcul : {e}")
  
  input("\nAppuyez sur EXE pour continuer...")


# --- Programme Principal ---
while True:
  afficher_menu()
  choix = input("Votre choix : ")
  
  if choix == '1':
    calcul_integrale()
  elif choix == '2':
    integrale_vs_aire()
  elif choix == '3':
    ipp()
  elif choix == '4':
    aire_deux_courbes()
  elif choix == '5':
    valeur_moyenne()
  elif choix == '6':
    methode_rectangles()
  elif choix == '0':
    print("Bonnes revisions ! Tu vas assurer.")
    break
  else:
    print("Choix invalide, veuillez reessayer.")
    input("\nAppuyez sur EXE pour continuer...")

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.