Bonjour voila je suis nouveau ici et je suis en première année d’etude de programmation et comme tout le monde je nageeeeeee!!!!!!!
Voila je dois crée un programme sur base du calcule de l’aire du triangle du cercle et du trapeze pour cela je dois faire les 3 en Un tout sa en turbo pascal donc voici mon programme.
Mon problème ce trouve au niveau du changement de programme entre mes 3 programme j’ai inséré des "else " pour que le programme puisse choisir mais il me marque a chaque fois
error 113: in the statements.
voila je voudrai bien savoir si vous avez des solutions a me proposé svp !
donc voici le fameux programme :
program choix_3form;
uses crt;
var choix,b,htriangl,airetriangl,gb,pb,htrapez,airetrapez,airecercl,rayon:real;
const pie=3.1416;
begin
clrscr;
writeln('________________________________');
writeln(' ');
writeln('choissisez entre ces 3 programme');
writeln(' 1 triangle 2 trapez 3 cercle ');
writeln(' ');
writeln('________________________________');
writeln('choix =');
read(choix);
if (choix<1) or (choix>3) then
begin
write('Votre choix ne peut etre que 1 pour le triangle 2 pour le trapez ou 3 pour le cercle');
end
else
if choix=1 then
begin
write('base du triangle=');
read(b);
if b<=0 then
begin
write('Impossible que la base soit plus petite ou egale a zero');
end
else
begin
write('Hauteur du triangle=');
read(htriangl);
if htriangl<=0 then
begin
write('Impossible que la hauteur soit plus petite ou egale a zero');
end
else
begin
airetriangl:=((b*htriangl)/2);
writeln('Aire du triangle=',airetriangl);
end;
else
if choix=2 then
begin
write('grande base=');
read(gb);
if gb<=0 then
begin
write('Impossible que Gb soit plus petit ou egale a zero');
end
else
begin
write('Petite base=');
read(pb);
if pb<=0 then
begin
write('Impossible que pb soit plus petit ou egale a zero');
end
else
begin
write('Hauteur trapeze =');
read(htrapez);
if htrapez<=0 then
begin
write('La hauteur ne peut pas tre plus petite ou egale a zero');
end
else
begin
airetrapez:=((gb+pb)*htrapez)/2;
writeln('L''aire du trapeze=',airetrapez);
end;
else
if choix=3 then
begin
write('Rayon=');
read(rayon);
if rayon<=0 then
begin
write('Impossible que le rayon soit negatif ou egale a zero');
end
else
begin
airecercl:=pie*(rayon*rayon);
writeln('L''aire du cercle=',airecercl);
end
end;
end;
end;
end;
end;
end;
end.
Effectivement, une bonne indentation est le secret d’une bonne lecture…
Je ne sais pas en quel langage c’est écrit, mais à mon avis il y a un petit problème au niveau de l’imbrication des IF…THEN…ELSE.
Je te propose donc ma version ci-dessous, en espérant que ça marche…
J’éai ajouté des commentaires (entourés de “###”) aux lignes modifiées ou ajoutées.
program choix_3form;
uses crt;
var choix,b,htriangl,airetriangl,gb,pb,htrapez,airetra
pez,airecercl,rayon:real;
const pie=3.1416;
begin
clrscr;
writeln('________________________________');
writeln(' ');
writeln('choissisez entre ces 3 programme');
writeln(' 1 triangle 2 trapez 3 cercle ');
writeln(' ');
writeln('________________________________');
writeln('choix =');
read(choix);
if (choix<1) or (choix>3) then
begin
write('Votre choix ne peut etre que 1 pour le triangle 2 pour le trapez ou 3 pour le cercle');
end
else
begin '### Je ne sais pas si nécessaire, mais je l'ai ajouter pour faire comme dans le reste du code... ###
if choix=1 then
begin
write('base du triangle=');
read(b);
if b<=0 then
begin
write('Impossible que la base soit plus petite ou egale a zero');
end
else
begin
write('Hauteur du triangle=');
read(htriangl);
if htriangl<=0 then
begin
write('Impossible que la hauteur soit plus petite ou egale a zero');
end
else
begin
airetriangl:=((b*htriangl)/2);
writeln('Aire du triangle=',airetriangl);
end '### je l'ai ajouté ###
end;
end '### je l'ai ajouté ###
end; '### je l'ai ajouté ###
end '### je l'ai ajouté ###
else
begin '### ajouté pour faire comme dans le reste du code ###
if choix=2 then
begin
write('grande base=');
read(gb);
if gb<=0 then
begin
write('Impossible que Gb soit plus petit ou egale a zero');
end
else
begin
write('Petite base=');
read(pb);
if pb<=0 then
begin
write('Impossible que pb soit plus petit ou egale a zero');
end
else
begin
write('Hauteur trapeze =');
read(htrapez);
if htrapez<=0 then
begin
write('La hauteur ne peut pas tre plus petite ou egale a zero');
end
else
begin
airetrapez:=((gb+pb)*htrapez)/2;
writeln('L''aire du trapeze=',airetrapez);
end '### je l'ai ajouté ###
end;
end '### je l'ai ajouté ###
end; '### je l'ai ajouté ###
end '### je l'ai ajouté ###
end; '### je l'ai ajouté ###
end '### je l'ai ajouté ###
else
begin '### ajouté pour faire comme dans le reste du code ###
if choix=3 then
begin
write('Rayon=');
read(rayon);
if rayon<=0 then
begin
write('Impossible que le rayon soit negatif ou egale a zero');
end
else
begin
airecercl:=pie*(rayon*rayon);
writeln('L''aire du cercle=',airecercl);
end
end;
end '### je l'ai ajouté ###
end;
end '### je l'ai ajouté ###
end;
end '### je l'ai ajouté ###
end;
end '### je l'ai ajouté ###
end; ### à supprimer ###
end; ### à supprimer ??? ###
end.
Si tu n’es pas obligé de mettre les “BEGIN” et “END” dans IF…THEN…ELSE, alors supprime-les, tu gagneras grandement en lisibilité !
program choix_3form;
uses crt;
var choix,b,htriangl,airetriangl,gb,pb,htrapez,airetra
pez,airecercl,rayon:real;
const pie=3.1416;
begin
clrscr;
writeln('________________________________');
writeln(' ');
writeln('choissisez entre ces 3 programme');
writeln(' 1 triangle 2 trapez 3 cercle ');
writeln(' ');
writeln('________________________________');
writeln('choix =');
read(choix);
if (choix<1) or (choix>3) then
write('Votre choix ne peut etre que 1 pour le triangle 2 pour le trapez ou 3 pour le cercle');
else
if choix=1 then
write('base du triangle=');
read(b);
if b<=0 then
write('Impossible que la base soit plus petite ou egale a zero');
else
write('Hauteur du triangle=');
read(htriangl);
if htriangl<=0 then
write('Impossible que la hauteur soit plus petite ou egale a zero');
else
airetriangl:=((b*htriangl)/2);
writeln('Aire du triangle=',airetriangl);
end;
end; '### je l'ai ajouté ###
else
if choix=2 then
write('grande base=');
read(gb);
if gb<=0 then
write('Impossible que Gb soit plus petit ou egale a zero');
else
write('Petite base=');
read(pb);
if pb<=0 then
write('Impossible que pb soit plus petit ou egale a zero');
else
write('Hauteur trapeze =');
read(htrapez);
if htrapez<=0 then
write('La hauteur ne peut pas tre plus petite ou egale a zero');
else
airetrapez:=((gb+pb)*htrapez)/2;
writeln('L''aire du trapeze=',airetrapez);
end;
end; '### je l'ai ajouté ###
end; '### je l'ai ajouté ###
else
if choix=3 then
write('Rayon=');
read(rayon);
if rayon<=0 then
write('Impossible que le rayon soit negatif ou egale a zero');
else
airecercl:=pie*(rayon*rayon);
writeln('L''aire du cercle=',airecercl);
end;
end;
end;
end;
end.
Salut! je crois q c’est tres bien le if then else; mais tu sais a ta place j’aurais choisi d’utiliser le CASE. c’est bcp mieux q le if then else imbriqué et serais mieux adapté au cas ou tu desirais calculé l’aire d’autres formes géometrique.
C’est du Pascal, il a besoin de begin et end comme en ADA.
Bon moi je placerais le code de saisie dans une répétitive do while et j’ajouterais une condition de sortie. Ensuite traiter les cas par un case et appeler des fonctions dédiées aux calculs.
C’est sur mais ici le but est d’apprendre l’algorithmique, pas forcement un langage qui leur sera utile… Et je les vois mal commencer par de la programmation objet
Moi aussi à l’école on a commencé à me faire apprendre le pascal. Je trouve ça dommage puisque on pourrait utiliser le C pour commencer (les bases sont facile).