Правильно ли я реализовал эту программу ?
uses crt;
var a,b,s,c:integer;
begin
write('>'); readln(a,c,b);
write(a);
s:=a+b;
case c of
'+':write('+');
end;
write(b);
writeln('=',s);
end.
uses crt;
var a,b,s,c:integer;
begin
write('>'); readln(a,c,b);
write(a);
s:=a+b;
case c of
'+':write('+');
end;
write(b);
writeln('=',s);
end.
program pas;
uses crt;
var
a,b,s:integer;
c, ch:char;
begin
write('>');
read(a); { <-- Читаешь первое число }
read(ch, c); { <-- пробел между первым числом и знаком, и сам знак }
readln(ch, b); { <-- пробел между знаком и вторым числом и второе число }
write(a);
case c of
'+':write('+');
end;
write(b);
s:=a+b;
writeln('=',s);
end.
uses crt;
var s:integer;
c,a,b:char;
begin
write('>');
a:=readkey; write(a);
c:=readkey;write( с ); //что с ним делать незнаю :)
b:=readkey;write(b);
s:=ord(a) + ord(b)-(48*2); //до Ord('0') не додумался :(
writeln('=',s);
readln;
read;
end.
uses crt;
const
GoodChars = ['0'..'9','+','-','*','/','.'];
ActionChars = ['+','-','*','/'];
var
s:string;
error:boolean;
i,ActionNum,val_err:integer;
ActionChar:char;
a,b:real;
begin
clrscr;
writeln('vvedite arifmeticheskoe virazhenie:');
readln(s);
clrscr;
error:=false;
for i:=1 to length(s) do
if not (s[i] in GoodChars)
then error:=true;
ActionNum:=0;
for i:=1 to length(s) do
if s[i] in ActionChars
then
begin
ActionChar:=s[i];
inc(ActionNum);
end;
if (ActionNum<>1) or (pos(ActionChar,s)=1) or (pos(ActionChar,s)=length(s))
then error:=true;
if not error
then
begin
val(copy(s,1,pos(ActionChar,s)-1),a,val_err);
val(copy(s,pos(ActionChar,s)+1,length(s)-pos(ActionChar,s)),b,val_err);
case ActionChar of
'+': writeln(s,'=',a+b:1:2);
'-': writeln(s,'=',a-b:1:2);
'*': writeln(s,'=',a*b:1:2);
'/': if b=0
then writeln('na nol delit'' nel''za')
else writeln(s,'=',a/b:5:2);
end;
end
else writeln('Vvedenniy tekst ne yavlaetsa arifmeticheskim virazheniem');
readln;
end.
//это для общего случая
program pas;
uses crt;
var
s:integer;
a, b, c:char;
begin
write('>');
readln(a, c, b);
write(a);
case c of
'+':write('+');
end;
write(b);
s:=ord(a)+ord(b) - 2*ord('0');
writeln('=',s);
end.
var
s:string;
val_err:integer;
a,b:byte;
begin
write('>');
readln(s);
val(s[1],a,val_err);
val(s[3],b,val_err);
writeln(s,'=',a+b);
readln;
end.
if c='+' then write('+');
var s:string;
begin
write ('>');
readln (s);
while pos (' ',s)>0 do delete (s,pos(' ',s),1);
if s='4+4' then writeln ('4 + 4 = ', 4+4) else
writeln ('Введенные данные не соответствуют заданию..');
end.
program cal;
uses crt;
var
code:integer;
sa,sb,s:string;
f,a,b:real;
c:byte;
begin
textcolor(2);
clrscr;
write('>');
readln(s);
if pos('+',s)<>0 then c:=pos('+',s);
if pos('-',s)<>0 then c:=pos('-',s);
if pos('*',s)<>0 then c:=pos('*',s);
if pos('/',s)<>0 then c:=pos('/',s);
sa:=copy(s,1,c-1);
sb:=copy(s,c+1,length(s)-c);
val(sa,a,code);
val(sb,b,code);
write(sa);
case s[c] of
'+':f:=a+b;
'-':f:=a-b;
'*':f:=a*b;
'/':f:=a/b;
end;
writeln(s[c],sb,'=',f:1:2);
readkey;
end.