Кажется я понял что от вас хотят.
Вот первый вариант, в котором мы сначала записываем последовательность, а потом считаем сумму:
# Просим ввести количество чисел в последовательности
n = int(input('Введите количество чисел в последовательности: '))
# Создаем list, в котором будут храниться инпуты
numbers = []
# Заполняем список числами, которые вводит пользователь
for i in range(0, n):
input_value = int(input(f'Введите число #{i}: '))
numbers.append(input_value)
# Считаем сумму
sum = 0
for i in numbers:
sum += i
print('Сумма всех чисел последовательности:', sum)
Есть ещё второй вариант, тут мы сразу же считаем сумму, без сохранения введенных чисел:
# Просим ввести количество чисел в последовательности
n = int(input('Введите количество чисел в последовательности: '))
# Сразу же считаем сумму
sum = 0
for i in range(0, n):
# Запрашиваем число
input_value = int(input(f'Введите число #{i}: '))
# Сразу же прибавляем его к сумме
sum += input_value
print('Сумма всех чисел последовательности:', sum)
Оба варианта работают, выбор за вами. Чтобы полностью соответствовать примерам на вашем курсе – можете убрать сообщения, которые внутри input()
.
Если ещё остались вопросы – пишите.
Описание задачи
Данная программа должна вывести сумму всех цифр, из которых состоит введенное число.
Решение задачи
- Возьмем введенное число и запишем его в переменную.
- При помощи цикла
while
извлечем каждую цифру из данного числа и запишем их сумму в отдельную переменную. - Выведем полученный результат на экран.
- Конец.
Исходный код
Ниже дан исходный код для вывода суммы всех цифр, из которых состоит данное число. Результаты работы программы также даны ниже.
n = int(input("Введите число:")) tot = 0 while(n > 0): dig = n % 10 tot = tot + dig n = n//10 print("Сумма цифр равна:", tot)
Объяснение работы программы
- Пользователь вводит число, которое записывается в переменную.
- Используем цикл
while
. Цифры извлекаются из числа при помощи оператора деления по модулю, начиная с конца. - Далее записываем эту цифру в отдельную переменную и потом, в процессе работы цикла, прибавляем к ней остальные цифры числа.
- После суммирования цифра «уничтожается» при помощи оператора целочисленного деления.
- Когда число становится равным 0 (все цифры были обработаны и «уничтожены»), цикл завершает свою работу.
- После этого полученная сумма выводится на экран.
Результаты работы программы
Пример 1: Введите число:1892 Сумма цифр равна: 20 Пример 2: Введите число:157 Сумма цифр равна: 13
Программа на Паскале “Вычисление суммы цифр”
🔁 Использование циклов. Сумма положительных элементов массива. Циклы 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
Рекламный блок
Информационный блок
Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают
30 000.
Программа должна вывести одно число – СУММУ чисел.
Решение:
В начале СУММА равна нулю. Перебираем в ЦИКЛЕ числа. Суммируем: То что было в сумме плюс очередной элемент.
Var a, i, sum, n: integer; begin read(n); sum:=0; for i:=1 to n do begin read(a); sum:= sum + a; end; Writeln(sum); end.
Нахождение СУММЫ чисел КРАТНЫХ 4.
Задача 2
Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, КРАТНЫХ 4. В последовательности всегда имеется число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают
30 000.
Программа должна вывести одно число – СУММУ чисел, кратных 4.
Решение:
В начале СУММА равна нулю. Перебираем в ЦИКЛЕ числа. Если нам попался элемент кратный 4, то мы суммируем: то что было в сумме плюс наш элемент.
var a, i, sum, n: integer; begin read(n); sum:=0; for i:=1 to n do begin read(a); if a mod 4 = 0 then sum:= sum + a; end; Writeln(sum); end.
Нахождение СУММЫ чисел, ОКАНЧИВАЮЩИХСЯ на 2.
Задача 9
Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2. В последовательности всегда имеется число, ОКАНЧИВАЮЩЕЕСЯ на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают
30 000.
Программа должна вывести одно число – СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2.
Решение:
Вначале СУММА равна нулю. Перебираем в ЦИКЛЕ числа. Если нам попался элемент, который оканчивается на 2 то мы суммируем: то что было в сумме плюс наш элемент.
var a, i, sum, n: integer; begin read(n); sum:=0; for i:=1 to n do begin read(a); if a mod 10 = 2 then sum:= sum + a; end; Writeln(sum); end.
Нахождение СУММЫ чётных чисел.
Задача 3
Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чётных чисел. В последовательности всегда имеется чётное число. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают
30 000.
Программа должна вывести одно число – СУММУ чётных чисел.
Решение:
Вначале СУММА равна нулю. Перебираем в ЦИКЛЕ числа. Если нам попался чётный элемент (остаток от деления на 2 равен нулю), то мы суммируем: то что было в сумме плюс наш элемент.
var a, i, sum, n: integer; begin read(n); sum:=0; for i:=1 to n do begin read(a); if a mod 2 = 0 then sum:= sum + a; end; Writeln(sum); end.
ЕГЭ по информатике 2021 – Задание 10 (Текстовый редактор)
В этом уроке по подготовке к ЕГЭ по информатике 2021 разберём задание …
Категория: Информатика Подкатегория: ЕГЭ
Дата: 01-10-2020 в 19:34:08
3
Чуть задержался, пытаясь сформулировать недостатки моей формулы и преимущества Вашей.
Пояснения по поводу “моей” формулы:
При чётном n, например n=6, s=1+2+3+4+5+6=21
Для вычисления группируем значения попарно: первый с последним, второй с предпоследним и т.д.,
При этом сумма каждой пары будет равна n+1 (в примере это 1+6=7, 2+5=7, 3+4=7)
Всего таких пар будет n div 2 (при n=6, пар будет 3).
Итак, умножив (n+1) на (n div 2), получаем первую часть формулы: (n+1)*(n div 2), в примере это 7*3=21.
Если таким же способом вычислять значение при нечётном n, то получается очевидная, но не оптимальная формула.
При нечётном n, например n=7, s=1+2+3+4+5+6+7=28
При этом сумма каждой пары также будет равна n+1 (в примере это 1+7=8, 2+6=8, 3+5=8)
Всего таких пар будет n div 2 (при n=7, пар будет 3).
Также появляется непарное “среднее” слагаемое, которое равно (n+1) div 2 (в примере это (1+7) div 2=8 div 2=4), которое добавляется в сумму только при нечётном n (это учитывается с помощью умножения на n mod 2).
Умножив (n+1)*(n div 2) (в примере (7+1)*(7 div 2)=8*3=24) и прибавив ((n+1)div 2)*(n mod 2) (в примере ((7+1) div 2)*(7 mod 2)=(8 div 2)*1=4), получаем 24+4=28.
Для получения формулы (N+1)*N div 2 необходимо избавиться от среднего слагаемого. Для этого изменим способ группировки при нечётном n. Последнее слагаемое будем складывать с 0, первое с предпоследним, второе с “предпердпоследним“ и т.д. При этом все элементы будут парными, а их сумма будет равна n (в примере это 0+7=7, 1+6=7, 2+5=7, 3+4=7), а всего таких пар будет (n+1) div 2 (в примере это (1+7) div 2=8 div 2=4).
Умножив n на ((n+1)div 2), получаем формулу: n*((n+1) div 2) (в примере это 7*4=28).
Если представить это с помощью условного оператора, то получится:
Pascal | ||
|
При этом видно что в обоих случаях используется одна и та же формула.