![](/user_photo/_userpic.png)
- •Программа. Программирование.
- •Язык программирования. Синтаксис, семантика.
- •Способы представления алгоритмов. Язык блок-схем.
- •Этапы решения задач на эвм.
- •Информационная модель. Система.
- •Декомпозиция, композиция, редукция.
- •Атрибуты переменной. Объявление, определение и инициализация переменной.
- •Область видимости переменной. Время жизни переменной.
- •Типы данных в языках программирования. Переполнение типа данных.
- •Представление массивов в памяти. N-мерные массивы, тензоры.
- •Массивы и указатели. Массивы указателей и указатель на массив. Арифметика указателей.
- •Функции в языках программирования. Функция как подпрограмма. “Черный ящик”.
- •Концептуализация кода с помощью функций. Интерфейс функции. Процедура. Прототип функции.
- •Перегрузка функций. Правила вызова перегруженной функции. Сигнатура функции.
- •Рекурсия. Static-переменная функции.
- •Способы передачи аргументов в функцию.
- •1) Передача аргументов по значению
- •2) Передача параметров по ссылке
- •Архитектура Фон-Неймана. Принципы архитектуры Фон-Неймана.
- •Линейная память. Адресация.
- •Виртуальная память.
- •Процесс операционной системы. Основные разделы памяти процесса.
- •Стековая память.
- •Динамическая память или куча.
- •Статическая память.
- •Работа с файлами. Ввод/вывод на консоль.
- •Компилятор и компиляция. Сборка программы.
- •Интегрированная среда разработки.
- •Препроцессор и директивы препроцессора.
Функции в языках программирования. Функция как подпрограмма. “Черный ящик”.
Функция – это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие.
Подпрограмма — именованная, логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы.
Черный ящик (черный в смысле -- не прозрачный) -- это система (в т.ч. ПО), внутреннее устройство которой в рассматриваемой ситуации не важно, т.е. мы знаем что и из чего делает эта система, но не знаем/не хотим знать как она эта делает (не знаем "механизм" работы).
Концептуализация кода с помощью функций. Интерфейс функции. Процедура. Прототип функции.
Концептуальное программирование - это стиль компьютерного программирования, также известный как парадигма программирования, целью которого является воссоздание концепций в уме программиста как можно ближе к самой программе. Идея, лежащая в основе концептуального программирования, заключается в том, что каждый фрагмент кода должен что-то значить и четко представлять, какое действие программист хочет выполнить в этом фрагменте кода.
Интерфейс функции — это класс, который не имеет переменных-членов и все методы которого являются чистыми виртуальными функциями! Интерфейсы еще называют «классами-интерфейсами» или «интерфейсными классами».
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.
Прототипом функции в языке C++ называется объявление функции, не содержащее тела функции, но указывающее имя функции, арность, типы аргументов и возвращаемый тип данных. В то время как определение функции описывает, что именно делает функция, прототип функции может восприниматься как описание её интерфейса.
Функции в C++. Аргументы и параметры. Аргументы по-умолчанию.
Функция – это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие.
Параметр функции — переменная в функции, которая будет содержать передаваемое снаружи входное значение.
Аргумент функции — фактическая переменная или выражение, значение которого используется как входное значение при вызове функции.
Аргумент по-умолчанию является аргументом функции, который при вызове необязательно указывать. В большинстве языков программирования, функции могут принимать один или несколько аргументов. Как правило, все аргументы должны быть указаны в полном объеме. Позже некоторые языки (например, C++) позволяли программисту в объявлении функции указывать значения некоторых аргументов. Таким образом функцию можно было вызывать, передавая лишь обязательные аргументы.
Перегрузка функций. Правила вызова перегруженной функции. Сигнатура функции.
Перегрузка функций – это создание нескольких функций с одним именем, но с разными параметрами.
Например, print функция, которая принимает std::string аргумент, может выполнять задачи, отличные от тех, которые принимают аргумент типа double . Перегрузка позволяет избежать использования таких имен, как print_string или print_double . Во время компиляции компилятор выбирает, какую перегрузку следует использовать в зависимости от типа аргументов, передаваемых вызывающим объектом. При вызове print(42.0)void print(double d) функции будет вызвана функция. При вызове print("hello world")void print(std::string) метода будет вызвана перегрузка.
Сигнатура функции - это описание её заголовка, в которое обычно входят:
имя функции
число и тип и порядок следоваения передаваемых в неё параметров (в т.ч. и то как именно они передаются, напр. по ссылке или по значению)
тип возвращаемого значения