Предмет: Информатика,
автор: den130
Вывести строку, в которой записана сумма натуральных чисел,например '21+22+3' . Вычислить это выражение.
Аноним:
Т.е. написать миникалькулятор, умеющий разбирать выражения и вычислять суммы? И какой язык, в какой версии конкретно?
Ответы
Автор ответа:
1
Простейший вариант программы, предполагающий, что строка записана абсолютно верно и содержит только числа, соединенные знаком "плюс".
const
digits=['0'..'9'];
var
s,sn:string;
i,err:integer;
n,sum:longint;
begin
Write('Введите числа, соединяя их знаком плюс: ');
Readln(s);
i:=2; sn:=s[1]; sum:=0;
while i<=Length(s) do begin
if s[i] in digits then sn:=sn+s[i]
else begin
Val(sn,n,err);
sum:=sum+n;
sn:=''
end;
Inc(i)
end;
Val(sn,n,err);
sum:=sum+n;
Writeln('Сумма равна ',sum)
end.
Тестовое решение:
Введите числа, соединяя их знаком плюс: 21+22+3
Сумма равна 46
const
digits=['0'..'9'];
var
s,sn:string;
i,err:integer;
n,sum:longint;
begin
Write('Введите числа, соединяя их знаком плюс: ');
Readln(s);
i:=2; sn:=s[1]; sum:=0;
while i<=Length(s) do begin
if s[i] in digits then sn:=sn+s[i]
else begin
Val(sn,n,err);
sum:=sum+n;
sn:=''
end;
Inc(i)
end;
Val(sn,n,err);
sum:=sum+n;
Writeln('Сумма равна ',sum)
end.
Тестовое решение:
Введите числа, соединяя их знаком плюс: 21+22+3
Сумма равна 46
Похожие вопросы
Предмет: Русский язык,
автор: Саша123еа
Предмет: Русский язык,
автор: олеся746
Предмет: Русский язык,
автор: МаринетДюпэнчэн
Предмет: Русский язык,
автор: fugas38
Предмет: Литература,
автор: KSUNIKdymait