program TechCont;
uses wincrt;
type
tabd=array [1..10] of string;
tabr=array[1..10] of real;
var r:tabr;
d:tabd;
i,n:integer;
procedure saisie(var n:integer);
begin repeat
Writeln('Donner N entre 3 et 10 :');
readln(N);
until n in [3..10]
end;
procedure affiche(r:tabr;n:integer);
begin writeln;
for i:=1 to n do write(r[i]:0:2,' | ');
writeln;
end;
procedure remplir(var d:tabd;n:integer);
var
z,nn:real;
rr,r1,r2:integer;
ch:string;
begin
for i:=1 to n do begin
repeat
writeln('Donner l''operation ', i);
readln(D[i]);
ch:=d[i];
val(ch,nn,r1);
delete(ch,r1,1);
val(ch,nn,r2);
writeln(ch);
writeln(d[i]);
if d[i][r1]='/' then
val(copy(d[i],r1+1,length(d[i])-r1),z,rr);
until (z<>0) and (pos(' ',d[i])=0) and (r2=0) and (r1<>1) and (r1<>length(d[i])) and (d[i][r1] in ['+','*','-','/']);
end;
end;
procedure calcul(var r:tabr;d:tabd;n:integer);
var
e1,e2:real;
ch1,ch2:string;
x,e:integer;
begin
for i:=1 to n do begin
val(d[i],e1,x);
ch1:=copy(d[i],1,x-1);
ch2:=copy(d[i],x+1,length(d[i])-x);
val(ch1,e1,e);
val(ch2,e2,e);
case d[i][x] of '+':r[i]:=e1+e2;
'-':r[i]:=e1-e2;
'*':r[i]:=e1*e2;
'/':r[i]:=e1/e2;
end;
end;
end;
begin saisie(n);
remplir(d,n);
calcul(r,d,n);
affiche(r,n);
end.