Задача 7 урок 17
Primary tabs
Задача 7 урок 17
На вход вашей программы подается строка вида:
<целоечисло><произвольное число пробелов> <арифм.операция> <произвольное число пробелов> <целоечисло>
например:
1 + 3
или
2 - 12
Напишите программу, которая разбирает вычисляет результат этого приложения (сделайте поддержку операций сложения и вычитания).
var x, y: integer;
s, w: string;
procedure getData(str: string; var n, m: integer; var z: string);
var i, y, T, Code: integer; a: string;
begin
y:=1; //индекс вводимого числа
for i:=1 to length(s) do
begin
if ((str[i]>='0')and(str[i]<='9')) AND (y=1) then //если число
a:=a+str[i]
else if (str[i]=' ') AND (y=1) then //после первого пробела
begin
Val(a, T, Code);
n:=T;
a:='';
inc(y);
end
else if (str[i]='+') OR (str[i]='-') then
z:= str[i]
else if ((str[i]>='0')and(str[i]<='9')) AND (y=2) then
a:=a+str[i];
if i=length(str) then //после последнего символа
begin
Val(a, T, Code);
m := T;
end;
end;
end;
begin
writeln('Vvedite stroku vida: chislo/n*probel/+ OR -/n*probel/chislo');
readln(s);
getData(s, x, y, w);
if w='+' then
writeln('summa = ',x+y)
else
writeln('raznost = ',x-y);
readln();
end.
- Log in to post comments
- 2578 reads
vedro-compota
Sun, 09/05/2021 - 12:36
Permalink
(str[i]>='0')and(str[i]
-- постараться уйти от дублирования
_____________
матфак вгу и остальная классика =)
boris68
Mon, 09/06/2021 - 21:36
Permalink
Исправлено
var x, y: integer; s, w: string; procedure getData(str: string; var n, m: integer; var z: string); var i, y, T, Code: integer; a: string; begin y:=1; //индекс вводимого числа for i:=1 to length(s) do begin if ((str[i]>='0')and(str[i]<='9')) then //если число a:=a+str[i] else if (str[i]=' ') then //после первого пробела begin Val(a, T, Code); n:=T; a:=''; inc(y); end else if (str[i]='+') OR (str[i]='-') then z:= str[i]; if i=length(str) then //после последнего символа begin Val(a, T, Code); m := T; end; end; end; begin writeln('Vvedite stroku vida: chislo/n*probel/+ OR -/n*probel/chislo'); readln(s); getData(s, x, y, w); if w='+' then writeln('summa = ',x+y) else writeln('raznost = ',x-y); readln(); end.vedro-compota
Tue, 09/14/2021 - 22:32
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)