Условные и безусловные операторы в языке программирования Си++
Оператор scanf вводит переменную y. Ее значение в операторе switch сравнивается со всеми константами операторов case. Если ввести символ `1', то на экране появится строка: Из таблицы 4 взять задание по варианту и написать программу, используя оператор выбора. Для выбора четвертой ветви использовать вариант с ключевым словом default. Else относится к внутреннему if, что и показано с помощью… Читать ещё >
Условные и безусловные операторы в языке программирования Си++ (реферат, курсовая, диплом, контрольная)
Лабораторная работа" Условные и безусловные операторы в языке программирования Си++"
Цель работы: познакомиться с работой условного оператора и оператора перехоlа. Изучить оператор выбора варианта. Научиться применять их при составлении программ.
Теоретические сведения
Условный оператор 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 («%dn», num);
Оператор вывода будет выполняться всегда, а оператор присваивания только в том случае, если условие будет истинным.
Операции отношения, используемые для сравнения, приведены в таблице 1.
Таблица 1
Операция | Смысл | |
< | меньше | |
<= | меньше или равно | |
= = | равно | |
>= | больше или равно | |
> | больше | |
≠ | не равно | |
Не следует путать операцию отношения «==» с операцией присваивания «=».
Рассмотрим простейшую программу:
#include
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 вместо одной инструкции может быть записано несколько инструкций, которые должны заключаться в фигурные скобки.
Например, в
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.
Например:
#include
main ()
{
char y;
scanf («%c» ,&y);
switch (y)
{
case `1':
printf («Ветвь 1n»);
break;
case `2':
case `3':
printf («Ветвь 2 или 3n»);
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
№ варианта | Исходные данные | ||
a=2 b=1,5 c=1 d=3 e=0,5 | |||
c=-2 a=1,5 d=2 x=3 | |||
a=5 b=1,2 y= 0,6 | |||
d=2 a=3,5 x=3 i=2,3 | |||
=1 x=2,5 a=4 b=0,4 | |||
a=0,5 b=2 h=4 R=1,4 | |||
p=0,6 l=2 h=5 R=4 | |||
x=0,63 c=1,5 d=2 a=0,37 | |||
y=2,6 x=1,6 a=0,4 | |||
a=1,5 b=2 x=0,5 | |||
x=0,5 a=4,3 y=2,6 d=0,3 | |||
a=3 y=2,7 i=2 x=1 | |||
x=0,73 y=0,4 t=2,6 | |||
a=2 x=0,54 c=2,3 b=1,8 R=3 | |||
x=0,4 a=0,88 c=3,6 | |||
a= -1 b=0,8 x=1 c= -0,7 | |||
x=2 y=3,5 a=0,1 b=4 | |||
x=0,8 y=0,2 a=4 b=5 t=1 | |||
y=2 a=0,5 x=1,8 b=0,6 | |||
x=1,8 y=2 t=4 a=1,5 R=4,6 b=0,3 | |||
Таблица 4
№ варианта | Исходные данные | ||
Подбельский В. В. Язык Cu ++: Учебное пособие. — М.: Финансы и статистика, 1995, -560 с.
Страуструп Б. Язык программирования Сг ++. — М.: Радио и связь, 1991. — 352 стр.
Собоцинский В. В. Практический курс Turbo Cu ++. Основы объктноориентированного программирования. — М.: Свет, 1993. — 236 с.
Романов В. Ю. Программирование на языке Cu ++. Практический подход. — М.: Компьтер, 1993. — 160 с.
Уинер Р. Язык турбо Cu. — М.: Мир, 1991. — 384 с.
Юлин В.А., Булатова И. Р. Приглашение к Cu. — Мн.: Высш. Шк., 1990, — 224 с.
Котлинская Г. П., Галиновский О. И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. — 156 с.