Лабораторная работа № 27.
Разветвляющиеся алгоритмы в C++

Время выполнения

2 часа

Цель работы

Научиться пользоваться условными операторами и оформлять разветвляющиеся схемы алгоритма.

Задачи лабораторной работы

После выполнения работы студент должен знать:
  • Правила написания текста программы как на формальном языке (псевдокоде), так и на языке программирования;
  • Как по схеме алгоритма написать текст программы, и, наоборот, по тексту  программы составить схему её алгоритма;
  • Правила написания текста программы на языке программирования С++;
  • Правила использования операторов условия;
  • Назначение и работу каждого оператора в программе;
  • Уметь проводить тестирование программы, используя известные ему приложения (например,  Excel или MathCAD).

Перечень обеспечивающих средств

Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система семейства Windows язык программирования С++.

Общие теоретические сведения

Разветвляющимся является алгоритм, если последовательность выполнения  шагов решения задачи изменяется в зависимости от некоторых условий. Условие – это логическое выражение, принимающее одно из двух значений: «Да» – если условие верно и «Нет» – если условие неверно, – и которое может содержать логические операции и знаки отношений. 
Рис. 1 иллюстрирует структурные схемы разветвляющихся алгоритмов укороченной (а) и полной (б) формы.
Рисунок 1. Схемы разветвляющихся алгоритмов

Разветвляющиеся алгоритмы оформляются  операторами полной или укороченной формы (табл. 1). В условном операторе выполняется всегда одна из веток («Да» при истинном условии или «Нет», если оно ложно), и никогда не выполняются обе вместе. 

Таблица 1. Формы записи операторов условного перехода
 Форма записи  Структура оператора
 краткая  if  (условие) { операторы-Да }
 полная  if  (условие) { операторы-Да; } else { операторы-Нет}

К условным операторам относится оператор выбора или оператор переключатель (табл. 2), который замечателен тем, что может заменить вложенные операторы условия.
 
Таблица 2. Оператор выбора (или оператор-переключатель)
 Структура оператора
 switch   выражение {
     case значение1:  { операторы}
     . . . . . . . . . . .
     case значениеN: { операторы}
     default  { операторы}
                                }

Выражение – это целочисленная или строковая переменная, значение которой определяет ветвь. Каждая ветвь, определяемая case, может заканчиваться оператором прерывания break. Можно объединять ветви, через список значений, перечисляемые через запятую (или в Pascal – в виде интервала через две точки). Например: 

switch   (f +k)          {
case 0         : { k ++; break;}
case 3, 8     : { f --; k --; break;}
case 9         :
case 11       : { d = ++ f; break;}
default   d = --f;      }

Пример. Дано целое число a. Узнать, четное ли оно. 

Текстуальная форма алгоритма задачи:
    1) Ввести число а с клавиатуры в ЭВМ;
    2) Для определения четности можно воспользоваться известным в математике способом деления числа а на 2, если остаток равен нулю, то число - четное;
    3) Выдать на экран дисплея «Введенное число четное» – если число а четное, или выдать «Введенное число нечетное» – если число а нечетное.

На рис. 2 представлена схема алгоритма этой задачи и описана программа.
 Рис. 2.  Схема алгоритма

#include < iostream.h >
#include < math.h >
main()
{ int a;
   cout << ” Введите целое число а: ”;
   cin >> а;
   if  ( a  % 2 == 0 )  
cout << ”Число” << a <<” -четное” << endl;
   else  
cout << ”Число”<< a <<” -нечетное”  << endl;
}

Видеоурок по выполнению заданий лабораторной работы

Варианты заданий

Содержание отчета
  1. Титульный лист по стандартной форме.
  2. Постановку задачи.
  3. Необходимые математические выкладки (и/или поясняющую картинку).
  4. Алгоритм решения задачи (в виде блок-схемы или в текстуальной форме).
  5. Тексты программы.
  6. Тестовые наборы  (тест – это проверка работоспособности программы по контрольным значениям данных).
  7. Результаты вычислений по каждому тесту.
Отчет для лабораторной работы составляется в одном и подлежит защите. Для защиты лабораторной работы студент должен подготовиться к ответу на контрольные вопросы.

Технология выполнения работы

Написать математическую формулировку, нарисовать картинку, поясняющую логику решения задачи и составить алгоритм. Написать программу, которая в задаче использует сложные условия и вложенные условные операторы. 

Вопросы для защиты работы

  1. Что такое простое условие? Какие используются операции отношения?
  2. Что является результатом выполнения операции отношения?
  3. Что такое составное условие? Какие логические операции используются в нём? Каков приоритет их выполнения и можно ли их изменить?
  4. В логическом выражении (составном условии) используются три величины логического типа (три простых условия) – А, В и С. Сколько возможно различных вариантов сочетаний значений А, В и С?
  5. Как работает оператор выбора? Какой тип может принимать контрольное выражение? Почему?