Файл: Организация функций и процедур. Использование функций и процедур. Применение рекурсивных функций (6 часов).docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 128

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа № 18.

Тема: Организация функций и процедур. Использование функций и процедур. Применение рекурсивных функций (6 часов).

Цель: развить практические навыки составления программ с использованием пользовательских функций.
Для выполнения практической работы студент должен:

знать:

  • понятие функции;

  • синтаксис объявления функции;

  • понятие рекурсии;

  • назначение формальных и фактических параметров;

уметь:

  • объявлять прототип функции;

  • задавать параметры функции;

  • вызывать функцию;

  • обращаться к функции;

  • обращаться к рекурсии.

Перед выполнением лабораторной работы №18 студент должен выписать в тетрадь синтаксис объявления функции, понятии рекурсии, прототипов функции, назначения формальных и фактических параметров в языке программирования Python.

Задание 1. Закрепление материала

Для закрепления теоретического материала по теме «Подпрограммы. Процедуры и функции» предлагается выполнить на практике следующие лабораторные работы (взять любые несколько задач):

  1. Лабораторная работа № 13. Списки.

  2. Лабораторная работа № 14. Вложенные списки.

  3. Лабораторная работа № 15. Строки.

  4. Лабораторная работа № 16. Файлы.

  5. Лабораторная работа № 17. Множества

Выполните следующие задания в классе:

Задание 2. Функции

Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1. Написать функцию табуляции и использовать ее для вывода значений функции y(x). Вычисление y(x) оформить в виде функции.



Задание 3. Функции

  1. Составить процедуру, "рисующую" на экране горизонтальную линию из 80 символов "*".

  2. Составить процедуру, "рисующую" по периметру экрана рамку из символов "*". Задачу решить двумя способами: 1) не используя процедуру, разработанную в задаче 1; 2) с использованием процедуры, разработанной в задаче 1.

  3. Составить процедуру, "рисующую" на экране горизонтальную линию из любого числа символов "*".

  4. Составить процедуру, "рисующую" на экране вертикальную линию из любого числа символов "*".

  5. Составить процедуру, "рисующую" на экране прямоугольник из символов "*". Задачу решить двумя способами: 1) не используя процедуру, разработанную в задаче 3; 2) с использованием процедуры, разработанной в задаче 3.

  6. Составить программу, в результате которой величина а меняется значением с величиной b, а величина c - с величиной d. (Определить процедуру, осуществляющую обмен значениями двух переменных величин.)

  7. Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. (Определить процедуру для расчета периметра и площади треугольника по его сторонам.)

  8. Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров и сумму их площадей. (Определить процедуру для расчета периметра и площади равнобедренной трапеции по ее основаниям и высоте.)

  9. Создайте программу вычисления суммы трехзначных чисел, в десятичной записи которых нет четных цифр, оформив функцию, определяющую наличие четных цифр в числе.

  10. Создайте программу вычисления суммы трехзначных чисел, в десятичной записи которых нет нечетных цифр, оформив функцию, определяющую наличие нечетных цифр в числе.

  11. Написать функцию glasn, которая возвращает 1, если символ, полученный функцией в качестве аргумента, является гласной буквой русского алфавита, и ноль - в противном случае.

  12. Написать функцию sogl, которая возвращает 1, если символ, полученный функцией в качестве аргумента, является согласной буквой русского алфавита, и 0 - в противном случае.


Задание 4. Рекурсия.

  1. В некоторых языках программирования (например, в Паскале) не предусмотрена операция возведения в степень. Написать рекурсивную функцию для расчета степени n вещественного числа a (n — натуральное число).

  2. Написать рекурсивную функцию: а) вычисления суммы цифр натурального числа; б) вычисления количества цифр натурального числа.

  3. Написать рекурсивную функцию нахождения цифрового корня натурального числа. Цифровой корень данного числа получается следующим образом. Если сложить все цифры этого числа, затем все цифры найденной суммы и повторять этот процесс, то в результате будет получено однозначное число (цифра), которая и называется цифровым корнем данного числа.

  4. Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения: а) n-го члена прогрессии; б) суммы n первых членов прогрессии.

  5. Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию: а) нахождения n-го члена прогрессии; б) нахождения суммы n первых членов прогрессии.

  6. Написать рекурсивную функцию для вычисления максимального элемента массива из n элементов.

  7. Написать рекурсивную функцию для вычисления индекса максимального элемента массива из n элементов.

  8. Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке.

  9. Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел и вывода ее на экран в обратном порядке (окончание последовательности - при вводе нуля).

  10. *Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную.

  11. *Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в N-ричную. Значение N в основной программе вводится с клавиатуры (2 ≤ N ≤ 16).

  12. *Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя).

  13. *Написать рекурсивную функцию, определяющую, является ли симметричной часть строки s, начиная с i-го элемента и кончая j-м.


Задание5.

Количество решенных задач

Оценка

3 задачи

3

4 задачи

4

5 задач

5



Вариант 1

Задача 1

Написать функцию, которая вычисляет объем цилиндра. Ее параметрами должны быть радиус (R) и высота (H).

Задача 2

  1. Вычислить периметр и площадь прямоугольного треугольника по длинам а и b двух катетов.

Задача 3

Найти площадь равнобедренной трапеции с основаниями а и b и углом α при большем основании а.

Задача 4

Вычислить площадь и периметр правильногоN-угольника, описанного около окружности радиуса R (рассмотреть N - целого типа, R - вещественного типа).

Задача 5*

Написать функцию, меняющую местами значения элементов массива. Параметрами функции должны быть массив и номера элементов, которые нужно поменять.



Вариант 2

Задача 1

  1. Напишите функцию, которая возвращает большее значение из введенных пользователем.

Задача 2

  1. Заданы координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3) . Найти его периметр и площадь.

Задача 3

Найти площадь треугольника, две стороны которого равны а и b, а угол между этими сторонами γ.

Задача 4

Определить, во сколько раз площадь круга радиуса R больше площади сегмента, отсеченного хордой длины А.

Задача 5*

Задан вектор с координатами (х, у, z). Найти углы наклона этого вектора к координатным осям.




Вариант 3

Задача 1

  1. Сделайте программу, функция которой сравнивает введенные числа и результат выдает в виде знаков >, < или =.

Задача 2

  1. Вычислить длину окружности и площадь круга одного и того же заданного радиуса R.

Задача 3

Написать программу, которая выводит на экран первые четыре степени числа π.

Задача 4

  1. Найти частное произведений четных и нечетных цифр четырехзначного числа.

Задача 5*

  1. Написать функцию, которая переставляет местами первые n элементов массива A с последними n элементами массива В. Параметрами функции должны быть оба массива и число n.

Вариант 4

Задача 1

  1. Напишите функцию, которая возводит число a в степень b. Причем a и b вводятся с клавиатуры.

Задача 2

  1. Найти произведение цифр заданного четырехзначного числа.

Задача 3

Найти сумму членов арифметической прогрессии, если известны ее первый член, знаменатель и число членов прогрессии.

Задача 4

Написать функцию, которая выводит на экран строку, состоящую из звездочек. Длина строки (количество звездочек) является параметром функции.

Задача 5*

  1. Написать функцию, которая переставляет местами первые n элементов массива с последними n элементами. Параметрами функции должны быть массив и число n.



Вариант 5

Задача 1

  1. Программа вычисляет процент от числа. Например, 321% от числа 3 равен 9.63.

Задача 2

  1. Даны два числа. Найти среднее арифметическое кубов чисел и среднее геометрическое модулей этих чисел.

Задача 3

  1. Найти (в радианах и градусах) все углы треугольника со сторонами а, b, с.

Задача 4

  1. Найти площадь круга, вписанного в треугольник с заданными сторонами.

Задача 5*

  1. Написать функцию, которая умножает поэлементно 2 массива. Параметрами функции должны быть оба массива и массив, в который записывается результат.




Вариант 6

Задача 1

Написать функцию, решающую квадратное уравнение ax2+bx+c=0. В качестве параметров ей должны передаваться a, b, c.

Задача 2

  1. Вычислить расстояние между двумя точками с данными координатами (x1, y1) и (x2, y2).

Задача 3

Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда.

Задача 4

  1. Окружность вписана в квадрат заданной площади. Найти площадь квадрата, вписанного в эту окружность. Во сколько раз площадь вписанного квадрата меньше площади заданного?

Задача 5*

Написать функцию, которая складывает поэлементно 2 массива. Параметрами функции должны быть оба массива и массив, в который записывается результат.



Вариант 7

Задача 1

  1. Напишите функцию, которая возвращает 1, если пользователь ввел гласную букву русского алфавита, и 0 в противном случае.

Задача 2

  1. Даны два действительных числа х и у. Вычислить их сумму, разность, произведение и частное.

Задача 3

  1. Три сопротивления R1,R2, R3соединены параллельно. Найдите сопротивление соединения.

Задача 4

Треугольник задан величинами своих углов и радиусом вписанной окружности. Найти стороны треугольника

Задача 5*

Написать функцию, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции.