Вы находитесь на странице: 1из 11

Лабораторное занятие №8

Подпрограммы. Организация подпрограмм.

1. Цель и порядок работы


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

Порядок выполнения работы:


• ознакомиться с описанием лабораторного занятия;
• получить задание у преподавателя, согласно своему варианту;
• написать программу и отладить ее на ЭВМ.

2. Теоретический материал
Язык Источники для изучения:
програм-
мирования
С++ https://metanit.com/cpp/tutorial/3.1.php
https://code-live.ru/post/cpp-functions/
https://ravesli.com/urok-12-funktsii-i-return/
Python https://metanit.com/python/tutorial/2.8.php
https://pythonworld.ru/tipy-dannyx-v-python/vse-o-funkciyax-i-ix-
argumentax.html
http://pythonicway.com/python-functions
https://tproger.ru/translations/python-built-ins-worth-learning/

1
3. Контрольные вопросы

3.1 Язык программирования С++


1. Как выглядит определение функции?
2. Как выглядит объявление функции?
3. Что такое формальный параметр?
4. Что такое фактический параметр?
5. Как осуществляется вызов функции?
6. Как осуществляется передача параметров в функцию?
7. Что такое inline-функция?
8. Как описать функцию, не возвращающую значения?
9. В чем разница передачи параметров по значению от передачи
параметров по адресу?
10. Как передать параметр по ссылке?
11. Как задать значения параметра по умолчанию?
12. Как передать массив в функцию?
13. Как передать многомерный массив в функцию?

3.1 Язык программирования Python


14. Определение функции.
15. Перечислите основные встроенные функции и приведите примеры
их использования.
16. Какие виды аргументов существуют у функции?
17. Как осуществляется вызов функции?
18. Что такое анонимные функция?

2
4 Задание

1. Изучите теоретический материал.


2. Ответьте на теоретические вопросы.
3. Напишите программы в соответствии с вариантом задания из пункта 5.
4. Проверьте работоспособность программ.
5. Отладьте и протестируйте программы.
6. Сделанную работу в аудитории сдайте преподавателю. При
выставлении баллов за работу учитывается: правильность написания
кода, полнота и правильность ответов учащегося на вопросы
преподавателя.
7. Сделайте домашнюю работу и оформите отчет. Правила оформления и
пример отчета приведены в приложении.
8. Задания для соответствующего варианта определяется следующим
образом:

Вариант Номера заданий для работы в Номера заданий для работы дома
аудитории
1. 1 21, 41
2. 2 22, 42
3. 3 23, 43
4. 4 24, 44
5. 5 25, 45
6. 6 26, 46
7. 7 27, 47
8. 8 28, 48
9. 9 29, 49
10. 10 30, 50
11. 11 31, 41
12. 12 32, 42
13. 13 33, 43
14. 14 34, 44
15. 15 35, 45
16. 16 36, 46
17. 17 37, 47
18. 18 38, 48
19. 19 39, 49
20. 20 40, 50

3
5 Задания к лабораторной работе:
Указания к заданиям 1-20:
• реализуйте задание на языке программирования Python;
• реализуйте функции, выполняющие действия в соответствии с
заданием;
• все функции должны иметь независимый интерфейс (нельзя
использовать переменные глобального контекста в функции);
• напишите программу осуществляющую вызов функции;
• в программе обязательно должны быть комментарии к тексту
программы, поясняющие ее работу.

1. Вычислить с использованием функций Z=НОД(a, b)+НОК(a, b), где a и


b – целые положительные числа, НОД – наибольший общий делитель,
НОК – наименьшее общее кратное.
2. Реализовать функцию для нахождения расстояния между точками. Во
множестве точек на плоскости найти пару точек с максимальным
расстоянием между ними.
3. Реализовать функцию для нахождения наибольшей из высот
треугольника. Известны две стороны треугольника и угол между ними.
4. Даны действительные a, b и c, с помощью функций вычислить
y=среднее(a, b, c)/min(a, b, c).
5. Даны действительные числа s и t. Вычислить выражение:
g(1.2, s) + g(t, s) - g(2s-1,st),
a2 − b2 a+b
где g (a, b) = + ( a + b) ⋅
2⋅a ⋅b − a − b 2
6. Даны действительные числа x и y. Вычислить сумму значений
функций:
Z = f (sin( x) + cos( y ), x + y,2) + f ( x ⋅ y, sin( x), cos( y )) + f (sin 2 ( x), x − y 2 , y − x 2 )
где
 v ⋅ u ⋅ t , если u > 1

f (u , v, t ) = u + t + v, если 0 ≤ u ≤ 1
 v − t − u , если 0 < u

7. Даны действительные числа s и t. Вычислить выражение:
g(1.2, s) + g(t, s) - g(2s-1, st), где
a2 + b2 − 4 ⋅ a ⋅ b
g ( a, b) = 2
a + 5 ⋅ a ⋅ b + 3⋅ b2 + 4 ⋅ a − b
8. Реализовать функцию для вычисления суммы квадратов простых
чисел, лежащих в интервале [M, N]. Для определения простых чисел
реализовать отдельную функцию.
9. Даны отрезки а, в, с и d. Для каждой тройки этих отрезков, из которых
можно построить треугольник, напечатать площадь данного

4
треугольника. (Определить функцию, вычисляющую площадь
треугольника, если она существует)
10. Даны действительные числа x и y. Вычислить сумму значений
функций:
Z = f (sin( x) + cos( y ), x + y ) + f (sin( x), cos( y )) + f (sin 2 ( x) − 2, a + b 2 )
Где
 u + t , если u > 1

f (u , t ) = u − t , если 0 ≤ u ≤ 1
 t − u , если 0 < u

11. Даны целые, положительные a, b и c, с помощью функции найти их
среднее арифметическое, среднегеометрическое.
12. Даны действительные a, b и c, с помощью функций вычислить
y=max(a, b, c)+min(a, b, c).
13. Вычислить с использованием функций Z=НОД(a+b, a*b)+НОК(a, b),
где a и b – целые положительные числа, НОД – наибольший общий
делитель, НОК – наименьшее общее кратное.
14. Даны действительные a и b.Вычислить сумму значений функции
Z=F(a, b)+F(a2, b2)+F(a2-1, b)+F(a-b, b), где:
u 2 + t 2 , если u > 0, t > 0

 u +t ,
2
если u ≤ 0, t ≤ 0
F (u , t ) = 
 u − t, если u > 0, t ≤ 0
 u + t , если u ≤ 0, t > 0
15. Даны действительные числа s и t. Вычислить выражение:
f(t, -2s, 1.17) + f(2.2, t, s-t), где
2 ⋅ a − b − sin(c) + a ⋅ b
f (a, b, c) =
1+ c + a
16. Даны действительные a, b, с и d, с помощью функций вычислить
y=max(a, b, c, d)*min(a, b, c, d).
40 40

∑ sin( x ) + ∑ cos( y )
i i

Вычислить с использованием функции Z =


i =1 i =1
17. 40 .
∑ | xi |
i =1
Каждую сумму вычислять с использованием отдельной функции.
18. Задано множество точек на плоскости. Во множестве точек на
плоскости найти пару точек с минимальным расстоянием между ними.
19. Вычислить с использованием функции Z=НОД(a, b)+НОД(a*b, a+b),
где a и b – целые положительные числа, НОД – наибольший общий
делитель.

5
20. Вычислить сумму значений функции:
Z = f ( | x | , y ) + f (a, b) + f ( | x | + 1,− y ) + f ((| x | − | y |), x),
 u + 2t , если u ≥ 0

где f (u , t ) =  u + t , если u ≤ −1
u − 2t + 1, если − 1 < u < 0
2

Указания к заданиям 21-50:


• реализуйте задание на языке программирования С++;
• массивы реализовать стандартным образом без использования
дополнительных модулей и библиотек;
• заполнение массивов осуществлять случайным образом;
• определить функции выполняющие действия в соответствии с
заданием (каждое подзадание – отдельная функция);
• инициализацию массивов и вывод массивов на экран реализовать в
отдельных функциях;
• все функции должны иметь независимый интерфейс (нельзя
использовать переменные глобального контекста в функции);
• в программе обязательно должны быть комментарии к тексту
программы, поясняющие ее работу.

21. Дан одномерный массив, состоящий из N целочисленных элементов.


21.1. Найти максимальный положительный элемент.
21.2. Вычислить сумму элементов массива кратных 7.
22. Дан одномерный массив, состоящий из N вещественных элементов.
22.1. Найти максимальный элемент, среди элементов массива
имеющие нечетные индексы.
22.2. Вычислить среднеарифметическое отрицательных элементов
массива.
23. Дан одномерный массив, состоящий из N вещественных элементов.
23.1. Найти минимальный элемент, среди элементов массива у
которых индексы кратны 3.
23.2. Вычислить произведение не нулевых элементов массива.
24. Дан одномерный массив, состоящий из N целочисленных элементов.
24.1. Найти минимальный отрицательный элемент.
24.2. Вычислить сумму положительных элементов массива, кратных
3.
25. Дан одномерный массив, состоящий из N целочисленных элементов.
25.1. Найти максимальный положительный элемент.
25.2. Вычислить произведение элементов массива кратных 5.
26. Дан одномерный массив, состоящий из N целочисленных элементов.
26.1. Найти максимальный элемент, среди элементов массива
кратных 6.
26.2. Вычислить сумму четных элементов массива.
6
27. Дан одномерный массив, состоящий из N вещественных элементов.
27.1. Найти минимальный отрицательный элемент.
27.2. Вычислить среднеарифметическое положительных элементов
массива.
28. Дан одномерный массив, состоящий из N целочисленных элементов.
28.1. Найти максимальный элемент.
28.2. Вычислить среднеарифметическое элементов массива кратных
4.
29. Дан одномерный массив, состоящий из N целочисленных элементов.
29.1. Найти минимальный элемент, среди элементов массива
кратных 8.
29.2. Вычислить сумму отрицательных элементов массива.
30. Дан одномерный массив, состоящий из N целочисленных элементов.
30.1. Найти максимальный отрицательный элемент.
30.2. Вычислить произведение элементов массива кратных 4.
31. Дан одномерный массив, состоящий из N целочисленных элементов.
31.1. Найти максимальный элемент, среди элементов кратных 5.
31.2. Вычислить среднеарифметическое нечетных элементов
массива.
32. Дан одномерный массив, состоящий из N целочисленных элементов.
32.1. Найти минимальный положительный элемент.
32.2. Вычислить сумму четных элементов массива.
33. Дан одномерный массив, состоящий из N целочисленных элементов.
33.1. Найти минимальный отрицательный элемент.
33.2. Вычислить произведение ненулевых элементов массива,
кратных 3.
34. Дан одномерный массив, состоящий из N целочисленных элементов.
34.1. Найти максимальный отрицательный элемент.
34.2. Вычислить среднеарифметическое четных элементов массива.
35. Дан одномерный массив, состоящий из N вещественных элементов.
35.1. Найти максимальный элемент, среди элементов массива с
четными индексами.
35.2. Вычислить среднеарифметическое положительных элементов
массива.
36. Дан одномерный массив, состоящий из N вещественных элементов.
36.1. Найти минимальный положительный элемент.
36.2. Вычислить произведение не нулевых элементов массива.
37. Дан одномерный массив, состоящий из N целочисленных элементов.
37.1. Найти максимальный отрицательный элемент.
37.2. Вычислить сумму элементов массива кратных 3.
38. Дан одномерный массив, состоящий из N целочисленных элементов.
38.1. Найти минимальный элемент среди четных чисел.
38.2. Вычислить сумму положительных нечетных элементов
массива.

7
39. Дан одномерный массив, состоящий из N целочисленных элементов.
39.1. Найти минимальный положительный элемент.
39.2. Вычислить произведение нечетных элементов массива.
40. Дан одномерный массив, состоящий из N вещественных элементов.
40.1. Найти максимальный положительный элемент.
40.2. Вычислить среднеарифметическое отрицательных элементов
массива.
41. Вычислить с использованием функции наименьшие элементы в
строке и сумму номеров строк и столбцов, в которых они расположены,
для матрицы A(10,15). Результаты сформировать в одномерных
массивах M(10) и S(10).
42. Дан массив а(8,5). С использованием функции найти
среднеквадратичное значение положительных элементов каждой
строки массива и сформировать из них одномерный массив b(8).
43. Вычислить с использованием функции max элементы каждой строки
и столбца матрицы A(10,20). Результаты сформировать в одномерных
массивах C(10) и D(20).
44. Даны массивы А(3,4), В(2,5). Найти Z = (Ma+Mb)/(da+db), где Ma
,Mb - среднеарифметические значения массивов A, B. da, db -
максимальные отклонения от среднеарифметических значений.
45. Дана матрица A(5,5). Сформировать одномерный массив C(5) из
среднегеометрических значений положительных элементов каждого
столбца матрицы.
xmax − ymin
Z=
46. Вычислить
xmin − ymax с использованием функции, где x , x ,
max min
ymax, ymin – максимальные и минимальные элементы соответственно
массива x(5,2) и массива y(3,4).
47. Даны матрицы А(4,5), В(5,6). Вычислить
N max{x }
Z = pa + pb , где p = ∑ ij

i =1 j = 1, N сумма максимальных элементов


каждой строки матрицы.
48. Вычислить с использованием функции min элементы каждой строки
и столбца матрицы A(10,15). Результаты сформировать в одномерных
массивах C(10) и D(15).
49. Преобразовать массив x(3,3) в y, оставив в нем только
положительные элементы. Вместо остальных элементов записать 0.
𝑥𝑥
Вычислить 𝐷𝐷 = 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑥𝑥𝑚𝑚𝑚𝑚𝑚𝑚 , где xmax, xmin, ymax – максимальные и
𝑦𝑦𝑚𝑚𝑚𝑚𝑚𝑚
минимальные элементы соответственно массива x и массива y.
50. Определить количество положительных, отрицательных и нулевых
элементов матрицы A(10,15). (Создать три функции для нахождения
этих значений).

8
Приложение 1
Структура отчета
Отчет должен содержать:
1. Титульный лист.
2. Цель выполнения работы.
3. Практическую часть, содержащую по каждому заданию: постановку
задачи, листинг программы с комментариями, результаты выполнения
программы (скриншот экрана).
4. Список использованных источников.

9
Приложение 2
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего образования
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК


Кафедра программного обеспечения

Лабораторное занятие № 8.

Подпрограммы. Организация подпрограмм.

Вариант 5.

Выполнил студент:
ФИО

Тюмень-2021

10
1.Цель работы
Изложить цель работы.
2 Решение задачи 25
Постановка задачи
Привести постановку задачи, определить входные и выходные параметры.
Текст программы на языке C++
Привести полный текст программы с комментариями поясняющие ее
работу.
Результат тестирования программы на языке C++
Результат работы программы представить в виде скриншота с экрана.
3 Решение задачи 45
Постановка задачи
Привести постановку задачи, определить входные и выходные параметры.
Текст программы на языке C++
Привести полный текст программы с комментариями поясняющие ее
работу.
Результат тестирования программы на языке C++
Результат работы программы представить в виде скриншота с экрана.
4. Список использованных источников
Привести список источников (пример оформления смотрите в приложении
№2 в лабораторной работе № 3).

11

Вам также может понравиться