Урок 17. Задача №7. Решение.
Primary tabs
На вход вашей программы подается строка вида:
<целое число><произвольное число пробелов> <арифм.операция> <произвольное число пробелов> <целое число>Например:
1 + 3или
2 - 12Напишите программу, которая разбирает вычисляет результат этого приложения (сделайте поддержку операций сложения и вычитания).
type IntMyArr = array[1..2] of integer; function CheckTmp(t: string; NewArr: IntMyArr): IntMyArr; var p: integer; begin if(t <> '') then begin val(t, p); NewArr[2] := p; end; result := NewArr; end; function parsingStr(s: string; var c: string; arrOther: IntMyArr): IntMyArr; var tmp: string; i, k, point: integer; switch: boolean; begin for i := 1 to length(s) do begin switch := false; if(s[i] >= '0') and (s[i] <= '9') then tmp += s[i] else if(s[i] = '+') or (s[i] = '-') then begin c := s[i]; switch := true; end; if(tmp <> '') and (switch = true) then begin val(tmp, point); k += 1; arrOther[k] := point; tmp := ''; end; end; arrOther := CheckTmp(tmp, arrOther); result := arrOther; end; var MathStr, sign: string; j: integer; arrNumb: IntMyArr; begin writeln('Please, enter math operation for count: '); readln(MathStr); arrNumb := parsingStr(MathStr, sign, arrNumb); if(sign = '+') then writeln(arrNumb[1] + arrNumb[2]) else writeln(arrNumb[1] - arrNumb[2]); readln(); // Удержание консоль end.// Завершение программы
- Log in to post comments
- 1780 reads