Лабораторная работа №5: Программирование циклических алгоритмов
- Изучить синтаксис и правила выполнения операторов цикла.
- Подготовить тесты для отладки программы.
- Разработать алгоритмы, написать и отладить комментированные программы в интегрированной среде разработки программ в соответствии с условиями задач, приведенными ниже. Количество решаемых задач определяется преподавателем. Вариант - номер фамилии студента в журнале группы.
- Подготовить отчет, который должен содержать:
- Название работы
- Цель работы
- Условие задачи
- Графическую схему алгоритма
- Таблицу соответствия переменных
- Тесты
- Листинг программы (с комментариями) и результатов ее выполнения
- Выводы
ТАБУЛИРОВАНИЕ ФУНКЦИЙ
Цель работы: получение навыков использования операторов цикла с предусловием и управления форматом вывода результатов.
Задание 5.1. Табулирование неразветвляющейся функции в равноотстоящих точках
В соответствии с видом функции, приведенном в таблице 1, вычислить значения функции y=f(x,a,b) для значений аргумента x, изменяющегося в интервале от xнач до xкон с шагом ∆x, и заданных констант a и b.
Исходные данные для отладки программы (xнач, xкон, ∆x, a, b), выбрать самостоятельно из интервала значений, где заданные функции определены. Результаты (значения аргумента x и функции y) оформить в виде таблицы, строки таблицы пронумеровать. В заголовке таблицы вывести исходные данные.
5.2. Табулирование разветвляющейся функции
В соответствии с видом функции, приведенном в таблице 2 вычислить значения функции y=f(x,a,b) для значений аргумента x, изменяющегося в интервале от xнач до xкон с шагом ∆x, и заданных констант a и b .
Исходные данные для отладки программы (xнач, xкон, ∆x, a, b), выбрать самостоятельно. Результаты (значения аргумента x, функции y, номер формулы) оформить в виде таблицы, строки таблицы пронумеровать. В заголовке таблицы вывести исходные данные. Задание выполнить в 2-х вариантах: с использованием операторов цикла while и for.
Указание.
При использовании оператора цикла for цикл организовать по номеру очередного значения аргумента функции. Формула, определяющая количество значений аргумента в заданном диапазоне. Квадратные скобки означают, что из выражения выделяется целая часть.
5.3. Выполнить задания, используя перебор значений
- Определить количество трехзначных, натуральных чисел, сумма цифр которых равна n.
- Построить таблицу всех различных разбиений заданного целого числа N > 0 на сумму трех натуральных слагаемых (разбиения отличающиеся лишь порядком слагаемых, различными не считаются).
- Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
- Дано натуральное число n. Получить все такие натуральные q, что n делится на q2 и не делится на q3.
- Дано натуральное n. Указать x,y,z таких натуральных чисел, что n=x2 +y2 +z2 и x<=y<=z .
- Даны натуральные числа m,n. Получить все Для заданного натурального N определить наименьшее число S, которое можно представить в виде суммы аN + bN по крайней мере двумя различными способами (а, b — натуральные числа, представления, отличающиеся лишь порядком слагаемых, различными не считаются).
- Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр.
- Определить, можно ли представить заданное натуральное число как сумму кубов каких-нибудь трех натуральных чисел.
- Найти все пары двухзначных натуральных чисел М, N таких, что значение произведения М*N не изменится, если поменять местами цифры каждого из сомножителей (такой парой будет, например, 38 и 83).
- Найти минимальное число, которое представляется суммой четырех квадратов натуральных чисел не единственным образом.
- Найти все натуральные числа, не превосходящие заданного N, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.
- Ввести с клавиатуры натуральное число n. Определить все способы выплаты суммы n с помощью купюр достоинством 1, 5, 10, 20 и 100 долларов. Определить способ выплаты суммы n с помощью наименьшего числа купюр такого же достоинства.
- Ввести с клавиатуры целое число n. Определить все способы выплаты суммы n с помощью монет достоинством в 1, 2, 3, 5, 10, 15 , 20, 50 копеек. Как наименьшим количеством этих монет выплатить n копеек?
- Два двузначных числа, записанных подряд, образуют четырехзначное число, которое делится на их произведение. Найти эти числа.
- Заданы три натуральных числа А, В и N. Найти все натуральные числа, не превосходящие N, которые можно представить в виде суммы (произвольного числа) слагаемых, каждое ,из которых — А или В.
- Найти все такие целые a,b, что n=3a+5b для любого натурального n>7.
- Даны натуральные p,q. Разложить дробь p/q на сумму дробей вида 1/n (например: 3/7=1/3+1/11+1/231).
- Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенная в n-ю степень, равна самому числу. Получить все числа Армстронга для n=2,3,4.
- Сократить дробь a/b (a,b - натуральные числа).
- Найти все числа из диапазона от n до m, которые при возведении в квадрат дают палиндром.
- Найти все числа-палиндромы из диапазона от n до m, которые при возведении в квадрат также дают палиндром.
- Найти все натуральные числа, не превосходящие заданного N, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.
- Для натуральных А, В операцию определим так: А В = А-В+А MOD В. Найти все такие пары А, В, не превосходящие заданного N, для которых А В=В А.
5.4. Выполнить следующие задания, используя алгоритмы для нахождения делителей числа
- Дано натуральное число n. Получить все его натуральные делители.
- Даны натуральные числа n,m. Получить их общие делители (<0 и >0).
- Даны натуральные числа n,m. Получить все их общие кратные, меньшие m.n.
- Вычислить НОД натуральных чисел а,b.
- Даны натуральные числа n,m. Получить НОК(n,m). (НОК(n,m)=nm/НОД(n,m)).
- Найти наибольший общий делитель для 10 заданных натуральных чисел.
- Даны натуральные числа m,n1,n2,...nm (m>=2). Вычислить НОД(n1,n2,...nm).
- Найти натуральное число от n до k с максимальной суммой делителей.
- Найти натуральное число из диапазона от n до k, которое имеет наибольшее количество делителей.
- Найти все пары дружественных чисел от n до k. Два числа называются дружественными, если каждое из равно сумме всех делителей другого, кроме самого этого числа.
- Найти все совершенные числа, меньшие n. Число – совершенное, если оно равно сумме всех своих делителей, за исключением самого числа.
- Построить первые N натуральных чисел, делителями которых являются только числа 2, 3 и 5.
5.4. Выполнить следующие задания, используя алгоритмы для нахождения простых чисел
- Найти все простые числа, не превосходящие заданного N >0.
- Дано натуральное n. Получить все натуральные числа Дано натуральное n. Получить все простые делители этого числа.
- Даны натуральные p,q. Получить все делители числа p взаимно простые с числом q.
- Среди всех четырехзначных чисел получить все простые числа, каждое из которых обладает тем свойством, что сумма первых двух цифр равна сумме двух последних цифр.
- Дана последовательность целых чисел. Вычислить сумму тех из них, порядковые номера которых - простые числа.
- Дано натуральное число n. Получить его каноническое разложение (разложение на простые множители).
- Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1,…,2n числа-близнецы, т.е. простые числа, разность между которыми равна 2.
- Дано натуральное число n. Найти четверки меньших n простых чисел, принадлежащих одному десятку.
- Найти натуральные числа из диапазона от n до k, количество делителей у которых является произведением двух простых чисел.
- Дана последовательность целых чисел. Вычислить сумму тех из них, порядковые номера которых - простые числа.
- Натуральное число, записанное в десятичной системе счисления, называется сверхпростым, если оно остается простым при любой перестановке своих цифр. Определить все сверхпростые числа до n.
- Перечислить все пары «соседних» простых чисел, не превосходящих N, троичные представления которых получаются друг из друга записью цифр в обратном порядке (первая такая пара—это 5 и 7).
5. Выполнить следующие задания без хранения получающихся последовательностей
- Дано натуральное k. Определить k-ю цифру последовательности: 110100100010000..., в которой выписаны подряд степени 10.
- Дано натуральное k. Определить k-ю цифру последовательности: 1248163264..., в которой выписаны подряд степени 2.
- Дано натуральное k. Определить k-ю цифру последовательности: 1525125625..., в которой выписаны подряд степени 5.
- Дано натуральное k от 1 до 180. Определить, какая цифра находится в k-ой позиции последовательности: 10111213...9899, в которой выписаны подряд все двузначные числа.
- Дано натуральное k. Вывести k цифру последовательности 12345678910111213...
- Дано натуральное k. Вывести k цифру последовательности (квадраты натуральных чисел) 149162536 ...
- Дано натуральное k. Вывести k цифру последовательности (кубы натуральных чисел) 182764125 ...
- Дано натуральное k. Вывести k цифру последовательности (числа Фибоначчи) 1123581321 ...
- Найти k-е простое число в арифметической прогрессии 11,21,31,… Привести пример для k=1,10,100,1000 и т.д.
- Дано натуральное k <=2109. Вывести k цифру последовательности 011212201220200112... Последовательность строится следующим образом: сначала 0, затем повторяем: уже написанную часть приписываем справа с заменой 0 на 1, 1 на 2, 2 на 0.
Контрольные вопросы
- Что называется циклом?
- Что называется итерацией или повторением цикла?
- Какие величины называются параметрами цикла?
- Какие вычислительные процессы называются циклическими?
- Какие параметры цикла называются счетчиками цикла?
- Из каких частей состоят циклы?
- Какие циклы называют циклами с предусловием?
- Какие циклы называют циклами с постусловием?
- С помощью каких операторов программируются циклы?
- К чему приводит использование оператора goto при программировании циклов?
- Изобразите графически цикл с предусловием в общем виде?
- Изобразите графически цикл с постусловием в общем виде?
- Общий вид оператора цикла for?
- Основные правила и порядок выполнения оператора цикла for?
- Общий вид оператора цикла while?
- Основные правила и порядок выполнения оператора цикла while?
- Общий вид оператора цикла do-while?
- Как выполнятся оператора цикла do-while?
- Какие циклы называются вложенными?
- Изобразите графически в общем виде цикл с предусловием, вложенный в цикл с предусловием?
- Изобразите графически в общем виде цикл с предусловием, вложенный в цикл с постусловием?
- Изобразите графически в общем виде цикл с постусловием, вложенный в цикл с предусловием?
- Изобразите графически в общем виде цикл с постусловием, вложенный в цикл с постусловием?
- Какая числовая последовательность называется рекуррентной?
2
- Проиллюстрируем методику выбора рекуррентного соотношения и составления алгоритма вычислений по выведенному соотношению на примере.