- •Для студентів I курсу денної форми навчання зі спеціальності 6.080200 – «інформатика» (у тому числі скорочений термін навчання)
- •Лабораторна робота №1 Програмування лінійних алгоритмів.
- •Контрольні питання:
- •Задачі.
- •Лабораторна робота №2 Програмування алгоритмів, що розгалужуються
- •Лабораторна робота №3
- •Задачі.
- •Лабораторна робота №4 Програмування циклічних алгоритмів (продовження)
- •Контрольні питання
- •Задачі.
- •Лабораторна робота 5 Програмування з використанням масивів
- •Контрольні питання
- •Лабораторна робота 6. Програмування з використанням записів
- •Змінні типу String аналогічні масивам типу Char. Їхньою відмінністю є те, що число символів (довжина рядка) може динамічно змінюватися в інтервалі від одиниці до заданого верхнього значення.
- •Контрольні питання
- •Лабораторна робота 7 Програмування з використанням множин
- •Контрольні питання
- •Лабораторна робота 8 Програмування з використанням типу запис
- •Приклад. Дано два раціональних числа, опишіть їх, використовуючи структуру даних запис (чисельник, знаменник). Скоротити їх, знайти їх суму. Етапи рішення програми:
- •Контрольні питання
- •Лабораторна робота 9 Програмування з використанням процедур і функцій
- •Контрольні питання
- •Задачі.
- •Лабораторна робота 10 Робота з файлами
- •Контрольні питання
- •Лабораторна робота 11 Графіка в Turbo Pascal
- •Процедури і функції модуля craph Процедури.
- •Функції.
- •GraphResult Повертає значення GrOk, що відповідає коду 0, якщо всі графічні операції програми виконалися без помилок, чи повертає числовий код помилки (від -1 до -14).
- •Приклад. Побудувати правильний n - кутник.
- •Лабораторна робота 12 Контрольна робота
- •Контрольні питання
- •Література
- •39614, М. Кременчук, вул Першотравнева, 20
Лабораторна робота 8 Програмування з використанням типу запис
Мета роботи. Познайомитись з поняттям "запис"; виробити навички роботи зі структурою даних запис у мові програмування Pascal. Навчитися правильно описувати тип record, уміти ініціалізувати змінні типу record, виводити на екран змінні типу record; навчиться вирішувати задачі на використання записів
Під записом розуміється структура даних, що поєднує під одним ім'ям дані різних типів. Записи складаються з фіксованого числа елементів, названих полями. Поле - це змінна визначеного типу. Різні поля можуть мати (на відміну від елементів масиву) різний тип. Звертання до елемента запису виконується за допомогою складеного імені. Перша частина складеного імені - це ім'я запису, друга частина - ім'я поля. Між ім'ям запису й ім'ям поля ставиться точка: ZAP.IMP, де ZAP - ім'я запису, IMP- ім'я поля.
Перед виконанням роботи необхідно вивчити правила опису і використання записів, типізованих констант типу запис, оператора приєднання WITH.
Приклад. Дано два раціональних числа, опишіть їх, використовуючи структуру даних запис (чисельник, знаменник). Скоротити їх, знайти їх суму. Етапи рішення програми:
-
Складемо блок-схему програми
-
Уточнимо вміст блоку "Обчислення НСД для чисельника і знаменника кожного дробу". По-перше, НСД це найбільший загальний дільник, число вкрай необхідне щоб скоротити дріб. Обчислювати НСД будемо по алгоритму Евкліда. Нехай дані два числа а і b:
Як числа a і b будуть брати участь чисельник і знаменник дробів. Деталізувати блок скорочення і складання дробів не будемо. Бажано блок "Пошук НСД" оформити у виді функції, що випереджає тему наступної лабораторної роботи.
-
Переведемо програму на мову Паскаль
Program example9;
Type Tfraction = record;
Chisl: Integer;
Znam; Word;
End;
Function nod(a,b:integer):integer;
Var k:integer;
Begin
If a>b then k:= a else k:=b;
While not((a mod k=0) and (b mod k =0)) do dec(k);
End;
Var x,y,s: Tfraction; n,p:integer; st: string;
begin
writeln('Уведіть два раціональних числа');
write('x= '); readln(st); n:= post('/',st);
val(copy(st,1,n-1),x.chisl,p);
val(copy(st,n+1,length(st)-n),x.znam,p);
write('y= '); readln(st); n:= post('/',st);
val(copy(st,1,n-1),y.chisl,p);
val(copy(st,n+1,length(st)-n),y.znam,p);
{знаходимо НСД для кожного дробу і скорочуємо їхній}
n:=nod(x.chisl,x.znam);
x.chis:= x.chisl div n;
x.znam:= x.znam div n;
n:=nod(y.chisl,y.znam);
x.chis:= y.chisl div n;
x.znam:= y.znam div n;
writeln('Скорочені дроби:');
writeln('X= ',x.chisl,'/',x.znam);
end.
Контрольні питання
-
Як описуються змінні типу запис?
-
У яких випадках доцільно використовувати змінні типу запис?
-
З яких компонентів складається змінна типу запис?
-
Яке призначення оператора WITH?
-
Які операції припустимі над полями запису?
-
У чому відмінність записів від масивів?
Задачі
Багаж пасажира характеризується кількістю речей і загальною вагою речей. Зведення про багаж кожного пасажира являють собою запис із двома полями: одне поле цілого типу (кількість речей) і одне - дійсне (вага в кг). 1. Знайти багаж, середня вага однієї речі в який відрізняється не більш, ніж на 3 кг від загальної середньої ваги однієї речі.
2. Знайти число пасажирів, що мають більш двох речей і число пасажирів, кількість речей яких перевершує середнє число речей.
3. Визначити, чи є два пасажири, багажі яких збігаються по числу речей і розрізняються по вазі не більше ніж на 0,5 кг.
4. З'ясувати, чи є пасажир, багаж якого перевищує багаж кожного з інших пасажирів і по числу речей, і по вазі.
5. З'ясувати, чи є пасажир, багаж якого складається з однієї речі вагою 3 кг.
Після вступу в ВУЗ про студентів зібрана інформація: прізвище, чи потребує гуртожиток, яку школу закінчив, яку мову вивчав.
6. Скласти програму, що визначає скільки чоловік потребують гуртожиток.
7. Скласти програму, що визначає списки учнів першої школи.
8. Скласти програму, що визначає списки мовних груп.
У бібліотеці для кожного читача, що замовляє книгу, заповнюється картка: прізвище, дата замовлення, дата видачі книги.
9. Визначити самий маленький термін, за який знайшли книгу.
10. Визначити скільки замовлень було не виконане.
11. Визначити хто найчастіше бере книги.
12. Визначити кому видали книги 15.09.06.
13. Визначити скільки чоловік замовляли книги 25.04.06.