Exercice en programme c
Résolu
titeuf.1
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
pouvez vous m'aider a résoudre ce mini problème
donner un programme c qui permet de calculer le rapport de deux nombres entier et le reste de la division en utilisant l'addition uniquement
merci d'avance ^____^
pouvez vous m'aider a résoudre ce mini problème
donner un programme c qui permet de calculer le rapport de deux nombres entier et le reste de la division en utilisant l'addition uniquement
merci d'avance ^____^
A voir également:
- Exercice en programme c
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
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.
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.
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
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.
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 !
'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 ;-).
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 !
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 ;-).