Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Листы Лабораторных работ ПАскаль.doc
Скачиваний:
7
Добавлен:
05.11.2018
Размер:
370.69 Кб
Скачать

Лабораторна робота № 7

ТЕМА: Складання, налагодження та введення в ПЕОМ програми з використанням комбінованого типу даних на мові Pascal

МЕТА: Придбати практичні навички в організації введення\виведення значень комбінованого типу даних(КТД), та використання записів для вирішення практичних задач.

МЕТОДИЧНІ ВКАЗІВКИ:

Перед виконанням лабораторної роботи необхідно вивчити принципи оголошення та використання в програмі на мові Pascal комбінованого типу даних (запис); знати як задається комбінований тип даних, яким чином в програмі звертаються до полів запису та як організується робота з масивами записів. Знати призначення оператору with-do

ТЕОРЕТИЧНИЙ МАТЕРІАЛ НЕОБХІДНИЙ ДЛЯ ВИКОНАННЯ РОБОТИ:

Запис ( або елемент комбінованого типу даних) - це структура даних, що може містити інформацію різних типів, об'єднану під однією назвою. Компоненти запису називаються полями. Їх кількість - фіксоване число. Опис КТД має наступну структуру:

Ім'я типу = RECORD

Поле 1 : тип 1;

Поле 2: тип даних 2

- - -

Поле N : тип N;

CASE поле вибору : тип OF

значення 1 : (полів 1 : тип 1 )

END;

Типи полів записи можуть бути будь-якими. У свою чергу, тип запис може використовуватися для створення масивів і нових записів. Ступінь вкладеності не обмежена.

Наприклад

type Men = Record

FIO,Adress : string;

Year : 1990..2001;

End;

var A,B : Men;

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

<ім'я перемінної типу запис><крапка><ім'я поля>

Наприклад:

A.FIO:='Іванов И.И.';

A.Adress:='ін. Леніна, д. 40, кв. 10';

A.Year:=1981;

Оператор приєднання with

Використання полів є громіздким через те, що постійно зазначається ім'я змінної-запису. Для скорочення подібних записів використовують оператор приєднання with. Цей оператор задає область дії, в якій для запису, вказаному після with, ідентифікація поля відбувається за допомогою простого імені поля.

Загальний вигляд оператора приєднання:

with <ім'я змінної-запису > do <оператор>;

Таким чином, наведений вище фрагмент матиме вигляд:

with а do

begin

FIO:='Іванов И.И.';

Adress:='ін. Леніна, д. 40, кв. 10';

Year:=1981

end;

ОБЛАДНАННЯ ТА ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ:

IBM сумісні комп’ютери класу Intel Pentium, система програмування Borland Pascal 7.0

ЛІТЕРАТУРА:

1. А.Н. Вальвачов, в.С. Крисевич «Программирование на языке Паскаль для персональных эвм»,Минск, вш. – 1989

2 Ковалюк т.В. Основи програмування. – к.: Видавнича група bhv, 2005. – 384 с.

ЗМІСТ, ПОСЛІДОВНІСТЬ, МЕТОДИКА ВИКОНАННЯ РОБОТИ

Завдання 1: Скласти список учбової групи, яка включає 25 чоловік. Для кожного студента вказати дату народження, рік вступу в коледж, курс, відмітки за семестр. Інформацію оформити у вигляду масиву записів. Скласти програму яка забезпечує введення-виведення інформації про студентів, а також виконання завдання згідно вашого варіанту (див. Таблицю 7.1) Номер варіанту співпадає з вашим номером у журналі.

Завдання 2 Скласти програму згідно вашого варіанту (див. Таблицю 7.1) Номер варіанту співпадає з вашим номером у журналі.

ПРИКЛАД ВИКОНАННЯ ЗАВДАННЯ:

Приклад №1: Скласти програму, яка виводить інформацію о п’яти студентах: прізвище, рік народження, рік вступу у коледж, відмітки останньої сесії. Результатом роботи програми є список відмінників.

Program primer;

Type student=record

fio: string;

Year1: 1975..1995;

Year2: 1998..2010;

grade: record

English, History, Math: 2..5;

End;

End;

Var s: array [1..25] of student;

S1: student; I,J: integer;

Begin

{Введення даних}

for i:=1 to 5 do

Begin

Write(‘’);

Writeln(‘Введіть ПІБ студента’);

Readln (S[i].fio);

Writeln(’Введіть рік народження та рік вступу’);

Readln (s[i].year1, s[i].year2);

End;

{Пошук відмінників з використанням оператору with}

Writeln (‘Список відмінників’);

For i:=1 to 5 do

with s[i], s[i]. grade

do

if (english=5) and (history=5) and (math=5) then

writeln (fio);

end.

Протокол роботи програми:

Варанов 1980 1995 3 4 3

Коротков 1981 1996 5 5 5

Смирнов 1980 1995 4 5 4

Романов 1981 1996 5 5 5

Список відмінників

Коротков

Романов

Приклад № 2 Скласти структуру яка містить інформацію о кожному студенті групи. ( ПІБ, рік народження , адрес (індекс, місто, район, село)). Вивести на екран дані про студентів молодше 20 років.

Program Zadan2;

type std=record

FIO: record

Famile:string[20];

Name:string[10];

Othestvo:string[15];

end;(* конец записи FIO *)

Year:1960..2005;

Adres: record

index:longint;

Gorod:string[15];

Rajon:string[20];

Selo:string[18];

end;(* конец записи Adres *)

end; (* конец записи std *)

Var

Student:array [1..25] of std;

N,GOD,i:integer;

Begin

writeln('Введите количество студентов в группе (не более 25)');

readln(N);

for i:=1 to N do

with Student[i],FIO,Adres do

begin

writeln('Введите фамилию ',i,'-го студента (не более 20 букв)');

readln(Famile);

writeln('Введите имя ',i,'-го студента (не более 10 символов)');

readln(Name);

writeln('Введите отчество ',i,'-го студента (не более 15 букв)');

readln(Othestvo);

writeln('Введите год рождения ',i,'-го студента ');

readln(Year);

writeln('Введите адрес жительства');

write('Введите индекс');

readln(index);

write('Введите город ( не более 15 букв):');

readln(Gorod);

write('Введите район ( не более 20 букв):');

readln(rajon);

write('Введите село ( не более 18 букв):');

readln(Selo);

end;

write('Введите текущий год:');

readln(GOD);

writeln('В гр. занимаются студенты моложе 20 лет:');

for i:=1 to N do

with student[i],FIO,Adres do

if GOD -student[i].Year<=20 then

begin

writeln(' ':5,Famile,' ',Name,' ',othestvo);

writeln('Год рождения :',Year);

writeln(' ':6,'Адрес :');

writeln(' ':6,'Индекс :',Index);

writeln(' ':6,'город - ',Gorod);

writeln(' ':6,'район - ',rajon);

writeln(' ':6,'село - ',selo);

end;

End. (* конец программы *)

РЕЗУЛЬТАТИ ВИКОНАННЯ РОБОТИ

Завдання №1

Програма на мові Pascal

Завдання №2

Програма на мові Pascal

КОНТРОЛЬНІ ПИТАННЯ :

  1. Загальна характеристика комбинованого типу даних (КТД)?

  2. Як називаються компоненти запису?

  3. Можуть лі компоненти запису бути різними типами?

  4. Коли зручно використати записи?

  5. Який оператор використають для роботи з КТД?

  6. Як організуються масиви записів?

  7. Чи можливи вкладені записи?

Висновок:

Виконано: _______________________

Підпис студента та дата виконання

Захищено з оцінкою : ____________________ Дата ___________

підпис викладача дата захисту