Программа на Паскале «Вычисление суммы цифр»
Σ Сумма случайных чисел. Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
Задачи по информатике и основам программирования на языке Паскаль. В двух решениях используется оператор целочисленного деления, в двух других — используется преобразование числа к строке и цикл for, последнее решение учитывает рекомендации PascalABC.NET.
Программа «Сумма цифр трёхзначного числа»
Задание:
Введите трёхзначное число. Найдите сумму цифр. Выведите результат на экран.
Program SummaTsifr1;
Var X, Y1, Y2, Y3, Summa : Integer;
begin
writeln(‘Программа вычисления суммы цифр’);
write(‘Введите трёхзначное число X ‘);
readln(X);
Y1 := X div 100;
Y2 := (X — Y1 * 100) div 10;
Y3 := X — Y1 * 100 — Y2 * 10;
Summa := Y1 + Y2 + Y3;
writeln(‘Сумма цифр ‘, Y1:3, Y2:3, Y3:3, ‘ = ‘, Summa: 3)
end.
Замечание:
В процедуре вывода writeln используется форматированный вывод переменной. Например, Y1:3 обозначает, что для вывода значения переменной Y1 будут использоваться три позиции, т.е. в случае однозначного числа, перед ним будет добавлено два пробела, в случае двухзначного числа — добавлен один пробел. При этом если число будет содержать 4 или больше цифр, то оно будет выведено полностью.
Программа «Сумма цифр пятизначного числа»
Задание:
Введите пятизначное число. Найдите сумму цифр. Выведите результат на экран.
Program SummaTsifr2;
Var X, Y1, Y2, Y3, Y4, Y5, Summa : Integer;
begin
writeln(‘Программа вычисления суммы цифр ‘);
write(‘Введите пятизначное число X ‘);
readln(X);
Y1 := X div 10000;
Y2 := (X — Y1 * 10000) div 1000;
Y3 := (X — Y1 * 10000 — Y2 * 1000) div 100;
Y4 := (X — Y1 * 10000 — Y2 * 1000 — Y3 * 100) div 10;
Y5 := X — Y1 * 10000 — Y2 * 1000 — Y3 * 100 — Y4 * 10;
Summa := Y1 + Y2 + Y3 + Y4 + Y5;
writeln(‘Сумма цифр ‘, Summa)
end.
Замечание:
В процедуре вывода writeln используется форматированный вывод переменной. Например, Y1:3 обозначает, что для вывода значения переменной Y1 будут использоваться три позиции, т.е. в случае однозначного числа, перед ним будет добавлено два пробела, в случае двухзначного числа — добавлен один пробел. При этом если число будет содержать 4 или больше цифр, то оно будет выведено полностью.
Тема «Использование цикла for». Программа «Сумма цифр числа»
Задание:
Введите число. Найдите сумму цифр. Для решения задачи используйте цикл for и функции работы со строками. Выведите результат на экран.
Program SumNumbers1;
Var
Y : Array[1..20] of Byte; < Массив для сохранения цифр исходного числа >
Xs : String;
Xr, Summa : Real;
J, N, Err : Integer;
begin
writeln(‘Программа вычисления суммы цифр ‘);
write(‘Введите число X (не более 20 цифр)’);
readln(Xr);
Str(Xr, Xs); < Преобразовать число в строку >
N := Length(Xs); < Вычислить длину строки >
for J := 1 to N do Val(Xs[J], Y[J], Err); < Преобразовать каждый символ строки к числу и записать в массив >
Summa := 0;
for J := 1 to N do Summa := Summa + Y[J];
writeln(‘Сумма цифр ‘, Summa)
end.
Замечание:
procedure Str(i: integer; var s: string); Преобразует целое значение i к строковому представлению и записывает результат в s
procedure Val(s: string; var value: byte; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
function Length(s: string): integer; Возвращает длину строки
Тема «Использование цикла for». Вариант программы «Сумма цифр числа» без использования массива
Задание:
Введите число. Найдите сумму цифр. Для решения задачи используйте цикл for и функции работы со строками. Выведите результат на экран.
Program SumNumbers2;
Var
Y : Byte;
Xs : String;
Xr, Summa : Real;
J, N, Err : Integer;
begin
writeln(‘Программа вычисления суммы цифр ‘);
write(‘Введите число X ‘);
readln(Xr);
Str(Xr, Xs); < Преобразовать число в строку >
N := Length(Xs); < Вычислить длину строки >
Summa := 0;
for J := 1 to N do begin
Val(Xs[J], Y, Err); < Преобразовать каждый символ строки к числу >
Summa := Summa + Y;
end;
writeln(‘Сумма цифр ‘, Summa)
end.
Программа вычисления суммы цифр. Вариант решения на PascalABC.NET
- В программе отсутствуют устаревшие в PascalABC.NET конструкции. В программе используются следующие рекомендованные конструкции PascalABC.NET:
- Используются внутриблочные описания переменных: 6 раз
- Используется инициализация при описании: 3 раза
- Для ввода используется функция вида ReadInteger,ReadReal: 1 раз
- Используется расширенное присваивание: 1 раз
- Для вывода использована Print: 2 раза
Задание:
Введите с клавиатуры целое число. Найдите сумму цифр.
(*
Вариант для PascalABC.NET
*)
begin
var Y, Err : Integer;
Var Xs : String;
Println(‘Программа вычисления суммы цифр’);
var Xr := ReadInteger(‘Введите целое число X ‘);
Str(Xr, Xs); < Преобразовать число в строку >
var N := Length(Xs); < Вычислить длину строки >
var Summa : Integer := 0;
for var J := 1 to N do begin
Val(Xs[J], Y, Err); < Преобразовать каждый символ строки к числу >
Summa += Y;
end;
Println(‘Сумма цифр ‘, Summa)
end.
Использование циклов. Сумма положительных элементов массива. Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET
Σ Сумма элементов массива. Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET
Σ Сумма случайных чисел. Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
Сумма элементов массива. Циклы for, while, repeat
Σ Сумма случайных чисел. Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
Обмен двух чисел в массиве. Тема «Циклы и массивы». Два варианта решения задачи.
Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).
Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET
Цикл for. Найти сумму элементов целочисленного массива
Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Var
i, Summa : Integer;
A : array [1..10] of Integer;
begin
write(‘Введите 10 целых чисел ‘);
for i := 1 to 10 do readln(A[i]);
Summa := 0;
for i := 1 to 10 do Summa := Summa + A[i];
writeln(‘Сумма = ‘, Summa);
end.
Цикл for. Найти сумму 10 элементов массива
Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
begin
// Вариант для PascalABC.NET — «здоровье кода» составляет 101%.
var A : array [1..10] of Integer; // Замечание: Используется статический массив, вместо рекомендованного динамического
write(‘Введите 10 целых чисел ‘);
for var i := 1 to 10 do readln(A[i]); // Замечание: Для ввода использована не рекомендованная процедура Readln
var Summa : Integer := 0;
for var i := 1 to 10 do Summa := Summa + A[i];
Println(‘Сумма = ‘, Summa);
end.
Цикл while. Найти сумму 10 элементов массива
Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Для решения задачи использовать цикл while.
Program Task_01;
Var
i, Summa : Integer;
A : array [1..10] of Integer;
begin
write(‘Введите 10 целых чисел ‘);
i := 1;
while i readln(A[i]);
i := i + 1;
end;
Summa := 0;
i := 1;
while i Summa := Summa + A[i];
i := i + 1;
end;
writeln(‘Сумма = ‘, Summa);
end.
Цикл while. Найти сумму элементов массива
Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Для решения задачи использовать один цикл while.
(*
Вариант для PascalABC.NET — «здоровье кода» составляет 125%.
*)
begin
var i : Integer = 1;
var Summa : Integer = 0;
var A : array [1..10] of Integer;
writeln(‘Введите 10 целых чисел ‘);
while i A[i] := ReadInteger;
Summa += A[i];
i += 1;
end;
Println(‘Сумма = ‘, Summa);
end.
Цикл repeat. Найти сумму элементов целочисленного массива
Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Использовать синтаксис для PascalABC.NET
// Вариант для PascalABC.NET — «здоровье кода» составляет 129%.
begin
var i : Integer = 1;
var Summa : Integer = 0;
var A : array [1..10] of Integer;
Println(‘Введите 10 целых чисел ‘);
repeat
A[i] := ReadInteger;
Summa += A[i];
i += 1;
until i < 10;
Println(‘Сумма = ‘, Summa);
end.
Использование циклов. Сумма положительных элементов массива. Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET
Σ Сумма случайных чисел. Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
Обмен двух чисел в массиве. Тема «Циклы и массивы». Два варианта решения задачи.
Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).
Как посчитать сумму чисел в цикле for?
Условие задачи: Напиши функцию calculateTotal(number), которая принимает целое число (параметр number) и возвращает сумму всех целых чисел от единицы и до этого числа. Например, если number равно 3, то сумма это 1 + 2 + 3, то есть 6. мой вариант не считает сумму, а просто перебирает от заданного числа:
function calculateTotal(number) < for (let i = 0; i > console.log(calculateTotal(3));
подскажите, пожалуйста, что нужно поправить чтобы считало правильно?
Отслеживать
задан 20 фев 2021 в 20:40
1 1 1 золотой знак 2 2 серебряных знака 2 2 бронзовых знака
так может стоит завести переменную, в которой считать сумму и на каждой итерации прибавлять к ней число вместо вывода? Или вы как-то иначе представляете себе подсчет суммы?
20 фев 2021 в 20:48
В задаче, кстати, не заставляют использовать цикл. Это арифметическая прогрессия, для которой есть решение в одну строчку 😉
Подсчитать сумму всех цифр в строке


Подсчитать количество цифр в заданной строке, вычислить их сумму и вставить после каждой цифры ее дополнение до 10
Строки Задание Составьте алгоритм и программу обработки введенной с клавиатуры строки в.

В каждом 3-ем столбце заменить элементы на сумму цифр в элементе и подсчитать сумму элементов в каждой в 3-ей строке
Дана матрица M x N. В каждом 3-ем столбце заменить элементы на сумму цифр в элементе и подсчитать.

Найти сумму всех цифр в строке, получить перевернутую строку и к первой строке прибавить вторую строку
с помощью клавиатуры вводится строка символов,состоящая из цифр а) найти сумму всех цифр числа б).
Подсчитать сумму групп цифр в строке
Подсчитать сумму групп чисел в строке. Сокупность символов "135" считать как сто тридцать пять. Не.
76 / 76 / 51
Регистрация: 28.02.2010
Сообщений: 159

Сообщение было отмечено Памирыч как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
program sd; uses crt; var s:string; i,k,code,sum:integer; Begin sum:=0; writeln('s: ');readln(s); for i:=1 to length(s) do begin val(s[i],k,code); if code=0 then sum:=sum+k; end; if sum=0 then writeln('В строке нет цифр') else writeln('Summa= ',sum); End.