- •Контрольні запитання
- •Умовний інструкція
- •Літерний тип
- •Короткі теоретичні відомості
- •Варіанти індивідуальних завдань
- •Одновимірні масиви
- •Завдання на комп'ютерний практикум:
- •Двовимірні масиви Мета роботи : вивчити засоби вводу та виводу двовимірних масивів та правила роботи з ними.
- •Завдання на комп'ютерний практикум:
- •Варіанти індивідуальних завдань:
- •Функції (Function).
- •Процедури.
- •Робота з даними типу string.
- •Множини(Set).
- •Робота з даними комбінованого типу (Record)
Робота з даними комбінованого типу (Record)
Мета роботи:- освоїти принципи роботи з даними типу Record
Завдання на виконання роботи:
1. Скласти програму згідно з варіантом індивідуального завдання.
2. Записати текст програми у файл з розширенням pas.
3. Виконати редагування програми та обчислення за нею.
4. Оформити звіт по виконанню лабораторної роботи.
Варіанти індивідуальних завдань:
1. type sl =array[1..10] of char;
nomtel =1000000..9999999;
znak=record
bam:ssl;
nom:nomtel;
end;
str=array[1..20] of znak;
zapkn=array[a..z] of str;
Вважаючи, що на кожній сторінці записної книжки вказані прізвища, що починаються з однієї літери - індекса цієї сторінки, написати програму , яка визначатиме, чи є в записній книжці ЗП дані про знайомого, який має телефон з номером НТ, якщо є, то надрукувати прізвище цього знайомого. Введіть декілька прізвищ у записну книжку, виконайте програму і надрукуйте результат.
2. type
date=record
subject:array[1..5] of string[15];
mark: array[1..5] of integer;
end;
stubrec= record
name : string[10];
sub:date;
end;
Скласти програму, яка друкуватиме прізвища відмінників та суму стипендії, яку вони будуть отримувати.
3. type
date=record
month:1..12;
year: integer;
end;
bookrec= record
title : string[40];
author: string[20];
entry:date;
end;
var list:array [1..15] of bookrec;
Скласти програму, яка друкуватиме прізвища авторів та назви підручників з алгоритмічної мови Паскаль.
4. Використовуючи оператор приєднання надати змінній adr1 значення, відповідаючі вашій адресі. Крім того, змінній adr2 надати таке ж значення, змінивши і в ньому номер будинку на 20. Вивести ряд адрес і надрукувати їх в алфавітному порядку міст.
5.type
ver1=record
namever:string;
vic1:1000..9999;
end;
spis= array [1..30] of ver1;
Скласти програму, яка друкуватиме назву найвищої вершини із списку.
6. Оформити анкети школярів (ім’я, вік, школа, оцінки по п’яти предметам). Розташувати анкети так, щоб прізвища знаходилися в алфавітному порядку.
7. Описати комбінований тип для зображення екзаменаційної відомості (предмет, № групи, дата екзаменів, 25 рядків з полями, прізвище студента, № залікової книжки, оцінка на екзамені). Ввести ряд прізвищ з атрибутами і надрукувати відомість, розташувавши прізвища в алфавітному порядку.
8. Описати у вигляді запису комплексне число і функції додавання, віднімання, множення і ділення комплексних чисел:
а) ввести два числа, задати вид операції, виконати операцію і надрукувати результат;
б) ввести ряд чисел і надрукувати їх у порядку зростання модулів.
9. Задати комбінований тип для заповнення бланку на книгу (відомості про книгу: шифр, автор, назва; відомості про читача: № читацького квитка, прізвище, дата замовлення, час замовлення). Ввести ряд умов і надрукувати їх у послідовності залежно від дати і часу замовлення книги.
10. type
date= record
subject:array{1..5] of string[15];
mark: array{1..5] of integer;
end;
studrec= record
name : string[10];
sub:date;
end
Скласти програму, яка друкуватиме прізвища студентів та назву предметів, з яких вони отримали незадовільні оцінки.
11.Задати комбінований тип, який описуватиме семінар (предмет, викладач, номер групи, день тижня, години занять, аудиторія). Надрукувати розклад занять для академічних груп.
12. Задати комбінований тип, який описуватиме адресу (континент, країна, місто, кількість населення в місті). Надрукувати назви міст на кожному континенті, у яких проживає найбільше людей.
14. type
time=record
hour :0..23;
min,sec:0..59;
end;
а)Скласти програму, яка обчислює час d, що пройшов від часу t1 до часу t2 : d=t2-t1.
б) Розмістити і надрукувати в рядок час, з заданим інтервалом відносно часу початку, у порядку збільшення.
15. Задати комбінований тип, який описуватиме книги (автор, назва книги, назва видавництва, рік видання, розділ науки або літератури (наприклад, хімія або фантастика). Надрукувати відомості про книгу, розташувати їх в алфавітному порядку у відповідному розділі науки.
16. const n=300;
type rec=record;
key : integer:
data : array[1..99] of ¢a..z¢
end;
table=array[1..n] of rec;
Вважаючи, що у таблицю занесені тіла різноманітних ключів, скласти програму, яка упорядковує записи у таблиці по зростанню їх ключів.
17. type time=record
hour:0..23;
min:0..59;
sec:0..59;
end;
а) описати логічну функцію pan (T1, T2) для перевірки чи стоїть час Т1 попереду Т2 (у рамках доби).Ввести Т1 та Т2, а також вивести результати ;
б) описати процедуру add_sec (Т , Т1), надаючи Т1 час на одну секунду більший, ніж Т ( прийняти до уваги час суток);
в)ввести ряд часів та надрукувати їх у порядку зменшення.
18. type name = (Jon,Juliya,Tanya,Sandra,Alfred,Adolf,Fred,Samanta,
Jack);
inf=record
pol : (male,female);{чоловічий,жіночий}
hight: byte:
end;
group=array[name] of inf;
Знайти зріст найвищого чоловіка групи та надрукувати його ім’я.
19. type str=array[1..16] of char;
дата=record
число: 1..31;
місяць: 1..12;
рік: 1900..1980;
end;
анкета=record
прізвища: str;
стать: (чол, жін);
день народжен: дата
end;
група=array[1..25] of анкета;
Скласти програму, яка друкує усі прізвища людей з групи Пр, прізвища яких починаються на літеру Літ та дати їх ( людей) народження.
20. type
name=(Juliya, Tanya, Sandra, Alfred, Adolf, Fred,
Samanta,Lari);
inf=record
pol : char;
hight: byte:
end;
group=array[name] of inf;
Знайти середній зріст жінок цієї групи. Результати надрукувати.
21. type
число= 1..31;
місяць= 1..12;
рік= 1..2000;
дата=record;
ч: число;
м: місяць;
р: рік;
end;
Враховуючи, що всі дати даються за новим стилем, описати функцію Кількість днів(D), що підраховує, скільки днів пройшло з 1-го січня 1-го року нашої ери до дати(D). Ввести D та надрукувати результати.
22. type
число=1..31;
місяць=1..12;
рік=1..2000;
дата=record;
ч: число;
м: місяць;
р: рік;
end;
тиждень=( пн, вт, ср...);
Враховуючи, що всі дані даються по ”новому стилю”, описати функцію ДН (D) для визначення дня тижня, на який приходиться дата D (1 січня 1-го року н.е. було понеділком). Введіть D та виведіть результати.
23. type
name=(Juliya, Tanya, Alfred, Adolf, Fred, Samanta,Lari,Jack,Jon);
inf=record
pol : char;
hight: byte:
end;
group=array[name] of inf;
Знайти чи є у групі хоча б дві людини одного зросту. Результати надруку-вати.
19 .type
str=array[1..16] of char;
дата=record
число: 1..31;
місяць: 1..12;
рік: 1900..1980;
end;
анкета=record
прізвища: str;
стать: (чол, жін);
день народжен: дата
end;
група=array[1..25] of анкета;
Скласти програму, яка друкує прізвище найвищого чоловіка з групи та дату його народження.
25 .type
data=record
month:(jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, des);
num=1..31;
days:(su, mo, tu, we, th, fr, sa);
end;
Написати програму, яка б друкувала спочатку зимові дати, а потім літні дати, надаючи відповідній даті день тижня.
26. type
date= record
subject:array{1..5] of string[15];
mark: array{1..5] of integer;
end;
studrec= record
name : string[10];
sub:date;
end
Скласти програму, яка друкуватиме прізвища студентів та назву предметів, з яких вони отримали відмінно та добре. Надрукувати інформацію для шести груп факультету.
27. type
Notebook=record
family: string[15];
firstname: strimg[15];
secondname:string[15];
adres:string[50]
phone: strimg[15];
end;
var nb: array[1..10] of Notebook;
Написати програму, яка б виконувала функції записної книжки, та включала в себе формування записів, упорядковування записів за абеткою, пошук записів по першій літері прізвища. Надрукувати сформовану записну книжку, а також знайдений запис.
28. Скласти програму, яка б визначала, який з комп ‘ютерів з приблизно однаковими характеристиками коштує дешевше.
29. Деканат хоче знайти пари студентів для проживання в одній кімнаті гуртожитку, орієнтуючись на індивідуальні характеристики кожного студента, представлених в початковому списку стандартних літерних даних
( прізвище, номер студентського квитка, спеціалізація, спортивні інтереси і хобі).
Наприклад рядок даних:
Джим Джеймс 123567 327 135
Для зберігання даних використати наступну структуру:
тype
interes= record {інтереси}
mayor: integer; {професія}
sports: integer; {спорт}
hobbies: integer {хобі}
end;
styd= record {портрет студента}
name=: strimg[20]; {ім’я}
stud_no: : strimg[7]; {номер студентського квитка}
interes: interes;
room_mate: 0..10
end;
dorm=array[1..10] of stud;
var student: dorm;
Вибраний товариш по кімнаті заноситься в поле room_mate, на початку програми це поле встановлюється рівним 0.
Прочитати початкові дані про студентів в рядок записів student.
Починаючи з першого студента програма підбирає напарника, забезпечивши близкість інтересів. В поле room_mate поміщується номер вибраного товарища по кімнаті. ”Заселив” кімнату, програма звертається до списку і знаходить першого вільного студента та повторює той же процес. По завершенню надрукувати список підібраних п’яти пар.
30. Модернізувати програму варіанту 29 таким чином: розміщувати студентів використовуючи інформацію про стать студента., в кінці додатково надрукувати прізвища студентів, для яких не вдалося розшукати напарника.
