Задача 7 Урок 17
Primary tabs
На вход вашей программы подается строка вида:
<целоечисло><произвольное число пробелов> <арифм.операция> <произвольное число пробелов> <целоечисло>например:
1 + 3или
2 - 12Напишите программу, которая разбирает вычисляет результат этого приложения (сделайте поддержку операций сложения и вычитания).
var i, Code, a, b, c: integer;
s, bStr, aStr: string;
flag: string;
begin
writeln('vvedi stoky');
readln(s);
flag := '';
for i := 1 to length(s) do
begin
if((s[i] >= '0') and (s[i] <= '9') and (flag = '') ) then
aStr := aStr + s[i]
else if((s[i] >= '0') and (s[i] <= '9') and (flag <> '') ) then
bStr := bStr + s[i];
if(s[i] = '+') then
flag := 'summ';
if(s[i] = '-') then
flag := 'razn';
end;
Val(aStr, a, Code);
Val(bStr, b, Code);
if(flag = 'summ') then
c := a + b
else if(flag = 'razn') then
c := a - b;
writeln(c);
readln();
end.
- Log in to post comments
- 1234 reads
jl8qy9kd_pro
Wed, 09/08/2021 - 17:15
Permalink
Наверно более удачное решение взятое из задачи 8
var i, Code, a, c: integer; s, aStr: string; begin writeln('vvedi stoky'); readln(s); c:=0; for i := 1 to length(s) do begin if((s[i] >= '0') and (s[i] <= '9')) then aStr := aStr + s[i]; if((s[i] = '+') or (s[i] = '-') or (i = length(s))) then //(i = length(s) для последнего числа тк оно ждет знака за ним для сложения begin Val(aStr, a, Code); aStr := ''; aStr := s[i]; c:= c + a; end; end; writeln(c); readln(); end.vedro-compota
Wed, 09/08/2021 - 20:14
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)