Практическая работа № Реализация подпрограммы



Основные теоретические сведения

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

Как правило, подпрограмма - это именованный фрагмент программного кода, к которому можно обратиться из другого места программы, однако она может и не иметь имени (называясь в таком случае анонимной).

Подпрограмма должна быть объявлена и в общем случае содержать:

· имя;

· список имен и типов передаваемых параметров (необязательно);

· тип возвращаемого значения (необязательно).

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

Для того, чтобы использовать ранее определенную подпрограмму, необходимо в требуемом месте кода произвести ее вызов, указав:

 

указать имя подпрограммы;

 

передать требуемые аргументы (значения параметров).

 

Код, вызвавший подпрограмму, передает ей управление и ожидает завершения выполнения.

 

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

В настоящее время наиболее часто встречаются следующие способы передачи аргументов:

По значению

Для переменной, переданной по значению, создается локальная копия и любые изменения, которые происходят в теле подпрограммы с переданной переменной, на самом деле, происходят с локальной копией и никак не сказываются на самой переменной.

По ссылке

Изменения, которые происходят в теле подпрограммы с переменной, переданной по ссылке, происходят с самой переданной переменной.

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

Преимущества использования подпрограмм:

декомпозиция сложной задачи на несколько более простых подзадач: это один из двух главных инструментов структурного программирование (второй - структуры данных);

уменьшение дублирования кода и возможность повторного использования кода в нескольких программах - следование принципу DRY «не повторяйся» (англ. Don’t Repeat Yourself);

распределение большой задачи между несколькими разработчиками или стадиями проекта;

сокрытие деталей реализации от пользователей подпрограммы;

улучшение отслеживания выполнения кода (большинство языков программирования предоставляет стек вызовов подпрограмм).

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

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

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

3 Написать функцию, которая вычисляет значение аb.

4 Написать функцию вычисления факториала.

5 Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: >,<,=.

6 Написать процедуру ввода элементов матрицы.

7 Написать процедуру ввода и вывода элементов матрицы.

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

9 Написать функцию, которая находит цифровой корень целого числа.

10 Вычислить площадь правильного шестиугольника со стороной а, используя подпрограмму вычисления площади треугольника.

11 Составить программу разложения данного натурального числа на простые множители.(200= 23+52)

12 Дано четное число n>2. Проверить для него гипотезу Гольдбаха: каждое четное n представляется в виде суммы простых чисел.

13 Из заданного числа вычесть сумму его цифр. Из результата вновь вычесть сумму его цифр и т.д. Через сколько таких действий получится нуль.

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

15 Дан прямоугольник со сторонами A и B, где А, В- натуральные числа. Начнем отсекать от него квадраты. Сколько квадратов можно отсечь, если каждый раз отсекается самый большой квадрат.

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

1. Что такое подпрограмма и для чего она используется?

2. Объясните назначение локальных и глобальных переменных.

3. Как происходит обмен данными с процедурой без параметров?

4. Что такое формальные и фактические параметры?

5. Чем отличается вызов функции от вызова процедуры?

6. Как задать значения элементов массива без использования оператора ввода?

 


Дата добавления: 2020-11-15; просмотров: 128; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!