Exercice en programme c
Résolu/Fermé
titeuf.1
Messages postés
3
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
-
28 oct. 2012 à 13:18
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 31 oct. 2012 à 10:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 31 oct. 2012 à 10:36
A voir également:
- Exercice en programme c
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
3 réponses
titeuf.1
Messages postés
3
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
1
30 oct. 2012 à 21:56
30 oct. 2012 à 21:56
merci a vous tous !! ^^
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
28 oct. 2012 à 13:24
28 oct. 2012 à 13:24
Merci de poster ce que tu as fait pour qu'on puisse t'aider...
Ou alors dis-nous ce que tu comprends pas, et ou tu bloques.
Ou alors dis-nous ce que tu comprends pas, et ou tu bloques.
titeuf.1
Messages postés
3
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
1
28 oct. 2012 à 13:54
28 oct. 2012 à 13:54
le problème c'est que j'ai pas trouver la méthode en utilisant l'addition.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
28 oct. 2012 à 14:37
28 oct. 2012 à 14:37
Par exemple :
Tu as 19/4
étape<-0
nb<-0
nb+4<19 donc étape 1
Etape 1 : nb<-nb+4 (nb=4)
nb+4<19 donc étape 2
Etape 2 : nb<-nb+4 (nb=8)
nb+4<19 donc étape 3
Etape 3 : nb<-nb+4 (nb=12)
nb+4<19 donc étape 4
Etape 4 : nb<-nb+4 (nb=16)
nb+4 non < 19 donc :
reste<-19-nb (reste=3), et diviseur<-4
Je te laisse creuser la méthode, comprendre comment faire des boucles et faire l'algorithme.
Tu as 19/4
étape<-0
nb<-0
nb+4<19 donc étape 1
Etape 1 : nb<-nb+4 (nb=4)
nb+4<19 donc étape 2
Etape 2 : nb<-nb+4 (nb=8)
nb+4<19 donc étape 3
Etape 3 : nb<-nb+4 (nb=12)
nb+4<19 donc étape 4
Etape 4 : nb<-nb+4 (nb=16)
nb+4 non < 19 donc :
reste<-19-nb (reste=3), et diviseur<-4
Je te laisse creuser la méthode, comprendre comment faire des boucles et faire l'algorithme.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
28 oct. 2012 à 22:10
28 oct. 2012 à 22:10
Effectivement,
nb=0
ResteDivision=0
Nombre = 12
Coefficient = 5
BOUCLE début
. SI nb>Nombre ALORS nb=(nb-Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
. SINON nb+=Coefficient
FIN BOUCLE
nb=0
ResteDivision=0
Nombre = 12
Coefficient = 5
BOUCLE début
. SI nb>Nombre ALORS nb=(nb-Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
. SINON nb+=Coefficient
FIN BOUCLE
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 oct. 2012 à 08:37
29 oct. 2012 à 08:37
Heliotte,
Tu utilises des soustractions dans ton algorithme ;-).
De plus ton algorithme ne marche pas. Si tu fais nb=nb-Coefficient, ton nb va diminuer. De plus, la structure algorithmique de ta boucle est à revoir...
Mais, le mieux est de le laisser chercher. Avec les exemples, il doit comprendre comment cela fonctionne et trouver l'algorithme.
Tu utilises des soustractions dans ton algorithme ;-).
De plus ton algorithme ne marche pas. Si tu fais nb=nb-Coefficient, ton nb va diminuer. De plus, la structure algorithmique de ta boucle est à revoir...
Mais, le mieux est de le laisser chercher. Avec les exemples, il doit comprendre comment cela fonctionne et trouver l'algorithme.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
29 oct. 2012 à 09:08
29 oct. 2012 à 09:08
fiddy,
j'ai fait une erreur lors de l'écriture.
Il faut remplacer :
- SI nb>Nombre ALORS nb=(nb-Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
par :
- SI nb>Nombre ALORS nb=(nb+Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
J'aurai dû utiliser un TANT QUE mais comme tu le dit, on ne va pas servir sur un plateau !
j'ai fait une erreur lors de l'écriture.
Il faut remplacer :
- SI nb>Nombre ALORS nb=(nb-Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
par :
- SI nb>Nombre ALORS nb=(nb+Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
J'aurai dû utiliser un TANT QUE mais comme tu le dit, on ne va pas servir sur un plateau !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 oct. 2012 à 09:44
29 oct. 2012 à 09:44
'ai fait une erreur lors de l'écriture.
Si tu mets + au lieu du -, là c'est archi faux du coup.
SI nb>Nombre ALORS nb=(nb+Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
. SINON nb+=Coefficient
Itération 1 : nb (0) non > Nombre (12) Donc nb+=Coefficient (nb=5)
Itération 2 : nb (5) non > Nombre (12) Donc nb+=Coefficient (nb=10)
Itération 3 : nb (10) non > Nombre (12) Donc nb+=Coefficient (nb=15)
Itération 4 : nb (15) > Nombre (12) Donc nb=nb+coefficient (nb=20) Et ResteDivision=Nombre-nb (12-20) = -8 !!!
Si tu mettais un - comme au début, tu trouvais le bon résultat. Le problème c'est que tu utilises un - à cet endroit (et puis le - pour le resteDivision). C'est donc bel et bien l'algorithme qui est à revoir.
Et enfin, un TantQue ne s'utilise pas comme ça. Il faut mettre TantQue Condition.
Sinon on se retrouve avec de moches et problématiques : while(1) en C...
Et évite de tout corriger, sinon tu vas lui faire l'exercice ;-).
Si tu mets + au lieu du -, là c'est archi faux du coup.
SI nb>Nombre ALORS nb=(nb+Coefficent):ResteDivision=(Nombre-nb): AFFICHER ResteDivision: SORTIR
. SINON nb+=Coefficient
Itération 1 : nb (0) non > Nombre (12) Donc nb+=Coefficient (nb=5)
Itération 2 : nb (5) non > Nombre (12) Donc nb+=Coefficient (nb=10)
Itération 3 : nb (10) non > Nombre (12) Donc nb+=Coefficient (nb=15)
Itération 4 : nb (15) > Nombre (12) Donc nb=nb+coefficient (nb=20) Et ResteDivision=Nombre-nb (12-20) = -8 !!!
Si tu mettais un - comme au début, tu trouvais le bon résultat. Le problème c'est que tu utilises un - à cet endroit (et puis le - pour le resteDivision). C'est donc bel et bien l'algorithme qui est à revoir.
Et enfin, un TantQue ne s'utilise pas comme ça. Il faut mettre TantQue Condition.
Sinon on se retrouve avec de moches et problématiques : while(1) en C...
Et évite de tout corriger, sinon tu vas lui faire l'exercice ;-).
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
29 oct. 2012 à 10:51
29 oct. 2012 à 10:51
Je reprends tout, car c'est archi embrouillé !
Encore faut-il pouvoir décoder !
nb=0 ResteDivision=0 Nombre = 12 Coefficient = 5 MultipliePar = -1 ' TANT QUE nb<Nombre . nb+=Coefficient . MultipliePar+=1 FIN TANT QUE ' nb=(nb-Coefficent) ResteDivision=(Nombre-nb) AFFICHER MultipliePar // rapport de deux nombres entier AFFICHER ResteDivision // reste de la division
Encore faut-il pouvoir décoder !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 oct. 2012 à 11:44
29 oct. 2012 à 11:44
Tu utilises toujours des "moins" mais il y a du mieux :-).
31 oct. 2012 à 10:36
Et d'autre part, il ne s'agit que d'un exemple vraiment pas optimisé (il y a deux boucles, alors qu'on peut le faire en 1 seule). Donc il y a encore du boulot ;-).