Порядок выполнения практической работы




Практическая работа №11

Тема: «Работа с операторами ветвления»

 

Цель: освоить работу с операторами ветвления.

Краткие сведения из теории

Логические операции и операции сравнения.

В С определены константы FALSE и TRUE, которые соответственно равны 0 и 1.

К логическим операциям относят

== - возвращает 1 если сравниваемые значения равны.

!= - возвращает 1 если сравниваемые значения не равны

> - 1, если левый операнд больше правого.

< - 1, если левый операнд меньше правого.

>= - 1, если левый операнд больше либо равен правого.

<= - 1, если левый операнд меньше либо равен правого.

&& - 1, если оба операнда не равны 0 (логическое И).

|| - 1, если один из операндов не равен 0 (логическое ИЛИ).

! – 1, если операнд равен 0 (логическое отрицание).

Примечание 1. Во избежание ошибок в логических выражениях, необходимо применять скобки.

Примечание 2. В С любое ненулевое значение интерпретируется как логическая истина.

Условный оператор if

Условный оператор if используется для разветвления процесса вычислений на два направления. Формат оператора:

if (выражение) оператор_1; [else оператор_2;]

Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно имеет значение true, выполняется первый оператор, иначе – второй. После этого управление передается на оператор, следующий за условным.

Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом else. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается блок. Блок может содержать любые операторы, в том числе описания и другие условные операторы. Необходимо учитывать, что переменная, описанная в блоке, вне блока не существует.

Пример:

if (a > 0) b = 1;

else b = 2;

Если требуется проверить несколько условий, их объединяют знаками логических операций

Пример:

if(a > 0 && b < 0)

{

c = a + b;

d = a + 2 * d;

}

else

{

c = a – b;

d = a – 2 * b;

}

 

 

Оператор switch

 

Оператор if позволяет осуществить выбор только между двумя вариантами. Для того, чтобы производить выбор одного из нескольких вариантов необходимо использовать вложенный оператор if. С этой же целью можно использовать оператор ветвления switch.

Общая форма записи


switch (ЦелоеВыражение)
{
case Константа1: БлокОпераций1;
break;
case Константа2: БлокОпераций2;
break;
...
case Константаn: БлокОперацийn;
break;
default: БлокОперацийПоУмолчанию;
break;
}

 

Оператор ветвления switch выполняется следующим образом:

· вычисляется ЦелоеВыражение в скобках оператора switch;

· полученное значение сравнивается с метками (Константами) в опциях case, сравнение производится до тех пор, пока не будет найдена метка, соответствующая вычисленному значению целочисленного выражения;

· выполняется БлокОпераций соответствующей метки case;

· если соответствующая метка не найдена, то выполнится БлокОперацийПоУмолчанию, описанный в опции default.

Альтернатива default может отсутствовать, тогда не будет произведено никаких действий.
Опция break; осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии опции break будут выполняться все операторы, начиная с помеченного данной меткой и кончая оператором в опции default.


Константы в опциях case должны быть целого типа (могут быть символами).

 

Пример 1:

switch ((a%d)*10){

case 20:

a = d/5;

break;

case 30:

a>>=1;

d-=35;

break;

default:

printf(“%d”,a);/* Функция вывода на экран из чистого С (в С++ это cout), выводит в данном случае на экран значение переменной а, спецификатор %d указывает в каком виде представить это самое значение, d - от decimal – десятичное.*/

}

 

Пример 2: Вывести название дня недели по его номеру.

Программа представляет собой сопоставление числового значения и соответствующей ему текстовой строки.
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int day;
system("chcp 1251");/* это кодировка, указание на использование кириллицы, где-то понадобится, где-то нет, в зависимости от компилятора, который используете*/
system("cls"); // очистка экрана
cout << "Введите номер дня недели: ";
cin >> day;
switch (day)
{
case 1: cout << "понедельник"; break;
case 2: cout << "вторник"; break;
case 3: cout << "среда"; break;
case 4: cout << "четверг"; break;
case 5: cout << "пятница"; break;
case 6: cout << "суббота"; break;
case 7: cout << "воскресенье"; break;
default: cout << "Неверно введен день недели"; break;
}
cin.get(); cin.get();
return 0;
}

 

Порядок выполнения практической работы

1. Повторить теоретический материал.

2. Выполнить задание.

3. Подготовить ответы на теоретические вопросы.

4. Оформить отчет.

 

Задачи:

Внимание!

1-ю задачу выполнить через оператор if, а 2-ю - через switch. Обязательна к выполнению одна из задач (на «3»), на оценку 4/5 выполнить обе задачи.

 

1 вариант – Банников, Берсенев, Вершинин В, Илясов, Киреев

2 вариант – Вершинин Д, Воробьев, Коробов, Поляков

3 вариант – все остальные.

 

1 вариант

 

1) Написать программу, которая осуществляет ввод с клавиатуры 2 целых чисел и выводит на экран:

a. Частное двух этих чисел в виде «Х: У = С», если они положительные

b. Сообщение «На ноль делить нельзя!», если 2-е число 0

c. Сумму чисел в иных случаях в виде «Сумма чисел равна С»

2) Написать программу, которая по коду определяет какой цвет выбран (см.кодировку цветов на рисунке). Если выбран не существующий код, то об этом выводится сообщение.

 

2 вариант

 

1) Написать программу, которая осуществляет ввод с клавиатуры 2 вещественных чисел и выводит на экран:

a. Х больше (соответственно вместо Х подставляется большее число), если числа положительные

b. Сообщение «Числа равны!», если они, разумеется, равны

c. Сообщение «Числа отрицательные!» при соответствующем условии

2) Написать программу – определитель номера, которая определяет по номеру телефона, кто звонил (10 номеров). Если выбран не существующий номер, то об этом выводится сообщение.

 

3 вариант

 

1) Написать программу, которая просит ввести с клавиатуры 1 целое положительное 2-х или 3-х значное число и выводит на экран:

a. Сообщение «Введенное число 2-х значное!» при соответствующем условии

b. Сообщение «Введенное число 3-х значное!» при соответствующем условии

c. Сообщение «Не соответствует условию!!!» в остальных вариантах

2) Написать программу, которая определяет по номеру букву в алфавите. Например, если набрать 3, программа выдаст «Под номером 3 находится буква В!» (Можно взять английский алфавит). Если выбран не существующий номер, то об этом выводится сообщение.

 

Контрольные вопросы

1. Что называется базовыми конструкциями?

2. Что называется следованием?

3. Что называется ветвлением?

4. Нарисуйте схемы следования, ветвления, объясните суть их работы.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: