WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Програмування: Структури перехід та вибір варіанту, типи символів та перелічувані - Реферат

Програмування: Структури перехід та вибір варіанту, типи символів та перелічувані - Реферат

на дві "одиниці" того типу, до якого належить z. Якщо змінна z типу char і має значення 'A', то в результаті виконання inc(z, 2) її значенням буде 'C'.
Значення виразу може бути й від'ємним - тоді z зменшиться. Аналогічно за виконання dec(z, 3) значення z зменшується у його типі, наприклад, від 3 до 0 або від 'D' до 'A'.
4. Означення власних перелічуваних типів
Мова Паскаль має засоби означення власних типів, необхідних у створенні реальних програм. Носій типу, тобтомножина його елементів, задається в означенні імені типу. Загальний вигляд означення такий:
type ім'я = вираз, що описує елементи множини;
Службове слово type - це англійське "тип". З виразами, що задають множини елементів, ми будемо знайомитися поступово.
Найпростіший вираз - це ім'я типу, уже означене вище або ім'я стандартного типу. Наприклад, означення
type int = integer;
задає нове іменування типу integer. Після цього означення скрізь замість довгого імені integer можна писати коротке іnt.
Вирази, що задають множини елементів, можна записувати як в означенні імені типу, так і на місці імені типу в означеннях змінних.
Мова Паскаль дозволяє програмісту означати свої власні перелічувані типи. Вони називаються типами-переліками та типами-діапазонами. Переліки наочно подають множини таких значень, що природно позначаються словами. Наприклад, сигнали світлофора або дні тижня.
Множину днів тижня, позначену {Пн, Вт, Ср, Чт, Пт, Сб, Нд} у мові Паскаль можна задати, означивши тип-перелік з ім'ям, наприклад, Weekd:
type Weekd=(Mon, Tue, Wed, Thu, Fri, Sat, Sun).
Тут ужито скорочення від англійських слів Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday -понеділок, вівторок тощо до неділі.
Аналогічно сигнали світлофора можна задати, определив тип Lights:
type Lights=(red, yellow, green) {червоний, жовтий, зелений}
Як бачимо, перелік задається виразом вигляду ( список ідентифікаторів )
Ідентифікатори списку після цього означення виступають сталими відповідного типу. Сталі не можуть повторюватися в означеннях того самого блока. Наприклад, якщо разом із типом сигналів світлофора означити
ще тип кольорів райдуги, то використовувати імена red, yellow, green не можна.
Порядок сталих у списку задає операції ord, pred і succ, означені для всякого переліку. Наприклад, ord(Mon)=0, ord(Tue)=1 тощо, ord(Sun)=6, succ(Mon)=Tue, pred(Sat)=Fri. У відповідності зі значеннями ord означено й порівняння, наприклад, redВираз із сталими перелічуваних типів можна присвоювати однотипним із ними змінним.
Сталі й змінні перелічуваних типів, на відміну від базових типів, не можна вказувати у викликах процедур виведення та введення.
Будь-який перелічуваний тип, стандартний або тип-перелік, означений вище в програмі, може виступати базовим для типу-діапазону. Він задається виразом вигляду
стала1..стала2,
де стала1 <= стала2. Наприклад, ми можемо означити типи
type hundred=0..99; chesslet='A'..'H'; Workd=Mon..Fri
або змінні var stop : red..yellow; column : chesslet тощо.
Для діапазону означено ті самі операції, що для його базового типу.
5.. Оператор вибору варіантів
Розробимо програму "найпростіший калькулятор" . Будемо використовувати змінну signop із значеннями 1, 2, 3 або 4, що познає знаки операцій відповідно "+", "-", "*", "/". Її значення, отримане в результаті читання, порівнюємо з 1, 2, 3, 4 та виконуємо відповідні їм дії:
if signop=1 then first:=first+second else
if signop=2 then first:=first-second else
if signop=3 then first:=first*second else
{signop=4}
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.
Задачі
1)Переписати "найпростіший калькулятор із використанням case-оператора і читанням знаків операцій у вигляді символів.
2)У давньояпонському календарі був прийнятий 60-річний цикл із п'яти 12-річних підциклів, послідовно позначених кольорами - зеленим, червоним, жовтим, білим та чорним. У кожному підциклi послідовні роки мали назви тварин: пацюка,
корови, тигра, зайця, дракона, змії, коня, вівці, мавпи, курки, собаки та свині. 4-й рік нової ери - рік зеленого пацюка - був початком чергового циклу.
Написати програму читання року нової ери та друкування його назви за давньояпонським календарем.
Loading...

 
 

Цікаве