Найти в строке запись максимального действительного числа - 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.

Объяснение кода листинга программы

  1. Объявление переменных:
    • s (тип: строка) - для хранения введенной строки.
    • a (тип: extended) - для хранения текущего числа из строки.
    • max (тип: extended) - для хранения максимального найденного числа.
    • i, j, k, err (тип: integer) - для использования в циклах и хранения информации об ошибке.
    • f (тип: boolean) - для установки флага об успешном нахождении числа в строке.
  2. Установка значения флага:
    • Устанавливаем значение переменной f в false.
  3. Ввод строки:
    • Выводим на экран текст Введите строку:.
    • Считываем введенную строку в переменную s.
  4. Поиск и анализ чисел в строке:
    • Проходим по каждому символу строки (от первого до последнего).
      • Если текущий символ является цифрой, то:
      • Устанавливаем флаг f в true.
      • Преобразуем символ в число и сохраняем его в переменной max.
      • Запоминаем позицию символа в переменной k.
      • Прерываем цикл.
  5. Поиск максимального числа:
    • Если флаг f установлен в true, то:
      • Проходим по каждой подстроке начиная с позиции k до конца строки.
      • Проходим по каждому символу в текущей подстроке.
        • Конвертируем подстроку в число и сохраняем его в переменной a.
        • Если конвертация прошла успешно и текущее число больше, чем max, то обновляем max.
      • Выводим сообщение о максимальном найденном числе, если оно было найдено.
    • Иначе выводим сообщение Числа не найдены.
  6. Ожидание ввода перед закрытием программы:
    • Ожидаем ввода перед завершением программы. Здесь предполагается, что код написан на языке Pascal.

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы