За один просмотр файла, вывести числа сумма цифр которых больше А - Turbo Pascal
Формулировка задачи:
Дано файл натуральных чисел. За один просмотр файла, вывести числа сумма цифр которых больше А.
Решение задачи: «За один просмотр файла, вывести числа сумма цифр которых больше А»
textual
Листинг программы
const n = 100; function Summ(n: longint): byte; { (C) Puporev} var sm: byte; u: longint; begin sm := 0; while n > 0 do begin u := n mod 10; sm := sm + u; n := n div 10; end; Summ := sm; end; var f: file of integer; a, i: integer; begin assign(f, 'data.dat'); rewrite(f); for i := 1 to n do begin a := random(n) + 1; write(a:5); write(f, a); end; close(f); reset(f); writeln; write('Введите число А: '); readln(a); while not eof(f) do begin read(f, i); if summ(i) > a then write(i:5); end; close(f); end.
Объяснение кода листинга программы
- В первой функции
Summ
объявлены две переменные:sm
типаbyte
(байт) иu
типаlongint
(длинное целое). Функция не принимает аргументов. Внутри циклаwhile
происходит деление числаn
на 10, покаn
не станет равным нулю. Затем значениеsm
увеличивается на результат деленияu
на 10. После этого функция возвращает значениеsm
. - Во второй функции
summ
объявлены три переменные:f
типаfile of integer
(файл целых чисел),a
иi
оба типаinteger
(целое). Функция не принимает аргументов. Внутри циклаfor
генерируется случайное целое числоa
от 1 доn
(не включаяn
), затем оно записывается в файлf
и выводится на экран. После этого файл очищается и сбрасывается буфер. - В основной функции
main
объявлены две переменные:f
иa
оба типаinteger
. Функция читает файлdata.dat
, где записаноn
целых чисел, затем в циклеwhile
читается следующее число из файла, проверяется сумма его цифр с помощью функцииsumm
и если она большеa
, то число выводится на экран. После этого файл закрывается и сбрасывается буфер.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д