Лабораторная работа. Функции. Рекурсия 


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



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа. Функции. Рекурсия



Цель: получить практические навыки использования функций в С++.

 

Общие сведения

Кроме стандартных функций, размещенных в заголовочных файлах, язык C++ позволяет фор­мировать пользовательские функции. Эти функции целесообразно создавать, если при решении задач возникает необходимость проводить вычисления много­кратно по одним и тем же алгоритмам. Применение функций позволяет разделить программу на простые, легко контролируемые части. При использовании функций необходимо различать описа­ние функции и оператор вызова функции.

Структура функции похожа на структуру программы main. Описание функции содержит заголовок функции, объявления пе­ременных и операторы:

тип_функции имя_функции (список формальных_параметров)

{

объявления переменных;

оператор1;

…;

операторы; }

Здесь: тип_функции — тип возвращаемого в основную про­грамму результата;

имя_функции — уникальное имя, соответствующее по смыслу операции, которую выполняет функция (например, max — опре­деление максимального из двух чисел);

список_формальных_параметров — перечень формальных параметров и их типов.

Формальные параметры— это наименования переменных, через которые передается информация из основной программы в функцию.

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

имя_функции (список_фактических_параметров);

Фактические параметры— это наименования переменных, значения которых при обращении к функции, присваиваются соответствующим формальным параметрам.

Для возвращения вычисленного значения в основную программу в функциях используется оператор return(результат);

Если описание функции размещается в программе после обращения к ней, в начало программы нужно поместить прототип функции. Прототип функции содержит ин­формацию об имени функции, типе возвращаемого значения, ко­личестве и типе формальных параметров, например:

float max(float, float);

Кроме переменных, в качестве формальных параметров в функциях могут выступать и массивы.

Рекурсия - вычислительный процесс, направленный на решение определенной задачи таким образом, что само решение использует этот же процесс, решающий аналогичную подзадачу. В программировании под рекурсией понимают такую реализацию, в которой подпрограмма использует в своем теле вызов самой себя. Такие вызовы называют рекурсивными. Когда функция A в своем теле вызывает только одну рекурсивную функцию (саму себя), то говорят о простой рекурсии. Под косвенной рекурсией понимают явление, когда рекурсивные функции вызывают друг друга (например, функция А вызывает B, а функция B вызывает A).

Рекурсивные алгоритмы сложнее отлаживать, но порой они позволяют очень гибко и красиво решить задачу. Известно, что любой рекурсивный алгоритм можно заменить нерекурсивным, но это будет стоить больше времени на реализацию. Главное, чтобы рекурсивная функция не вызывала себя бесконечно, иначе программа не будет работать. Поэтому при реализации рекурсивных алгоритмов необходимо уделять внимание тому, чтобы алгоритм был конечным, т.е. выполнение рекурсивной функции должно когда-нибудь завершиться.

 

Задание к лабораторной работе

Решить задачу с использованием рекурсивной функции (таблица 8.1). Построить блок-схему программы. Организовать ввод и вывод данных.

 

Таблица 8.1 – Варианты заданий

Вариант Задание
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

8.3.1 Что представляет собой функция?

8.3.2 Опишите структуру функции?

8.3.3 По каким правилам оформляются заголовки функций?

8.3.4 В чем разница между формальными и фактическими параметрами?

8.3.5 Как осуществляется объявление локальных и глобальных переменных?

8.3.6 С какой целью в программах используются прототипы функций?

8.3.7 Что такое перегрузка функций?

8.3.8 Что такое рекурсия? В чем отличие между простой и косвенной рекурсией?

8.3.9 Назовите достоинства и недостатки рекурсивных функций.

8.3.10 Приведите примеры использования рекурсивных функций.


Список литературы

1 Страуструп Б. Язык программирования С++. – М., 2012.

2 Павловская Т.А. С/С++. Структурное программирование. – СПб., 2010.

3 Немцова Т.И. Программирование на языке высокого уровня. Программирование на языке С++. М.: «Форум», 2012.

4 Ашарина И.В. Основы программирования на языках С и С++. - М., Горячая линия-Телеком, 2012.

5 Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, VisualBasic: Учебно - справочное пособие. – М.: Финансы и статистика, 2004.

6 Культин Н. С/С++ в задачах и примерах. – СПб.: Питер, 2011.

 

Содержание

 

1 Лабораторная работа. Использование базовых и дополнительных структур С++ при решении вычислительных задач........................................................... 3

2 Лабораторная работа. Характерные приемы программирования....... 7

3 Лабораторная работа. Массивы и их обработка................................... 9

4 Лабораторная работа. Методы сортировки массивов......................... 13

5 Лабораторная работа. Обработка символьных данных..................... 16

6 Лабораторная работа. Работа со структурами и объединениями...... 18

7 Лабораторная работа. Файлы и работа с ними................................... 21

8 Лабораторная работа. Функции. Рекурсия.......................................... 23

9 Список литературы................................................................................ 27

 

Cводный план 2014 г., поз. 117

 

Наталья Валерьевна Сябина

Лариса Николаевна Рудакова

 

 

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

 

Методические указания по выполнению лабораторных работ

для студентов специальности 5B070200

 

 

Редактор Л.Т. Сластихина

Специалист по стандартизации Н.К. Молдабекова

 

 

Подписано в печать __. __. __. Тираж 100 экз. Объем 1.7 уч.-изд. л. Формат 60х84 1/16 Бумага типографская №1 Заказ _____. Цена 850 тг.

 

 

Копировально-множительное бюро

некоммерческого акционерного общества

«Алматинский университет энергетики и связи»

050013, Алматы, ул. Байтурсынова, 126

 
 



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 668; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.35.203 (0.012 с.)