
- •2.5.2.3. Средства программирования разветвляющихся структур
- •2.5.1.2. Средства программирования алгоритмов линейной структуры
- •Input [;] [подсказка { ; | , }] список_переменных
- •Input “Введите коэффициенты уравнения a, b, c “, a#, b#, c#
- •Input ;“Радиус круга”; r!
- •2.5.1.3. Средства программирования разветвляющихся структур
- •If выражение then оператор(ы) [else оператор(ы)]
- •2.5.1.4. Средства программирования регулярных циклических структур
- •2.5.1.5. Средства программирования итеративных циклических структур
- •2.5.1.6. Средства описания и работы с одномерными массивами данных
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •2.5.2.8. Строковые данные и операции над строками
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •Тема 2.5. Основные конструкции языков программирования Страница 274
If (выражение) оператор_1; [ else оператор_2;]
Порядок выполнения оператора следующий: если значение выражения не нуль (“Истина”), то выполняется оператор_1, в противном случае выполняются оператор_2, стоящие после else. Конструкция else может отсутствовать (в формате она взята в квадратные скобки) – случай усеченного разветвления.
Выражение может быть логическим или арифметическим. Ненулевое значение арифметического выражения интерпретируется как “Истина”, а нулевое - как “Ложь”.
Рассмотрим примеры записи однострочного оператора if:
if (X > 0) Y=sqrt(X);
else Y=1;
if (D) EPSILON=0.001;
if (LAMBDA < 1 || BETA == 3 ) {cout << LAMBDA<<BETA ; X=0;}
if (X < 10) Y=1;
else if (X < 100) Y=2;
else Y=4;
if ( i<j ) { j = 0; i--; }
else { j = i-3; i++; }
Другим способом организации выбора из множества различных вариантов является использование специального оператора выбора switch.
Оператор switch предназначен для организации выбора из множества различных вариантов. Оператора switch имеет следующий формат:
switch ( выражение )
{ [объявление]
:
[ case константное_выражение_1]: [ список_операторов_1]
[ case константное_выражение_2]: [ список_операторов_2]
:
:
[ default: [ список_операторов_default ] ]
}
Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимыми в языке С++, значение которого должно быть целым. Отметим, что можно использовать явное приведение к целому типу, однако необходимо помнить о тех ограничениях и рекомендациях по преобразованию данных, о которых говорилось выше.
Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным выражением.
Порядок выполнения оператора switch следующий:
вычисляется выражение в круглых скобках;
вычисленные значения последовательно сравниваются с константными_выражениями следующими за ключевыми словами case;
если одно из константных_выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;
если ни одно из константных_выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий послеswitch оператор.
Программист должен сам позаботиться о выходе из case, если это необходимо. Чаще всего для этого используется оператор break. Напрмер:
int i=2;
switch (i)
{
case 1: i += 2;
case 2: i *= 3;
case 0: i /= 2;
case 4: i -= 5;
default: ;
}
Выполнение оператора switch начинается с оператора, помеченного case 2. Таким образом, переменная i получает значение, равное 6, далее выполняется оператор, помеченный ключевым словом case 0, а затем case 4, переменная i примет значение 3, а затем значение -2. Оператор, помеченный ключевым словом default, не изменяет значения переменной.
char ZNAC;
int x,y,z;
switch (ZNAC)
{
case '+': x = y + z; break;
case '-': x = y - z; break;
case '*': x = y * z; break;
case '/': x = u / z; break;
default : ;
}
Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора switch и передать управление оператору, следующему за switch.
Оператор break может быть использован только внутри операторов switch, for, while или do while и обеспечивает прекращение выполнения самого внутреннего из содержащих его операторов. После выполнения оператора break управление передается оператору, следующему за прерванным.
Заметим, что оператор break нельзя использовать для выхода из нескольких вложенных циклов, а составной оператор, состоящий из двух операторов break, эквивалентен одному оператору break.
По своей сути оператор break является оператором перехода и операторы, записанные после него, выполняться не будут, если только им не будет передано управление с помощью других операторов перехода.