
- •Лабораторна робота №1
- •Завдання підвищеної складності
- •Складемо схему алгоритму
- •Контрольні питання
- •Завдання
- •Завдання підвищених труднощів
- •Лабораторна робота №3 Програмування циклічних алгоритмів
- •Загальні відомості
- •Приклади
- •Контрольні питання
- •Завдання
- •Задачки на кмітливість
- •Завдання підвищеної складності
- •Контрольні питання
- •Завдання підвищеної складності
- •Лабораторна робота 5
- •Загальні відомості
- •Приклади
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 6 Програмування з використанням безлічей
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 7 Програмування з використанням типу запис
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 8 Програмування з використанням процедур і функцій
- •Загальні відомості
- •Контрольні питання
- •Приклад
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 9 Робота з файлами
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Завдання:
- •Завдання підвищеної складності
Лабораторна робота 7 Програмування з використанням типу запис
Теоретический материал |
Справочник по процедурам и функциям |
Ціль роботи: познайомити з поняттям "запис"; виробити навички роботи зі структурою даних запис у мові програмування Pascal. навчитися правильно описувати тип record, уміти инициализировать змінні типу record, виводити на екран змінні типу record; навчиться вирішувати завдання на використання записів
Загальні відомості
Під записом розуміється структура даних, що поєднує під одним ім'ям дані різних типів. Запису складаються з фіксованого числа елементів, називаних полями. Поле - це змінна певного типу. Різні поля можуть мати (на відміну від елементів масиву) різний тип. Звертання до елемента запису виконується за допомогою складеного ім'я. Перша частина складеного ім'я - це ім'я запису, друга частина - ім'я поля. Між ім'ям запису й ім'ям поля ставиться крапка: ZAP.IMP, де ZAP - ім'я запису, IMP- ім'я поля.
Перед виконанням роботи необхідно вивчити правила опису й використання записів, типізованих констант типу запис, оператора приєднання WITH.
Приклад
Приклад1. Дано два раціональних числа, опишіть їх, використовуючи структуру даних запис (чисельник, знаменник). Привести їх до нескоротного виду, знайди їхню суму. Етапи рішення програми:
Складемо блок-схему програми
Уточнимо вміст блоку "Обчислення НОД для чисельника й знаменника кожного дробу". По-перше, НОД це найбільший загальний дільник, число вкрай необхідне щоб скоротити дріб. Обчислювати НОД будемо по алгоритму Евклида. Нехай дані два числа а й b:
Як числа a і b будуть брати участь чисельник і знаменник дробів. Як скорочувати й складати дроби, сподіваюся, ви ще не забули, тому деталізувати цей блок не будемо. Бажано блок "Пошук НОД" оформити у вигляді функції, що буде випереджати тему наступної лабораторної роботи.
Переведемо програму на мову Паскаль
PROGRAM Example1;
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.