Найти в строке запись максимального действительного числа - Pascal
Формулировка задачи:
Задана строка символов, среди которых есть хотя бы одна цифра. В качестве записи действительного числа будем рассматривать такую подстроку, которая
состоит из цифр.
Требуется написать программу, которая будет находить в заданной строке запись максимального действительного числа ( на любом языке программирования)
Формат входных данных: Входные данные ( последовательность символов) вводятся с клавиатуры
Формат выходных данных: В качестве выходных данных необходимо вывести число, являющееся максимальным действительным числом, встречающимся среди символов этой строки
Решение задачи: «Найти в строке запись максимального действительного числа»
textual
Листинг программы
- var s: string;
- a, max: extended;
- i, j, k, err: integer;
- f: boolean;
- begin
- f := false;
- writeln('Введите строку:');
- readln(s);
- for i := 1 to length(s) do
- if s[i] in ['0'..'9']
- then begin
- f := true;
- val(s[i], max, err);
- k := i;
- break;
- end;
- if f
- then begin
- for i := k to length(s) do
- for j := i to length(s) do
- begin
- val(copy(s, i, j - i + 1), a, err);
- if (err = 0) and (a > max) then max := a
- end;
- write('Максимальное найденное число: ', max);
- end
- else write('Числа не найдены');
- readln
- end.
Объяснение кода листинга программы
- Объявление переменных:
s
(тип: строка) - для хранения введенной строки.a
(тип: extended) - для хранения текущего числа из строки.max
(тип: extended) - для хранения максимального найденного числа.i
,j
,k
,err
(тип: integer) - для использования в циклах и хранения информации об ошибке.f
(тип: boolean) - для установки флага об успешном нахождении числа в строке.
- Установка значения флага:
- Устанавливаем значение переменной
f
вfalse
.
- Устанавливаем значение переменной
- Ввод строки:
- Выводим на экран текст
Введите строку:
. - Считываем введенную строку в переменную
s
.
- Выводим на экран текст
- Поиск и анализ чисел в строке:
- Проходим по каждому символу строки (от первого до последнего).
- Если текущий символ является цифрой, то:
- Устанавливаем флаг
f
вtrue
. - Преобразуем символ в число и сохраняем его в переменной
max
. - Запоминаем позицию символа в переменной
k
. - Прерываем цикл.
- Проходим по каждому символу строки (от первого до последнего).
- Поиск максимального числа:
- Если флаг
f
установлен вtrue
, то:- Проходим по каждой подстроке начиная с позиции
k
до конца строки. - Проходим по каждому символу в текущей подстроке.
- Конвертируем подстроку в число и сохраняем его в переменной
a
. - Если конвертация прошла успешно и текущее число больше, чем
max
, то обновляемmax
.
- Конвертируем подстроку в число и сохраняем его в переменной
- Выводим сообщение о максимальном найденном числе, если оно было найдено.
- Проходим по каждой подстроке начиная с позиции
- Иначе выводим сообщение
Числа не найдены
.
- Если флаг
- Ожидание ввода перед закрытием программы:
- Ожидаем ввода перед завершением программы. Здесь предполагается, что код написан на языке Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д