Лабораторная работа: Условные и безусловные операторы в языке программирования Си
Название: Условные и безусловные операторы в языке программирования Си Раздел: Рефераты по информатике Тип: лабораторная работа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторная работа"Условные и безусловные операторы в языке программирования Си++" Цель работы: познакомиться с работой условного оператора и оператора перехо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 вместо одной инструкции может быть записано несколько инструкций, которые должны заключаться в фигурные скобки. Например, в 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<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
Таблица 4
Литература 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 с. |