1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| program testingisgood;
function verif_nombre(x:char):boolean;
var
vrie:boolean;
begin
case x of
'1': vrie:=true;
'2': vrie:=true;
'3': vrie:=true;
'4': vrie:=true;
'5': vrie:=true;
'6': vrie:=true;
'7': vrie:=true;
'8': vrie:=true;
'9': vrie:=true;
else vrie:=false;
end;
verif_nombre:=vrie;
end;
function con_nombre(x:char):integer;
var nombre:integer;
begin
case x of
'1':nombre:=1;
'2':nombre:=2;
'3':nombre:=3;
'4':nombre:=4;
'5':nombre:=5;
'6':nombre:=6;
'7':nombre:=7;
'8':nombre:=8;
'9':nombre:=9;
end;
con_nombre:=nombre;
end;
function verif_operateur(x:char):boolean;
var vrie:boolean;
begin
case x of
'+': vrie:=true;
'-': vrie:=true;
'*': vrie:=true;
'/': vrie:=true;
'=':vrie:=true;
else vrie:=false;
end;
verif_operateur:=vrie;
end;
function verif_nombreoperateur(z:string;n:integer):boolean;
var vrie:boolean;i:integer;
begin
vrie:=true;
if(verif_operateur(z[1])=true) then
vrie:=false
else
if(verif_operateur(z[n])<>true) then
vrie:=false
else
for i:=1 to n-1 do
begin
if((verif_operateur(z[i])=true) and (verif_operateur(z[i+1])=true)) then
vrie:=false
else
if((verif_nombre(z[i])=false) and (verif_operateur(z[i])=false)) then
vrie:=false;
end;
verif_nombreoperateur:=vrie;
end;
var x:string[100];
vrie:boolean; j,i,l:integer; res:real;
{programme principal}
begin
writeln('entrer une expression qui se compose uniquement par des chiffres et qui se termine par = :');
readln(x);
l:=length(x);
while(x[l]<> '=')do
begin
writeln('vous avez oublier le signe =');
writeln;
writeln('entrer une expression qui se termine obligatoirement par = :');
readln(x);
l:=length(x);
end;
vrie:=verif_nombreoperateur(x,l);
while(vrie=false)do
begin
writeln('vous avez faire une erreur dans la saisi');
writeln;
writeln('entrer une expression qui se termine obligatoirement par = :');
readln(x);
l:=length(x);
while(x[l]<> '=')do
begin
writeln('vous avez oublier le signe =');
writeln;
writeln('entrer une expression qui se termine obligatoirement par = :');
readln(x);
l:=length(x);
end;
vrie:=verif_nombreoperateur(x,l);
end;
case x[2] of
'+':res:= con_nombre(x[1])+con_nombre(x[3]);
'-':res:= con_nombre(x[1])-con_nombre(x[3]);
'*':res:= con_nombre(x[1])*con_nombre(x[3]);
'/':res:= con_nombre(x[1])/con_nombre(x[3]);
end;
i:=2;
j:=3;
repeat
i:=i+2;
j:=j+2;
case x[i] of
'+':res:=res+con_nombre(x[j]);
'-':res:=res-con_nombre(x[j]);
'*':res:=res*con_nombre(x[j]);
'/':res:=res/con_nombre(x[j]);
end;
until(x[i]='=') ;
writeln(res);
readln;
end. |
Partager