Похожие презентации:
Функции. Лекция №8
1.
Лекция № 8Функции
2.
Назначение функцийФункции - самостоятельные программные единицы,
спроектированные для решения
конкретной задачи.
Функции по структуре подобны функции main.
int main(void)
{
// объявление переменных
// операторы
}
3.
Функциитип имя_функции(тип форм. парам.)
{
объявление переменных;
операторы;
return вычисленное значение;
}
формальные параметры
функция
вычисленное
значение
4.
Пример 1Функция, отображающая заставку.
void означает «пусто, без значений».
формальные параметры
отсутствуют
функция
вычисленное
значение
отсутствует
5.
Пример 2Функция, отображающая заставку.
В функцию передается число строк.
формальные параметры
функция
вычисленное
значение
отсутствует
6.
Пример 3Функция, отображающая заставку.
Передается число строк, столбцов, символ.
формальные параметры
функция
вычисленное
значение
отсутствует
7.
Пример 4Оператор return завершает функцию и возвращает
вычисленное значение в программу.
формальные параметры
функция
вычисленное
значение
8.
Прототип функцииФункцию можно объявлять после main.
В этом случае записывают прототип функции.
В чем выгода такой записи ?
9.
Прототип функцииФункции позволяют разбивать программу
на подзадачи.
Подзадачи позволяют разделить труд программиста.
МЕНЮ, ИНТЕРФЕЙС
10.
Прототип функцииКаждый программист пишет «свою функцию».
Можно все коды и прототипы поместить в один файл.
Но так громоздко ! Что будет, если программу
расширят другими функциями ?
11.
Прототип функцииДля удобства прототипы функций одного назначения
помещают в заголовочный файл *.h.
Коды функций помещают в отдельный файл *.с
и включают в проект.
Получается многофайловый проект.
Основная программа выглядит как и прежде .
12.
Формальные и фактическиеФормальные параметры записываются
в скобках после имени объявляемой функции.
Фактические параметры записываются
в скобках после вызова функции.
Важно соответствие формальных и фактических
параметров.
13.
Передача параметровДанные посредством формальных параметров
передаются по значению.
Переменная k остается без изменений после
работы функции INC.
14.
Передача параметровЕсли мы хотим, чтобы функция изменила
переменную, то следует в функцию передавать
адрес переменной, т.е. работаем с указателями.
15.
Передача параметровПолучается, если в функцию передается адрес
переменной, то функция может изменить
переменную.
func(a,&b);
pric(&c, &d, f);
Всегда ли такая запись сразу же очевидна ?
Если передается массив, то запись не очевидна.
sort(M,arr);
// arr – указатель на нулевой
//
элемент
16.
Слишком много параметровПрограмма использует массив, который изменяется и
используется многими функциями.
print_massiv ( M,arr ,color,page);
sort_massiv ( M,arr ,method,param);
zero_massiv ( M,arr ,status);
change_massiv( M,arr ,par1,par2);
Одни и те же параметры загромождают запись в
вызовах функций.
17.
Слишком много параметровМожно массив объявить вне функции main.
Такой массив будет доступен всем функциям.
Нет смысла такой массив передавать через
формальные параметры.
#define M 10
int arr[M];
void print_massiv (color,page);
void sort_massiv (method,param);
...
18.
Локальные и глобальныеПеременные объявленные внутри функции –
локальные переменные.
Доступны только в ней самой.
Переменные объявленные вне функций –
глобальные переменные.
Доступны во всех функциях при несовпадении имен
с локальными переменными.
19.
Локальные и глобальныеПеременная a не доступна в func,
переменные b, c доступны.
Переменная b не доступна в main,
переменные a, c доступны.
20.
Функция mainЧто означает int main(void) ?
int - означает, что при вызове нашей программы
из другой программы, наша программа может
вернуть целочисленный результат работы.
Т.е. вызывающая программа может реагировать на
результаты работы нашей программы.
21.
Функция mainЧто означает int main(void) ?
void - для работы нашей программы не
требуется дополнительных данных,
например в виде ключей.
format C: /q
Если мы хотим, чтобы программа читала данные из
строки, то тогда записываем
int main(int argc, char *argv[])
и обрабатываем входные данные