
- •Информатика. Информация. Информационные революции и информационные технологии.
- •Поколения эвм, критерии классификации, основные характеристики, современный этап развития.
- •Принципы Джона фон Неймана как основа обработки информации в эвм. Структурная схема эвм, основные компоненты. Системы счисления.
- •Современная технология (методология) программирования. Основные этапы разработки программ. Критерии эффективности программы.
- •Современная методология программирования. Основные принципы структурного программирования.
- •Жизненный цикл программного обеспечения. Понятие спецификации.
- •Понятие алгоритма, свойства, способы описания. Структурированный алгоритм.
- •Операторы передачи управления break, continue,return,goto
- •Оператор присваивания. Сложное присваивание.
- •Алгоритмы обработки одномерных массивов. Поиск экстремальных значений. Поиск по сложному условию.
- •Алгоритмы обработки одномерных массивов. Сортировка. Сравнение методов «выбора» и «пузырька».
- •Алгоритмы обработки двумерных массивов. Поиск в выделенных областях.
- •Функции типа void. Описание, вызов, передача результата. Формальные и фактические параметры, правила соответствия, примеры. Прототипы функций.
- •Параметры-переменные и параметры-значения. Механизм передачи в функцию и из неё. Локальные и глобальные данные. Примеры.
- •Рекурсивный вызов функции. Примеры.
- •Понятие указателя. Операции. Указатели и массивы. Указатель на функцию.
- •Динамическая память. Операторы new и delete. Функции malloc и free.
Функции типа void. Описание, вызов, передача результата. Формальные и фактические параметры, правила соответствия, примеры. Прототипы функций.
Для того чтобы объявить функцию, не имеющую аргументов, может быть использовано специальное ключевое слово void на месте списка типов аргументов. Компилятор вырабатывает предупреждающее сообщение, если в вызове такой функции будут специфицированы аргументы. Еще одна специальная конструкция допускается в списке типов аргументов. Это фраза void *, которая специфицирует аргумент типа указатель. Эта фраза может быть использована в списке типов аргументов вместо имени типа.
Вызов функции - это выражение, которое передает управление и ФАКТИЧЕСКИЕ параметры (если они есть) функции. Вызов функции связан с выполнением действий над фактическими параметрами, заданных в ее определении.
Вызов функции имеет следующее синтаксическое представление:
если тип возврата void:
<Имя функции> ([<список фактических параметров >]);
если тип возврата не void
<Имя переменной> = <Имя функции> ([<список фактических параметров >]);
Фактические параметры должны «встать на место» формальных параметров при вызове функции. Фактические аргументы могут быть любой величиной основного, структурного, совмещающего или адресного типов.
int add (int x, int y) { return (x+y); }
|
void main( ) { int a = 2; int b = 3; cout<< add(5*a, 4*b); } |
Формальные параметры – x и y. Фактические параметры – выражения 5*a и 4*b.
|
Несоответствие типов формальных и фактических параметров может произвести серию ошибок, особенно когда несоответствие влечет за собой отличия в размерах массивов.
Выполнение вызова функции:
вычисляются выражения входящие в список выражений в фактических параметров; сравниваются типы результатов вычисленных выражений с типом соответствующим формальным параметрам, и если нет совпадения, то производится преобразование типов (проверяется столько аргументов, сколько задано). Если вместо списка формальных параметров — void, то в прототипе тоже void, при обращении не должно быть никаких параметров, то есть пишутся только скобки ().
передаются фактические параметры в область памяти формальных;
передается управление на первый оператор тела процедуры;
производится вычисление и возврат по оператору return; если его нет, то вычисления производятся до последнего оператора и возвращаемое значение не определено.
Прототип функции может указываться до вызова функции вместо описания функции для того, чтобы компилятор мог выполнить проверку соответствия типов аргументов и параметров. Прототип функции по форме такой же, как и заголовок функции. В конце него ставится «;».
Функции можно подключать с помощью директивы #include <имя файла>. Такие файлы с функциями удобно использовать в диалоговых программах с пользовательским меню, позволяющих выбрать один из режимов.
Пример 1: Функция с параметрами-значениями. Результат связан с именем функции. В программе объявляется прототип функции, а сама функция описывается ниже.
#include <stdio.h>
#include <conio.h>
int max(int,int); //Прототип функции
void main()
{ int x,y,z;
printf(" input x,y ");
scanf("%d %d",&x,&y);
z=max(x,y); //Вызов функции с фактическими параметрами
printf("x=%d y=%d max=%d",x,y,z);
getch();}
int max(int a ,int b) //Заголовок функции с формальными параметрами
{ int c;
if (a>b) c=a;
else c=b;
return c;}