Считать из внешнего файла только числа - Pascal
Формулировка задачи:
Создать текстовый файл,состоящий из строки символов.
Считать из внешнего файла только числа и найти наибольшее.
Заранее спасибо.
Люди помогите!
Нужно срочно!
Прошу помощи в решении!
Решение задачи: «Считать из внешнего файла только числа»
textual
Листинг программы
uses crt; const cf=['0'..'9']; var nf,s,s1,max:string; f:text; n,i,j,k:byte; begin clrscr; write('Имя файла для чтения: '); readln(nf); nf:=nf+'.txt'; assign(f,nf); {$I-} reset(f); {$I+} if IOResult <> 0 then begin writeLn('Не могу открыть файл ',nf); writeLn('Работа программы завершена. Нажмите ENTER'); readln; exit; end; readln(f,s); writeln(s); writeln('Числа в строке:'); i:=1;max:='0'; while i<=length(s) do if (s[i] in cf)and (not(s[i-1]in cf)or(i=1)) then{если цифра, а перед ней не цифра, или она первая} begin k:=i;s1:=''; while (s[k] in cf)and(k<=length(s))do {пока цифры и не конец строки} begin s1:=s1+s[k];{составляем строку-число} k:=k+1;{идем вперед} end; write(s1,' '); if s1>max then max:=s1;{если больше всех, это макс.} i:=i+length(s1);{перепрыгиваем} end else i:=i+1;{иначе идем вперед} writeln; write('Максимальное число=',max); readln end.
Объяснение кода листинга программы
- Объявление переменных: nf, s, s1, max (строки), f (текстовый файл), n, i, j, k (байты).
- Открытие файла с помощью функции assign и проверка его открытия с помощью функции IOResult.
- Чтение строки из файла в переменную s с помощью функции readln(f,s).
- Вывод строки s.
- Установка начального значения переменной max равным '0'.
- Цикл while для обработки каждой цифры в строке s.
- Проверка условия (s[i] in cf) and (not(s[i-1] in cf) or (i=1)).
- Если условие выполняется, то начинается обработка числа, включая его чтение и добавление в переменную s1.
- Если число в переменной s1 больше максимального числа, то обновляется значение переменной max.
- После завершения цикла выводится максимальное число.
- Запрос на ввод с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д