Задача 8 Урок 18
Primary tabs
На вход вашей программы подается строка вида:
5 + 6 -34 + 56 - 7 + 2("сколько угодно" чисел с операциями суммы и разности в любом порядке).
Вычислите результат (пробелов между символом операции и числом может и не быть)
var inputString: string;
function algebra(num1, num2: integer; char1: string): integer;
begin
if (char1 = '+') then
result := num1 + num2
else if (char1 = '-') then
result := num1 - num2;
end;
function getNumsAndChar(inputString: string): integer;
var num1, num2, loopCount, errorCode: integer;
char1: string;
toString2: string;
flag: boolean;
begin
num1 := 0;
num2 := 0;
flag := false;
toString2 := '';
char1 := '+';
for loopCount := 1 to length(inputString) do
begin
if (inputString[loopCount] >= '0') and (inputString[loopCount] <= '9') then
begin
toString2 := toString2 + inputString[loopCount];
flag := true;
end
else if flag and (inputString[loopCount] <> ' ') then
begin
flag := false;
val(toString2, num2, errorCode);
num1 := algebra (num1, num2, char1);
toString2 := '';
end;
if (inputString[loopCount] = '-') then
begin
char1 := '-';
flag := false;
end
else if (inputString[loopCount] = '+') then
begin
char1 := '+';
flag := false;
end;
end;
val(toString2, num2, errorCode);
result := algebra (num1, num2, char1);
end;
begin
writeln('Введите строку');
readln(inputString);
writeln(getNumsAndChar(inputString));
readln();
end.
КОНСОЛЬ
Введите строку 100 + 5 - 7 - 5 + 7 100
- Log in to post comments
- 1256 reads
vedro-compota
Sun, 12/12/2021 - 13:10
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)