Дан файл, в котором через пробел записаны натуральные числа. Вывести на экран суммы цифр каждого числа.
Поскольку числа разделены пробелом, то проще открыть файл как типизированный символьный. Далее считывать каждый символ и проверять его, является ли он пробелом или нет.
Если символ не является пробелом, то надо его преобразовать в число с помощью встроенной в Паскаль функции val(). После этого добавить это число-цифру к переменной sum.
Если же очередной символ - пробел, то надо вывести уже накопленную сумму цифр на экран и обнулить переменную sum.
var f: file of char; c: char; sum, n: word; begin assign(f,'nums.txt'); reset(f); sum := 0; while not eof(f) do begin read(f,c); if c ' ' then begin val(c, n); sum := sum + n; end else begin write(sum:5); sum := 0 end; end; writeln; end.
Например, если в файле nums.txt записаны такие данные:
45 320 854 21 12 149 15 167 34 29 188 21 123 86 111 640
то в результате выполнения программы будет выведено:
9 5 17 3 3 14 6 14 7 11 17 3 6 14 3 10
Чтобы сумма цифр последнего числа была выведена, надо чтобы после него стоял пробел.
Комментарии
Решение
А разве такое решение не проще?И для чего надо использовать функцию val ?