Besoin d'aide, programmation pascal
Fermé
pascal68360
Messages postés
3
Date d'inscription
samedi 17 octobre 2009
Statut
Membre
Dernière intervention
18 octobre 2009
-
17 oct. 2009 à 14:48
pascal68360 Messages postés 3 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 18 octobre 2009 - 18 oct. 2009 à 11:01
pascal68360 Messages postés 3 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 18 octobre 2009 - 18 oct. 2009 à 11:01
A voir également:
- Besoin d'aide, programmation pascal
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Application de programmation - Guide
- Dev-pascal - Télécharger - Édition & Programmation
- Programmation logo tortue télécharger - Télécharger - Études & Formations
3 réponses
nabil07
Messages postés
140
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
10 avril 2014
64
17 oct. 2009 à 15:20
17 oct. 2009 à 15:20
Bonjour,
voici une proposition pour résoudre
voici une proposition pour résoudre
function div7() var val,i,sum:integer; begin for i:=1 to 10000 begin val:=i; do sum:=val/10; val:=val%10; until(val==0); if((sum%7)==0) writeln('c"est bon!'); else writeln('c"est pas bon.'); end end;
nabil07
Messages postés
140
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
10 avril 2014
64
18 oct. 2009 à 00:34
18 oct. 2009 à 00:34
bonjour,
avant de commencer,tu dois savoir le mode de fonctionnement des deux opérateurs "/" et "%";
- / : (eg: a/b) renvoi la partie entière de la division de a sur b.
- % : (eg: a%b) renvoi le reste de division de a divisé par b.
je m'éxcuse, je me trompe dans le code, le voici de nouveau:
maintenant on passe à l'explication:
on va parcourir tous les nombres entre 1 et 10000 (via le boucle for)
à chaque fois on récupère le nombre dans la variable val pour qu'on puisse faire nos opération dans affecter le bon fonctionnement du programme.
dans la variable sum on va sauvgarder la somme des chiffre du nombre val
et s'arrête lorsque val=0
voici un exemple :
pour l'itération i=123 ; sum=0
sum = 0 + (123%10) = 3 ; val = 123 / 10 = 12
sum = 3 + 12%10 =3+2=5 ; val = 12/10 = 1
sum = 5 + 1%10 = 5+1=6 ; val = 1/10 = 0
donc 6 <> 7
je souhaite que tu as mieux compris maintenant, et que j'ai pu te passé l'information.
.
avant de commencer,tu dois savoir le mode de fonctionnement des deux opérateurs "/" et "%";
- / : (eg: a/b) renvoi la partie entière de la division de a sur b.
- % : (eg: a%b) renvoi le reste de division de a divisé par b.
je m'éxcuse, je me trompe dans le code, le voici de nouveau:
function div7() var val,i,sum:integer; begin for i:=1 to 10000 begin val:=i; do sum:=sum + (val%10); val:=val/10; until(val==0); if((sum%7)==0) writeln('c"est bon!'); else writeln('c"est pas bon.'); end end;
maintenant on passe à l'explication:
on va parcourir tous les nombres entre 1 et 10000 (via le boucle for)
à chaque fois on récupère le nombre dans la variable val pour qu'on puisse faire nos opération dans affecter le bon fonctionnement du programme.
dans la variable sum on va sauvgarder la somme des chiffre du nombre val
et s'arrête lorsque val=0
voici un exemple :
pour l'itération i=123 ; sum=0
sum = 0 + (123%10) = 3 ; val = 123 / 10 = 12
sum = 3 + 12%10 =3+2=5 ; val = 12/10 = 1
sum = 5 + 1%10 = 5+1=6 ; val = 1/10 = 0
donc 6 <> 7
je souhaite que tu as mieux compris maintenant, et que j'ai pu te passé l'information.
.
pascal68360
Messages postés
3
Date d'inscription
samedi 17 octobre 2009
Statut
Membre
Dernière intervention
18 octobre 2009
18 oct. 2009 à 11:01
18 oct. 2009 à 11:01
Ouai merci beaucoup j'ai tous compris.
Mais nous on utilisai la commande "mod" pour avoir le reste d'une division, et "div" pour avoir le quotient d'une division.
Voici ceux que moi j'avais fait. Dis moi ceux que tu en penses:
program div 7;
var a,b,c,d,e,f,g,h,i:real;
for i:=1 to 10000 do
begin
a:=i mod 10000
b:=i div 10000
c:=a mod 1000
d:=a div 1000
e:=c mod 100
f:=c div 100
g:=e mod 10
h:=e div 10
g:=d mod 1
h:=d div 1
if (b+d+f+g+h) mod 7=0
writeln(i)
end.
Y a t'il des erreurs? Je ne sais jamais ou je doit mettre les ";" ( je n'est eu que 4 séances de programmation pour l'instant... )
Mais nous on utilisai la commande "mod" pour avoir le reste d'une division, et "div" pour avoir le quotient d'une division.
Voici ceux que moi j'avais fait. Dis moi ceux que tu en penses:
program div 7;
var a,b,c,d,e,f,g,h,i:real;
for i:=1 to 10000 do
begin
a:=i mod 10000
b:=i div 10000
c:=a mod 1000
d:=a div 1000
e:=c mod 100
f:=c div 100
g:=e mod 10
h:=e div 10
g:=d mod 1
h:=d div 1
if (b+d+f+g+h) mod 7=0
writeln(i)
end.
Y a t'il des erreurs? Je ne sais jamais ou je doit mettre les ";" ( je n'est eu que 4 séances de programmation pour l'instant... )
17 oct. 2009 à 16:18
Merci beaucoup pour ta réponse mais je n'est pas tout compris au programme:
function div7()
var val,i,sum:integer;
begin
for i:=1 to 10000
begin
val:=i;
do
sum:=val/10;
val:=val%10;
until(val==0);
if((sum%7)==0)
writeln('c"est bon!');
else
writeln('c"est pas bon.');
end
end;
J'ai bien compris qu'on faisait une boucle avec les chifre de 1 a 10000, mais après je ne comprend vraiment plus rien. ( je suis vraiment pas doué en programmation...)
Peut tu m'expliquer un peu plus en détail ce que tu as fait?