- •Программа. Программирование.
- •Язык программирования. Синтаксис, семантика.
- •Способы представления алгоритмов. Язык блок-схем.
- •Этапы решения задач на эвм.
- •Информационная модель. Система.
- •Декомпозиция, композиция, редукция.
- •Атрибуты переменной. Объявление, определение и инициализация переменной.
- •Область видимости переменной. Время жизни переменной.
- •Типы данных в языках программирования. Переполнение типа данных.
- •Представление массивов в памяти. N-мерные массивы, тензоры.
- •Массивы и указатели. Массивы указателей и указатель на массив. Арифметика указателей.
- •Функции в языках программирования. Функция как подпрограмма. “Черный ящик”.
- •Концептуализация кода с помощью функций. Интерфейс функции. Процедура. Прототип функции.
- •Перегрузка функций. Правила вызова перегруженной функции. Сигнатура функции.
- •Рекурсия. Static-переменная функции.
- •Способы передачи аргументов в функцию.
- •1) Передача аргументов по значению
- •2) Передача параметров по ссылке
- •Архитектура Фон-Неймана. Принципы архитектуры Фон-Неймана.
- •Линейная память. Адресация.
- •Виртуальная память.
- •Процесс операционной системы. Основные разделы памяти процесса.
- •Стековая память.
- •Динамическая память или куча.
- •Статическая память.
- •Работа с файлами. Ввод/вывод на консоль.
- •Компилятор и компиляция. Сборка программы.
- •Интегрированная среда разработки.
- •Препроцессор и директивы препроцессора.
Стековая память.
Стековая память - это область памяти, зарезервированная для каждой запущенной программы в системе, и она работает по принципу LIFO: "последним записан - первым считан" (Last Input First Output - LIFO).
хранит локальные переменные, аргументы функций и промежуточные значения вычислений;
размер определяется при запуске программы (обычно выделяется 4 Мб).
Динамическая память или куча.
Динамическое выделение памяти. В этом случае используется комбинация операторов new и delete. Оператор new выделяет память для переменной (массива) в специальной области памяти, которая называется «куча» (heap). Оператор delete освобождает выделенную память. Каждому оператору new должен соответствовать свой оператор delete.
Куча — это специализированная структура данных типа дерево, которая удовлетворяет свойству кучи: если B является узлом-потомком узла A, то ключ(A) ≥ ключ(B).
динамически распределяемая память;
ОС выделяет память по частям (по мере необходимости).
Статическая память.
Статическое (фиксированное) выделение памяти. В этом случае память выделяется только один раз во время компиляции. Размер выделенной памяти есть фиксированным и неизменным до конца выполнения программы. Примером такого выделения может служить объявление массива из 10 целых чисел.
хранит глобальные переменные и константы;
размер определяется при компиляции.
Средства работы с памятью в языке C++. Утечка памяти.
В С++ есть свой механизм выделения и освобождения памяти — это функции new и delete.
Утечка памяти (англ. memory leak) — это неконтролируемое уменьшение свободной оперативной или виртуальной памяти компьютера. Причиной утечек становятся ошибки в программном коде.
Работа с файлами. Ввод/вывод на консоль.
Для работы с файлами необходимо подключить заголовочный файл <fstream>. В <fstream> определены несколько классов и подключены заголовочные файлы <ifstream> — файловый ввод и <ofstream> — файловый вывод.
Файловый ввод/вывод аналогичен стандартному вводу/выводу, единственное отличие – это то, что ввод/вывод выполнятся не на экран, а в файл. Если ввод/вывод на стандартные устройства выполняется с помощью объектов cin и cout, то для организации файлового ввода/вывода достаточно создать собственные объекты, которые можно использовать аналогично операторам cin и cout.
Гетерогенные и гомогенные структуры данных.
Гетерогенные: Структуры, записи, объединения
Гомогенные: Массивы и матрицы
В современных языках программирования логическое объединение целостных понятий называется записью (Pascal) или структурой (С/С++).
Перечисляемый тип.
Перечисляемый тип — тип данных, чьё множество значений представляет собой ограниченный список идентификаторов.
Структуры.
Структура — это сгруппированные (ая) под одним именем одна или несколько переменных (возможно, различных типов). В качестве этих переменных могут быть также массивы данных, указатели на различные типы данных, также переменные других типов структур и т.д.
Синонимы типов. typedef. Указатель на функцию.
Синонимом типа называется определение, записанное при помощи type
В C++ typedef (сокращенно от «type definition», «определение типа») – это ключевое слово, которое создает псевдоним для существующего типа данных.
Указатель на функцию (function pointer) хранит адрес функции. По сути указатель на функцию содержит адрес первого байта в памяти, по которому располагается выполняемый код функции.