Оператор условия if-else

Общая форма записи условного оператора, его назначение и синтаксис. Случаи использования сокращенных вариантов записи при программировании на С++. Вложенные операторы условия и условия их правильной работы. Составные логические выражения и их применение.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 15.07.2009
Размер файла 25,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Лабораторная Работа

На тему: "Оператор условия if-else"

1. Назначение и синтаксис

Оператор условия if-else служит для выбора направления работы программы в зависимости от условий, сложившихся в данной точке программы на момент ее выполнения.

Общая форма записи условного оператора

if (<условие>)

{

<блок операторов 1>;

}

else

{

<блок операторов 2>;

}

Если на момент выполнения <условие> истинно, программа передает управление <блоку операторов 1> и, далее, первому оператору за пределами конструкции if-else. При этом <блок операторов 2> не выполняется. Иначе, если <условие> ложно, выполняется <блок операторов 2>, а <блок операторов 1> пропускается. Соответствующая блок-схема

Фигурные скобки в синтаксисе оператора if-else используются для выделения в тексте блоков 1 и 2. Старайтесь располагать закрывающую скобку под открывающей для улучшения читаемости программного кода. Для этой же цели текст внутри фигурных скобок необходимо смещать вправо на несколько позиций.

В качестве условия в операторах if-else могут использоваться любые логические выражения, принимающие значения «истинно» или «ложно» (true - false). Ниже приведена таблица с указанием простейших операций сравнения целых и вещественных чисел

операция

знак операции

пример записи на C/С++

больше

>

A > B

меньше

<

C < 2

больше либо равно

>=

k >= 0

меньше либо равно

<=

i <= 10

равно

==

x == y

не равно

!=

D!= 0

Пример 1. Требуется написать программу, переводящую температуру по шкале Цельсия TC (°С) в температуру по Кельвину TK (К). Значение TC вводится пользователем с клавиатуры.

Решение. Используем известную формулу преобразования - TK = TC - T0, где T0 = -273 °С - температура абсолютного нуля. Будем считать введенное TC некорректным, если оно меньше T0.

 // - Kelvin vs Celsius -

#pragma hdrstop

#include <iostream.h> // для потокового В/В

#include <conio.h> // для консольного В/В (getch)

#pragma argsused

int main (int argc, char* argv[])

{

float T0 = -273; // объявляем и инициализируем T0

float Tc, Tk; // объявляем вещественные Tc и Tk

cout<<» Vvedite Tc =»; // выводим приглашение

cin>>Tc; // запрашиваем Tc

if (Tc<T0) // проверяем условие Tc<T0

{

cout<<» Tc < T0!»; // условие истинно, выводим на

} // экран сообщение об ошибке

else

{

Tk = Tc-T0; // условие ложно, рассчитываем

cout << «Tk =» << Tk; // Tk и выводим на экран

}

getch(); // задержка до нажатия на клавишу

return 0; // завершение программы

}

 // -

Наберите приведенный выше код, откомпилируйте его и запустите программу на выполнение. Исследуйте результаты работы при различных значениях TC.

2. Сокращенные варианты записи

При программировании обыденной является ситуация, когда требуются некоторое действие в ответ на сложившиеся условия (например, если получены неверные исходные данные от пользователя, то выдать сообщение об ошибке и выйти из программы). В таких случаях в программах на C++ может использоваться сокращенная запись оператора условия с отсутствующим блоком else. Общая форма такой записи

if (<условие>)

{

<блок операторов>;

}

Здесь в случае истинности условия управление передается блоку операторов в фигурных скобках. В случае ложности условия этот блок пропускается. Соответствующая блок-схема отличается от предыдущей отсутствием одного «плеча»

Другой вариант сокращения применяется в случае, когда какой-либо из блоков if или else состоит только из одного оператора. В этом случае допускается отсутствие фигурных скобок, ограничивающих этот блок.

if (<условие>)

оператор 1;

else

оператор 2;

Здесь в качестве операторов 1 и 2 могут быть не только простые однострочные арифметические действия или операторы ввода-вывода, но и сложные многострочные конструкции, например другие (вложенные) операторы условия или операторы цикла, которые будут рассмотрены ниже.

3. Вложенные операторы

Операторы условия могут быть вложенными друг в друга, в соответствии с тем программным алгоритмом, который они реализуют. Допускается произвольная степень их «вложенности».

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

A) правильная запись

if (a<=b)

{

if (x!=0)

cout<<» x!=0»;

else

{

x = 1;

y = 0;

}

}

else

{

a = b;

cout<<a;

}

Б) ошибочная запись

if (a<=b)

{

if (x!=0)

cout<<» x!=0»;

else

{ // начало else

x = 1;

y = 0;

}

else

{

} // конец else

a = b;

cout<<a;

}

В приведенном примере один из операторов (выделен полужирным шрифтом) вложен в другой. Запись Б) является ошибочной в силу того, что блок else внутреннего оператора условия частично пересекается с обоими блоками if и else внешнего оператора.

Пример 2. Пользователь вводит с клавиатуры три целых числа a, b, c. Необходимо вывести на экран наибольшее из этих чисел.

Решение. Один из возможных алгоритмов решения этой задачи показан на следующей блок-схеме.

Схема может быть реализована программно с помощью вложенных операторов if-else

 // - Выбор наибольшего из 3 чисел -

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#pragma argsused

int main (int argc, char* argv[])

{

float a, b, c; // объявляем три переменные

cout<< «Vvedite a -»; // вводим значения a, b, c

cin>>a;

cout<< «Vvedite b -»;

cin>>b;

cout<< «Vvedite c -»;

cin>>c;

if (a>b) // если a > b

if (a>c) // и если a > c

cout<<» max = «<<a; // то выводим на экран a

else // иначе, т.е. если a <= с

cout<<» max = «<<c; // выводим с

else // иначе, т.е. если a <= b

if (b>c) // и если b > c

cout<<» max = «<<b; // то выводим b

else // иначе, т.е. если b <= а

cout<<» max = «<<c; // выводим с

getch(); // задержка до нажатия любой клавиши

return 0;

}

 // -

Разберите блок-схему этого алгоритма и его программную реализацию. Модифицируйте алгоритм и программный код для поиска наименьшего из трех чисел.

4. Составные логические выражения

Условие в операторе if-else может быть выражено не только в виде простого сравнения двух числовых значений. Например, весьма распространены двойные условия, которые в математике записываются в виде «a < b < c». Запись означает, что значение b лежит в диапазоне между значениями a и c. В программе такие условия должны быть переформулированы с использованием простых операций сравнения и логических операций «И», «ИЛИ», «НЕ»

логическая операция

знак в С++

наименование знака

И

&&

двойной амперсанд

ИЛИ

||

двойная вертикальная черта

НЕ

~

тильда

В частности, выражение «a < b < c» сформулируем как «a меньше b, и b меньше c». На С++ это будет записано как (a<b)&&(b<c). В тексте программы соответствующий оператор будет иметь вид

if((a<b)&&(b<c))

{

… … …;

}

Пример 3. На пустой шахматной доске в позиции (n, m) находится белая пешка, в позиции (k, l) - черный слон. Здесь первая координата есть номер столбца шахматной доски, вторая - номер строки (обе изменяются в диапазоне от 1 до 8). Оцените текущую ситуацию в соответствии с тремя вариантами

§ пешка находится под ударом,

§ слон находится под ударом,

§ слон и пешка в «безопасности».

Решение. Примем во внимание, что пешка может атаковать две ближайшие к себе позиции по диагонали вперед, а слон атакует обе свои диагонали полностью. Отсюда могут быть сформулированы условия

· «((k = n+1) ИЛИ (k = n_1)) И (l = m+1)» - атака пешки на слона,

· «(k+l = n+m) ИЛИ (k-l = n-m)» - атака слона на пешку,

· иначе фигуры в безопасности.

 // - Шахматная композиция -

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

int main (int argc, char* argv[])

{

int n, m, k, l;

cout<<«Koordinaty beloi peshki:«<<endl;

cout<<» vvedite n -»;

cin>>n;

cout<<» vvedite m -»;

cin>>m;

cout<<«Koordinaty chernogo slona:«<<endl;

cout<<» vvedite k -»;

cin>>k;

cout<<» vvedite l -»;

cin>>l;

if(((k==n+1)||(k==n_1))&&(l==m+1)) // атакован слон

cout<<endl<< «Atakovan chernyi slon!»;

else

if((k+l==n+m)||(k-l==n-m)) // атакована пешка

cout<<endl<< «Atakovana belaya peshka!»;

else // нет атаки

cout<<endl<< «Figury v bezopasnosti»;

getch();

return 0;

}

 // -


Подобные документы

  • Условная функция. Логические выражения. Вложенные логические функции ЕСЛИ. Особенности записи логических операций в табличных процессорах: сначала записывается имя логической операции (И, ИЛИ, НЕ).

    реферат [7,9 K], добавлен 17.11.2002

  • Ознакомление с формой записи и работой операторов условного if (если) и безусловного а goto (идти к) переходов как способами организации ветвления в программе. Изучение оператора выбора альтернативы - switch (переключатель). Использование функции default.

    лабораторная работа [72,0 K], добавлен 15.07.2010

  • Особенности использования переменных вещественного типа в программе. Основные виды типов данных: простые, структурированные, указатели, процедурные, объекты. Работа и структура оператора while. Характеристика основных отличий while от оператора repeat.

    контрольная работа [31,4 K], добавлен 17.08.2010

  • Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.

    курсовая работа [75,0 K], добавлен 21.03.2013

  • Понятие логических выражений, их назначение в создании алгоритмов. Список операторов сравнения, используемых в табличном редакторе Excel. Синтаксис функции "если" и примеры ее использования. Логические операторы "и", "или", "не", "истина", "ложь".

    презентация [108,9 K], добавлен 07.03.2013

  • Характеристики операторов языка Си. Операторы безусловного и условного перехода: if, if-else, if-else if. Оператор переключатель switch. Оператор цикла с предусловием while, постусловием do-while. Упрощение логических выражений, взаимозаменяемость циклов.

    лабораторная работа [30,0 K], добавлен 06.07.2009

  • История развития языка программирования Pascal, его основные концепции. Вычисления в математических задачах. Изменение порядка выполнения инструкций программы. Выполнение оператора цикла. Логические выражения, линейные алгоритмы, условные операторы.

    методичка [847,6 K], добавлен 10.01.2013

  • Запись в языке программирования – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поле записи как обычная переменная. Операторы сравнения, присоединения. Программа с использованием массива структур.

    реферат [11,5 K], добавлен 19.01.2009

  • Понятие и принципы реализации оператора ветвления, его значение и роль в языке программирования Паскаль. Основные логические операции и сложные логические выражения, их содержание. Программа упорядочения значений двух переменных, ее этапы и методы.

    презентация [187,9 K], добавлен 02.04.2014

  • Изучение приемов использования операторов ветвления и операторов циклов в С. Управляющие структуры или операторы управления: их значение для управления последовательностью вычислений в программе. Блоки и составные операторы. Универсальный оператор цикла.

    лабораторная работа [17,7 K], добавлен 06.08.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.