Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР13-С++17-мая-2012.doc
Скачиваний:
13
Добавлен:
15.09.2019
Размер:
1.3 Mб
Скачать

Министерство финансов Российской Федерации

Всероссийская государственная налоговая академия

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

Бакалавры: 230700 "Прикладная информатика"

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

Лабораторная работа № 13

ПРОГРАММИРОВА­НИЕ С ИСПОЛЬЗОВАНИЕМ ФУНК­ЦИЙ

Автор профессор кафедры "Прикладной информатики в экономике"

кандидат технических наук Л.К. Кузнецов

17 мая 2012 г.

Москва

ВГНА

2012

Лабораторная работа № 14

Программирова­ние с использованием функ­ций

Цель работы:

Ознакомиться:

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

  • с назначением функций;

  • с видами функций;

  • с синтаксисом написания функций;

  • с прототипами функций;

  • со спецификой передачи параметров в функцию;

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

  • с особенностями передачи массивов в функции.

Изучить возможности использования функций на языке C++.

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

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

1. Краткие теоретические сведения

Ниже приводятся минимальные сведения, необходимые только для вы­полнения лабораторной работы

1.1. Знакомство с функциями

В работе № 2 отмечалось, что программа на языке С++ состоит из директив препроцессора, объявлений глобальных переменных, комментариев, одной главной функции (main) и, возможно, ряда неглавных функций.

Программа на языке Си имеет следующую структуру:

#директивы препроцессора

. . . . . . . . .

#директивы препроцессора

<описание макроопределений>

функция1( ) // описание функции 1

операторы

. . . . . . . . .

функцияN( ) // описание функции N

операторы

<объявление глобальных переменных>

main ( ) //функция, с которой начинается выполнение программы

main()

{

<объявление локальных переменных>

<тело программы>

return(0);

}

Выполнение программы всегда начинается с команд, содержащихся в функции main(), а затем последняя вызывает другие функции.

До сих пор мы писали программы единым, функционально неделимым, кодом. Алгоритм программы находился в главной функции main(), причём других функций в программе не было. Мы писали маленькие программы, поэтому не было потребности в объявлении своих функций. Для написания больших программ, опыт показывает, что лучше пользоваться функциями. Программа будет состоять из отдельных фрагментов кода, под отдельным фрагментом кода понимается функция. Отдельным, потому, что работа отдельной функции не зависит от работы какой-нибудь другой. То есть алгоритм в каждой функции функционально достаточен и не зависим от других алгоритмов программы. Однажды написав функцию, её можно будет с лёгкостью переносить в другие программы. Функция (в программировании) - это фрагмент кода или алгоритм, реализованный на каком-то языке программирования, с целью выполнения определённой последовательности операций. Итак, функции позволяют сделать программу модульной, то есть разделить программу на несколько маленьких подпрограмм (функций), которые в совокупности выполняют поставленную задачу. Еще один огромнейший плюс функций в том, что их можно многократно использовать. Данная  возможность позволяет многократно использовать один раз написанный код, что в свою очередь, намного сокращает объем кода программы!

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

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

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

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

Функция представляет собой самостоятельный фрагмент текста программы, предназначенный для выполнения некоторой задачи. Функция имеет уникальное имя, которое используется для ее вызова. В языке C функция играет такую же роль, как и функции, подпрограммы и процедуры в других языках программирования – она позволяет один и тот же фрагмент программы использовать многократно. Использование функций придает программе модульную структуру, облегчает чтение кода и внесение в него исправлений.

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

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

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

Назначение функций можно рассматривать двояко:

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

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

Категории функций в С++:

– библиотечные функции

– функции, определенные пользователем.

Библиотечные функции мы использовали, начиная с работы № 1. Функции стандартных библиотек С хранятся в компилированном виде (файлы с расширениями lib), и присоединяются на этапе сборки. Объявления библиотечных функций содержатся в заголовочных файлах с именами <имя.h>. Чтобы объявление стало доступно программе, в тексте программы записывается директива препроцессора #include <имя.h>. При этом текст заголовочного файла <имя.h>, в котором есть объявление функции, включается в текст программы на этапе препроцессорной обработки. В этом смысле объявление функции — это аналог объявлению переменных. Подробное описание всех библиотек С++ можно найти в справочной системе компилятора.

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

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

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

Для того, чтобы в С++ использовать функцию, нужно ее:

1. Описать (или определить).

2. Объявить.

3. Вызвать.