Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
If (условие1) if (условие2) else операторСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Подобную запись можно интерпретировать двояко: else выполняется при невыполнении условие1 либо условие2. Для устранения этой неоднозначности существует правило: else всегда относится к ближайшему if. Таким образом, в нашем случае, ветвь else выполнится при невыполнении условие2.
Задание: Пример работы с АОС (см. также л.р. «Работа с автоматизированной обучающей системой»): Через УПРАВЛЕНИЕ | РЕЖИМ САМОСТОЯТЕЛЬНОЙ РАБОТЫ | УСЛОВНЫЙ ОПЕРАТОР IF-ELSE + ПЕРЕКЛЮЧАТЕЛЬ (ОПЕРАТОР SWITCH) выйти к меню Внимательно прочесть теорию (<F2>). Вычислить предложенные примеры, например: 1) if (y!=1) x=36; else x=34; Начинается с проверки условия (y!=1) результат проверки которой равен 0, т.к. y=1, следовательно результатом всей строки будет x=36. 2) if (y<=1) if (y==1) x=18; else x=20; Начинается с проверки условия (y<=1), т.к. в данном случае оно выполняется, происходит переход ко второй части строки: if (y==1) x=18; else x=20; в которой условие (y==1) выполняется (т.к. у=1). Следовательно, выполняется присваивание x=18 и дальнейшее выполнение строки прекращается. Следующие строки программы выполняются аналогично. Следует заметить, что при выполнении заданий в этом разделе АОС, примеры программ, как правило, не помещаются на один экран, о чем сигнализирует надпись в нижнем правом углу после нажатия <F1>. Используя предложенные клавиши (Home,End, ¯,, PgUp, PgDown) можно просмотреть всё задание. Переписать задание и ответы в тетрадь для лабораторных работ.
Контрольные вопросы 1. Что может выступать в операторе if…else в качестве условия? 2. Когда возникает неоднозначность типа «висящего else »?
Лабораторная работа №10
Программирование с использованием оператора if-else
Цель работы: Изучить оператор if-else и ознакомиться с правилами его использования в программах.
Теоретические сведения В разветвляющихся вычислительных процессах отдельные этапы вычислений (операторы) выполняются не всегда в одном и том же порядке, а в зависимости от некоторых условий, проверяемых уже по ходу вычислений, выбираются для исполнения различные их последовательности. Если, например, в программе используются вещественные переменные X, Y и Z, и на каком-то этапе решения задачи требуется вычислить Z, равное максимальному из чисел X и Y, то желаемый результат получается в результате выполнения оператора присваивания Z=X, либо оператора присваивания Z=Y. Поскольку значения переменных X и Y заранее не известны, а определяются в процессе вычислений, то в программе необходимо предусмотреть оба эти оператора присваивания. Это указание естественно сформулировать с использованием отношения X>Y: если это отношение при текущих значениях X и Y справедливо, то для исполнения должен выбираться оператор Z=Y (при X = Y безразлично, какой оператор выполнять, так что выполнение в данном случае оператора Z=Y дает правильный результат). Для задания подобного рода разветвляющихся вычислительных процессов служит условный оператор. Синтаксис оператора: Вариант 1 if(<выражение>) <оператор> Если <выражение> определено и не равно 0, то выполняется <оператор>. Вариант 2 if(<выражение>) <оператор1> Else <оператор2> Если <выражение> определено и не равно 0, то выполняется <оператор1>,иначе (т.е. если <выражение> равно нулю) выполняется <оператор2>. Таким образом, алгоритм решения упомянутой выше задачи вычисления максимального из двух чисел можно задать в виде условного оператора if (X<Y) Z=X; Else Z=Y; Первый вариант применяется в тех случаях, когда при выполнении (истинности) некоего условия, определяемого ключевым выражением, требуется выполнить некоторые действия. В противном же случае, при невыполнении данного условия, никаких действий предпринимать не нужно. Второй вариант применяется в тех случаях, когда при невыполнении условия определенного ключевым выражением, нужно предпринять какие либо действия. При формулировании алгоритма типичной является такая ситуация, когда на определенном этапе вычислительного процесса какие-либо действия надо выполнить при выполнении некоторого условия, а если это условие не выполняется, то на данном этапе вообще не нужно выполнять никаких действий. Простейшим примером такой ситуации является замена текущего значения переменной X на абсолютную величину этого значения: если X<0, то необходимо выполнить оператор присваивания X=-X: если же X>=0, то текущее значение X должно оставаться без изменений, т.е. на данном этапе вообще не нужно выполнять каких-либо действий. В таких ситуациях удобна сокращенная форма условного оператора. Рассмотрим, к примеру, такую задачу: Вычислить квадратный корень из числа определяемого переменной Angle, если значение этой переменной не отрицательное. #include <stdio.h> #include <math.h> Main() { double Angle,Result = 0; printf("Введите значение переменной:"); scanf("%lf",&Angle); if(Angle >= 0) { Result=sqrt(Angle); printf("Квадратный корень = %lf",Result); } } Рассмотрим теперь задачу, похожую на прежнюю, но немного расширенную: Вычислить квадратный корень из числа, определяемого переменной Angle, если значение этой переменной не отрицательное. Если же значение отрицательное, то сообщить об этом. #include <stdio.h> #include <math.h> Main() { double Angle,Result=0; printf("Введите значение переменной:"); scanf("%lf",&Angle); if(Angle >=0) { Result=sqrt(Angle); printf("Квадратный корень = %lf",Result); } Else printf("Квадратный корень из %lf не извлекается", Angle); } Из приведенных выше примеров можно сделать вывод, что во втором примере задача рассмотрена шире, чем в первом, так как предусматривает выдачу сообщения о причине невыполнения определенного действия (в данном случае о невозможности извлечь квадратный корень из отрицательного числа). Примечания: 1. Ключевые слова else или if могу иметь только по одному оператору, причем он может быть простым или составным. Все другие операторы будут интерпретироваться как независимые. Например, конструкция if(<выражение>) <оператор1> <оператор2> Else <оператор3> является ошибочной, так как <оператор2> будет рассматриваться компилятором как независимый, не относящийся к ключевому слову if, а наличие ветви else в данном случае воспринимается как ошибка. В подобных случаях следует применять составные операторы. Тогда рассмотренная конструкция будет выглядеть следующим образом:
if(<выражение>) { <оператор1> <оператор2> } Else <оператор3> 2. Внутри одного блока каждое ключевое слово else относится к первому из предшествующих if, которое еще не имеет соответствующего else. Например: if(<выражение1>) if(<выражение2>) { <оператор3a> <оператор3b> } Else { <оператор4a> <оператор4b> } эквивалентна следующей: if(<выражение1> && <выражение2>) { <оператор3a> <оператор3b> } if(!<выражение1> &&!<выражение2>) { <оператор4a> <оператор4b> } 3. В сложных конструкциях, содержащих много if и else, иногда явно указываются все else, после которых ставится пустой оператор. Например, выражение if(<выражение1> && <выражение2>) { <оператор3a> <оператор3b> } if(!<выражение1>) { <оператор4a> <оператор4b> } можно записать так: if(<выражение1>) if(<выражение2>) { <оператор3a> <оператор3b> } Else ; Else { <оператор4a> <оператор4b> } 4. При формировании условного выражения следует обращать внимание на приоритет операций. 5. Следует помнить, что проверка на равенство осуществляется с помощью оператора ==, а оператор = в условном выражении интерпретируется как оператор присваивания. Обращайте внимание на предупреждения компилятора, которые указывают на условное выражение в операторе if.
Задание:
2. Составить программу для вычисления величины y=x3, где x=abc при условии, что a+b/c равно нулю, и x=(a+b)c, если a+b/c меньше 0. Если a+b/c больше 0, вывести сообщение о том, что решений нет. 3. Составить программу для вычисления величины у=x3-24x, если число x принадлежит отрезкам [a,b] и [c,d]; y=3x/x3, если x принадлежит отрезку [a,b], но не принадлежит отрезку [c,d]. *** Все значения величин должны быть введены с клавиатуры. ***
Контрольные вопросы 1. Каков синтаксис и алгоритм выполнения оператора if? 2. Каков синтаксис и алгоритм выполнения оператора if – else? 3. В чем основное отличие операторов if и if – else? 4. Каковы особенности использования условных операторов?
Лабораторная работа №11
|
|||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 512; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.89.181 (0.009 с.) |