Лабораторная работа № 1. Итерационные методы
Теоретические сведения
Терминатор
Этим блоком обозначается начало и конец алгоритма. В контексте языка программирования, код между этими блоками может размещаться в процедуре, функции или методе класса.
Комментарий
Поясняет назначение или особенность реализации блока. Может содержать имя процедуры или функции реализация которой изображена блок-схемой.
sum = 0 # Начальное значение суммыВыполнение операции
Блок-операция содержит последовательность инструкций. В одном блоке может размещаться несколько инструкций.
a = x
b = y
a = x % y # % - остаток от деленияВвод, вывод данных
В начале блока помечается предназначен ли он для ввода или вывода данных. Подразумевается ввод данных с клавиатуры и вывод на экран компьютера.
st = input("Введите строку: ")
N = int(input("Введите число: "))
# или float() для вещественного числа
print(cif)Ветвление
Используется как непосредственно для ветвления, так и для изображения циклов с предусловием и постусловием. Отличить эти два применения можно по количеству стрелок, входящих в блок. Если в блок входит одна стрелка - показано ветвление, если две стрелки - цикл. Из блока всегда выходит минимум две стрелки, обозначающие альтернативные ветви алгоритма. Выходные стрелки обязательно подписываются, обозначая по какой ветви следует двигаться для различных условия.
Условный оператор:
if a > b:
a = a - b
else:
a = a + bЦикл с предусловием:
while N != 0:
N = N // 2;Начало и конец цикла
Блоки означают цикл с известным количеством повторений. В открывающем блоке циклу даётся имя, обозначается имя переменной цикла, начальное и конечное значение и шаг изменения переменной цикла. В закрывающем блоке записывается имя цикла.
for i in range(0, 10):
print(i)Соединитель
Вставляется на месте разрыва алгоритма. Всегда используется в паре. Обозначение внутри блока помогает отследить связь между элементами блок-схемы.
Задания для самостоятельной работы
Пример 1. Произведение чисел
Найдите произведение целых чисел от 1 до n и выведите его на экран.
Составьте код решения из предложенных строк, перетаскивая их из левой панели в правую.
Пример 2. Объём шара
Опишите функцию sphere_volume(r) вычисляющую объём шара. Для вычислений используйте следующую формулу:
\[ V=\frac{4}{3}\pi r^3 \]
Рассчитайте объём шара радиуса 8 и выведите ответ на экран.
Составьте код решения из предложенных строк, перетаскивая их из левой панели в правую.
Не все из предложенных строк кода должны быть использованы в решении задачи.
Для выполнения следующих заданий откройте среду разработки IDLE. Запишите код решения для каждой задачи и сохраните его на рабочем диске.
Задание 1. Цифры числа (sam01.py)
Выведите на экран все цифры числа N. Реализуйте алгоритм решения задачи по приведённой блок-схеме.
input(), которая возвращает введённое значение в форме строки. Это значение нужно преобразовать в подходящий числовой тип.
while) или с параметром (for)?
: в Python начинается блок инструкций - он обозначается отступом. Все инструкции, входящие в блок, должны иметь одинаковый отступ. Скорее всего, среда разработки добавит отсуп после : самостоятельно.
mod - остаток от деления, div - целочисленное деление. Самостоятельно найдите, как данные операторы записываются в Python.
print().
# прочерки в коде замените на подходящий код
N = int(___)
while ____:
cif = N __ 10
print(___)
N = _____Задание 2. Поиск делителей числа (sam02.py)
Выведите на экран все делители числа N кроме единицы и самого числа N. Реализуйте алгоритм решения задачи по приведённой блок схеме.
for.
i, понадобится функция range().
if. Какая форма ветвления будет исполльзоваться - полная или сокращённая?
# прочерки в коде замените на подходящий код
N = _____
for i in _____________:
if _______ :
print(i)Задание 3. Простые числа (sam03.py)
Напишите функцию isPrime() с помощью которой можно определить, является ли число простым или составным. Реализуйте алгоритм решения задачи по приведённой блок схеме.
Используйте следующий шаблон кода:
# функция принимает один параметр с именем num
def isPrime(num):
# тело функции согласно блок-схеме
# проверка работы функции (не редактируйте это код)
res = isPrime(54) # сохраняем результат работы функции в переменной res
print(res)
print(isPrime(17))return.
Задание 4. НОД и НОК (sam04.py)
Реализуйте алгоритм Евклида для нахождения НОД двух целых чисел. Посчитайте НОК введённых чисел. Реализуйте алгоритм решения по приведённой блок-схеме.
Задание 5 (sam05.py)
Решите задачу согласно вашему варианту.
На множестве натуральных чисел от A до B найти все избыточные числа и их количество. Число называется избыточным, если сумма всех его положительных делителей, отличных от самого этого числа, превышает это число. Например, число 48 (сумма делителей \(1 + 2 + 3 + 4 + 6 + 8 + 12 + 16 + 24 = 76\), \(76 \gt 48\)).
На множестве натуральных чисел от A до B найти все автоморфные числа и их количество. Число называется автоморфным, если квадрат этого числа оканчивается на само число. Например, число 25 (\(25^2 = 625\)).
На множестве натуральных чисел от A до B найти все пары чисел близнецов и их количество. Близнецами называются простые числа \(n\) и \(n + 2\). Например, пара чисел 11 и 13.
На множестве натуральных чисел от A до B найти все совершенные числа и их количество. Число называется совершенным, если оно совпадает с сумой всех своих положительных делителей, отличных от самого этого числа. Например, число 6 (\(6 = 1 + 2 + 3\)).
На множестве натуральных чисел от A до B найти все перестановочные простые числа и их количество. Простое число называется перестановочным, если при записи этого числа в обратном порядке получим тоже простое число. Например, 13 и 31.
На множестве натуральных чисел от A до B найти все числа Армстронга и их количество. Натуральное n-значное число называется числом Армстронга, если сумма его цифр, возведенных в степень n, равна самому числу. Например, число 153 (\(153 = 1^3 + 5^3 + 3^3\)).
На множестве натуральных чисел от A до B найти все пары дружественных чисел и их количество. Числа называются дружественными, если сумма всех положительных делителей (отличных от самого этого числа) одного числа равна сумме всех положительных делителей (отличных от самого этого числа) другого числа. Например, пара чисел 220 и 284.
На множестве натуральных чисел от A до B найти все числа палиндромы и их количество. Число называется палиндромом, если читается одинаково слева направо и справа налево. Например, число 15651.
На множестве натуральных чисел от A до B найти все суперсовершенные числа и их количество. Число называется суперсовершенным, если сумма всех делителей данного числа, увеличенная на единицу, равна удвоенному данному числу. Например, 16. (делители 1, 2, 4, 8, 16, сумма делителей равна 31, \(31 + 1 = 16 \cdot 2\)).
На множестве натуральных чисел от A до B найти все числа, для которых сумма квадратов всех его делителей есть число четное. Например, число 77 (делители 1, 7, 11, 77; \(1^2 + 7^2 + 11^2 + 77^2 = 6100\)).
На множестве натуральных чисел от A до B найти все числа, сумма квадратов цифр которых является простым числом. Подсчитайте количество таких чисел. Например, число 38 (\(3^2 + 8^2 = 73\), 73 — простое число).
На множестве натуральных чисел от A до B найти все номера «счастливых билетов» и их количество. Натуральное n-значное число с четным количеством цифр называется номером «счастливого билета», если сумма первых \(n/2\) цифр равна сумме последних \(n/2\) цифр (если количество цифр нечетно, то среднюю цифру не учитывают). Например, числа 457169 (\(4 + 5 + 7 = 1 + 6 + 9\)), 65847 (\(6 + 5 = 4 + 7\)).
На множестве натуральных чисел от A до B найти все триморфные числа и их количество. Число называется триморфным, если десятичная запись куба этого числа оканчивается цифрами самого этого числа. Например, число 49 (\(49^3 = 117649\)).
На множестве натуральных чисел от A до B найти все пары взаимно простых чисел. Два числа называются взаимно простыми, если их наибольший общий делитель равен 1. Например, 25 и 36 (НОД(25, 36) = 1).