Найти в строке запись максимального действительного числа - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д