11823

Операторы ветвления и выбора

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

Информатика, кибернетика и программирование

Лабораторная работа №3. Операторы ветвления и выбора 1 Цель и порядок работы Цель работы – изучить операторы используемые для организации ветвления в программе. Познакомится с логическими выражениями и операциями. Порядок выполнения работы: ознакомиться с...

Русский

2013-04-12

148.5 KB

60 чел.

Лабораторная работа №3. Операторы ветвления и выбора

1 Цель и порядок работы

Цель работы – изучить операторы, используемые для организации ветвления в программе. Познакомится с логическими выражениями и операциями.

Порядок выполнения работы:

  •  ознакомиться с описанием лабораторной работы;
  •  получить задание у преподавателя, согласно своему варианту;
  •  написать программу и отладить ее на ЭВМ;
  •  оформить отчет.

2 Краткая теория

Операторы ветвления управляют  потоком  выполнения программы.  Это условный оператор if...else и переключатель switch.

Условные операторы позволяют выбрать один из вариантов выполнения действий в зависимости от каких-либо условий. Условие – это логическое выражение, т.е. выражение, результатом которого является логическое значение истина или ложь. Выражение может иметь арифметический тип. Если оно не равно 0, то условие считается истинным. Если равно 0 , то условие считается ложным.

2.1 Оператор ветвления

Оператор if выбирает один из двух вариантов последовательности вычислений. Синтаксис условного оператора:

if (выражение)

  оператор_1;

else

  оператор_2;

Рисунок 3.1 – Блок-схема оператора ветвления

Выражение должно быть скалярным и может иметь арифметический тип или тип указателя.  Если оно не равно нулю (или не  есть  пустой указатель), то  условие  считается истинным и выполняется оператор_1. В противном случае выполняется оператор_2.  В качестве операторов нельзя использовать описания и определения.

Если в случае истинности условия необходимо выполнить несколько операторов, их можно заключить в фигурные скобки (т.е. использовать составные операторы и блоки):

if (x > 0)

{

  x = -x;

  f(x*2);

}

else 

{

  int i = 2;

  x *= i;

  f(x);

}

Прием заключения нескольких операторов в блок работает везде, где нужно поместить несколько операторов вместо одного.

Условный оператор можно расширить для проверки нескольких условий:

if (x < 0)

  cout << "Отрицательная величина";

else if (x > 0)

  cout << "Положительная величина";

else

  cout << "Ноль";

Конструкций else if может быть несколько.

Допускается сокращенная  форма  условного  оператора,  в  которой отсутствует else и оператор_2.

if (x > 0)

  x = -x;

Оператор_1 и оператор_2 могут также быть условными. Каждое else соответствует ближайшему if.

2.2 Оператор выбора

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

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

switch (переключающее_выражение)

{

  case константное_выражение_1: операторы_1;

  case константное_выражение_2: операторы_2;

  case константное_выражение_n: операторы_n;

  default:

      операторы;

}

Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимыми в языке СИ, значение которого должно быть целым.  Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным выражением.  Так как константное выражение вычисляется во время трансляции, оно не может содержать переменные или вызовы функций. Обычно в качестве константного выражения используются целые или символьные константы.

Все константные выражения в операторе switch должны быть уникальны. Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, фрагмент, помеченный ключевым словом default.

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

Управление передается тому из помеченных с помощью case операторов, для которых значение константного  выражения  совпадает  со значением переключающего выражения.

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

#include<iostream.h>

void main()

{

  int ic;

  cout <<"\n Введите любую десятичную цифру:";

  cin >> ic;

  cout << '\n';

  switch (ic)

  {

      case 0: cout << "ноль"; break;

      case 1: cout << "один,"; break;

      case 2: cout << "два "; break;

      case 3: cout << "три,"; break;

      case 4: cout << "четыре"; break;

      case 5: cout << "пять,"; break;

      case 6: case 7: cout << "шесть или семь,"; break;

      case 8: case 9: cout << "восемь или девять."; break;

      default: cout << "ОШИБКА!":

  }

}

2.3 Отношения и логические выражения

Отношение определяется как пара арифметических выражений, соединенных (разделенных) знаком операции отношения. Знаки операций отношения

!=   не равно;

==  равно;

<    меньше;

>    больше;

<=   меньше или равно;

>=   больше или равно;

Логический тип в языке Си отсутствует, поэтому принято, что отношение имеет ненулевое значение (обычно 1), если оно истинно, и равно 0, если оно ложно. Таким образом, значением отношения 6 <= 44 будет 1.

Операции >, >=, <, <= имеют один ранг

Операции сравнения на равенство == и != также имеют одинаковый, но более низкий ранг

Арифметические операции имеют более высокий ранг, чем операции отношений, поэтому в первом примере для выражения а-b не нужны скобки.

Логических операций в языке Си три: !   —   отрицание, т.е. логическое НЕ;  && –  конъюнкция, т.е. логическое И; ||  –  дизъюнкция, т.е. логическое ИЛИ.

Они перечислены по убыванию старшинства (ранга). Как правило, логические операции применяются к отношениям. До выполнения логических операций вычисляются значения отношений, входящих в логическое выражение.

3 Контрольные вопросы

  1.  Опишите оператор выбора case.
  2.  Опишите условный оператор if.
  3.  Какое назначение оператора break.
  4.  Какие операции отношения вы знеаете
  5.  Каков приоритет логических выражений.

4 Задание

  1.  Написать программу в соответствии с вариантом задания из пункта 5.
  2.  Проверить работоспособность программы.
  3.  Отладить и протестировать программу.
  4.  Оформить отчёт.

5 Варианты заданий

5.1 Оператор if

1) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

2) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

3) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

4) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

5) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

6) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

7) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

8) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

10) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

11) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

12) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

13) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

14) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

15) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

16) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

17) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

18) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

19) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

20) Вычислить и вывести на экран значения функции F.

где а, Ь, с — действительные числа.

Значения а, b, с, x  ввести с клавиатуры.

5.2 Оператор switch

1. Представить заданное целое число от 1 до 10 в римской системе счисления.

2. Реализовать в программе меню выбора арифметических действий. В зависимости от варианта посчитать значение выражения Y:=X{+|-|*|/}А. Х и А вводятся.

3. Написать программу, которая требует ввода числа месяца и, в зависимости от введенного значения, сообщает номер декады.

4. Написать программу, где ожидается ввод символа с клавиатуры, после чего определяется, является ли этот символ буквой, цифрой или специальным символом.

5. Написать программу, которая ждет ввода первой буквы названия месяца. В зависимости от этого определяет квартал. Учесть: Июнь, Июль – разные кварталы.

6. Написать программу, которая ждет ввода буквы русского алфавита и в зависимости от этого определяет гласная или согласная. Если согласная, то звонкая или глухая.

7. Написать программу, которая ждет ввода первой буквы названия месяца. В зависимости от этого определяет время года.

8. Написать программу, которая требует ввода времени дня и, в зависимости от введенного значения, желает доброго утра, доброго дня, доброго вечера или спокойной ночи.

9. Написать программу, которая ждет ввода буквы и, в зависимости от введенного значения, сообщает, является ли буква заглавной или строчной.

10. Написать программу, которая запрашивает ваше имя и рост в сантиметрах, а затем отображает информацию в виде: высокий, средний, низкий.

6 Содержание отчета

  1.  Титульный лист.
  2.  Наименование и цель работы.
  3.  Краткое теоретическое описание.
  4.  Задание на лабораторную работу.
  5.  Схема  алгоритма.
  6.  Листинг программы.
  7.  Результаты выполнения программы.


 

А также другие работы, которые могут Вас заинтересовать

24373. Многообразие типов научного знания. Сущность и структура эмпирического знания 55 KB
  Материализация и первичное обобщение данных отражения в форме знания на основе правил соответствия узнавание сравнение измерение описание образуют эмпирические факты эмпирические объекты эмпирическую информацию. Эмпирические факты условно можно разделить на два вида: а факты в основание которых лежат не зависящие от субъекта явления например природные процессы и б факты созданные человеком например экономика экономические отношения. Эмпирические факты обладают большей степенью общности чем единичные данные но меньшей чем...
24374. Сущность и структура теоретического знания 52.5 KB
  Теория это высшая самая развитая форма организации научного знания дающая целостное представление о закономерностях и существенных связях определенное области действительности объекта данной теории 77. С помощью этих знаковых образований языка теории возникает возможность более точно и глубоко судить о соответствующей изучаемой предметной области. Кроме того тот или иной вид теории определяется предметом и задачами исследования глубиной раскрытия сущности предметов и др. Также имеют место попытки поиска идеальной схемы...
24375. Основания науки: нормы и идеалы науки, роль философских идей и принципов в обосновании научного знания (законы и категории) 116.5 KB
  Среди идеалов и норм можно выделить два взаимосвязанных блока: а собственно познавательные установки которые регулируют процесс воспроизведения в различных формах научного знания; б социальные нормативы фиксируют роль науки и ее ценность для общественной жизни на определенном этапе исторического развития. Существует еще и такое мнение что в период нормального эволюционного периода развития науки возможно бессознательное использование многих научных идеалов и норм. Закон единства и борьбы противоположностей является ядром диалектики...
24376. Понятие научной картины мира. Ее исторические формы. Функции научной картины мира (как онтология, форма систематизации знаний, исследовательская программа) 119.5 KB
  Функции научной картины мира как онтология форма систематизации знаний исследовательская программа По Радугину стр. 93 Становление понятия научной картины мира Вопрос о существовании научной картины мира и ее месте и роли в структуре научного знания впервые был поставлен и в определенной степени разработан выдающимися ученымиестествоиспытателями М.Планк в рамках обсуждения проблемы онтологических оснований научного знания поставил вопрос о существовании научной картины мира.
24377. Понятие метода. Классификация методов – эмпирические и теоретические методы познания 66 KB
  Классификация методов – эмпирические и теоретические методы познания По Радугину стр. Как стороны единого процесса познания чувственное и логическое характеризуют любое познание непосредственное отношение субъекта к объекту особенности индивидуальной познавательной деятельности. Оно относится к научному познанию и связано с анализом методов и форм познания на различных уровнях научного исследования характеризуют типы исследований. Задача теоретического уровня познания состоит в познании сущности явлений их законов.
24378. Наблюдение, измерение, эксперимент как метод научного познания 93.5 KB
  Эта активность возрастает от наблюдения к модельному эксперименту. В акте научного наблюдения можно выделить: 1 объект наблюдения; 2 субъект наблюдения наблюдатель; 3 средства наблюдения; 4 условия наблюдения; 5 систему знаний исходя их которой задают цель наблюдения. Следует подчеркнуть следующие особенности научного наблюдения: опирается на развитую теорию или отдельные теоретические положения; служит решению определенной теоретической задачи постановке новых проблем выдвижению новых или проверке существующих гипотез; имеет...
24379. Анализ и синтез, индукция и дедукция как метод научного познания 54.5 KB
  Анализ – это метод исследования состоящий в мысленном расчленении разложении целого или вообще сложного явления на его составные более простые элементарные части и выделение отдельных сторон свойств связей. Однако метод анализа дает сущность в абстрактном виде вне конкретных форм ее проявления. Синтез – это метод исследования состоящий в соединении воспроизведении связей проанализированных частей элементов сторон компонентов сложного явления и постижения целого в его единстве.
24380. Формализация, идеализация и роль моделирования 93.5 KB
  Вторая группа методы построения и оправдания теоретического знания которое дано в форме гипотезы приобретающей в результате статус теории. Современная гипотетикодедуктивная теория опирается на некоторый эмпирический базис совокупность фактов которые нуждаются в объяснении и делают необходимым создание теории. Именно идеализированный объект делает возможным создание теории. Научные теории прежде всего отличаются положенными в их основу идеализированными объектами.
24381. Возникновение, сущность и роль системного подхода в научном познании (Л. Фон Берталанфи и А.Богдан) 138.5 KB
  В результате суть системного подхода исследование механизма жизни системы. Каковы же основные черты системного подхода Это прежде всего параметрическое описание поэлементного состава строения исследуемого объекта. ФОРМИРОВАНИЕ ОБЩЕНАУЧНОГО СИСТЕМНОГО ПОДХОДА В ОТЕЧЕСТВЕННОЙ ФИЛОСОФИИ 50е начало 80х гг.