Besoin d'aide, programmation pascal
pascal68360
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
pascal68360 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
pascal68360 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en DUT de maintenance industrielle et j'ai quelque soucie avec une de nos matière: la programmation.
Voilà mon soucie:
1) Ecrivez un programme Pascal qui affiche l'ensemble des nombres entiers entre 1 et 10000 dont la somme des chiffres est divisible par 7.
exemples:
123: 1+2+3=6>>pas bon
142: 1+4+2=7>>bon
2) Soit un vecteur V de n entiers; n est une constante. Je désire trouver le plus petit des entiers du vecteur V.
-Ecrivez le programme Pascal corespondant.
Si quelqu'un pourrait me donner ces 2 programmes en Pascal ça m'aiderai beaucoup.
Merci d'avance.
Je suis actuellement en DUT de maintenance industrielle et j'ai quelque soucie avec une de nos matière: la programmation.
Voilà mon soucie:
1) Ecrivez un programme Pascal qui affiche l'ensemble des nombres entiers entre 1 et 10000 dont la somme des chiffres est divisible par 7.
exemples:
123: 1+2+3=6>>pas bon
142: 1+4+2=7>>bon
2) Soit un vecteur V de n entiers; n est une constante. Je désire trouver le plus petit des entiers du vecteur V.
-Ecrivez le programme Pascal corespondant.
Si quelqu'un pourrait me donner ces 2 programmes en Pascal ça m'aiderai beaucoup.
Merci d'avance.
A voir également:
- Besoin d'aide, programmation pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Application de programmation - Guide
- Programmation envoi sms - Guide
3 réponses
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;
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.
.
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... )
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?