Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лабораторна робота № 6. Структуровані типи даних



Тема:

Структуровані типи даних.

Мета:

Навчитись складати програми з використанням операцій над множинами.

6.1. Теоретичні відомості

6.1.1. Операції з даними перелічувального типу

Перелічувальний тип задається програмістом шляхом перелічення за порядком всієї множини його значень. Всі ці значення новоствореного типу подаються їх іменами (ідентифікаторами), які є константами типу. Перелiчувальний тип задається виразом:

Type <Iм'я типу> = (Список констант iдентифiкаторiв);

Перелічувальний тип впорядковує набір своїх констант в порядку їх зростання, тому до цих велечин можна застосувати операції відношення =, <, >, якщо обидва компоненти належать до одного типу. Результатом такого відношення є логічна величина Тrue, якщо відношення справджується, тa False, якщо відношення не справджується.

Для аргументів перелічувального типу можливе застосування стандартних функцій знаходження попереднього та наступного елементів. При цьому вірні співвідношення:

Рred (Vi)=Vi-1, i=2,3,...,N; Succ (Vi)=Vi+1, i=1,2,...,N-1,

де Vi – i-й елемент списку констант перелічувального типу.

Функція Оrd для аргумента перелічувального типу видає число, що є порядковим номером даного аргумента. При цьому порядковий номер першого елемента дорівнює 0, тобто існують співвідношення:

Оrd(V1)=0; Оrd(Vi)=Оrd(Рred(Vi))+1; i=2,3,...,n.

Характерною особливістю даних перелiчувального типу в мові PASCAL є те, що вони не можуть беcпосередньо вводитися з клавiатури в програму та виводитися на дисплей. Для цього використовуються спецiальнi прийоми з використанням оператора CASE, як видно на прикладі реалізації виведення змінної типу Season:

Var Season: (Winter, Spring, Summer, Autumn);

Begin

................

Case Season of

Winter: Writeln("Winter");

Spring: Writeln("Spring");

Summer: Writeln("Summer");

Autumn: Writeln("Autumn")

end;

Введення даних перелічувального типу з клавіатури комп'ютера здійсню-ється за допомогою спеціальним чином організованих меню.

Приклад:

Дано

Type Course = (Nord,Ost,Suid,West);

Command = (Forwar, Left, Right, Back);

Корабель йшов спочатку курсом C1, а потім курс було змінено згідно наказу Rule. Визначити C2 – новий курс корабля.

Program Ship;

Var H, L: Byte;

Course: (Nord, Ost, Suid, West);

Rule: (Forwar, Left, Right, Back);

Begin

Write('Задайте курс: Північ=1 Схід=2 Південь=3 Захід=4 ');

Readln(L);

Write('Введiть команду: Назад=1 Вліво=2 Вправо=3 Вперед=4 ');

Readln(H);

Case L of

1: Course:=Nord;

2: Course:=Ost;

3: Course:=Suid;

4: Course:=West

end;

Case H of

1: Rule:=Back;

2: Rule:=Left;

3: Rule:=Right;

4: Rule:=Forwar

end;

Case Course of

Nord: Case Rule of

Back: Course:=Suid;

Left: Course:=West;

Right: Course:=Ost;

Forwar: Course:=Nord

end;

Ost: Case Rule of

Back: Course:=West;

Left: Course:=Nord;

Right: Course:=Suid;

Forwar: Course:=Ost

end;

Suid: Case Rule of

Back: Course:=Nord;

Left: Course:=Ost;

Right: Course:=West;

Forwar: Course:=Suid

end;

West: Case Rule of

Back: Course:=Ost;

Left: Course:=Suid;

Right: Course:=Nord;

Forwar: Course:=West

end;

end;

Case Course of

Ost: Writeln('Kорабель змiнив курс на Схід');

Suid: Writeln('Kорабель змiнив курс на Південь');

Nord: Writeln('Kорабель змiнив курс на Північ');

West: Writeln('Kорабель змiнив курс на Захід')

end;

END.





Дата публикования: 2014-11-04; Прочитано: 304 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...