Вы находитесь на странице: 1из 13

Программное обеспечение

технических расчетов
Лекция 2.
Перегрузка функций, динамические переменные,
двумерные массивы

Авдеев Константин Вячеславович


преподаватель кафедры РЭСК
21.09.2021 г.
План лекции

• Создание функций и их перегрузка при


технических расчетах;

• Динамические переменные в языке C++;

• Двумерные массивы в технических


расчетах.
Основные этапы создания функции
1. Создание прототипа функции:
• тип возвращаемого значения функции;
• имя функции с учетом ряда требований;
• тип(ы) входных переменных.

2. Описание функции.

3. Вызов функции

int - целочисленный

float - с плавающей точкой

double – с двойной точностью

char – символьный

void - пустой тип


Основные этапы создания функции
Метод, при котором функция сначала объявляется, а
затем создается позволяет избежать возникновения
ошибок компилятора, свидетельствующих о
невозможности вызова функции ввиду отсутствия ее
объявления.
Основные этапы создания функции

Вызов функции может происходить в любой другой


функции программы.
Перегрузка функций

Функции в C++ могут совместно использовать одно и то же


имя, если объявления их параметров достаточно различны. Это
называется перегрузкой функций.
Перегрузка функций

Функции в C++ могут совместно использовать одно и то же


имя, если объявления их параметров достаточно различны. Это
называется перегрузкой функций.
Перегрузка функций

В момент вызова такой функции


компилятор выполняет разрешение
перегрузки:

1. Имеется ли перегрузка, в
которой типы аргументов в точности
соответствуют переданным
значениям? Если да, использовать ее,
в противном случае:

2. Имеются ли перегрузки с
соответствием типов после
выполнения преобразований типов?
Сколько?

• 0. Ошибка — подходящая функция не


найдена.
• 1. Использовать эту функцию.
• >1. Ошибка — неоднозначный вызов.
Создание массивов

Массивы обладают двумя основными


недостатками.

• При обращении к массиву не выполняется


проверка индексов, так что можно легко
выйти за его пределы, и программа
завершит работу с ошибкой нарушения
сегментации памяти. Это далеко не худший
случай; по крайней мере, при этом мы
видим, что что-то пошло не так. Неверное
обращение к массиву может также
испортить наши данные. Программа при
этом продолжает работать и давать
совершенно неправильные результаты — с
последствиями, которые вы можете себе
представить сами. Мы даже могли бы
перезаписать сам программный код. Тогда
данные интерпретируются компьютером
как машинные команды, что может
привести к любой бессмыслице.

• Размер массива должен быть известен во


время компиляции. Например, пусть у нас
есть массив, сохраненный в файл, и нам
надо считать его обратно в память:
Динамические переменные в языке C++

Простейшее применение указателя — выделение памяти для


одного элемента данных.
Динамические переменные в языке C++

Указатель — это переменная, значением которой является


адрес ячейки памяти. Указатели объявляются точно так же, как и
обычные переменные.
Динамические переменные в языке C++

Создание массива динамического размера:


Динамические переменные в языке C++
Создание двумерного массива: