VMTEST - Thử máy
Tác giả: ladpro98
Ngôn ngữ: Pascal
const fi='';
var inp:text;
s:string;
i,l,code:longint;
t,sum:extended;
err:boolean;
begin
assign(inp,fi);reset(inp);
while true do
begin
readln(inp,s);
err:=false;
while s[1]=' ' do delete(s,1,1);
if s[1]='?' then break;
if s[1] in ['A'..'z'] then
begin
for i:=1 to length(s) do
if (s[i]<>' ') and (not (s[i] in ['A'..'z'])) then
begin
writeln('Error!');
err:=true;
break;
end;
if err then continue;
for i:=length(s) downto 1 do
if s[i]=' ' then delete(s,i,1);
writeln(s);
continue;
end;
if (s[1]='.') or (s[1]='-') or (s[1] in ['0'..'9']) then
begin
sum:=0;
for i:=length(s) downto 2 do if (s[i]=' ') and (s[i-1]=' ') then delete(s,i,1);
if s[length(s)]<>' ' then s:=s+' ';
l:=1;
for i:=1 to length(s) do
if s[i]=' ' then
begin
Val(copy(s,l,i-l),t,code);
l:=i+1;
if code<>0 then
begin
writeln('Error!');
err:=true;
break;
end;
sum:=sum+t;
end;
if err then continue;
writeln(sum:0:6);
continue;
end;
writeln('Error!');
end;
close(inp);
end.