- •Экзамен по информатике
- •Цели программирования.
- •Области языков программирования. Научные приложения.
- •Области языков программирования. Коммерческие приложения.
- •Области языков программирования. Искусственный интеллект.
- •Области языков программирования. Системное программирование.
- •Области языков программирования. Языки сценариев.
- •Области языков программирования. Web-программирование.
- •Уровни языков программирования. Машинные языки (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки ассемблера (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки высокого уровня (история возникновения, отличительные особенности, пример языков).
- •Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Смешанная реализация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Жизненный цикл программного продукта.
- •Этапы решения задач на эвм.
- •Цикл с параметром
- •Пример 1
- •Пример 2
- •Способы записи алгоритма. Псевдокод.
- •Пример 1
- •Пример 2
- •Рекомендации
- •Сравнение примеров
- •Способы записи алгоритма. Сравнение различных подходов. Выгоды использования блок-схем и псевдокода
- •Только псевдокод
- •Концепция памяти.
- •Принципы типизации данных.
- •Тип данных bool
- •Тип данных char
- •Целочисленные типы данных
- •Типы данных с плавающей точкой
- •Иерархия простых типов данных.
- •Стандартные типы данных. Таблица характеристик. Особенности выбора типа.
- •Правила приведения типов.
- •Пример, использующий преобразование типов
- •Оператор sizeof.
- •Переменные (объявление, инициализация, присвоение).
- •Константы. Специальные символы. Квалификатор const.
- •Область видимости переменных.
- •Операторы управления областью видимости.
- •Группы операций (особенности записи, таблица приоритетов)
- •Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
- •Арифметические операции.
- •Логические операции (краткая схема вычислений).
- •Побитовые операции (таблицы истинности). Побитовые логические операции
- •Побитовое отрицание (not)
- •Побитовое и (and)
- •Побитовое или (or)
- •Сложение по модулю два (xor)
- •Другие побитовые логические операции
- •Битовые сдвиги
- •Принципы структурного программирования.
- •Структурное программирование: три базовые конструкции.
- •Основные операторы.
- •Параметры по-умолчанию.
- •Перегрузка функций.
- •Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •Режимы открытия файлов
- •Потоковый ввод-вывод. Библиотека потокового ввода-вывода. Вступление.
- •Консольный ввод/вывод.
- •Форматирование.
- •Потоковый ввод/вывод пользовательских типов.
- •Файловый ввод/вывод.
- •Файловый ввод-вывод. Стандартная библиотека ввода-вывода.
Операторы управления областью видимости.
По мере возможности следует избегать использования в программах глобальных переменных. Однако если ваша программа должна использовать глобальную переменную, то может случиться, что имя глобальной переменной конфликтует с именем локальной переменной. При возникновении такого конфликта C++ предоставляет приоритет локальной переменной. Другими словами, программа предполагает, что в случае конфликта каждая ссылка на имя соответствует локальной переменной.
Однако могут быть ситуации, когда вам необходимо обратиться к глобальной переменной, чье имя конфликтует с именем локальной переменной. В таких случаях ваши программы могут использовать глобальный оператор разрешения С++ (::), если вы хотите использовать глобальную переменную. Например, предположим, что у вас есть глобальная и локальная переменные с именем number. Если ваша функция хочет использовать локальную переменную number, она просто обращается к этой переменной, как показано ниже:
number = 1001; // обращение к локальной переменной
С другой стороны, если ваша функция хочет обратиться к глобальной переменной, программа использует глобальный оператор разрешения, как показано ниже:
::number = 2002; // Обращение к глобальной переменной
Следующая программа GLOBLOCA.CPP использует глобальную переменную number. В дополнение к этому функция show_numbers использует локальную переменную с именем number. Эта функция использует оператор глобального разрешения для обращения к глобальной переменной:
#include <iostream.h> int number = 1001; // Глобальная переменная
void show_numbers(int number)
{ cout << "Локальная переменная number" << " содержит " << number << endl; cout << "Глобальная переменная number" << " содержит " << ::number << endl; }
void main(void) { int some_value = 2002; show_numbers(some_value) ; }
Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:
С:\> GLOBLOCA <ENTER>
Локальная переменная number содержит 2002
Глобальная переменная number содержит 1001
Как видите, ваши программы могут выбрать глобальную или локальную переменную с помощью глобального оператора разрешения. Однако, как вы, вероятно, заметили, использование глобальных и локальных переменных может вызвать путаницу, которая в свою очередь может привести к ошибкам. Поэтому по мере возможности избегайте использования глобальных переменных.
О глобальных переменных
Глобальная переменная представляет собой переменную, чье имя и значение известны на протяжении всей программы. Для создания глобальной переменной вы объявляете переменную в начале вашего исходного файла вне какой-либо функции. Все функции, которые следуют за таким объявлением, могут использовать эту глобальную переменную. Однако, поскольку злоупотребление глобальными переменными может привести к ошибкам, следует избегать их использования в ваших программах везде, где это возможно.
Группы операций (особенности записи, таблица приоритетов)
Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
Приоритет операций - очерёдность выполнения операций в выражении, при условии, что в выражении нет явного указания порядка следования выполнения операций (с помощью круглых скобок). Если операции имеют одинаковый приоритет, то очерёдность выполнения таких операций определяется согласно свойству ассоциативности. Ассоциативность - направление выполнения операций в случае, если операции имеют одинаковый приоритет. В таблице 1 показаны основные операции в С++, их приоритет выполнения и ассоциативность.
Таблица 1 - Приоритет операций в С++ |
|||
Приоритет |
Операция |
Ассоциативность |
Описание |
1 |
:: |
слева направо |
унарная операция разрешения области действия |
[ ] |
операция индексирования |
||
() |
круглые скобки |
||
. |
обращение к члену cтруктуры или класса |
||
-> |
обращение к члену cтруктуры или класса через указатель |
||
2 |
++ |
слева направо |
постфиксный инкремент |
-- |
постфиксный декремент |
||
3 |
++ |
справа налево |
префиксный инкремент |
-- |
префиксный декремент |
||
4 |
* |
слева направо |
умножение |
/ |
деление |
||
% |
остаток от деления |
||
5 |
+ |
слева направо |
сложение |
- |
вычитание |
||
6 |
>> |
слева направо |
сдвиг вправо |
<< |
сдвиг влево |
||
7 |
< |
слева направо |
меньше |
<= |
меньше либо равно |
||
> |
больше |
||
>= |
больше либо равно |
||
8 |
== |
слева направо |
равно |
!= |
не равно |
||
9 |
&& |
слева направо |
логическое "И" |
10 |
|| |
слева направо |
логическое "ИЛИ" |
11 |
?: |
справа налево |
условная операция (тернарная операция) |
12 |
= |
справа налево |
присваивание |
*= |
умножение с присваиванием |
||
/= |
деление с присваиванием |
||
%= |
остаток от деления с присваиванием |
||
+= |
сложение с присваиванием |
||
-= |
вычитание с присваиванием |
||
13 |
, |
слева направо |
запятая |