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



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

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

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

· имя;

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

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

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

 

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

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

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

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

 

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

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

По значению

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

По ссылке

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

 

Задания

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. Как задать значения элементов массива без использования оператора ввода?

 

Практическая работа №9 рекурсия

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

 

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

2  Найти сумму цифр заданного натурального числа.

3  Найти количество цифр в заданном натуральном числе.

4  Составить программу вычисления суммы четных факториалов. (n-четное, n£10)

5  Описать рекурсивную логическую функцию Simm(S,I,J), проверяющую, является ли симметричной часть строки S, начинающаяся i-м и заканчивающаяся j-м ее элементом.

6  Составить программу вычисления суммы нечетных факториалов. (n-четное, n£10)

7  Составить программу сортировки массива целых чисел.

8  Составить программу вычисления НОД двух натуральных чисел.

9  Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. (173Þ371)

10 Составить программу перевода данного натурального числа в р-ичную систему счисления (2£р£9)

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

12 Поиска значений в упорядоченном списке.

13 Найти сумму 1/1+1/2+1/3+1/4+…+1/n, основываясь на рекурсии.(сумма k слагаемых равна сумме (k-1) слагаемых плюс k-е слагаемое).

14 Напишите главную программу для вычисления n-го числа Фибоначчи. Почему использовать рекурсивный алгоритм вычисления n-го числа Фибоначчи невыгодно?

15 Определите рекурсивно умножение как сложение и деление как вычитание и оформите алгоритмы в виде рекурсивных функций с вызовом из главных программ.

16 Составить программу сортировки массива целых чисел.

17 Составить программу вычисления НОД двух натуральных чисел.

 


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

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






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