- •Подготовка программы к исполнению
- •Директива препроцессора #include
- •Математические функции из библиотеки cmath
- •Заголовок функции main
- •Объявление переменных.
- •Объявление переменных простого типа
- •Объявление констант простого типа
- •Перечисляемые переменные.
- •Логические операции
- •Операторы
- •Операторы сложные
- •Составной оператор
- •Структурированные операторы
- •Условный оператор.
- •Блок-схема оператора разветвления
- •Условная операция.
- •Операция «запятая» в операторе if.
- •Преобразование и привидение типов.
- •Оператор выбора варианта.
- •Блок-схема оператора варианта
- •Цикл по счётчику
- •Цикл c предусловием.
- •Цикл c постусловием.
- •Операторы передачи управления
- •1) Спецификации формата, которые определяются символом % - для выделения, контроля и преобразования соответствующих им введенных значений;
- •2) Любые символы, которые могут быть во входном потоке и которые надо игнорировать:
- •2) Первого символа, который не соответствует формату (например, буква или пробел после выделения числа); .
- •3) Заданной длины поля вводимого значения, если она определена в формате.
- •4.2.2. Форматы вывода данных
- •1) Спецификации формата, которые определяются символом % - для вывода .Значений, определенных списком аргументов, если они есть;
- •2) Любые символы, которые должны быть выведены в выходной поток;
- •2 Позиции отводятся для знака числа и точки.
- •Составные типы данных
- •Обработка двумерного массива
- •Указатели
- •Порядок выполнения операций над указателями
- •Арифметические операции над адресами
- •Операторы распределения памяти new и delete
- •Указатели и динамические массивы
- •Указатели и спецификатор const
- •Массивы указателей
- •Организация динамического двумерного массива
- •Функции работы со строками
- •Действия, производимые над строками и их правила Присвоение
- •Конкатенация строк
- •Копирование строк
- •Определяет длину строки
- •Указатели и строки
- •Введение в класс string
- •Структуры
- •Ссылочные переменные
- •Функции
- •Функции, имеющие возвращаемый параметр с помощью оператора return.
- •Объявление формальных параметров
- •Ввод - вывод записей
- •Дополнительные возможности работы с файлами
- •Работы с файлами и стандартный класс mfc cFileDialog.
- •Работа с файлами с помощью mfc( классы cFile, cStdioFile, ... ) и стандартный класс mfc cFileDialog.
- •Класс cFile
- •Класс cMemFile
- •Класс cStdioFile
- •Примеры записи и чтения из файла
Оператор выбора варианта.
На языке С++ можно расширить возможности последовательности вложенных условий с помощью оператора варианта switch, который позволяет легко обработать выбор альтернативы из их большого списка.
Формат:
switch (B)
{
“case” метка 1 “:” [оператор 1 “;”] [“break” “;”]
… … … … … … … … … … … … … … … …
“case” метка n “:” [оператор n “;”] [“break” “;”]
[“default” “:” операторы “;” ]
}
(B) – константное выражение (селектор) символьного или целого типа определяющее одну из меток стоящих после ключевого слова “case”.
метка 1 … метка n - константы целого и символьного типа, совпадающие по типу с селектором.
оператор 1 … оператор n – пустой, простой, структурированный, составной оператор, который выполняется при выборе соответствующей метки.
“default” – имеет значение иначе (else), операторы после “default” выполняются, если результат (B) не совпал ни с одной меткой.
Константное выражение - это выражение вычисляющееся во время компиляции.
Алгоритм выполнения:
Вычисляется B;
Это значение сравнивается с каждой из меток:
если значение селектора равно метке, то выполняется соответствующие операторы. Далее возможны варианты:
если присутствует “break”, то действия переходят на оператор, стоящий за оператором “switch”;
если оператора “break” нет, то выполняются все операторы, при всех метках, в порядке написания и после “default”;
б) если значение селектора не совпало с первой меткой, то действия переходят на распознание следующей метки, пропуская выполнение операторов нераспознанных меток;
в) если значение селектора не совпало ни с одной меткой, то выполняются операторы, стоящие после “default”.
Оператор switch действует как маршрутизатор, который сообщает компьютеру, какую строку кода использовать следует.
Обязательное условие для выполнения оператора:
При входе в оператор switch переменные, участвующие в селекторе, должны иметь конкретные значения
Селектор и альтернативы должны совпадать по типу. Тип возможен только целочисленный, символьный или перечисляемый.
Пример:
#include <iostream>
using namespace std;
void main()
{
int day;
cout<<"b abgycte mesace ";
cin>> day;
if ((day > 0) && (day < 31 ))
switch (day % 7 )
{
case 1: cout << " hiclo - patnica\n"; break;
case 2: cout << " hiclo - sybbota\n"; break;
case 3: cout << " hiclo - boskresenie\n";break;
case 4: cout << " hiclo - ponidelnik\n"; break;
case 5: cout << " hiclo - btopnik\n"; break;
case 6: cout << " hiclo - speda\n"; break;
case 0: cout << " hiclo - hetbepg\n"; break;
};
char c ;
cout << "bbedite simbol: Y, y, N, n = ";
cin >> c;
switch (c)
{
case 'Y':
case 'y': cout << " - YES "; break;
case 'N':
case 'n': cout << " - No "; break;
default : cout << "\n Bi ohiblisi!!! \n";
}
enum {red, orange, yellow, green, blue, violet, indigo};
cout << "bbedite cbet koda (0 -6)";
int code;
cin >> code;
if (code >= red && code <=indigo)
switch (code)
{
case red : cout << "kpasnii \n"; break;
case orange : cout << "opangebii"; break;
case yellow : cout << "geltie"; break;
case green : cout << "zelenii"; break;
case blue : cout << "cinii"; break;
case violet : cout << "fioletobii"; break;
case indigo : cout << "indigo"; break;
}
}