Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод_ОТтаП_Ч3

.pdf
Скачиваний:
9
Добавлен:
12.05.2015
Размер:
729.73 Кб
Скачать

Міністерство освіти і науки України

Національний технічний університет України «Київський політехнічний інститут»

Обчислювальна техніка та алгоритмічні мови. Мова програмування Pascal.

Частина 3

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

до виконання комп’ютерного практикуму

Київ НТУУ «КПІ»

2011

1

Вступ

Комп’ютерний практикум з дисципліни “Обчислювальна техніка та програмування” проводиться зі студентами напряму підготовки 6.050701 – Електротехніка та електротехнології, спеціальностей 7.05070106 "Системи управління виробництвом та розподілом електроенергії" 7.05070102 «Електричні мережі та системи» денна форма навчання в першому семестрі. Зміст цього посібника відповідає програмі першого семестру. Методичні вказівки Частина 3 містять матеріали п’яти завдань, які виконуються студентами на комп’ютерному практикумі протягом 12 академічних годин з запланованих 36 і являються третьою частиною з запланованих трьох..

В практичній діяльності інженера-електрика все більш необхідною стає обчислювальна техніка. Вона використовується при обробці експериментальних даних, прогнозуванні навантаження, розрахунку режимів роботи електрообладнання, оптимізації режимів, розподіленні ресурсів, проектуванні і при вирішенні багатьох інших завдань сучасної електроенергетики. Більшість спеціальних дисциплін для студентів електроенергетичних спеціальностей базується на знанні алгоритмічних мов і вмінні працювати з персональними комп’ютерами (ПК). Тому основне завдання комп’ютерного практикуму по курсу “Обчислювальна техніка та мови програмування” - набути навичок програмування алгоритмічною мовою Паскаль і навчитися розв‘язувати задачі за допомогою ПК.

Мова Паскаль розроблена Ніклаусом Віртом в 1970 році спеціально для навчання студентів методам процедурного програмування, тому вона, як ніяка інша підходить для навчання початківців. В цих методичних вказівках наведені основні правила синтаксису Паскаль, прийоми алгоритмізації і програмування задач, які найбільш часто зустрічаються в інженерній практиці, а також основні етапи виконання кожної роботи - написання, відлагодження і виконання програми. Підготовку починають з вивчення теоретичного матеріалу по темі. Після цього треба виконати індивідуальне завдання, номер якого відповідає порядковому номеру прізвища студента у списку групи.

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

2

лабораторії. Перевірку правильності одержаних результатів студент здійснює самостійно.

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

В загальному випадку процесу розв‘язання задачі на комп’ютері передують наступні підготовчі етапи:

1) постановка і формалізація задач;

2) вибір методу розв’язання;

3) розробка алгоритму;

4) написання програми;

5) від лагодження програми;

6) виконання програми при заданих значеннях вихідних даних. Власне, програмування складається з двох етапів: розробка

алгоритму і написання програми. Запис алгоритму будь-якою алгоритмічною мовою у вигляді програми не викличе труднощів. Особливо важко при підготовці задачі до розв‘язання на ПК розробити і перевірити алгоритм. Чітке визначення алгоритму для програміста малоінформативне, тому дамо його спрощене визначення.

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

Алгоритм описують у вигляді блок-схем - графічного подання, яке доповнюється елементами словесного запису. Кожний пункт алгоритму відображається на схемі у вигляді умовних графічних позначень - символів. Найбільш уживані символи наведені в таблиці №1. Для зручності опису схем, установлення зв’язків і відношень між їх частинами, всі символи мають наскрізну нумерацію. Послідовність виконання пунктів алгоритму, що описується схемою, встановлюється упорядкованим розміщенням символів на схемі і об’єднанням їх лініями, котрі називаються лініями потоку інформації.

3

Таблиця 1

 

 

 

 

 

 

 

 

Найменуванн

Позначення

Зображена функція

я

 

 

 

 

 

 

 

 

 

1.

Блок

 

Виконання дій, в результаті

обчислень

 

яких

змінюються

значення

 

 

 

даних

 

 

 

 

 

 

2.

Логічний

 

Вибір

 

напряму

виконання

блок

 

алгоритму в

залежності від

 

 

 

деяких умов

 

 

 

 

 

 

 

(оператори If або Case)

3.

Блок

 

Введення-виведення даних

введення-

 

(оператори

Read,

 

Readln,

виведення

 

Write, Writeln)

 

 

 

даних

 

 

 

 

 

 

 

 

4.

Блок

 

Виведення даних на принтер

виведення

 

 

 

 

 

 

 

 

даних на друк

 

 

 

 

 

 

 

 

5.

Пуск-

 

Початок

чи

кінець

 

обробки

зупинка

 

даних

 

 

 

 

 

 

6.

З’єднувач

 

Позначення зв’язків між

 

 

 

частинами

 

блок-схеми,

 

 

 

розташованими

на

 

одному

 

 

 

аркуші

 

 

 

 

 

7.

Міжсторін-

 

Позначення зв’язків між

ковий

 

частинами

 

блок-схеми,

з’єднувач

 

розташованими

на

 

різних

 

 

 

сторінках

 

 

 

 

8.

Цикл

 

Повторення операцій

 

 

 

 

(оператори

For,

 

While,

 

 

 

Repeat)

 

 

 

 

 

Зміст звіту

Звіт оформляється на аркушах формату А4 і починається з титульного аркуша (див. додаток).

4

Заняття №11 Операції із бітами.

Мета роботи – набуття навичок роботи з бітовою арифметикою.

11.1. Теоретичні відомості.

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

Біт – це найбільш поширена одиниця вимірювання інформації, яка є двійковим логарифмом вірогідності і може приймати лише два значення: «1» або «0» («true» або «false»). 8 біт складають 1 байт інформації, 2 байта інформації складають 1 слово.

Системи числення

Для того, щоб оперувати інформацією, що вимірюється в бітах необхідно перейти з десяткової системи числення у двійкову. Тобто, якщо у «звичній» десятковій системі числення використовується 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (основа системи число 10), то у двійковій – всього дві: 0 та 1 (основа системи число 2 ). При цьому певна комбінація нулів та одиниць буде еквівалентне певному числу у десятковій системі числення

(див. табл. 9.1).

Для того, щоб перейти від десяткової системи до двійкової необхідно:

– завдане число розділити на 2 (на основу системи) із залишком (в залишку або «1», або «0»);

– отримане число знов розділити на 2 із залишком (цю операцію повторювати поки результат ділення не буде становити «1»);

записати останній результат ділення, а потім усі залишки від попередніх ділень з право наліво.

5

Наприклад: потрібно перевести десяткове число 421 у двійкове

4212 = 210(залишок 1)

2102 =105(залишок 0)

1052 =52(залишок 1)

522 = 26(залишок 0)

232 =13(залишок 0)

132 =6(залишок 1)

62 =3(залишок 0)

3 =1(залишок 1)

2

звідси у двійковій системі отримали 110100101.

Для того, щоб навпаки перевести число з двійкової системи у десяткову необхідно

– помножити кожну цифру двійкового числа на 2 у ступені, що дорівнює номеру її позиції (рахувати з право наліво починаючи з 0);

– скласти усі отримані значення.

Наприклад: потрібно перевести двійкове число 110100101 у десяткове

1 28 +1 27 +0 26 +1 25 +0 24 +0 23 +1 22 +0 21 +1 20 =. = 256 +128 +32 +4 +1 = 421

Оскільки інформація також вимірюється в байтах та машинних словах, то часто користуються не двійковою системою числення, а вісімковою (основа системи число 8) або шістнадцятковою (основа системи число 16) – див. табл. 11.1. Алгоритм переводу десяткового числа у вісімкове або шістнадцяткове такий самий, як і для двійкових чисел (те саме і у зворотному напрямку), лише ділити треба вже на 8 або, відповідно, 16 (у зворотному напрямку – до ступеню треба підносити 8 або 16).

Наприклад: потрібно перевести шістнадцяткове число 92C8 у десяткове

6

9 163 +2 162 +C 161 +8 160 =9 163 +2 162 +12 161 +8 160 = . =36864+512+192+8=37576

Таблиця 11.1. Відповідність систем числення.

 

десяткова

двійкова

Вісімкова

шістнадцятько

система

система

система

ва система

0

0000

0

0

1

0001

1

1

2

0010

2

2

3

0011

3

3

4

0100

4

4

5

0101

5

5

6

0110

6

6

7

0111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

Перевід з двійкової системи у вісімкову або шістнадцяткову

набагато простіший – для вісімкового числа кожну тріаду (по 3

біта), а для шістнадцяткового числа кожну тетроду (по 4 біта)

замінити відповідним двійковим значенням числа.

Наприклад: потрібно перевести двійкове число 10101001 у

вісімкове та шістнадцяткове

 

 

у вісімковій

у шістнадцятьковій

10

101

001

1010

1001

2

5

1

А

9

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

Наприклад:

1) потрібно скласти два числа 141,5 та 59,75 у різних системах числення

7

у десятковій

у двійковій

у вісімковій

у шістнадцятьковій

2)потрібно відняти число 59,75 від числа 201,25 у різних системах числення

удесятковій у двійковій

у вісімковій

у шістнадцятьковій

Щодо множення та ділення, то тут є певні особливості для

двійкових чисел. Тут при множенні слід пам’ятати, що

0 * 0 = 0,

 

0 * 1 = 0,

 

1 * 1 = 1.

 

Тоді множення в двійковій системі зводиться лише до зсувів та

додаванням.

 

Наприклад: потрібно помножити число 115 на число 51 у

двійковій системі

 

115 → 1110011;

51 → 110011, тоді

 

8

a : string

Відповідь 1011011101001, або 7701 у десятковій системі.

Бітові операції

Умові PASCAL роль бітових типів виконують цілі типи без знаку byte і word. Над цими типами окрім операцій, які допускаються із іншими числовими типами, можна виконувати побітові логічні операції, за допомогою яких можна, в тому числі, реалізувати дії із двійковими числами.

Операція AND – логічне «І». Логічно складаються біти різних чисел, що стоять на однакових позиціях. Тобто, якщо обидва біта дорівнюють 1, то результат 1, але якщо хоча б один з них дорівнює 0, то результат 0.

<ідентифікатор 1> AND <ідентифікатор 2>

Наприклад:

AND 00110101 0001

Операція OR – логічне «АБО». Логічно множаться біти різних чисел, що стоять на однакових позиціях. Тобто, якщо хоча б один з бітів дорівнює 1, то результат 1.

<ідентифікатор 1> OR <ідентифікатор 2>

Наприклад:

OR

0011

0101

0111

Операція XOR – логічне «АБО» з виключенням. Це логічне «АБО», що виключає. Тут, якщо біти, що порівнюються однакові, то результат 0, інакше – результат 1.

<ідентифікатор 1> XOR <ідентифікатор 2>

9

Наприклад:

XOR 00110101 0110

Операція NOT – заперечення (або інверсія біта). Біти інвертуються. Тобто замість 0 записується 1 і навпаки – замість 1 записується 0.

NOT <ідентифікатор>

Наприклад:

NOT 0011 1100

Операція SHL – логічний зсув вліво. Усі біти числа зсуваються вліво, а з права дописуються «0» у кількості на яку відбувся зсув.

<ідентифікатор > SHL <кількість біт, що зсуваються>

Наприклад: 00001111 SHL 2 = 00111100

Операція SHR – логічний зсув вправо. Усі біти числа зсуваються вправо, а з ліва дописуються «0» у кількості на яку відбувся зсув.

<ідентифікатор > SHR <кількість біт, що зсуваються>

Наприклад:

11101111 SHR 3 = 00011101

При програмуванні у мові PASCAL для вводу бітового числа з клавіатури можна використовувати змінні типу string. Цей тип фактично є пакованим масивом з елементами символьного типу, тобто

еквівалентно

a : packed array [m..n] of char, де m < n.

Таким чином при введені строки кожний її символ читається окремо. Ця властивість дозволяє у числі (змінна типу string) одразу визначити позицію кожної цифри, тобто визначити кожний байт.

10

Наприклад: потрібно вивести його у зворотному напрямку числоу двійковому форматі

var s:string;

BEGIN

readln(s);

n:= Length(s); {визначити кількість введених байтів}

for i:=n downto 1 do write(s[i]);

11.2. Приклад.

Завдання. Перевести число з десяткової системи числення до вісімкової.

Розв'язання у вигляді блок схеми алгоритма:

початок

ввести

десяткове число n

і = 15, 1

s [i] := залишок від (n/2) ;

n := ціла частина від (n/2);

вивести

вісімкове число s

кінець

Рис. 11.1

11

Програма: program conv; const

osn8=8; {вісімкова основа}

var len8=5; {кількість вісімкових позицій}

BEGIN

n,i,n10:integer; s:array[1..len8] of byte;

write(' Введіть десяткове ціле число '); readln(n10);

write(' Вісімкова форма '); n:=n10;

for i:=len8 downto 1 do begin

s[i]:=n mod osn8; {обчислення значення наступного розряду}

n:=n div osn8; {зсув на один розряд вліво }

end;

for i:= 1 to len8 do write(s[i]); {вивід результату }

END.readln;

11.3. Індивідуальні завдання

Cкласти алгоритм i програму розв’язання задач

1.Скласти програму, яка переводить число А з десяткової системи числення в двійкову, використовуючи метод ділення в стовпчик. Проміжні і остаточні результати переводу відобразити на екрані. Число А вводиться з клавіатури в десятковому форматі.

2.Написати програму, яка формує з 8-ми розрядної двійкової кодовій комбінації B1B2B3B4B5B6B7B8 16-ти розрядну таким чином: якщо розряд в початковій кодовій комбінації дорівнює «1», то він замінюється на «10», якщо розряд в початковій кодовій комбінації дорівнює «0», то він

12

замінюється на «01». Наприклад, кодова комбінація

«1010101» перейде в «10011001100110». Двійкові числа вводяться з клавіатури в двійковому форматі. Вивести значення 16-ти розрядній кодовій комбінації на екран.

3.Ввести з клавіатури послідовність N однобайтних чисел в шістнадцятковому форматі. Обчислити контрольну суму цієї послідовності, використовуючи наступну рекурентну формулу:

B[N+1]=B[N+1] xor (B[i] xor 30h) якщо i парне; B[N+1]=B[N+1] and (B[i] or 30h) якщо i непарне.

Вивести на екран послідовність B[i] і контрольну суму

B[N+1].

4.Скласти програму, яка переводить двійкове число А в шістнадцяткове число. Проміжні і остаточні результати перекладу відобразити на екрані. Число А вводиться з клавіатури в двійковому форматі.

5.Ввести з клавіатури два числа: однобайтне двійкове число А і десяткове число k. Написати програму множення числа А на число 2k. Вивести проміжні і остаточні результати множення на екран. Число А вводиться з клавіатури в двійковому форматі.

6.Скласти програму, яка переводить число А, задане в двійковій системі числення, в число представлене в десятковій. Проміжні і остаточні результати перекладу відобразити на екрані. Число А вводиться з клавіатури в двійковому форматі.

7.Написати програму, яка формує 8-ми розрядну двійкову кодову комбінацію B1B2B3B4B5B6B7B8 по введеним користувачем значенням п'ятого, шостого, сьомого і восьмого розрядів. Решта (контрольні) розрядів кодової комбінації визначається як інверсія до останніх чотирьох розрядів. Двійкові числа вводяться з клавіатури в двійковому форматі. Вивести значення контрольних розрядів і кодову комбінацію в цілому на екран.

13

8.Написати програму, яка формує 8-ми розрядну двійкову кодову комбінацію B1B2B3B4B5B6B7B8 по введеним користувачем значенням другого, третього, п'ятого і восьмого розрядів. Решта (контрольні) розрядів кодової комбінації визначається по наступних формулах:

B1=B2+B3+B5+B8

B4=B2+B3+B5

B6=B5+B8

B7=B2+B6+B8

Знак «+» означає суму по модулю 2. Двійкові числа вводяться з клавіатури в двійковому форматі. Вивести значення контрольних розрядів і кодову комбінацію в цілому на екран.

9.Ввести з клавіатури два числа: двійкове число А і десяткове число k. Написати програму ділення числа А на число 2k. Вивести проміжні і остаточні результати ділення на екран. Число А вводиться з клавіатури в двійковому форматі.

10.Скласти програму, яка переводить вісімкове число А в десяткове число. Вивести проміжні і остаточні результати перекладу на екран. Число А вводиться з клавіатури у вісімковому форматі.

11.Ввести k-розрядне двійкове число А. Написати програму, що визначає суму розрядів цього числа по модулю два. Число А вводиться з клавіатури в двійковому форматі.

12.Ввести з клавіатури двійкове k-розрядне число А. Запісати в (k-1) -й розряд числа А цифру «1», якщо кількість одиниць в двійковому числі парне, інакше записати цифру «0». Число А вводиться з клавіатури в двійковому форматі.

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

(0720h+7h)*24+FFFh/25.

Вивести проміжні і остаточні результати обчислення на екран.

14.Ввести з клавіатури два однобайтні двійкові числа. Вивести на екран номера і значення тих бітів, якими вони

14

відрізняються. Двійкові числа вводяться з клавіатури в двійковому форматі.

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

16.Скласти програму, яка переводить вісімкове число А в шістнадцяткове число. Вивести проміжні і остаточні результати перекладу на екран. Число А вводиться з клавіатури у вісімковому форматі.

17.Ввести з клавіатури два трибайтних двійкових числа. Вивести на екран номера і значення тих бітів, які у них однакові. Двійкові числа вводяться з клавіатури в двійковому форматі

18.Ввести з клавіатури послідовність N однобайтних чисел в шістнадцятковому форматі. Обчислити контрольну суму цієї послідовності, використовуючи наступну рекурентну формулу:

B[N+1]=B[N+1] and (B[i] or 25h) якщо i парне; B[N+1]=B[N+1] or (B[i] xor 25h) якщо i непарне.

Вивести на екран послідовність B[i] і контрольну суму

B[N+1].

19.Скласти програму, яка переводить число А з десяткової системи числення у вісімкову, використовуючи метод ділення в стовпчик. Проміжні і остаточні результати перекладу відобразити на екрані. Число А вводиться з клавіатури в десятковому форматі.

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

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

(0817h+9h)*26+EFBFh/27. 15

Вивести проміжні і остаточні результати перекладу на екран.

22.Скласти програму, яка переводить число А з десяткової системи числення в шістнадцяткову, використовуючи метод ділення в стовпчик. Проміжні і остаточні результати перекладу відобразити на екрані. Число А вводиться з клавіатури в десятковому форматі.

23.Ввести з клавіатури двійкове k-розрядне число А. Записати в (k-3)-й розряд числа А цифру «1», якщо кількість одиниць в двійковому числі непарне, інакше записати цифру «0». Число А вводиться з клавіатури в двійковому форматі.

24.Скласти програму, яка переводить число А з шістнадцяткової системи числення в десяткову. Проміжні і остаточні результати перекладу відобразити на екрані. Число А вводиться з клавіатури в шістнадцятковому форматі.

25.Написати програму, яка формує 8-ми розрядну двійкову кодову комбінацію B1B2B3B4B5B6B7B8 по введеним користувачем значенням першого, п'ятого, шостого і сьомого розрядів. Решта (контрольні) розрядів кодової комбінації визначається по наступних формулах:

B2=B1+B5+B7

B3=B6+B5

B4=B1+B7

B8=B1+B5+B6+B7

Знак «+» означає суму по модулю 2. Двійкові числа вводяться з клавіатури в двійковому форматі. Вивести значення контрольних розрядів і кодову комбінацію в цілому на екран.

26.Написати програму, яка формує 8-ми розрядну двійкову кодову комбінацію B1B2B3B4B5B6B7B8 по введеним користувачем значенням першого, другого, третього і четвертого розрядів. Решта (контрольні) розрядів кодової комбінації визначається як інверсія до перших чотирьох розрядів. Двійкові числа вводяться з клавіатури в двійковому форматі. Вивести значення контрольних розрядів і кодову комбінацію в цілому на екран.

16

27. Написати програму, яка формує з 8-ми розрядній двійковій

8. Які команди мови PASCAL

для роботи із бітовою

 

кодовій комбінації B1B2B3B4B5B6B7B8 16-ти розрядну

арифметикою Ви знаєте? Яке їх

призначення?

 

таким чином: якщо розряд в початковій кодовій комбінації

9. Яким чином можна вводити бітове число при програмування у

 

рівний «1», то він замінюється на «11», якщо розряд в

мові PASCAL?

 

 

початковій кодовій комбінації рівний «0», то він замінюється

 

 

 

на «00». Наприклад, кодова комбінація «1010101» перейде в

 

 

 

«11001100110011». Двійкові числа вводяться з клавіатури в

 

 

 

двійковому форматі. Вивести значення 16-ти розрядній

 

 

 

кодовій комбінації на екран.

 

 

28.

Ввести з клавіатури двійкове k-розрядне число А. Записати в

 

 

 

(k-2) -й розряд числа А цифру «1», якщо кількість одиниць в

 

 

 

двійковому числі кратне 3, інакше записати цифру «0». Число

 

 

 

А вводиться з клавіатури в двійковому форматі.

 

 

29.

Ввести однобайтне двійкове число А. поменять місцями його

 

 

 

нібли (нібла -чотири двійкові розряди). Число А вводиться з

 

 

 

клавіатури в двійковому форматі.

 

 

30. Використовуючи тільки операції однобайтного складання,

 

 

 

віднімання і зсуву скласти програму для обчислення

 

 

 

наступного виразу:

 

 

 

(АE24h+F7h)*24+FBCh/22.

 

 

 

Вивести проміжні і остаточні результати обчислення на

 

 

 

екран.

 

 

11.4.Контрольні запитання

1.Що Ви знаєте про одиниці вимірювання інформації?

2.Яки системи числення Ви знаєте? Чим вони різняться?

3.Як переводити число з десяткової системи числення до іншої (наприклад, вісімкової)?

4.Як переводити число до десяткової системи числення з іншої (наприклад двійкової)?

5.Як переводити число з двійкової системи числення у шістнадцяткову?

6.Яким чином відбувається додавання (чи віднімання) у двійковій (вісімковій, шістнадцятьковій) системі числення?

7.Яким чином відбувається множення (ділення) у двійковій системі числення?

17

18

12. Заняття №12

Записи. Масиви записів. Сортування записів.

Мета роботи - Ознайомитись з поняттям «Запис», навчитися основним діям з записами при написані програм.

12.1. Теоретичні відомості

12.1.1. Записи

Запис являє собою сукупність обмеженого числа логічно пов'язаних компонент, що належать до різних типів. Компоненти запису називаються полями, кожне з яких визначається ім'ям. Поле запису містить ім'я поля, слідом за яким через двокрапку вказується тип цього поля. Поля запису можуть належати до будь-якого типу, допустимого в мові Паскаль, за винятком файлового типу.

Опис запису в мові Pascal здійснюється за допомогою службового слова RECORD, слідом за яким описуються компоненти запису. Завершується опис запису службовим словом

END.Type <ім’я запису> = Record

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

……………………………………………

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

Наприклад, записна книжка містить фамілії, ініціали та номери телефону, тому окрему строку в записній книжці зручно представити у вигляді наступного запису:

Type RowPhon = Record

FIO: string[20];

TEL: String[7];

END;

Var str : RowPhon;

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

19

У всіх інших випадках оперують окремими полями записів. Щоб звернутися до окремої компоненті запису, необхідно задати ім'я запису і через точку вказати ім'я потрібного поля, наприклад:

str.FIO; str.TEL;

Таке ім'я називається складовим. Компонентою запису може бути також запис, в такому випадку складений ім'я буде містити не дві, а більша кількість імен.

Імена компонентів всередині записи не повинні повторюватися. Значення запису можна пересилати в інші змінні - записи за допомогою операторів присвоювання. Повертаючись до розглянутого прикладу, можна записати:

Type RowPhon = Record

FIO: string[20];

TEL: String[7];

END;

Var Z1,Z2 : RowPhon;

Begin

-------------------------------------

Z1 := Z2;

Вказаний у програмі оператор присвоєння еквівалентний таким операторам :

Z1.FIO := Z2.FIO;

Z1.TEL := Z2.TEL;

12.1.2. Масиви записів

Якщо необхідно зберегти інформацію про декількох людей в записній книжці, то можна ввести масив записів:

Var TBL: array[1..1000] of RowPhon

Складемо програму для знаходження середнього балу для кожного студента групи, що складається з 25 чоловік.

Program BAL;

Type STR = Record

FIO: string[20];

B1,B2,B3,B4,B5: 1..5;

End;SB: real; { середній бал }

20