Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Оператор вибору (case)




Else

End

Begin

Begin

Оператор if.

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

if <умова> then <оператор1> else <оператор2>;

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

Приклад 1: нехай потрібно знайти число m=max(a,b). Цій задачі відповідає наступний фрагмент програми на Паскалі:

if a>b then m:=a else m:=b;

Приклад 2: (без else) нехай дане ціле число i. Потрібно залишити його без зміни, якщо воно ділиться на 2, і відняти з нього 1, якщо це не так.

var i: integer;

.......

if i mod 2 = 1 then i:=і-1; {else - нічого не робити}

Примітка: у прикладі використана операція взяття залишку від ділення (mod), для отримання неповної частки в Турбо-Паскалі використовується div.

Приклад 3: (з використанням складеного оператора). Нехай дані дві змінні типу real. Потрібно поміняти місцями значення цих змінних, якщо a1>a2.

var a1,a2,buf:real;

.........

if a1>a2 then begin

buf:=a1;

a1:=a2;

a2:=buf;

end;

 

Наступний приклад використовує вкладені операторы if.

Приклад 4: Пошук коренів квадратного рівняння.

program SqEquation;

var a,b,c,d: real;

writeln;

write('Уведіть коефіцієнти a,b,c квадратного рівняння: ');

readln(a,b,c);

d:=sqr(b)-4*a*c;

if d>=0 then

if d=0 then writeln('Єдиний корінь: x=',-b/(2*a):8:3)

else writeln('Два корені: x1=',(-b+sqrt(d))/(2*a):8:3,, x2=',(-b-sqrt(d))/(2*a):8:3)

else {d<0} writeln('Корнів немає');

readln;

end.

Щоб не заплутатися в структурі цієї програми, варто пам'ятати таке правило: else завжди відноситься до останнього оператора if. Якщо ж у програмі потрібно, щоб else відносилося до одного з попередніх if, то прийдеться скористатися складеним оператором:

Приклад 5: користувач уводить натуральне число, задача програми — поставити слово «учень» у потрібну форму в сполученні з числівником (наприклад: 1 учень, 3 учня, 9 учнів і т.п.)

write('Число учнів (1..20) --> '); readln(n);

write(n, ' учень');

if n<5 then begin

if n>1 then writeln('а');

writeln('ов');

readln;

end.

У цьому прикладі довелося використовувати складений оператор (begin... end;) для того щоб частина else відносилася не до оператора if n>1, а до if n<5.

Крім оператора умовного переходу і циклів у Турбо Паскалі мається ще одна керуюча конструкція, одна з назв якої — оператор вибору. Насправді це ускладнений оператор if, він дозволяє програмі виконуватися не двома способами, у залежності від виконання умови, а декількома, у залежності від значення деякого виразу. У загальному виді цей оператор виглядає так:

case Вираз of

Варіант1: Оператор1;

Варіант2: Оператор2;

...

Варіант: Оператор;

[ else Оператор1;]

end;

(Пояснення: квадратні дужки означають те, що частина else може бути відсутньою).

Вираз в найпростіших випадках може бути цілочисельним чи символьним. Як варіанти можна застосовувати:

1. Константний вираз такого ж типу, як і вираз після case. Константний вираз відрізняється від звичайного тем, що не містить змінних і викликів функцій, тим самим він може бути обчислений на етапі компіляції програми, а не під час виконання.

2. Інтервал, наприклад: 1..5, 'а'..'z'.

3. Список значень чи інтервалів, наприклад: 1,3,5..8,10,12.

Виконується оператор case так: обчислюється вираз після слова case і один по одному перевіряється, підходить отримане значення під який-небудь варіант, чи ні. Якщо підходить, то виконується відповідний цьому варіанту оператор, інакше — є два варіанти. Якщо в операторі case записана частина else, то виконується оператор після else, якщо ж цієї частини ні, те не відбувається взагалі нічого.

Розглянемо приклад. Нехай користувач уводить ціле число від 1 до 10, програма повинна приписати до нього слово «учень» з необхідним закінченням (нульове, «а» чи «ов»).

 

program SchoolChildren;

var n: integer;




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


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


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



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




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