Файл: Организация функций и процедур. Использование функций и процедур. Применение рекурсивных функций (6 часов).docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 128
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа № 18.
Тема: Организация функций и процедур. Использование функций и процедур. Применение рекурсивных функций (6 часов).
Цель: развить практические навыки составления программ с использованием пользовательских функций.
Для выполнения практической работы студент должен:
знать:
-
понятие функции; -
синтаксис объявления функции; -
понятие рекурсии; -
назначение формальных и фактических параметров;
уметь:
-
объявлять прототип функции; -
задавать параметры функции; -
вызывать функцию; -
обращаться к функции; -
обращаться к рекурсии.
Перед выполнением лабораторной работы №18 студент должен выписать в тетрадь синтаксис объявления функции, понятии рекурсии, прототипов функции, назначения формальных и фактических параметров в языке программирования Python.
Задание 1. Закрепление материала
Для закрепления теоретического материала по теме «Подпрограммы. Процедуры и функции» предлагается выполнить на практике следующие лабораторные работы (взять любые несколько задач):
-
Лабораторная работа № 13. Списки. -
Лабораторная работа № 14. Вложенные списки. -
Лабораторная работа № 15. Строки. -
Лабораторная работа № 16. Файлы. -
Лабораторная работа № 17. Множества
Выполните следующие задания в классе:
Задание 2. Функции
Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1. Написать функцию табуляции и использовать ее для вывода значений функции y(x). Вычисление y(x) оформить в виде функции.
Задание 3. Функции
-
Составить процедуру, "рисующую" на экране горизонтальную линию из 80 символов "*". -
Составить процедуру, "рисующую" по периметру экрана рамку из символов "*". Задачу решить двумя способами: 1) не используя процедуру, разработанную в задаче 1; 2) с использованием процедуры, разработанной в задаче 1. -
Составить процедуру, "рисующую" на экране горизонтальную линию из любого числа символов "*". -
Составить процедуру, "рисующую" на экране вертикальную линию из любого числа символов "*". -
Составить процедуру, "рисующую" на экране прямоугольник из символов "*". Задачу решить двумя способами: 1) не используя процедуру, разработанную в задаче 3; 2) с использованием процедуры, разработанной в задаче 3. -
Составить программу, в результате которой величина а меняется значением с величиной b, а величина c - с величиной d. (Определить процедуру, осуществляющую обмен значениями двух переменных величин.) -
Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. (Определить процедуру для расчета периметра и площади треугольника по его сторонам.) -
Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров и сумму их площадей. (Определить процедуру для расчета периметра и площади равнобедренной трапеции по ее основаниям и высоте.) -
Создайте программу вычисления суммы трехзначных чисел, в десятичной записи которых нет четных цифр, оформив функцию, определяющую наличие четных цифр в числе. -
Создайте программу вычисления суммы трехзначных чисел, в десятичной записи которых нет нечетных цифр, оформив функцию, определяющую наличие нечетных цифр в числе. -
Написать функцию glasn, которая возвращает 1, если символ, полученный функцией в качестве аргумента, является гласной буквой русского алфавита, и ноль - в противном случае. -
Написать функцию sogl, которая возвращает 1, если символ, полученный функцией в качестве аргумента, является согласной буквой русского алфавита, и 0 - в противном случае.
Задание 4. Рекурсия.
-
В некоторых языках программирования (например, в Паскале) не предусмотрена операция возведения в степень. Написать рекурсивную функцию для расчета степени n вещественного числа a (n — натуральное число). -
Написать рекурсивную функцию: а) вычисления суммы цифр натурального числа; б) вычисления количества цифр натурального числа. -
Написать рекурсивную функцию нахождения цифрового корня натурального числа. Цифровой корень данного числа получается следующим образом. Если сложить все цифры этого числа, затем все цифры найденной суммы и повторять этот процесс, то в результате будет получено однозначное число (цифра), которая и называется цифровым корнем данного числа. -
Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения: а) n-го члена прогрессии; б) суммы n первых членов прогрессии. -
Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию: а) нахождения n-го члена прогрессии; б) нахождения суммы n первых членов прогрессии. -
Написать рекурсивную функцию для вычисления максимального элемента массива из n элементов. -
Написать рекурсивную функцию для вычисления индекса максимального элемента массива из n элементов. -
Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке. -
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел и вывода ее на экран в обратном порядке (окончание последовательности - при вводе нуля). -
*Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную. -
*Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в N-ричную. Значение N в основной программе вводится с клавиатуры (2 ≤ N ≤ 16). -
*Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя). -
*Написать рекурсивную функцию, определяющую, является ли симметричной часть строки s, начиная с i-го элемента и кончая j-м.
Задание5.
Количество решенных задач | Оценка |
3 задачи | 3 |
4 задачи | 4 |
5 задач | 5 |
Вариант 1 | |
Задача 1 | Написать функцию, которая вычисляет объем цилиндра. Ее параметрами должны быть радиус (R) и высота (H). |
Задача 2 |
|
Задача 3 | Найти площадь равнобедренной трапеции с основаниями а и b и углом α при большем основании а. |
Задача 4 | Вычислить площадь и периметр правильногоN-угольника, описанного около окружности радиуса R (рассмотреть N - целого типа, R - вещественного типа). |
Задача 5* | Написать функцию, меняющую местами значения элементов массива. Параметрами функции должны быть массив и номера элементов, которые нужно поменять. |
Вариант 2 | |
Задача 1 |
|
Задача 2 |
|
Задача 3 | Найти площадь треугольника, две стороны которого равны а и b, а угол между этими сторонами γ. |
Задача 4 | Определить, во сколько раз площадь круга радиуса R больше площади сегмента, отсеченного хордой длины А. |
Задача 5* | Задан вектор с координатами (х, у, z). Найти углы наклона этого вектора к координатным осям. |
Вариант 3 | |
Задача 1 |
|
Задача 2 |
|
Задача 3 | Написать программу, которая выводит на экран первые четыре степени числа π. |
Задача 4 |
|
Задача 5* |
|
Вариант 4 | |
Задача 1 |
|
Задача 2 |
|
Задача 3 | Найти сумму членов арифметической прогрессии, если известны ее первый член, знаменатель и число членов прогрессии. |
Задача 4 | Написать функцию, которая выводит на экран строку, состоящую из звездочек. Длина строки (количество звездочек) является параметром функции. |
Задача 5* |
|
Вариант 5 | |
Задача 1 |
|
Задача 2 |
|
Задача 3 |
|
Задача 4 |
|
Задача 5* |
|
Вариант 6 | |
Задача 1 | Написать функцию, решающую квадратное уравнение ax2+bx+c=0. В качестве параметров ей должны передаваться a, b, c. |
Задача 2 |
|
Задача 3 | Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда. |
Задача 4 |
|
Задача 5* | Написать функцию, которая складывает поэлементно 2 массива. Параметрами функции должны быть оба массива и массив, в который записывается результат. |
Вариант 7 | |
Задача 1 |
|
Задача 2 |
|
Задача 3 |
|
Задача 4 | Треугольник задан величинами своих углов и радиусом вписанной окружности. Найти стороны треугольника |
Задача 5* | Написать функцию, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции. |