Лабораторная работа"Условные и безусловные операторы в языке программирования Си++"
Цель работы:
познакомиться с работой условного оператора и оператора перехоlа. Изучить оператор выбора варианта. Научиться применять их при составлении программ.
1.
Теоретические сведения
Условный оператор if
Рассматриваемая группа операторов позволяет организовать ветвление в программе. Часто, например, необходимо в зависимости от того или иного результата реализовать одну либо другую группу операторов (инструкций). В языке СИ для этих целей используются операторы if (если) – else (иначе), switch (переключатель) и goto (идти к).
Оператор if имеет вид:
if (проверка условия) инструкция1; else инструкция2;
Если условие в скобках принимает истинное значение, выполняется инструкция1, а если ложное – инструкция2 (см. рис. 1).

Например:
if (a>b)
z=a;
else
z=b;
Необходимо обратить внимание на точку с запятой после z=a. Здесь она обязательна, поскольку за if должна следовать инструкция, которая всегда заканчивается точкой с запятой.
В операторе if слово else может отсутствовать. В этом случае, если условие в скобках принимает истинное значение, выполняется инструкция 1, а если ложное, то инструкция 1 пропускается и управление передается следующему оператору по тексту программы.
Например:
if (num>10) num=2*num;
printf("%d\n",num);
Оператор вывода будет выполняться всегда, а оператор присваивания только в том случае, если условие будет истинным.
Операции отношения, используемые для сравнения, приведены в таблице 1.
Таблица 1
| Операция |
Смысл |
| < |
меньше |
| <= |
меньше или равно |
| = = |
равно |
| >= |
больше или равно |
| > |
больше |
| != |
не равно |
Не следует путать операцию отношения "==" с операцией присваивания "=".
Рассмотрим простейшую программу:
#include <stdio.h>
main( )
{
int a,b;
puts("Введитезначения a и b");
scanf("%d %d", &a,&b);
if (a>b) puts("a больше b");
else puts(""); /*демонстрация оператора if – else*/
if (a==b) puts(""); /*демонстрация оператора if без слова else*/
}
Если для выполнения программы ввести числа 5 и 3, то на экране появится строка:
а больше b
При введении чисел 5 и 5, на экране появится две строки:
a меньше или равно b
a равно b
Иногда в условном операторе после ключевых слов if или else следует инструкция if, ее называют вложенной. Слово else всегда относится к ближнему предшествующему ему if. Также после ключевых слов if и else вместо одной инструкции может быть записано несколько инструкций, которые должны заключаться в фигурные скобки.
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
Например, в
if (n>0)
if (a>b)
z=a;
else
z=b;
else относится к внутреннему if, что и показано с помощью отступов. Если требуется иная интерпретация, необходимо должным образом расставить фигурные скобки:
if (n>0)
{
if (a>b)
z=a;
}
else
z=b;
В данном примере else относится к внешнему if.
В сложных конструкциях, содержащих много if и else, уместно вложенные if обрамлять фигурными скобками.
Вместо вложенных конструкций if–else часто целесообразно использовать сложные выражения для проверки условия. Сложные выражения получаются путем объединения нескольких простых отношений с помощью логических операций. В языке СИ имеются три логические операции, приведенные в таблице 2.
Таблица 2
| Операция |
Смысл |
| && |
и |
| || |
или |
| ! |
не |
Операция ! имеет очень высокий приоритет, он выше, чем умножения, и только круглые скобки имеют более высокий приоритет. Приоритет операции && выше, чем операции ||, а обе они имеют более низкий приоритет, чем операции отношения. Поэтому выражение
a>b&&b>c||b>d
будет интерпретировано так:
((a>b)&&(b>c))||(b>d),
т.е. b находится в промежутке между c и a или b больше d.
Пример

main ( )
{ float x, y;
scanf ("%f", & x);
if (x > 0)
y = x*x + 1;
else
y = x + 4;
printf ("%f %f", x, y);
}
Оператор безусловного перехода
Его можно представить в следующей форме: goto метка;
Метка – это любой идентификатор.
Например: goto a2;
Оператор goto указывает, что выполнение программы необходимо продолжить, начиная с инструкции, перед которой записана метка. В программе обязательно должна быть строка, где указана метка, поставлено двоеточие и записана инструкция, к которой должен выполняться переход.
Например: a2: k=5;
Метки в программе описывать не нужно. Применение оператора безусловного перехода в языке СИ является нежелательным, так как он нарушает структурную наглядность программы.
Оператор выбора switch
Оператор switch позволяет выбрать одну из нескольких альтернатив. Он записывается в следующем виде:
switch (выражение)
{case константа1, вариант 1; break;
. . .
case константа n, вариант n; break;
default: вариант n+1; break;}
На рис.2 представлена соответствующая иллюстрация.

В операторе switch вычисляется целое выражение в скобках ( его называют селектором), и его значение сравнивается со всеми константами. При совпадении выполняется соответствующий вариант (одна или несколько инструкций). Все константы в записи оператора должны быть различными. Вариант с ключевым словом default (прочие) реализуется, если ни один другой не подошел (если слово default отсутствует, а все результаты сравнения отрицательны, то ни один вариант не выполняется. Для прекращения последующих проверок после успешного выбора некоторого варианта используется оператор break, обеспечивающий немедленный выход из оператора switch.
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе
Например:
#include<stdio.h>
main( )
{
char y;
scanf("%c",&y);
switch(y)
{
case ‘1’:
printf("Ветвь 1\n");
break;
case ‘2’:
case ‘3’:
printf("Ветвь 2 или 3\n");
break;
default:
printf("Ветви 1,2,3 не работают\n");
}
}
Оператор scanf вводит переменную y. Ее значение в операторе switch сравнивается со всеми константами операторов case. Если ввести символ ‘1’, то на экране появится строка:
Ветвь 1
по оператору break произойдет выход из переключателя switch, и программа завершит свою работу. Если ввести символы ‘2’ или ‘3’, то на экран будет выведена строка:
Ветвь 2 или 3
При вводе любого другого символа управление перейдет к ключевому слову default и на экране появится строка:
Ветви 1,2,3 не работают.
2. Задание
Из таблицы 3 взять задание по варианту и написать программу, используя оператор условного перехода.
Из таблицы 4 взять задание по варианту и написать программу, используя оператор выбора. Для выбора четвертой ветви использовать вариант с ключевым словом default.
Таблица 3
| № варианта |
Содержание |
Исходные данные |
| 1. |
  |
a=2
b=1,5
c=1
d=3
e=0,5
|
| 2. |
  |
c=-2
a=1,5
d=2
x=3
|
| 3. |
  |
a=5
b=1,2
y= 0,6
|
| 4. |
  |
d=2
a=3,5
x=3
i=2,3
|
| 5. |
  |
w=1
x=2,5
a=4
b=0,4
|
| 6. |
  |
a=0,5
b=2
h=4
R=1,4
|
| 7. |
  |
p=0,6
l=2
h=5
R=4
|
| 8. |
  |
x=0,63
c=1,5
d=2
a=0,37
|
| 9. |
  |
y=2,6
x=1,6
a=0,4
|
| 10. |
  |
a=1,5
b=2
x=0,5
|
| 11. |
  |
x=0,5
a=4,3
y=2,6
d=0,3
|
| 12. |
  |
a=3
y=2,7
i=2
x=1
|
| 13. |
  |
x=0,73
y=0,4
t=2,6
|
| 14. |
  |
a=2
x=0,54
c=2,3
b=1,8
R=3
|
| 15. |
  |
x=0,4
a=0,88
c=3,6
|
| 16. |
  |
a= -1
b=0,8
x=1
c= -0,7
|
| 17. |
  |
x=2
y=3,5
a=0,1
b=4
|
| 18. |
  |
x=0,8
y=0,2
a=4
b=5
t=1
|
| 19. |
  |
y=2
a=0,5
x=1,8
b=0,6
|
| 20. |
  |
x=1,8
y=2
t=4
a=1,5
R=4,6
b=0,3
|
Таблица 4
| № варианта |
Содержание |
Исходные данные |
| 1 |
  |
 |
| 2 |
 |
 |
| 3 |
 |
 |
| 4 |
 |
 |
| 5 |
 |
 |
| 6 |
 |
 |
| 7 |
 |
 |
| 8 |
 |
 |
| 9 |
 |
 |
| 10 |
 |
 |
| 11 |
 |
 |
| 12 |
 |
 |
| 13 |
 |
 |
| 14 |
 |
 |
| 15 |
 |
 |
| 16 |
 |
 |
| 17 |
 |
 |
| 18 |
 |
 |
| 19 |
 |
 |
| 20 |
 |
 |
Литература
1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, -560 с.
2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.
3. Собоцинский В.В. Практический курс TurboCu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.
4. Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 1993. - 160 с.
5. Уинер Р. Язык турбо Cu . - М.: Мир, 1991. - 384 с.
6. Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 1990,- 224 с.
7. Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. - 156 с.
|