Calcul du plus grand commun diviseur (pgdc)

Soyez le premier à donner votre avis sur cette source.

Vue 20 763 fois - Téléchargée 532 fois

Description

C'est mon premier programme en Csharp.
J'ai 14 ans et cela fait peu de temps que je me suis lancé dans la programmation en c#.
Si quelqu'un a des améliorations a apporté a mon programme , c'est avec grand plaisir :-D .
( Mise a jour : le 17/06/2004 à 13:52 )

Source / Exemple :


Tout est dans le zip ! 
Merci a loutremasquee

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
95
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
2 juin 2007

euclide est moins rapide que lalgorithme que loutremasquee propose
while(b!=0)
{
c=a%b;
a = b;
b = c;
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Un algorithme très simple et assez performant que tu pourrais mettre en place pour le calcul de ton PGDC est la formule d'Euclide; informellement, voici ce qu'elle dit :

si a > b alors PGDC(a, b) = PGDC(a-b, b)
PGDC(a, a) = a

Voilà, bonne chance.
Bidou
Messages postés
7
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
4 août 2004

La norme ISO est un ensemble de normes regissant l'informatique. En gros ca dis "ca c bien ca c pas bien" pour ce qui est de la prog :-P. ca fixe egalement d'autres types de normes evidemment mais passons. Du coup le goto (et n'importe quelle instruction commencant par go en fait a peu de chose pres) est banni du fait que mm si ca s'avere tres pratique, ca devient assez rapidement un bordel monstrueux quand on l'utilise, et reprendre un code peut se transformer en une vraie croisade. D'une maniere general on ne l'emploi que pour sortir d'un niveau superieur a 2 boucles imbriquees en cours d'execution, et mm là encore si possible il faut faire une utilisation des break tant que c'est faisable.
Un petit detail encore : les while, if then else, for et consors sont appele instruction et non pas boucle de flux, mais ca c de la terminologie et je suis peut etre deja has been dans ce domaine :-P
Messages postés
24
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
13 janvier 2007

Pour loutremasquee : j'ai fait les modifications nécessaires , c'est vrai que je n'est pas pensé a la boucle de flux while :D
Pourrai tu me dire ce qu'est la norme ISO ( Le format des images de Cd???, non je croi pas ;-) )
Merci de tes conseils

Walteau
Messages postés
7
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
4 août 2004

Bon evidemment y a qq petites choses a reprendre mais rien de bien mechant.
Tout d'abord ce que tu appelle "classe de calcul" n'est pas ta classe, mais ta methode appartenant a ta classe. Ta classe c'est Form1 :-D
Ton goto est a eviter, car cette structure n'est pas ds la norme ISO.... ne soyons pas sectaire, le goto c'est bien pratique parfois, mais tant que possible il faut l'eviter. Donc il vaut mieux faire une boucle tant que. ca deviendrai :
while(b!=0)
{
c=a%b;
a = b;
b = c;
}
A part ca rien a redire, a part evidemment qu'il existe des algo plus performant mais ce ne sont pas des maths de ton nivo pour l'instant, et que je ne suis pas sur que tu ais compris le concept objet (cf ta methode que tu appelles classe) mais bon y a que ceux ki ne font rien ki ne se trompent jamais ;-)
Bonne continuation

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.