Exo algorithme pour correction s'il vous plai
Résolu/Fermé
bansan
Messages postés
122
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
8 mai 2011
-
10 mars 2008 à 19:43
niza - 26 mars 2008 à 01:58
niza - 26 mars 2008 à 01:58
A voir également:
- Exo algorithme pour correction s'il vous plai
- Correction orthographe - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Mode correction word - Guide
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
5 réponses
bsr,
svp aidez moi à trouvé la solution de ce prolème: écricre un algorithe qui permet d'écrire un nom quelquonque en étoile. je ne qsais plus mème la mèthode à suivre pour le résoudre.
merci d'avance.
svp aidez moi à trouvé la solution de ce prolème: écricre un algorithe qui permet d'écrire un nom quelquonque en étoile. je ne qsais plus mème la mèthode à suivre pour le résoudre.
merci d'avance.
Bonjour,
Exercice 11:
Dans cet exercice je n'ai pas utilisé la boucle POUR ... A ... FAIRE mais la boucle REPETER ... JUSQUA_CE_QUE
En effet, pas besoin de tester tous les caractères, il suffit qu'un seul soit mauvais pour que toute la chaine soit mauvaise.
J'utilise deux boucles imbriquées
La premiere boucle verifie chaque caractère de chaine , si un seul est mauvais tout est mauvais
La seconde boucle compare chaque caractère de chaine à chaque caractère de ChaineNum
S'il y a un signe + ou - il doit etre le premier caractère de chaine
Exercice 11:
Dans cet exercice je n'ai pas utilisé la boucle POUR ... A ... FAIRE mais la boucle REPETER ... JUSQUA_CE_QUE
En effet, pas besoin de tester tous les caractères, il suffit qu'un seul soit mauvais pour que toute la chaine soit mauvaise.
J'utilise deux boucles imbriquées
La premiere boucle verifie chaque caractère de chaine , si un seul est mauvais tout est mauvais
La seconde boucle compare chaque caractère de chaine à chaque caractère de ChaineNum
S'il y a un signe + ou - il doit etre le premier caractère de chaine
Variables i, j , ok , Convert_num , l1 , l2 : entiers l'entier ok sert de signal : ok=0 pas bon, ok=1 c'est bon a , b , chaine, ChaineNum : chaine de caractère a et b sont des chaines parce que tu utilises sschaine() DEBUT ChaineNum<-- "0123456789" ChaineNum contient tout les caractères valides. l1<--LONGUEUR(ChaineNum) Afficher("Saisir une chaine ") Saisir(chaine) l2<--LONGUEUR(chaine) i=0 Repeter i=i+1 a<--sschaine(chaine,i,1) j=0 faire j=j+1 b<--sschaine(chaineNum,j,1) si a=b alors ok<--1 sinon si ((a="+" ou a="-") et i=1) alors ok<--1 sinon ok<--0 fin si Jusqua_Ce_Que ok=1 ou j=l1 si ok=1 le caractère est valide , on sort de la boucle , on verifie le suivant Jusqua_Ce_Que ok=0 ou i=l2 si ok=0 caractère invalide, chaine invalide, on sort de la boucle si ok=0 alors afficher(a," n'est pas un chiffre") sinon Convert_num<--CVNOMBRE(chaine) afficher("chaine valide") afficher(Convert_num) finsi FIN
bansan
Messages postés
122
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
8 mai 2011
1
10 mars 2008 à 23:33
10 mars 2008 à 23:33
Merci
Interessant avec la boucle repeter...
Je m'en souviendrais pour que mes lignes soient plus siimples
Merci
Interessant avec la boucle repeter...
Je m'en souviendrais pour que mes lignes soient plus siimples
Merci
bansan
Messages postés
122
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
8 mai 2011
1
10 mars 2008 à 23:48
10 mars 2008 à 23:48
Pardon , désolé de revenir sur cet exo,
il y a des lignes que je ne comprends pas:
......
i=i+1
a<--sschaine(chaine,i,1)
j=0
faire
j=j+1
b<--sschaine(chaineNum,j,1)
si a=b alors ok<--1
sinon si ((a="+" ou a="-") et i=1) alors ok<--1
sinon ok<--0
fin si
.......
On repete i=i+1,
a sesigne la sous chaine a chaque boucle
Pareil pour j
et b represente la sous chaine a chaque boucle
Mais par contre "Si a=b" n'est pas possible...comment est ce que a pourrait etre egale a b???
imaginons que l'utilisateur saisit: 4512+6583, sachant que sela represnete la chaine et donc chaque sous schaine de A et que 0123456789 reprensente chaineNum et chaque souschaine de b, la probabilité pour trouver a=b..est minime...
L4autre chose que je ne comprends pas c'est pourquoi "..si((........ et i=1) c'est le i=1 que je ne comprends pas....
Merci
il y a des lignes que je ne comprends pas:
......
i=i+1
a<--sschaine(chaine,i,1)
j=0
faire
j=j+1
b<--sschaine(chaineNum,j,1)
si a=b alors ok<--1
sinon si ((a="+" ou a="-") et i=1) alors ok<--1
sinon ok<--0
fin si
.......
On repete i=i+1,
a sesigne la sous chaine a chaque boucle
Pareil pour j
et b represente la sous chaine a chaque boucle
Mais par contre "Si a=b" n'est pas possible...comment est ce que a pourrait etre egale a b???
imaginons que l'utilisateur saisit: 4512+6583, sachant que sela represnete la chaine et donc chaque sous schaine de A et que 0123456789 reprensente chaineNum et chaque souschaine de b, la probabilité pour trouver a=b..est minime...
L4autre chose que je ne comprends pas c'est pourquoi "..si((........ et i=1) c'est le i=1 que je ne comprends pas....
Merci
Bonjour,
Je te préviens, l'explication va etre assez longue.
D'abord une rectification, j'ai ecrit Faire mais il fallait ecrire Repeter pour rester cohérent
Pour expliquer on va prendre ton exemple: chaine<-"4512+6583" : chaineNum<-"0123456789"
Bon, je sais, ça fait un peu plat de nouilles, mais des qu'on fait des boucles imbriquées ça se complique un peu.
Ce qu'il faut retenir:
-la boucle Repeter ... Jusqua_Ce_Que(condition) tourne jusqu'a ce que condition soit Vraie
(ou tant que condition est fausse).
-le test SI ... SINON SI .... SINON ... FINSI se fait dans l'ordre ou on l'ecrit, des qu'un test est vrai on va à FINSI
si auncun test n'est vrai on applique la valeur par défaut SINON.
Fais le test avec des petites chaines, "10", "-1", "1-", "0A"
Sur un papier tu mets tes variables i= , j= , ok= .... que tu mets à jour
à chaque changement en suivant pas a pas le deroulement du programme.
Si ça coince encore, fait moi signe, Salut.
Je te préviens, l'explication va etre assez longue.
D'abord une rectification, j'ai ecrit Faire mais il fallait ecrire Repeter pour rester cohérent
Pour expliquer on va prendre ton exemple: chaine<-"4512+6583" : chaineNum<-"0123456789"
.... i=0 ;index de position dans chaine, initialisé à 0 Repeter i=i+1 ;a chaque tour on avance de 1, i varie de 1 à L2 (longueur de chaine) a<--sschaine(chaine,i,1) ; a prend la valeur du caractère pointé par i sschaine(chaine,i,1) veut dire que a prend la valeur de chaine à partir de la position i sur une longueur de 1 caractère j=0 ;index de position dans chaineNum, initialisé à 0 Repeter j=j+1 ;a chaque tour on avance de 1, j varie de 1 à L1 (longueur de chaineNum) b<--sschaine(chaineNum,j,1) ;b prend la valeur du caractère pointé par j ici commence la comparaison pour i=1 a="4" pour j=1 b="0" si a=b ;Faux on regarde deuxième condition sinon si ((a="+" ou a="-") et i=1) ;Faux donc condition par défaut sinon ok<--0 ;les deux premières conditions sont fausses, on applique ce cas. Jusqua_Ce_Que ok=1 ou j=L1 ; ok=0 et j=1, la codition de sortie de boucle est fausse donc on refait un tour j=j+1 ; j=2 a toujours egale 4 (a="4") b="1" on compare a et b ; c'est pareil que ci-dessus, on refait un tour j=j+1 jusqu'a j=5 a toujours egale 4 (a="4") b="4" si a=b ; Vrai alors ok<- 1; condition satisfaite, on va à fin si Jusqua_Ce_Que ok=1 ou j=L1 ; ok=1 et j=5, la condition de sotie de boucle est vraie, on sort de la boucle Jusqua_Ce_Que ok=0 ou i=L2 ; ok=1 et i=1, a condition de sotie de boucle est fausse donc on refait un tour i=i+1 a="5" j=0 ;on remet à 0 le pointeur de caractère de chaineNum et on recommence Repeter j=j+1 ; j=1 -> b="0" -> comparer a?=b etc... Maintenant pour i=5 -> a="+" j=1 -> b="0" a ?= b faux ((a ?= "+" ou a ?= "-") et i ?= 1)) faux puisque i>1 alors ok<-0 ; on refait un tour j=j+1 etc.. mais les conditions 1 et 2 seront toujours fausses car "+" et "-" ne sont pas dans chaineNum et i>1, ok sera toujours à 0 pour i=5 alors quand arrive j=10 (L1) Jusqua_Ce_Que ok=1 ou j=L1 est Vrai (l1=10) ; sortie de boucle Jusqua_Ce_Que ok=0 ou i=L2 est Vrai (ok=0) ; sortie de boucle on est sorti des deux boucles, on enchaine le programme si ok=0 alors afficher(a," n'est pas un chiffre"); VRAI puisque ok=0 sinon Convert_num<--CVNOMBRE(chaine) afficher("chaine valide") afficher(Convert_num) finsi FIN
Bon, je sais, ça fait un peu plat de nouilles, mais des qu'on fait des boucles imbriquées ça se complique un peu.
Ce qu'il faut retenir:
-la boucle Repeter ... Jusqua_Ce_Que(condition) tourne jusqu'a ce que condition soit Vraie
(ou tant que condition est fausse).
-le test SI ... SINON SI .... SINON ... FINSI se fait dans l'ordre ou on l'ecrit, des qu'un test est vrai on va à FINSI
si auncun test n'est vrai on applique la valeur par défaut SINON.
Fais le test avec des petites chaines, "10", "-1", "1-", "0A"
Sur un papier tu mets tes variables i= , j= , ok= .... que tu mets à jour
à chaque changement en suivant pas a pas le deroulement du programme.
Si ça coince encore, fait moi signe, Salut.
bansan
Messages postés
122
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
8 mai 2011
1
11 mars 2008 à 12:57
11 mars 2008 à 12:57
Bonjour,
J'ai donc compris que la boucle a l'interieur de la boucle se répete jusqu'a la fin de chaque carractere de la chaine pour ensuite refaire une boucle de la grande boucle et puis repartir pour faire x petites boucles...
JE comprends mieux...
C'est interessant...
Quelque chose que je devrais retenir
Mais pour le "Si a=b "ET i=1...euh...je ne vois pas pkoi et i=1...
J'ai donc compris que la boucle a l'interieur de la boucle se répete jusqu'a la fin de chaque carractere de la chaine pour ensuite refaire une boucle de la grande boucle et puis repartir pour faire x petites boucles...
JE comprends mieux...
C'est interessant...
Quelque chose que je devrais retenir
Mais pour le "Si a=b "ET i=1...euh...je ne vois pas pkoi et i=1...
Content que tu profites de la leçon
sinon si ((a="+" ou a="-") et i=1) alors ok<--1
i=1 parce le signe "+" ou "-" n'est valable que s'il est en première position dans chaine, donc pour i=1, sinon ça ne veut plus rien dire, "-1" c'est bon, "1-" c'est incorrect .
sinon si ((a="+" ou a="-") et i=1) alors ok<--1
i=1 parce le signe "+" ou "-" n'est valable que s'il est en première position dans chaine, donc pour i=1, sinon ça ne veut plus rien dire, "-1" c'est bon, "1-" c'est incorrect .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour j'aimerais que l'on m'aide pour mon algorithme je n'y arrive pas aidez moi svp
voici l'enoncé:
Le professeur de gestion de 1ere stg 1 souhaite calculer la moyenne de ses eleves au second trimestre en leur ajoutant un bonus de 0.5 point sur la moyenne globale. Si la moyenne du second trimestre a augmenté de +5% par rapport au 1er trimestre, la moyenne sera augmenté d'un demi point sinon le programme affichera le résultat suivant:"poursuivez vos efforts". Il ya 3 notes au second trimestre toutes affectées du coefficient 1.
Vous calculerez la moyenne en affichant le résultat sous la forme:
"l'eleve"; nom,prénom, "a une moyenne de ", moyenne.
meci d'avance
voici l'enoncé:
Le professeur de gestion de 1ere stg 1 souhaite calculer la moyenne de ses eleves au second trimestre en leur ajoutant un bonus de 0.5 point sur la moyenne globale. Si la moyenne du second trimestre a augmenté de +5% par rapport au 1er trimestre, la moyenne sera augmenté d'un demi point sinon le programme affichera le résultat suivant:"poursuivez vos efforts". Il ya 3 notes au second trimestre toutes affectées du coefficient 1.
Vous calculerez la moyenne en affichant le résultat sous la forme:
"l'eleve"; nom,prénom, "a une moyenne de ", moyenne.
meci d'avance