Программа на Паскале “Вычисление суммы цифр”
🔁 Использование циклов. Сумма положительных элементов массива. Циклы 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 • Просмотров [ 107482 ]
Порядок вывода комментариев:
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 |
Сумма и произведение цифр числа
Просмотров 11.8к. Обновлено 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
Исходник программы, которая находит сумму всех цифр в числе, введённого пользователем с клавиатуры. Исходник основан на цикле WHILE. Есть пояснительные комментарии к каждой строке. Увидеть исходный код и скачать скомпилированный исходник вы можете далее.
Исходный код программы, которая находит сумму цифр числа:
Program sumcifr; //Название программы
var a, sum: integer; //Описание переменных
Begin //Начало программы
Writeln ('Введите число'); //Диалог с пользователем
Readln (a); //Считывание числа
while a<>0 do begin //Вход в цикл while, пока а не равно 0
sum:=sum+(a mod 10); //Суммируем
a:=a div 10; //Целочисленное деление на 10, отрезаем последнюю цифру
end; //Конец цикла
Writeln ('Сумма цифр: ',sum);//Вывод результата
end. //Конец программы
Скачать исходник:
sumcifr.pas
Исходник открывается программами PascalABC, PascalABC.Net, TurboPascal.
Дата: 2012-03-11 10:55:03 Просмотров: 31156
Теги: Паскаль Pascal исходник циклы WHILE
Макар Ивашко 0 / 0 / 0 Регистрация: 14.10.2015 Сообщений: 2 |
||||
1 |
||||
Найти сумму цифр числа14.10.2015, 21:02. Показов 20563. Ответов 4 Метки нет (Все метки)
сама задача дано 6-значное число надо узнать его сумму цифр, потом суму цифр его цифр, и так далее до тех пор пока она не станет однозначным числом
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.10.2015, 21:02 |
4 |
Супер-модератор 32546 / 21020 / 8127 Регистрация: 22.10.2011 Сообщений: 36,293 Записей в блоге: 7 |
|
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 Модератор 9580 / 4902 / 3242 Регистрация: 17.08.2012 Сообщений: 15,317 |
||||||||
18.10.2015, 22:47 |
5 |
|||||||
Можно проще.
Для сдачи на так называемый “обучающий” сайт вот так сойдёт:
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
18.10.2015, 22:47 |
5 |