Программа на Паскале «Вычисление суммы цифр»
🔁 Использование циклов. Сумма положительных элементов массива. Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET
Σ Сумма элементов массива. 🔁 Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET
Σ Сумма случайных чисел. 🔁 Циклы 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 конструкции.
- Используются внутриблочные описания переменных: 6 раз
- Используется инициализация при описании: 3 раза
- Для ввода используется функция вида ReadInteger,ReadReal: 1 раз
- Используется расширенное присваивание: 1 раз
- Для вывода использована Print: 2 раза
В программе используются следующие рекомендованные конструкции PascalABC.NET:
Задание:
Введите с клавиатуры целое число. Найдите сумму цифр.
(*
Вариант для 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
Рекламный блок
Информационный блок
Сумма цифр числа (Паскаль)
Программа подсчитывает сумму цифр числа.
Пример. Подсчет суммы цифр числа
var a,x:integer;
i,s:integer;begin
writeln('введите целое число');
readln( a ); x:=a;
s:=0;
while ( x<>0 ) do
begin
s := s + (x mod 10);
x := x div 10;
end;
writeln( 'Сумма цифр числа ',a,' = ', s );
end.
2008-03-19 • Просмотров [ 107569 ]
Порядок вывода комментариев:
Thomas-Bergersen 2022-05-26 0 №42 можно перевести все число в строку и по символом суммировать
Thomas_Bergersen 2022-05-26 0 №41 Можно сделать циклом for Виктор Ткачев 2022-02-22 0 №40 помогите пожалуйста ,Найти сумму цифр в восьмеричной записи десятичного числа. 1.Запись алгоритма (блок — схема); Помогите решить задачу,я чаще чайник.
var a,b,c,d,e,s:integer; begin Помогите решить задачу.
var begin
s:=0 — сумматор обнуляется перед входом в цикл, а не то он может начать считать не с нуля, а бог знает с чего. Неизвестно же, что ранее хранилось в ячейке памяти, выделенной под s. Даны целые положительные числа. Составить программу на сортировку чисел по сумме цифр числа. Сортировку осуществить по возрастанию…Решите пжл noname , разве можно сразу и mod и div?
admin 2016-04-28-16:21 0 №29 а почему нет? что вас смущает? |
1-10 11-20 21-29 |
Сумма и произведение цифр числа
Просмотров 12к. Обновлено 29 октября 2021
- Присвоить переменной, в которой будет накапливаться сумма цифр, значение 0, а переменной для накопления произведения — значение 1 (если присвоить 0, то при умножении результат обнулится).
- Пока введенное число не уменьшится до нуля выполнять следующие действия:
- В переменную для суммы цифр добавлять последнюю цифру числа, извлеченную при нахождении остатка от деления на 10.
- Значение переменной для хранения произведения цифр умножить на последнюю цифру числа.
- Избавиться от последней цифры числа, разделив его нацело на 10.
Pascal
Сумма цифр числа паскаль
var
n, sum: word;
mult: longint;
begin
readln(n);
sum := 0;
mult := 1;
while n > 0 do begin
sum := sum + n mod 10;
mult := mult * (n mod 10);
n := n div 10;
end;
writeln('Sum: ', sum);
writeln('Mult: ', mult);
end.
462
Sum: 12
Mult: 48
Язык Си
#includemain() {
int n, s, m;
scanf("%d",&n);
s = 0;
m = 1;
while (n>0) {
s += n%10;
m *= n%10;
n = n/10;
}
printf("Сумма: %dnПроизведение: %dn", s, m);
}
245
Сумма: 11
Произведение: 40
Python
Сумма цифр числа python (питон)
n = int(input())
s = 0
m = 1
while n>0:
s += n%10
m *= n%10
n = n//10
print("Сумма:", s)
print("Произведение:", m)
567
Сумма: 18
Произведение: 210
КуМир
алг сумма цифр
нач
цел n, s, m
ввод n
s := 0
m := 1
нц пока n>0
s := s + mod(n,10)
m := m * mod(n,10)
n := div(n,10)
кц
вывод s, нс, m
кон
2932
16
108
Basic-256
input n
sum = 0
mult = 1
while n > 0
sum = sum + n%10
mult = mult * (n%10)
n = n10
endwhile
print "Сумма: " + sum
print "Произведение: " + mult
567
Сумма: 18
Произведение: 210
Макар Ивашко 0 / 0 / 0 Регистрация: 14.10.2015 Сообщений: 2 |
||||
1 |
||||
Найти сумму цифр числа14.10.2015, 21:02. Показов 20621. Ответов 4 Метки нет (Все метки)
сама задача дано 6-значное число надо узнать его сумму цифр, потом суму цифр его цифр, и так далее до тех пор пока она не станет однозначным числом
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.10.2015, 21:02 |
4 |
Супер-модератор 32569 / 21040 / 8131 Регистрация: 22.10.2011 Сообщений: 36,314 Записей в блоге: 8 |
|
14.10.2015, 21:34 |
2 |
Нормально все работает, если в 4-ой строке поменять знак с «<» на «>=»
0 |
0 / 0 / 0 Регистрация: 14.10.2015 Сообщений: 2 |
|
14.10.2015, 21:57 [ТС] |
3 |
тоже runtime error
0 |
JokeR.BY CAPITAL OF ROCK! 1281 / 708 / 982 Регистрация: 03.03.2010 Сообщений: 2,286 |
||||
15.10.2015, 01:52 |
4 |
|||
Решениевсё отлично работает.
Миниатюры
0 |
Cyborg Drone Модератор 9588 / 4908 / 3244 Регистрация: 17.08.2012 Сообщений: 15,346 |
||||||||
18.10.2015, 22:47 |
5 |
|||||||
Можно проще.
Для сдачи на так называемый «обучающий» сайт вот так сойдёт:
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
18.10.2015, 22:47 |
5 |
Задача. С клавиатуры вводится натуральное число N. Найти сумму и произведение его цифр.
Воспользуемся функцией digits из модуля School для решения данной задачи.
Функция digits получает список цифр числа.
Формат использования: digits(n:int64)
Пример:
n:=4507;
println(digits(n));
Вывод: [4,5,0,7]
Для вычисления суммы цифр воспользуемся методом sum: digits(n).sum
Для вычисления произведения цифр воспользуемся методом product: digits(n).product
Программа решения задачи на языке Паскаль:
uses school;
var n,s,p:integer;
begin
println(‘Введите натуральное число’);
readln(n);
println(‘Список цифр числа’,digits(n));
s:=digits(n).Sum;
p:=digits(n).Product;
println(‘Сумма цифр’,s);
print(‘Произведение цифр’,p);
end.
Эта программа имеет линейную структуру в отличие от программы с использованием оператора цикла while.