Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_8(С#).doc
Скачиваний:
19
Добавлен:
09.02.2016
Размер:
290.3 Кб
Скачать

ЗАТВЕРДЖУЮ

Начальник кафедри соціально-гуманітарних

та загальновійськових дисциплін

к. 2 р. І.С. Попроцький

"___"_______________20 р.

Лабораторна робота №8 (С#)

з навчальної дисципліни

«Інформаційні технології»

Змістовий модуль 4. Алгоритмізація інженерних задач. Мова програмування С.

Тема: Програмування алгоритмів із використанням функцій.

Навчальний клас:

Час:

Місце:

Навчальна та виховна мета: «Формування у курсантів навичок програмування на мові С алгоритмів із використанням функцій».

Навчальні питання і розподіл часу:

1. Функції. Прототипи функцій. Звернення до функцій…..……....40 хв.

2. Практичне завдання….………………….…………………………..40 хв.

Навчально-матеріальне забезпечення: проектор, слайди.

Навчальна література:

  1. Подбельский В.В., Фомин С.С. Курс программирования на языке Си. ― М.: ДМК Пресс, 2012. ― 384 с.

1. Функції. Прототипи функцій. Звернення до функцій

Определение функции.

В определении функции указывается:

  1. Тип результата

  2. Имя функции

  3. Совокупность формальных параметров, заменяемых при обращении к функции фактическими параметрами (аргументами)

  4. Последовательность действий, выполняемых при обращении к функции (тело функции)

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

Типом результата могут быть int, float, double, char. Допустимы функции, не возвращающие значение. В этом случае используется служебное слово void.

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

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

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

Принципиально важным оператором тела функции является оператор возврата из функции в точку ее вызова. Это оператор retutn_выражение.

Выражение в операторе возврата задает возвращаемое функцией значение. Для функции, которая не возвращает значение (void) можно использовать оператор retutn; или вообще его опустить.

Пример определения функции Факториал.

int faktorial(int numb)// заголовок функции

{

int i;    

int rezult = 1; // инициализируем переменную rezult значением 1

    for (int i = 1; i <= numb; i++) // цикл вычисления значения n!

{        

result=result* i; //накапливаем произведение в переменной rezult

}

    return result;

}

 

Прототипы функций.

Существует несколько способов объявления функций, представленных на схеме рис.1.

Рис.1. Способы объявления функций

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

Если функции объявлять перед главной функцией, то прототипы для этих функций не нужны. Хорошему стилю программирования соответствует способ объявления функций после main(). Однако, так как функции объявлены после main(), использовать их не получится, поскольку порядок объявлений изменился и функция main() просто не будет «видеть» функции объявленные после. Для того чтобы эти функции можно было «увидеть» в main(), существует понятие прототипа.

Прототип функции — это заголовок функции, который объявляется перед функцией main() и оканчивается ;

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

  • создание файла типа *.cpp, в котором объявляются функции;

  • создание файлов  типа *.cpp и *.h.

К хорошему стилю программирования относится второй способ. Таким образом, если объявлять функции в другом файле, то делать это рекомендуется следующим образом:

    • в файл .h записывается код

#ifndef имя_функции

#define имя_функции

прототип функции;

#endif

  • в файл .cpp записывается определение функции (заголовок+тело). Чтобы связать файл, где определена функция, и файл с её прототипом, необходимо подключить заголовочный файл (файл с прототипом). При подключении созданного файла .h используются двойные кавычки, а не знаки больше, меньше, например: #include "имя_функции.h"

Обращение к функциям.

Обращение к функциям осуществляется в теле главной функции main и имеет следующий формат:

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

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

Пример обращения к функции Факториал в теле основной программы

int main()

{

    int digit, fact; // переменная для хранения значения n!

    cout << "Enter number: ";

    cin >> digit;

    fact=faktorial(digit);// запуск функции нахождения факториала

    cout<<digit<<”!=”<<fact;

    return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]