
- •Алгоритмы и свойства алгоритмов.
- •Блок-схема.
- •Основные управляющие конструкции.
- •Арифметические операции.
- •Приоритет и порядок вычислений
- •Преобразование типов при выполнении операций.
- •Операции увеличения и уменьшения.
- •Математические библиотечные функции.
- •Операции отношений.
- •Логические операторы.
- •Приоритеты логических операций.
- •2Ая лекция.
- •Операторы цикла.
- •Операторы BreakиContinue.
- •Указатели.
- •Объявление указателей.
- •Классы памяти.
- •Инициализация указателей.
- •Указатель на неопределенный тип.
- •Выражения с указателями.
- •Операции с указателями.
- •Указатели и массивы.
- •Удаление памяти.
- •Указатели многомерных массивов.
- •Свободные массивы.
- •Функции.
- •Передача массива в виде параметра.
- •Классы памяти.
- •Макрофункции.
- •Вложенные структуры.
- •Работа с файлами.
- •Работа с бинарными файлами.
Указатели многомерных массивов.
Наиболее часто в программах используется многомерный массив. Для получения адреса элемента находящегося в строке с индексом Iи в столбце с индексомjнеобходимо сделать следующее: &a[i][j].
В общем случае вычисление смещения элементов массива, объявленного как a[m][n]n*i+j.
Использование указателей вместо двумерного массива.
Свободные массивы.
Термин свободный относится к двумерным массивам. Это массивы, в котором длины строк могут быть различными. Для организации свободного массива используются массивы указателей. Int*a[100] память для строк не выделена.
Функции.
Описание заголовка называют
Если функция определена до тела программы, то ее объявление может отсутствовать.
Функция объявляется следующим образом: тип имя функции (тип и имя параметра, тип и имя 2ого параметра).
Тип функции определяет тип значения, которое возвращает функция. Пример объявления:
Int somefunc(int a, float b);
Определение функции.
(тип и имя параметра, тип и имя 2ого параметра){
Тело функции
}
Передача значений из вызванной функции происходит с помощью оператора возврата (return)
Пример:
Int f(int a, int b)
{
If (a>b){
Pritnf(“max=%d”, a);
Return a;
}
Pritnf(“max=%d”, b);
Return b;
}
Способ вызова этой функции может быть такой: c=f(5,15);
C=f(d,g)
F(d,g)
В языке C++ можно задавать значение аргументов функции, которые будут использоваться по умолчанию, т.е. если программист не введет свое значение, например,
Void some f(int a=1, int b=2, int c=3){
Printf(“a=%d, b=%d, c=%d”, a,b,c);
}
Int main(void){
Some f();
Some f(10);
Sone f(10,20);
Some f(10,20,30);
Return 0;
}
Выведет так:
A=1 b=2 c=3
A=10 b=2 c=3
A=10b=20c=3
A=10b=20c=30
В языке C++ аргументы функции передаются по значению, т.е. вызванная функция получает временную копию каждого аргумента, а не его адрес. Например:
Void some_f(int a)
{
A=5;
}
Main(void){
Int A=3;
Some_f(A);
Pritnf(“A=%d”,A);
}
Void swap(int *a, int *b)
{ int *tmp=*a;
*a=*b;
*b=*tmp;
}
Данная функция должна вызываться следующим образом: swap(&b,&c);
Если же в качестве аргумента функции используется имя массива, то передается только адрес начала массива, а сами элементы не копируются. Функция может изменять элементы массива, сдвигаясь от его начала.
Передача массива в виде параметра.
3 способа:
Параметр задается как массив: swap(inta[])
Передать адрес просто первого массива: swap(int*a)
Если некоторые переменные – константы, массивы, структуры, объявлены как глобальные, то их не надо включать в список параметров функции
Классы памяти.
Внешние глобальные переменные определены вне функций и, следовательно, доступны любой из них. Область действия внешних переменных простирается от точки во входном файле, где она объявлена, до конца файла. Чтобы использовать переменную в разных файлах программы, она должна быть объявлена как extern.
Автоматические переменные по отношению к функции являются внутренними или локальными. Они начинают существовать при входе в функцию и уничтожаются при выходе из нее.
Статические переменные объявляются статическим словом static, они могут быть внутренними локальными или внешними локальными. Внутренние переменные также локальны по отношению к функции, однако они продолжают существовать даже после завершения работы функции.