Найти сумму всех из имеющихся в этом тексте чисел-целых, вещественных - Turbo Pascal
Формулировка задачи:
Дан текст, найти сумму всех из имеющихся в этом тексте чисел. Числа могут быть целыми, вещественными!
Решение для целых чисел нашел и разобрался, а с вещественными разобраться не могу
Листинг программы
- uses crt;
- var a,t:string;
- i,k,w:integer;
- sum:real;
- begin
- clrscr;
- writeln('enter text');
- readln(t);
- i:=1;
- while (i<=length(t)) do begin
- a:='';
- while t[i] in ['0'..'9'] do begin
- a:=a+t[i];
- inc(i);
- end;
- k:=0;
- if a<>'' then val(a,k,w);
- sum:=sum+k;
- inc(i);
- end;
- writeln(sum:0:2);
- readln
- end.
Решение задачи: «Найти сумму всех из имеющихся в этом тексте чисел-целых, вещественных»
textual
Листинг программы
- var
- a, t: String;
- i, w, d: Integer;
- sum, k: Real;
- begin
- Write('Enter text: '); ReadLn(t);
- i:=1;
- while i<=Length(t) do begin
- a:=''; d:=0;
- while t[i] in ['0'..'9','.'] do begin
- Inc(d,Ord(t[i]='.')); if d>1 then Break;
- a:=a+t[i]; Inc(i);
- end;
- if a<>'' then begin
- Val(a,k,w); if w=0 then sum:=sum+k;
- end;
- Inc(i);
- end;
- WriteLn(sum:0:2);
- Write('Press Enter...'); ReadLn;
- end.
Объяснение кода листинга программы
- В начале объявляются переменные: a, t (строка), i, w, d (целое число), sum (число с плавающей точкой), k (число с плавающей точкой).
- Затем идет запрос на ввод текста, который сохраняется в переменной t.
- Переменная i инициализируется значением 1.
- Запускается цикл while, который выполняется до тех пор, пока i меньше или равно длине строки t.
- Внутри цикла создаются временные переменные a и d, инициализированные пустой строкой и нулем соответственно.
- Запускается вложенный цикл while, который выполняется для каждого символа в строке t.
- Внутри этого цикла проверяется, является ли текущий символ цифрой или точкой. Если это цифра, то увеличивается значение переменной d на единицу за каждый символ. Если это точка, то проверяется, превышает ли значение переменной d единицу. Если да, то цикл прерывается с помощью команды Break.
- Если после окончания вложенного цикла переменная a не пустая, то преобразуется в число с плавающей точкой, а затем добавляется к сумме.
- После окончания внешнего цикла переменная i инкрементируется.
- Выводится значение суммы.
- Выводится сообщение для нажатия клавиши Enter.
- Запускается еще один цикл while, который выполняется до тех пор, пока пользователь не нажмет клавишу Enter.
- После окончания цикла выводится значение суммы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д