- •Цели программирования.
- •Уровни языков программирования. Языки ассемблера (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки высокого уровня (история возникновения, отличительные особенности, пример языков).
- •Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Смешанная реализация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Жизненный цикл программного продукта.
- •Этапы решения задач на эвм.
- •Критерии качества программ.
- •Способы записи алгоритма. Блок-схемы.
- •Способы записи алгоритма. Псевдокод.
- •Способы записи алгоритма. Сравнение различных подходов. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- •Высоконадежная память:
- •Принципы типизации данных.
- •Иерархия простых типов данных.
- •Стандартные типы данных. Таблица характеристик. Особенности выбора типа
- •Правила приведения типов.
- •Оператор sizeof.
- •Константы. Специальные символы. Квалификатор const.
- •Область видимости переменных.
- •Операторы управления областью видимости.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- •Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
- •Арифметические операции.
- •Логические операции (краткая схема вычислений).
- •Побитовые операции (таблицы истинности).
- •Структурное программирование: историческая справка.
- •Принципы структурного программирования.
- •Структурное программирование: три базовые конструкции.
- •Основные операторы.
- •Пустой оператор.
- •Оператор присваивания (синтаксис, логика работы, полная и сокращённая форма, порядок выполнения, контекст вычисления, пример).
- •Условный оператор (полная и краткая формы, неоднозначность условного оператора).
- •Составной оператор (синтаксис, логика работы, пример).
- •Неоднозначность условного оператора.
- •Связь между несколькими условными операторами и сложными логическими выражениями.
- •Оператор выбора (синтаксис, логика работы, пример).
- •Ссылки (понятие, способы применения).
- •Подпрограммы (синтаксис, виды подпрограмм, контекст, пример).
- •Оператор return.
- •Прототипы функций (понятие, назначение, способы применения).
- •Библиотеки функций. Оператор #include.
- •Создание пользовательских библиотек.
- •Способы передачи параметров в функции.
- •Способы передачи значения из одной функции в другую.
- •Рекурсия (понятие, правила написания рекурсивных подпрограмм, прямая и обратная и косвенная рекурсии).
- •Параметры по-умолчанию.
- •Перегрузка функций.
- •Перегрузка операторов.
- •Шаблоны функций.
- •Разрешение неоднозначностей при вызове функций.
- •Одномерные массивы (объявление, индексация, хранение в памяти, сортировка). Пример: поиск второго наибольшего по величине значения в массиве.
- •Типовые алгоритмы обработки массивов.
- •77. Указатели (назначение, синтаксис, операции).
- •78. Различие между указателями и ссылками.
- •79. Динамическая память (выделение и освобождение памяти под переменные, одномерные массивы, двумерные массивы).
- •80. Тип данных «массив массивов».
- •81. Представление строк в языках программирования. Достоинства и недостатки различных представлений (отличие ‘a’ от “a”).
- •82. Основные алгоритмы обработки строк.
- •Функции классификации Функции преобразования
- •85. Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •86. Потоковый ввод-вывод. Библиотека потокового ввода-вывода.
- •88. Файловый ввод-вывод. Стандартная библиотека ввода-вывода.,
- •90. Типовые алгоритмы обработки файлов.
- •92. Создание простых бд с помощью массива структур.
- •93. Списки (определение, типовые операции, использование).
- •94. Создание простых бд с помощью списков.
Иерархия простых типов данных.
Стандартные типы данных. Таблица характеристик. Особенности выбора типа
Категория |
Имя типов |
Диапазон |
Точность |
Пример |
Объём памяти |
Целые, знаковые |
Char, short, int, long |
-128…127 -32768…32768 -231 …231 -1 -231 …231 -1 |
1 1 1 1 |
-5,0,13 -5,0,13 -5,0,13 - 5L, 0L, BL |
1 2 4 4 |
Целые без знаковые |
unsigned char Unsilned short Unsilned int Unsilned lon |
0…255 0…65535 0…232-1 0… 232 -1 |
1 1 1 1 |
0,13 0,13 0,13 04L, 134L |
1 2 4 4 |
Вещественные |
Float double |
+- 3,4 * 10+-38 +- 1.7 * 10+-308 |
10-6 10-12 |
-1,3F, 5F -1,3 , 5.0 |
4 8 |
Логические |
bool |
False …true |
|
False,true |
1байт |
Текстовые: символьные |
Char Wchar_t |
-128…127 -32768…32767 |
1 1 |
‘a’ , ‘b’ ‘a’L |
1 2 |
Дата, время |
Taimet |
0…264-1 |
1 |
5,1234 |
8(4) |
Целые чсл. бз |
Size_t(unstsged int) |
0…232 -1 |
1 |
5.13 |
4 |
Правила приведения типов.
Это стандарты С++, который описывает, какие значения можно присваивать типам и что происходит если они не соответствуют друг другу
Преобразование из более узкого типа в более широкий, происходит без проблем
Если присваивается целое значение, по количеству разряда, большему чем может сохранить тип, то происходит отсечение старших разрядов
Если преобразовать целое значение в логическое то “0” считается ложью, а значение отличное от “0” истиной.
Для того чтобы преобразовать значение в другой тип, в С++ используется определённый оператор, приведения типа.
(тип)(выражение) (тип) значение
(double) ½ 1.0/2 0.5
Оператор sizeof.
Оператор sizeof возвращает размер в байтах операнда, заключенного в круглые скобки. В качестве операнда может выступать либо идентификатор (переменная), либо имя типа данных. Единственным исключением является тип void.
ПРИМЕЧАНИЕ Если операнд — статически распределенный массив, sizeof возвращает полный размер массива в байтах. Если операнд — указатель, соответствующий идентификатору массива, sizeof возвращает размер указателя. Если операнд — класс, структура или объединение, sizeof возвращает полный размер класса, структуры или объединения, включая участки памяти, используемые для выравнивания элементов.
Синтаксис:
sizeof (expression) // для идентификатора
sizeof (type) // для типа
Пример// …
// вывод на экран значения 2:
cout << sizeof (short) << '\n';
// вывод на экран значения 2 или 4:
cout << sizeof (short*) << '\n';
// вывод на экран значения 20
cout << sizeof (short [10]) << '\n';
Переменные (объявление, инициализация, присвоение). Переменная — это именованный участок памяти, в котором хранится значение, которое может быть изменено программой. Все переменные перед их использованием должны быть объявлены. Общая форма объявления[1] имеет такой вид: тип список_переменных; Здесь тип означает один из базовых или объявленных программистом типов (если необходимо — с одним или несколькими спецификаторами), а список_переменных состоит из одного или более идентификаторов, разделенных запятыми. Ниже приведены примеры объявлений: int i,j,l; short int si; unsigned int ui; double balance, profit, loss; Необходимо помнить, что в С имя переменной никогда не определяет ее тип. Объявление переменных может быть расположено в трех местах: внутри функции, в определении параметров функции и вне всех функций. Это - места объявлений соответсвенно локальных, формальных параметров функций и глобальных переменных. Иницилизация переменной – задание начального значения int a=0; int a; a=0;