Autre facon pour programme pascal
Bonjour,
je veux bien faire un programme pascal qui transforme "123" en "102030" ,un programme qui mets des "0" entre les nombres que je lui insère . j'ai fais un mais j'utilise la multiplication par 10 et j'affiche les trois nombre collé .
voila le programme ;
program fff ;
Var a,b,c :integer ;
begin
writeln ('entr' trois nombres') ;
readln (a) ;
readln (b) ;
readln (c) ;
a:=a*10 ;
b:=b*10 ;
c:=c*10 ;
writeln ('voila le resultat de la compilation') ;
writeln (a,b,c) ;
readln ;
end .
je veux bien avoir un autre qui permet de mettre le "0" entre les nombres ,et merci .
je veux bien faire un programme pascal qui transforme "123" en "102030" ,un programme qui mets des "0" entre les nombres que je lui insère . j'ai fais un mais j'utilise la multiplication par 10 et j'affiche les trois nombre collé .
voila le programme ;
program fff ;
Var a,b,c :integer ;
begin
writeln ('entr' trois nombres') ;
readln (a) ;
readln (b) ;
readln (c) ;
a:=a*10 ;
b:=b*10 ;
c:=c*10 ;
writeln ('voila le resultat de la compilation') ;
writeln (a,b,c) ;
readln ;
end .
je veux bien avoir un autre qui permet de mettre le "0" entre les nombres ,et merci .
8 réponses
-
voila la soltuion à ton sujet,ce programme fonctionne avec tous les entiers ex:1,56,123......
program ajouter_des_zeros; uses crt; var x,i:integer; s1,s2:string; function int2str(a:integer):string; { convertir un entier en chaine de caractere } var ch,ch2:string; nb,b:integer; begin nb:=a; b:=nb mod 10; ch:=chr(b+48); nb:=nb div 10; while(nb<>0)do begin b:=nb mod 10; ch:=ch+chr(b+48); nb:=nb div 10; end; ch2:=ch[length(ch)]; for b:=length(ch)-1 downto 1 do ch2:=ch2+ch[b]; int2str:=ch2; end; begin { programme pricipal } clrscr; write('Entrer un entier: '); readln(x); s1:=int2str(x); s2:=s1[1]+'0'; for i:=2 to length(s1) do s2:=s2+s1[i]+'0'; writeln ('voila le resultat de la compilation: ',s2) ; readln; end. -
pourquoi tu multiplie par 10?
tu n'as qu'à afficher directement comme ça :
writeln(a,'0',b,'0',c,'0');
sans les multiplications! -
ok , j'ai un nombre entier "123" je veux que je trouve dans le resultat 102030, on peux bien divisé "123" sur 100 pour avoir 1 ,puisque en utilise "integer" on n'as pas de virgules mais pour le reste "trouvé 2 et 3 " je sais plus comment faire .
-
salut ayoubito, j'ai pas compris exactement ce que tu veux, est-ce que l'entier 123 est juste un exemple ? ou ton programme censé fonctionner uniquement avec cet entier?
-
oui il faut que tu nous donnes plus de détails afin de t'aider
-
ok pour le nombre 123 est un exemple , le programme doit mettre des zeros entre l'ensemble 123 ,pour avoir en résultat 102030 .
-
marspar , pour "writeln(a,'0',b,'0',c,'0'); " c'est pas possible puisque a=123 . alors je doit faire trois variables encore x,y,z .
-
j'ai reussi a faire le programme qu'il me faut .
program hhh;
var a,x,y,z :integer ;
begin
readln (a) ;
x:=a div 100 ;
y:=a div 10 - (x*10) ;
z:=a - (x*100)-(y*10) ;
writeln (x,0,y,0,z);
readln ;
end .
merci pour votre aide.