Реферат: Програмування Структури перехід та вибір варіанту типи символів та перелічувані
first:=first/second;
Цейоператорзадаєвибірпотрібногооператоразтих, якізаписанопісляслів then, залежновідзначеннязмінноїsignop. Такий вибір у мові Паскаль можна задати інакше, використавши оператор вибору варіантів, абоcase-оператор (case – англійське "випадок"). У даній програмі він має вигляд:
case signop of
1: first:=first+second;
2: first:=first-second;
3: first:=first*second;
4: first:=first/second
end;
Виразпісляслова case (тутцеім'я signop) називаєтьсяселекторомваріантів. Його значення послідовнопорівнюється з числами, що "відмічають" оператори-варіанти. Як тільки значення селектора співпаде з числом, будевиконано відповідний оператор, і все закінчиться. Якщо ж значення селектора відрізняється від усіх чисел-відміток
варіантів, то жодний із варіантів не виконується.
Селектором може бути довільний вираз будь-якого перелічуваного типу. Варіант може бути відмічений списком ізкількох сталих відповідного типу; вони записуються через кому. Наприклад, нехай робочий час у робочі дні 8годин, а у вихідні – 0. За дії означення типу Weekd ми можемо запам'ятати в змінній wt робочий час:
var dd : Weekd; wt : integer;
…
case dd of
Mon, Tue, Wed,Thu, Fri : wt:=8;
Sat, Sun : wt := 0
end.
Значення селектора порівнюється з усіма значеннями в черговому списку, і варіант виконується, якщо вонодорівнює одному зі значень списку. Множини значень у списках можуть перетинатися – буде виконано тойваріант, у списку якого вперше знайдене значення селектора.
У мові Бор ланд-Паскаль у списках, що відзначають варіанти, можна записувати не тільки сталі, але й діапазони.
Наприклад, останній оператор можна переписати так:
case dd of
Mon .. Thu, Fri: wt:=8;
Sat, Sun: wt:=0
end.
За останнім варіантом можна після слова else указати необов'язковий альтернативний варіант. Цей варіантвиконується, якщо значення селектора немає в жодному зі списків. Наприклад, останній оператор можна переписати втакому вигляді:
case dd ofMon .. Fri: wt:=8;
Sun: wt:=0
else wt:=0
end.