- •Цели программирования.
- •Уровни языков программирования. Языки ассемблера (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки высокого уровня (история возникновения, отличительные особенности, пример языков).
- •Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Смешанная реализация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Жизненный цикл программного продукта.
- •Этапы решения задач на эвм.
- •Критерии качества программ.
- •Способы записи алгоритма. Блок-схемы.
- •Способы записи алгоритма. Псевдокод.
- •Способы записи алгоритма. Сравнение различных подходов. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- •Высоконадежная память:
- •Принципы типизации данных.
- •Иерархия простых типов данных.
- •Стандартные типы данных. Таблица характеристик. Особенности выбора типа
- •Правила приведения типов.
- •Оператор sizeof.
- •Константы. Специальные символы. Квалификатор const.
- •Область видимости переменных.
- •Операторы управления областью видимости.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- •Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
- •Арифметические операции.
- •Логические операции (краткая схема вычислений).
- •Побитовые операции (таблицы истинности).
- •Структурное программирование: историческая справка.
- •Принципы структурного программирования.
- •Структурное программирование: три базовые конструкции.
- •Основные операторы.
- •Пустой оператор.
- •Оператор присваивания (синтаксис, логика работы, полная и сокращённая форма, порядок выполнения, контекст вычисления, пример).
- •Условный оператор (полная и краткая формы, неоднозначность условного оператора).
- •Составной оператор (синтаксис, логика работы, пример).
- •Неоднозначность условного оператора.
- •Связь между несколькими условными операторами и сложными логическими выражениями.
- •Оператор выбора (синтаксис, логика работы, пример).
- •Ссылки (понятие, способы применения).
- •Подпрограммы (синтаксис, виды подпрограмм, контекст, пример).
- •Оператор return.
- •Прототипы функций (понятие, назначение, способы применения).
- •Библиотеки функций. Оператор #include.
- •Создание пользовательских библиотек.
- •Способы передачи параметров в функции.
- •Способы передачи значения из одной функции в другую.
- •Рекурсия (понятие, правила написания рекурсивных подпрограмм, прямая и обратная и косвенная рекурсии).
- •Параметры по-умолчанию.
- •Перегрузка функций.
- •Перегрузка операторов.
- •Шаблоны функций.
- •Разрешение неоднозначностей при вызове функций.
- •Одномерные массивы (объявление, индексация, хранение в памяти, сортировка). Пример: поиск второго наибольшего по величине значения в массиве.
- •Типовые алгоритмы обработки массивов.
- •77. Указатели (назначение, синтаксис, операции).
- •78. Различие между указателями и ссылками.
- •79. Динамическая память (выделение и освобождение памяти под переменные, одномерные массивы, двумерные массивы).
- •80. Тип данных «массив массивов».
- •81. Представление строк в языках программирования. Достоинства и недостатки различных представлений (отличие ‘a’ от “a”).
- •82. Основные алгоритмы обработки строк.
- •Функции классификации Функции преобразования
- •85. Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •86. Потоковый ввод-вывод. Библиотека потокового ввода-вывода.
- •88. Файловый ввод-вывод. Стандартная библиотека ввода-вывода.,
- •90. Типовые алгоритмы обработки файлов.
- •92. Создание простых бд с помощью массива структур.
- •93. Списки (определение, типовые операции, использование).
- •94. Создание простых бд с помощью списков.
Быстродействующие памяти (РОН, СОЗУ с прямым доступом, FIFO, LIFO на основе БИС СОЗУ, кэш-память, расслоение обращений к ОП, т.е. время доступа к памяти в 3-10 раз меньше, чем к ОП).
Быстродействующая память большой емкости - это ОП и дисковая кэш-память, располагаемая между основной и вторичной (дисковой) памятью (буферная память обычно типа FIFO), позволяющая снизить время доступа к вторичной памяти в 2-10 раз.
Виртуальная память (страничная, сегментная, сегментно-страничная организация памяти в общем адресном пространстве ЭВМ), когда для программиста память представлена как единое целое, а техническая реализация подразумевает использование емкости ОП и внешней дисковой памяти.
Общая память (совместное использование ОП множеством программ и процессоров на основе организации многопортового доступа к ОП и арбитражем доступов к памяти в мультипрограммных и мультипроцессорных системах).
Высоконадежная память:
с использованием корректирующих кодов для автоматического исправления одиночных ошибок;
память с системой защиты по атрибутам доступа, защитой, основанной на использовании мандата, описывающего правила, права доступа, путь доступа и допустимые операции, выполняемые с памятью (защищенный режим работы) или еще называют с защитой от несанкционированного доступа.
Интеллектуальная память - это такая память, в которой для доступа к данным указывается не адрес ячейки памяти, а только часть данных и смысловая связь с другими данными, к которым уже был произведен доступ:
ассоциативная память АЗУ;
память правил, в которой хранятся совокупности правил для доступа к данным;
память семантической структуры, в которой хранится семантическая сеть, используемая для поиска информации в соответствии со смысловой связью.
Такие виды памяти необходимы для различных экспертных и интеллектуальных систем, баз знаний, систем логического вывода и т.д. Поэтому для увеличения емкости и повышения быстродействия без увеличения стоимости памяти необходимо использовать многоуровневую иерархическую организацию памяти. Так как программы размещаются в последовательных ячейках памяти при естественном порядке следования команд, то такое расположение называется пространственной локальностью программы. Для ряда данных также характерно их размещение в соседних ячейках (массивы, исходные данные) и называется пространственной локальностью данных (обычно рекомендуется описывать данные по мере их использования в программе). С другой стороны, для программ характерна циклическая организация повторения некоторых участков программы, подпрограмм в течение какого-либо промежутка времени. К данным, как правило, доступ также осуществляется многократно. Такой процесс называется временной локальностью, а общее их название - локальность по доступу. Применение блочной пересылки между различными уровнями памяти требует меньше времени, чем суммарное время пересылки отдельных данных этого блока, особенно при расслоении обращений к памяти. Размер блока для обмена между основной памятью и вторичной порядка при страничной организации памяти до 4 Кбайт, т.к. емкость ОП достаточно велика (до нескольких Мб), поэтому выигрыш во времени для обмена данными блоками достаточно существенен. При обмене кэш-памяти с ОП размер блоков (строк) невелик: 8-16 слов (16-128 байт), отсюда выигрыш по времени за счет пространственной локальности ниже, чем в предыдущем примере, но так как число строк в кэш-памяти велико (500-4000), то влияние временной локальности достаточно ощутимо.
Принципы типизации данных.
Тип - // свойство ячейки// это определение набора значений, их точности и операции над ними
Pascal -> integer, Boolean
Тип данных нужны для:
- они ограничивают хранение значения (в логических переменных нельзя зажать текс)
- они позволяют сократить потребление памяти
- ограничение операций значения (строки нельзя перемножать)