Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème appel fonction

Sujet résolu
    21 décembre 2016 à 15:11:21

    Bonjour,

    Je viens de commencer python et j’essaie d'utiliser les fonctions.

    J'ai crée un petit programme :

    # -*-coding:utf8 -*
    import os
    import math
    
    boucle = True
    
    def calcule_pgcd(a,b):
    	r1 = max(a,b) % min(a,b)
    	print(max(a,b),"=",max(a,b)//min(a,b),"*",min(a,b),"+",r1)
    	if r1!=0 :
    		r = min(a,b) % r1
    		print(min(a,b),"=",min(a,b)//r1,"*",r1,"+",r)
    		while r != 0 :
    			r2 = r1
    			r1 = r
    			r = r2 % r1
    			print(r2,"=",r2//r1,"*",r1,"+",r)	
    		pgcd=r1
    		print("pgcd(a;b)=",r1)
    	else :
    		pgcd=min(a,b)
    		print("pgcd(a;b)=",min(a,b))
    
    def table(nb, max):
        i = 0
        while i < max: # Tant que i est strictement inférieure à la variable max,
            print(i + 1, "*", nb, "=", (i + 1) * nb)
            i += 1
    
    while boucle == True: # Tant que la 'reponse' est nulle
    	
    	print (u"\n****** DEBUT DE TRAITEMENT ******")
    	print (u"\nBienvenu dans le programme de résolution d'équation  diophantienne du type ax+by=c")
    
    	a = input("Rentrez a :")
    	a = int(a)
    	b = input("Rentrez  b :")
    	b = int(b)
    	c = input("Rentrez  c :")
    	c = int(c)	
    
    	print (u"\n****** CALCUL PGCD(a;b) ******")
    	print (u"\nUtilisisons l'algorythme d'euclide")
    
    	tabe(11, 20)
    
    	if pgcd==1 :
    		print("pgcd(a;b)=1 donc les nombres sont premiers entre eux")
    		a0=a
    		b0=b
    		pgcd0=pgcd		
    	else :
    		print("pgcd(a;b)=",pgcd,"=/=1 donc les nombres ne sont pas premiers entre eux")
    		if c%pgcd == 0 : 
    			print("Le pgcd(",a,";",b,")=",pgcd," divise c=",c,".")
    			print("L'équation ax + by = c est alors équivalente à l'équation a0x + b0y = c0 avec :")
    			a0 = int(a/pgcd)
    			print("a0=",a0)
    			b0 = int(b/pgcd)
    			print("b0=",b0)
    			c0 = int(c/pgcd)
    			print("c0=",c0)
    
    			calcule_pgcd(a0,b0)
    
    		else :
    			print("Le pgcd(",a,";",b,")=",pgcd,"ne divise pas c=",c,". L'équation n'a pas de solution.")
    
    	continuer = input(u"Voulez-vous continuer avec un autre nombre ? (O/N): ")
    	if continuer not in ('O','o','oui','OUI','ok'):
    	    boucle = False
    
    # On met le programme en pause pour éviter qu'il ne se referme (Windows)
    os.system("pause")

    J'ai récupéré la fonction table du cours d'openclassroom sur les fonctions et je l'ai intégré à mon programme juste pour tester l'utilisation des fonction (afin de pouvoir utilisé les miennes après). Mais je ne comprend pas, elle ne fonctionne pas. C'est peut-être lié à la boucle while mais je ne comprend pas bien. J'ai placer la fonction table partout pour tester, j'ai modifier la fonction, j'ai tester avec d'autres fonction : j'ai tout fait mais l'appel de fonctions à cette endroits du programme ne semble pas marché...



    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2016 à 15:31:51

      Ce qui est genial avec la console python c'est qu'elle te dit ou sont tes erreurs. Ce serait bien de nous dire ce qu'elle te dit.

      Par exemple je suis sur qu'elle doit te dire qu'elle ne connais pas la fonction tabe() qu tu utilise a la ligne 45:

      tabe(11, 20)

      Elle doit egalement te dire que la variable pgcd que tu utilise a la ligne 47 n'existe pas

      • Partager sur Facebook
      • Partager sur Twitter

      Problème appel fonction

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown