Est-ce que vous pouvez me corriger
Résolu
laylana
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Je suis débutante et j'aimerai bien que quelqu'un me corrige cette exercice
Bonjour,
J'ai fait un programme en Pascal permettant d'afficher tous les entiers de trois chiffres dont la sommes de ces derniers = 5.
Exemple : 104 - 113 - 122 - 131 ............ 500
Voilà mon travail :
Program Entier_3_Chiffres;
Uses Wincrt;
Var a,b,c,n,s:integer;
Begin
for n:=100 to 999 do
Repeat
begin
a:= n div 100 ;
b:= (n mod 100) div 10 ;
c:=n mod 10 div 1 ;
s:= a + b + c ;
Write (s);
UntiL 5:=a+b+c;
if (s div 10 = 0 ) then
writeln(n) ;
End;
End.
Bonjour,
J'ai fait un programme en Pascal permettant d'afficher tous les entiers de trois chiffres dont la sommes de ces derniers = 5.
Exemple : 104 - 113 - 122 - 131 ............ 500
Voilà mon travail :
Program Entier_3_Chiffres;
Uses Wincrt;
Var a,b,c,n,s:integer;
Begin
for n:=100 to 999 do
Repeat
begin
a:= n div 100 ;
b:= (n mod 100) div 10 ;
c:=n mod 10 div 1 ;
s:= a + b + c ;
Write (s);
UntiL 5:=a+b+c;
if (s div 10 = 0 ) then
writeln(n) ;
End;
End.
A voir également:
- Est-ce que vous pouvez me corriger
- Corriger un message whatsapp - Guide
- Corriger photos gratuit - Guide
- Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ✓ - Forum Ubuntu
- Corriger un pdf - Guide
- Ce périphérique matériel n’est actuellement pas connecté à l’ordinateur. (code 45) pour corriger ce problème, reconnectez le périphérique matériel à l’ordinateur. ✓ - Forum Processeur
4 réponses
Il faut absolument que tu regardes les erreurs indiquées par ton compilateur !!!
Le mien n'a aucune compassion :
Le mien n'a aucune compassion :
UntiL 5:=a+b+c; // Fatal: Syntax error ; expected but UNTIL foundEncore une histoire de point-virgule...
bonjour à tous
1. UntiL 5:=a+b+c;
ce serait plutôt une confusion entre un test "=" et une affectation ":="
2. La boucle repeat ... until est inutile.
Il suffit de tester s pour chaque valeur de n et d'afficher n lorsque s=5
bonne suite
1. UntiL 5:=a+b+c;
ce serait plutôt une confusion entre un test "=" et une affectation ":="
2. La boucle repeat ... until est inutile.
Il suffit de tester s pour chaque valeur de n et d'afficher n lorsque s=5
bonne suite
Program Entier_3_Chiffres;
Uses Wincrt;
Var a,b,c,n,s:integer;
Begin
for n:=100 to 999 do
begin
a:= n div 100 ;
b:= (n mod 100) div 10 ;
c:=n mod 10 ;
s:= a + b + c ;
if (s=5 ) then
writeln(n) ;
End;
End.
Uses Wincrt;
Var a,b,c,n,s:integer;
Begin
for n:=100 to 999 do
begin
a:= n div 100 ;
b:= (n mod 100) div 10 ;
c:=n mod 10 ;
s:= a + b + c ;
if (s=5 ) then
writeln(n) ;
End;
End.
Je ne connais pas le Pascal, d'où cette question: que vaut "a" dans "a:= n div 100 ;" ?
Est-ce que Pascal ne sait traiter que les nombres entiers ? :/
Proposition:
c:= n mod 10 ;
b:= ((n-c) / 10 ) mod 10;
a:= ((n-b-c) / 100 ) mod 10;
ou même
a:= ((n-b-c) / 100 );
Au passage, inutile d'aller jusqu'à 999: 500 est la dernière valeur possible.
Est-ce que Pascal ne sait traiter que les nombres entiers ? :/
Proposition:
c:= n mod 10 ;
b:= ((n-c) / 10 ) mod 10;
a:= ((n-b-c) / 100 ) mod 10;
ou même
a:= ((n-b-c) / 100 );
Au passage, inutile d'aller jusqu'à 999: 500 est la dernière valeur possible.
Pour info :
"Est-ce que Pascal ne sait traiter que les nombres entiers ?"
Bien sûr que non, mais on distingue les divisions avec "div" qui prend deux entiers en entrée et renvoie un entier, et les divisions avec "/" qui prends deux réels en entrée et renvoie un réel.
Exemple : "5 div 2" donne 2, et "5 / 2" (qui est implicitement converti en "5.0 / 2.0") donne 2.5
Partant de ce principe, "que vaut 'a' dans 'a:= n div 100 ;' ?", c'est le chiffre des centaines de n.
Et ta proposition est évidemment fausse, car (n-c)/10, et (n-b-c)/100 vont renvoyer un réel, ce qui est incompatible avec l'utilisation de "mod" qui attend un entier. La compilation va échouer.
"Est-ce que Pascal ne sait traiter que les nombres entiers ?"
Bien sûr que non, mais on distingue les divisions avec "div" qui prend deux entiers en entrée et renvoie un entier, et les divisions avec "/" qui prends deux réels en entrée et renvoie un réel.
Exemple : "5 div 2" donne 2, et "5 / 2" (qui est implicitement converti en "5.0 / 2.0") donne 2.5
Partant de ce principe, "que vaut 'a' dans 'a:= n div 100 ;' ?", c'est le chiffre des centaines de n.
Et ta proposition est évidemment fausse, car (n-c)/10, et (n-b-c)/100 vont renvoyer un réel, ce qui est incompatible avec l'utilisation de "mod" qui attend un entier. La compilation va échouer.