Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

Умовний оператор у Pascalдозволяє виконати один чи два оператора, які входять до нього, залежно від значення логічного виразу.

Оператор має вигляд:

if< логічний вираз >then<оператор1 >else< оператор2>;

де if(якщо), then(то), else(інакше) - службові слова;

операторі, оператор2 - прості чи складені оператори мови.

Оператор if- це єдине речення, тому ані перед then, ані перед elseкрапку з комою ставити не можна. Порядок виконання умовного оператора показано на рис.2.2

 

True(так) ↓False(ні)

Оператор 1
Оператор 2
Оператор 3

 

 


Як видно зі схеми, якщо значення логічного виразу дорівнює true, то виконується операторі, якщо логічний вираз - false, то виконується оператор2(оператор 1 пропускається). Далі у кожному разі виконується оператор 3, що стоїть за оператором іf Наприклад, фрагмент програми обчислення функції

ІП X, ЯКЩО X > 0 ех, ЯКЩОХ<0

має вигляд

ifх>0 thenу:=ln(x) elseу:=ехр(х);

Тут логічний вираз - відношення х>0, оператор 1 і оператор2 - оператори присвоєння у:=1п(х) і у:=ехр(х).

Існує скорочена конструкція if(без else):

if<логічний вираз>then<оператор1>;

Порядок виконання цього оператора показано на рис. 2.3.

Якщо логічний вираз набирає значення False, то виконується наступний за ifоператор.

У якості операторів можна використовувати складні оператори. Наприклад (фрагмент програми): ifj:=0 then

beginShowMessage(‘Ділення на нуль’);Result:=0;

end// крапка з комою не ставляться!!!

else Result:=I/j;

 

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

 


True(так) False (ні)

 

 

Рисунок 2.3 Схема скороченого оператора умовного переходу

 

Умовні оператори можуть бути необмежено вкладеними один в одного.

В деяких випадках складно розібратися, у якій послідовності виконуються такі вкладені оператори.Наприклад: ifa>bthen

ifа>е thenс:=1 elseс:=2;

Тут важко зрозуміти, в якому разі виконується оператор С:=2,: коли хибна є умова а>b або коли вона є правдива, але хибна є умова а>е.

У таких випадках чинне є правило: elseналежить до найближчого оператора if.

У даному прикладі частина elseс:=2 належить до найближчого оператора ifа>е then, а не до оператора ifa>bthen.

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

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

Приклад. Обчислити значення функції за формулою:

 

Y =

 

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

Перший варіант:

ifх> 0 then

ifх>= 1 then y:=sqrt (х)/2

else y:=exp(l/3*ln (x))/3 else y:=exp(l/4*ln(abs(x)))/4;

Другий варіант, простіший, може бути виконано за допомогою логічних операцій і послідовності незалежних умовних операторів:

ifx<=0then y:=exp(1.4*ln(abs(x)))/4;

if (x>0) and (x<l) theny:=exp(l,3*ln(x))/3;

ifx>=ltheny:=sqrt(x)/2;

На відміну від попереднього випадку, тут завдання розв’язано за допомогою трьох умовних операторів, тоді як там використано лише один оператор, але з укладеннями.

Другий варіант е більш переважним з точки зору зручності читання та наочності програми.

 

2. 4 Оператор вибору варіанта

 

Оператор вибору варіанта є узагальненням умовного оператора: він дає можливість виконувати один з деяких операторів в залежності від значення певного виразу, що називається селектором.

У загальному вигляді оператор має вигляд:

case <селектор> of

<список-констант-1>: < оператор 1>;

<список-констант-2>: < оператор 2>;

……………………………………………

<список-констант-№>: < оператор N>;

else < оператор N+l> end;

Тут case(у разі), of(із), end(кінець) - службові слова;

<селектор> — вираз будь-якого скалярного типу, окрім дійсного; відповідно з цим і списки констант не можуть мати дійсний тип;

<оператор> - будь-який оператор мови, зокрема складений;

<список констант> - список відокремлених комами можливих значень селектора. Ці константи повинні мати той самий тип, що і селектор, вони називаються позначками варіантів. Позначка варіантів не описується у розділі Label, на неї не можна посилатися в операторі goto.

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

Якщо значення селектора не збігається з жодною з констант, то виконується оператор N+l. Else- необов’язкова частина. Якщо вона відсутня і значення селектора не збігається з жодною з позначок, то керування передається за межі оператора. На відміну від оператора if, перед elseнеобхідно ставити “;

Наприклад,

casenomer of

2: y:=g;

4: y:=g*x;

6: y:=g*sqrt (abs(X));

end;

Якщо селектор nomerдорівнюватиме 4, то виконається оператор y:=g*x, і управління буде надано операторові, розміщеному після слова End.

У операторі варіанта в якості константи припускається використання списку констант.

Наприклад,

casesof

‘+’, ‘-‘, ‘*’, ‘/’:p:=1;

'а', ‘b’: р:=2;

‘;’: р:=3;

end;

Змінна sмає бути описана у розділі опису як символьна. Якщо значенням sбуде один із символів‘+’, ‘-‘, ‘*’, ‘/’, то змінна р матиме значення 1. Якщозначенням sбуде символ 'а' або 'b', то р набере значення 2. Якщо sприйме значення ‘;’ то р дорівнюватиме 3.

Тип виразу селектора може бути визначено користувачем.

 

2.5 Приклади розв’язання задач із операторами ifі case

Приклад 1. Визначити приналежність заданого дійсного числа х до одного з двох відрізків: [а,Ь] або [c,d].

Якщо х належить одному з відрізків, то вивести повідомлення “Належить”, у противному разі - “Не належить”.

Пояснення. Виведення у вікно повідомлення реалізовується процедурою ShowMessage або функцією MessageDlg. Процедура ShowMessage виводить на екран просте діалогове вікно з текстом повідомлення з однією командною кнопкою ОК. Загальний вигляд процедур ShowMessage такий:

ShowMessage («Повідомлення»);

Заголовок вікна повідомлення у цьому разі збігається з ім'ям файла проекту.

Функція MessageDlg дозволяє додати повідомлення однієї зі стандартних позначок Windows, наприклад, позначкою “ Увага ”, а також задати кількість і тип командних кнопок.

Схема алгоритму програми зображена на рис. 2.4.

 

Початок
Введення a, b, c, d, x
Xналежить до [a,b] чи [c,d]
«Не належить»
«Належить»
Кінець

 

 


Ні Так

 

 

Форма проекту з вхідними даними та результатом має вигляд:

 

Date: 2015-12-12; view: 540; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию