Студопедия

КАТЕГОРИИ:


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

Практичне заняття №14




Приклад.

Маємо три множини символьного типу:

y1 = [’A’, ’B’, ’D’, ’R’, ’M’];

y2 = [’R’, ’A’, ’H’, ’I’];

y3 = [’A’, ’R’].

Скласти програму “Операції над множинами”

1. Поєднання y1 È y2;

2. Перетин y1 Ç y3;

3. Різниця y1y2;

4. Належність елемента “R” множині y1.

5. Належність множини y3 множині y1.

Увести результати 4) і 5) операцій.

 

Program Mnogestvo(input, output);

var y1, y2, y3, x1, x2, x3: set of char;

c: char;

begin

y1 = [’A’, ’B’, ’D’, ’R’, ’M’];

y2 = [’R’, ’A’, ’H’, ’I’];

y3 = [’A’, ’R’];

x1:= y1 + y2;

x2:= y2 * y3;

x3:= y1 – y3;

write (’ множина X1 =’); {друкування множини X1}

for C:= ’A’ to ’Z’ do

if c in x1

then write (c)

if ’R’ in y1

then writeln (’ R входить до y1’)

else writeln (’ R не входить до y1’);

if y3 < = y1

then writeln (’ y2 входить до y1’)

else writeln (’ y2 не входить до y1’)

end.

Завдання:

Розробити програму одержання двадцяти рівномірно розподілених випадкових чисел, які лежать в діапазоні від 1 до 100. Одержаний ряд чисел вивести на екран монітора. З одержаної множини виділити:

1. Множину чисел, що діляться на 2 без залишку.

2. Множину чисел, що діляться на 3 без залишку.

3. Множину чисел, що діляться на 4 без залишку.

4. Множину чисел, що діляться на 5 без залишку.

5. Множину чисел, що діляться на 6 без залишку.

6. Множину чисел, що діляться на 7 без залишку.

7. Множину чисел, що діляться на 8 без залишку.

8. Множину чисел, що діляться на 9 без залишку.

9. Множину чисел, що діляться на 10 без залишку.

10. Множину чисел, що діляться на 11 без залишку.

11. Множину чисел, що діляться на 12 без залишку.

12. Множину чисел, що діляться на 13 без залишку.

Тема: Розробка програм роботи з записами

Мета заняття: Отримати практичні навички розробки програм з використанням записів.

Час: 2 год.

Навчальні питання:

1. Поняття про записи. Прості записи.

2. Ієрархічні записи.

3. Записи з варіантними полями.

Методичні рекомендації:

1. Поняття про записи. Прості записи

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

Наприклад маємо таблицю відомостей про студентів певної групи. Кожному рядку такої таблиці відповідає запис, який має своє власне ім’я, наприклад, Data. Запис складається із окремих часток, відповідно до стовпчиків таблиці – поля записів. Типи даних, які записуються у полях, можуть бути різноманітними (табл. 32).

 

Таблиця 32

Прізвище, ім’я, по батькові Успішність Наявність стипендії
N PIP Y S

У нашому прикладі поле "№" матиме цілочисловий тип (N:integer).

Поле "Прізвище, ім’я, по батькові" матиме рядковий тип даних (РІР:string).

Поле "Успішність" – реальний тип (Y:real).

Поле "Наявність стипендії" може задаватися оператором, наприклад: "+" чи "–"; "так" чи "ні".

Таким чином, тип записів, як такий, не існує. Він містить різнотипові елементи. Кожне поле запису – складене ім’я, що утворюється з двох компонентів, які відокремлюються крапкою (Data. N; Data.РІР; Data. Y).

Опис записів можна виконувати у розділі type або в розділі var (табл. 33):

1) у розділі типів:

type <ім’я типу> = record

<ім’я поля>: <тип поля>;

…………………………………;

<ім’я поля>:<тип поля>;

end;

var <ім’я типу>

Примітка: необхідно спочатку описувати нестандартні типи даних (наявність стипендії).

2) у розділі змінних:

var <ім’я типу>: record

<ім’я поля>: <тип поля>;

……………………………;

<ім’я поля>: <тип поля>;

end;

Таблиця 33

у розділі типів матимемо такий запис: у розділі змінних запис матиме вигляд:
type vuplatu=(tak, ni); dat=record N:integer; PIP:string[25]; Y:real; S:vuplatu; end; var Data:dat; type vuplatu=(tak, ni); var Data:record N:integer; PIP:string[25]; Y:real; S:vuplatu; end;

Формат оператора приєднання:

with <ім’я запису> do <внутрішній оператор>.

Для нашого прикладу змінюються оператори введення та присвоєння:

with DATA do

begin

write('Введіть порядковий номер студента');

read(N);

write('Введіть ім’я студента');

read(PIP);

end.

Внутрішнім оператором є складений оператор begin … end. Таким чином збільшується швидкість виконання програми, оскільки ім’я запису DATA буде обчислено один раз. Оператор with … do можна використовувати і для доступу до елементів масивів.

Якщо фрагмент програми містить операції над декількома записами, то в операторі приєднання можна вказати список необхідних імен записів через кому: with v1, v2, v3 do s, де v1, v2, v3 – імена записів; s – операнд.

Така форма еквівалентна:

with v1 do

with v2 do

with v3 do s.

2. Ієрархічні записи

Поля окремих записів також можуть бути записами. Тому складені імена можуть містити не дві, а більшу кількість компонент, тобто мати ієрархічний характер. Наприклад: A.B.C; A.B[ i ].C і т.д.

Розглянемо ієрархічні записи на прикладі попередньої задачі. При цьому поле "Прізвище, ім’я, по батькові" розіб’ємо на три поля і поєднаємо їх в окремий запис з іменем PIP, який буде входити до запису DATA (табл. 34).

Таблиця 34

Прізвище Ім’я По батькові Успішність Стипендія
N P I B Y S

Опис такого запису можна подати так:

Type spisok=string[20];

vuplatu=(tak, ni);

var Data:record {опис запису в цілому};

N:integer;

PIP:record {опис внутрішнього запису};

P:spisok;

I: spisok;

B: spisok;

end; {кінець внутрішнього запису};

Y:real;

S:vuplatu;

end; {кінець запису}.

3. Записи із варіантними полям

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

Приклад. Нехай tip – ім’я змінної типу t, яке набуває значення м1 і м2. Запис z містить фіксовану частину (поле n) і варіантну – з двома списками імен полів. Опис запису має вигляд:

type t = (m1, m2);

var tip: t;

z: record

n: integer; {фіксована частина}

case tip of

m1: (список полів 1); {варіантна частина}

м2: (список полів 2);

end;

Таким чином:

Початок варіантного запису відмічається службовим словом case; після визначення поля-ознаки вибору варіантів записується службове слово of;

Варіантна частина повинна знаходитись після фіксованої частини, наприкінці запису, перед службовим словом end, тобто тільки одна варіантна частина.

Синтаксичні діаграми:

1) комбінований тип:

record ® <список полів> ® end (;)

2) список полів:

<фіксована частина> ® (;) ® <варіантна частина> ® (;)

3) фіксована частина:

<індентифікатор (через,)> ® (:)® <тип> ® (;)

4) варіантна частина:

case ® <ідентифікатор> ® of ® <альтернатива (через;)> ® (;)

5) дискримінант:

<ідентифікатор> ® (:)® <ідентифікатор типу>

6) альтернатива:

<константа (через,)> ® (:)® <список полів> ®

Приклад. За допомогою типу ЗАПИСИ ввести список студентів і оцінити їх (3, 4, 5). Визначити кількість студентів, які мають “5”. Скласти програму і отримати результат.

Program Vedomost (input, onput);

var spisok:Record

FAM: string [20];

BAL: integer end;

SUM, N, i: integer;

begin

sum:= 0;

writeln (’Ввести кількість студентів N = ’);

read (N);

writeln (’Ввести прізвища та оцінки ’);

for i: = to N do

begin

readln(spisok. FAM);

read(spisok. BAL);

if spisok. BAL = 5 then

sum: = sum + 1;

end;

writeln (’Кількість відмінників ’, sum: 3)

end.

Завдання:

Виконати на комп’ютері програму опрацювання символьних даних відповідно до варіанту вказаного в табл. 35.

Таблиця 35

№ з/п Завдання
1. Група студентів здавала іспити з чотирьох дисциплін. Написати програму зарахування на стипендію студентів групи. Розмір звичайної стипендії – 50 грн. Студенту, який одержав з усіх предметів оцінки “5”, призначається стипендія, підвищена на 50%; який одержав “4” і “5” – підвищена на 25%; студенту, що одержав хоча б одну “2”, стипендія не призначається. У інших випадках призначається звичайний розмір стипендії. Списки студентів із призначенням відповідної стипендії вивести на екран дисплея. Структура запису: номер групи, порядковий номер студента, оцінки з чотирьох іспитів. Кількість записів довільна.
2. Розробити програму, що містить відомості про телефони абонентів. Кожний запис має поля: номер за порядком, прізвище абонента, номер телефону, рік встановлення. Кількість записів довільна. На екран вивести таку інформацію: - за введеним прізвищем абонента вивести номер телефону; - визначити кількість абонентів, встановлених з хххх року. Номер року вводиться з клавіатури.
3. Розробити програму, що містить відомості про асортимент іграшок у магазинах. Структура запису: назва іграшки, ціна, кількість, вікові межі, наприклад, 2-5, тобто від 2 до 5 років. Кількість записів довільна. На екран вивести таку інформацію: - назви іграшок, що підходять дітям від 1 до 3 років; - вартість найдорожчої іграшки, її найменування.
4. Розробити програму, що містить відомості про особисту колекцію книголюба. Структура запису: шифр книги, автор, назва, рік видання, номер шафи. Кількість записів довільна. На екран вивести таку інформацію: - місце знаходження книги автора Х назви У. Значення Х і У увести з клавіатури; - список книг автора Z, які знаходяться в колекції.

Закінчення табл. 35

№ з/п Завдання
5. Розробити програму, що містить відомості про співробітників університету. Структура запису: назва кафедри, прізвище працівника, рік народження, стаж роботи, посада, оклад. Кількість записів довільна. На екран вивести таку інформацію: - список співробітників пенсійного віку на сьогодні з зазначенням стажу роботи; середній стаж працюючих на кафедрі.
6. Розробити програму, що містить відомості про наявність квитків і рейсів Аерофлоту. Структура запису: номер рейсу, пункт призначення, час вильоту, час прибуття, кількість вільних місць у салоні. Кількість записів довільна. На екран вивести таку інформацію: - час відправлення літаків у місто Х; - наявність вільних місць на рейс у місто Х з часом відправлення У. Значення Х, У уводяться з клавіатури.
7. Розробити програму, що містить відомості про кількість виробів категорій А, В, С, зібраних кожним робочим за місяць. Структура запису: номер за порядком, прізвище складальника, кількість виробів за категоріями, зібраних робітниками за місяць. Кількість записів довільна. Вважаючи заданими значення розцінок SA, SB, SC за виконану роботу зі складання одиниці виробу категорій А, В, С відповідно, вивести на екран таку інформацію: - загальна кількість виробів А, В, С, зібраних кожним робітником; - відомість заробітної плати робітників; - середній розмір заробітної плати.
8. Розробити програму, що містить відомості про наявність квитків на автобусні рейси з автовокзалу м. Житомира. Структура запису: номер рейсу, пункт призначення, час відправлення, час прибуття, кількість вільних місць у салоні. Кількість записів довільна. На екран вивести таку інформацію: - час відправлення автобусів у місто Х; - наявність вільних місць на рейс у місто Х з часом відправлення У.



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


Дата добавления: 2015-05-24; Просмотров: 360; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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