Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор альтернативи




Умовні оператори

В ОP включені два умовних оператори – If і Case, кожний з яких може бути записаний у двох формах: повної й неповної.

 

Дано два значення x і y (x¹y). Необхідно порівняти ці значення й надрукувати ім'я більшої змінної.

Для розв'язання цього завдання досить порівняти обидва значення й залежно від результату порівняння вивести на друк символу «х» або «y».

Третім кроком алгоритму була структура прийняття рішення – якщо х >y, то надрукувати «, інакше надрукувати «.

У мові ОР цю структуру можна записати за допомогою оператора if.

Оператор if призначений для реалізації алгоритмічної конструкції розгалуження.


 

Розглянемо приклад який розв’язує вище наведену задачу.

program Ex_3;

var x, y: real;

begin

writeln('Enter x, y');

readln(x, y);

If x>y then writeln(‘X’)

else writeln(‘Y’)

end.

 

Повна форма оператора if має вигляд:

if Умова then Оператор1

else Оператор2;

де if, then, else – зарезервовані слова;

Умова – довільний логічний вираз;

Оператор1, Оператор2 – довільні оператори.

Блок-схема оператору представлена на рис..


Дія оператору.

Спочатку обчислюється Умова. Якщо цей вираз є істинним (True), то виконується Оператор1, що стоїть після ключового слова then і керування передається наступному за умовним оператору (Оператор2 пропускається). Якщо вираз Умова є хибним (False), то Оператор1 пропускається, виконується лише Оператор2, що стоїть після ключового слова else і керування передається наступному за умовним оператору.

 

Якщо будь-яка дія має виконуватися лише при виконанні певної умови і пропущена у разі невиконання цієї умови, то оператор if має бути записаний в скороченій формі.

 

Скорочена форма оператора if має вигляд:

if умова then Оператор;

Блок-схема представлена на рисунку.


Дія оператора.

Спочатку обчислюється Умова. Якщо цей вираз є істинним (True), то виконується Оператор, що стоїть після ключового слова then і керування передається наступному за умовним оператору. Якщо вираз Умова є хибним (False), то Оператор пропускається керування відразу ж передається на наступний за умовним оператор.

 

В Pascal оператори розділяються символом ";".

Це означає, що усередині будь-якого структурного оператора символ ";" зустрічатися не повинен, інакше все, що стоїть після нього, буде вважатися вже іншим оператором.

Приклад з помилкою:

if A > В then С:= А; ¬ помилка

else С:= В;

 

У показаному вище прикладі крапка з комою, що стоїть перед ключовим словом else закінчує текст оператора if. А це приводить до синтаксичної помилки, оскільки оператора, що починається із ключового слова else в Pascal немає.

 

Щоб не допускати таких помилок, доцільно запам'ятати таке правило:

Перед ключовим словом else символ ";" ніколи не ставиться.


 

Задача: «Потрібно перевірити чи належить значення дійсної змінної х відрізку [0; 1], і вивести відповідне повідомлення».

 
 

Розв’язок задачі з використання умовного оператору виглядати наступним чином.

program Ex_4;

var x: real;

begin

writeln('Enter x');

readln(x);

If (x >=0)and(x <= 1)

then write ('x belongs to [0; 1]')

else write ('x does not belongs to [0; 1]');

end.

 

 


 

Розв’яжемо задачу. Дана цілочислова значення а. Якщо число а – парне, то обчислити значення змінної b (b=4a), інакше обчислити змінну c ().

 

Парність визначати будемо за допомогою операції mod. Зверніть увагу, що тип змінної с буде дійсним, тому що в обчисленні використовується операція ділення.

 

По синтаксису після ключових слів then і else може стояти всього лише один оператор. Якщо ж у який-небудь із гілок альтернативи (then або else) або відразу в обох потрібно виконати більше операторів, то варто скористатися, складеним оператором begin.. end який дозволяє інтерпретувати групу операторів як один оператор.

Помітимо, що оператори, розташовані між ключовими словами begin... end, також як і скрізь, повинні розділятися крапкою з комою.


 
 

program Ex_5;

var a, b: integer;

c: real;

begin

writeln('Enter a');

readln(a);

If a mod 2 =0

then

begin

b:= 4*a;

writeln(‘b=’, b)

end

else

begin

c:= a/3;

writeln(‘c=’, c:6:2)

end

end.

Ще одна синтаксична складність коректного використання оператора if виникає при написанні вкладених операторів if.

У випадку, якщо вкладений оператор if розташовується в межах складеного оператора, великих проблем не виникає, тому що ключові слова begin і end точно обмежують область кожної альтернативи.

Наприклад;

if Умова1




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 335; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.