- •1)Указатели.
- •3) Инициализация указателей
- •5) Операции с указателями
- •33) Связные структуры данных: стек- описание и операции со стеком.
- •35) Связные структуры данных: очередь- описание и операции.
- •37) Связные структуры данных: список- описание и операции.
- •7) Массивы. Описание одномерных и многомерных массивов, инициализация.
- •9) Ввод и вывод массивов, два способа: с выбором элемента по индексу и с выбором элемента по указателю.
- •27) Передача массивов в качестве параметров.
- •19) . Способы обмена данными: с помощью глобальных переменных.
- •21) Способы обмена данными: Возвращаемое значение.
- •23) Способы обмена данными: Параметры функции.
- •25) Передача параметров по значению и по адресу.
- •29) Параметры со значениями по умолчанию.
- •13) Типы данных, определяемые пользователем: структуры.
- •15)Типы данных, определяемые пользователем: объединения.
- •11) Типы данных, определяемые пользователем: перечисления.
- •4) Понятие класса. Описание класса (Паскаль). Поля и методы. Пример
- •При описании нового объекта с инициализацией другим объектом;
- •При передаче объекта в функцию по значению;
- •При возврате объекта из функции.
- •16) Конструктор и деструктор, их свойства (Паскаль).
- •8) Описание объектов (экземпляров класса) Способы обращения к полям объекта. (Паскаль).
- •17) Функции. Объявление и определение, заголовочные файлы в с и предописания (forward) в Паскале.
- •31) Перегрузка функций.
- •39) Понятие ооп Основные свойства ооп (инкапсуляция, наследование, полиморфизм).
- •24) Виртуальные методы и абстрактные классы.
9) Ввод и вывод массивов, два способа: с выбором элемента по индексу и с выбором элемента по указателю.
Ввод и вывод данных в массив осуществляется поэлементно. cin>>mas[0]; cout<< mas[0] << endl;
По индексу: for(int i=0;i<n;i++) { cout<<mas[i].<<endl; }; //вывод массива
for(int i=0;i<n;i++) { cin>>mas[i]; }; //ввод массива
for(int i=0;i<n;i++) { cout<<" "<<i<<endl; for(int j=0;i<m;i++) {cin>>mas[i][j]}; }; //ввод двумерного массива
27) Передача массивов в качестве параметров.
Программы могут передавать переменные-массивы в функции точно так же, как они передают любой другой параметр.
void Print (int m[], int); // прототип ф-ии. передается имя массива и кол-во эл-тов
. . .
void PrintAll(int m[], int n) //заголовок ф-ии вывода.
{ for(int i=0;i<n;i++) { cout<<m[i].<<endl; }; } //вывод массива
19) . Способы обмена данными: с помощью глобальных переменных.
Глобальные переменные видны во всех функциях, где не описаны локальные переменные с теми же именами, поэтому использовать их для передачи данных между функциями очень легко. Тем не менее, использовать этот способ не рекомендуется, поскольку это затрудняет отладку программы и препятствует помещению функций в библиотеки общего пользования. Нужно стремиться к тому, чтобы функции были максимально независимы, а их интерфейс полностью определялся прототипом функции.
21) Способы обмена данными: Возвращаемое значение.
Возврат из функции в вызвавшую ее функцию реализуется оператором return [ выражение ];
Функция может содержать несколько операторов return. Если функция описана как void, выражение не указывается. Выражение, указанное после return, неявно преобразуется к типу возвращаемого функцией значения и передается в точку вызова функции.
Примеры: int f1(){return 1;}//правильно
void f2(){return 1;}//неправильно, f2 не должна возвращать значение
double f3{return 1;}//правильно, 1 преобразуется к типу double
23) Способы обмена данными: Параметры функции.
Пара́метр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр, который определен в спецификации функции. Для усвоения разницы можно запомнить термин «параметризованная функция».
По способу применения различают:
фактический параметр — аргумент, используемый как значение (число, символ и т. д.);
формальный параметр — аргумент, используемый как ячейка памяти (название переменной, указатель на переменную), выступающее в качестве идентификатора этого значения, принимаемого функцией.
Определяющим отличием формального от фактического параметра является доступ к самой переменной аргумента (обращение к памяти), в то время как фактический параметр его не имеет, так как копирует в оперативную память его значение, и пользуется именно им.
#include <iostream>
using namespace std;
int actual_p(int n)
{
n = 1;
return n;
}
int formal_p(int &n)
{
n = 1;
return n;
}
int main()
{
int iActual = 0;
int iFormal = 0;
cout << "Начальное значение переменной: " << iActual << endl;
cout << "Аргумент передан как фактический параметр и изменён: " << actual_p(iActual) << endl;
cout << "Конечное значение переменной: " << iActual << endl;
cout << "Начальное значение переменной: " << iFormal << endl;
cout << "Аргумент передан как формальный параметр и изменён: " << formal_p(iFormal) << endl;
cout << "Конечное значение переменной: " << iFormal << endl;
return 0;
}
Результат работы программ:
Начальное значение переменной: 0
Аргумент передан как фактический параметр и изменён: 1
Конечное значение переменной: 0
Начальное значение переменной: 0
Аргумент передан как формальный параметр и изменён: 1
Конечное значение переменной: 1
Как видно из работы программ: фактический параметр — значение аргумента; формальный параметр — имя аргумента, то есть указатель на переменную.