Дан файл натуральных чисел. Просуммировать числа этого файла, начинающиеся с указанной цифры - Pascal ABC
Формулировка задачи:
Дан файл натуральных чисел. Просуммировать числа этого файла, начинающиеся с указанной цифры.
Решение задачи: «Дан файл натуральных чисел. Просуммировать числа этого файла, начинающиеся с указанной цифры»
textual
Листинг программы
var f:text; c,a,b,s:integer; begin repeat write('Введите цифру, на которую начинаются числа c='); readln(c); until c in [1..9]; assign(f,'chisla.txt'); reset(f); s:=0; while not seekeof(f) do begin read(f,a); if a=c then s:=s+a else begin b:=a; while b>9 do b:=b div 10; if b=c then s:=s+a; end; end; close(f); write('Сумма чисел начинающихся на ',c,'=',s) end.
Объяснение кода листинга программы
- Объявляются переменные: — f — файл; — c — текущая цифра; — a — текущее число; — b — число, разделенное на 10; — s — сумма чисел.
- Пользователю предлагается ввести цифру, с которой начинаются числа (цикл repeat).
- Файл с числами открывается на чтение (assign(f,'chisla.txt'); open(f)).
- Задается начальное значение суммы чисел (s:=0).
- Пока не достигнут конец файла (while not seekeof(f)), происходит чтение числа (read(f,a)).
- Если число начинается с текущей цифры (a=c), то оно прибавляется к сумме (s:=s+a).
- Если число не начинается с текущей цифры, то оно делится на 10 (b:=a) и проверяется следующая цифра (цикл while).
- Если последняя цифра числа (b) совпадает с текущей цифрой (c), то число прибавляется к сумме (s:=s+a).
- Файл закрывается (close(f)).
- Выводится результат (write('Сумма чисел начинающихся на ',c,'=',s)).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д