Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи паскаль.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Лабораторна робота №7 Обробка багатовимірних масивів turbo pascal.

Мета роботи:

Мета роботи - ознайомитись з типами даних у мові Паскаль, методам їх опису і застосування. Оволодіти навиками роботи з масивами.

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

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

  • прості або скалярні;

  • складні або структуровані;

Класифікація типів даних мови Паскаль приведена на Рис.1.

Регулярні типи (масиви)

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

Для опису регулярного типу необхідно дві характеристики:

  • тип елементів масиву (тобто базовий тип);

  • спосіб нумерації елементів, або тип індекса;

Типом індекса може бути будь-який дискретний тип крім необмеженого цілого. Типом елементів масиву може бути будь-який простий або структурований тип. Опис змінних типу масиву можна проводити безпосередньо в розділі опису змінних:

VAR<ім'я>:array[<тип індекса>]of <тип елементів>;

Наприклад:

TYPE

M1=ARRAY[1..20]OF INTEGER;

M2=ARRAY[CHAR]OF REAL;

VAR MAS1:Ml; MAS2:M2;

MAS:ARRAY[1..10, 1..20]OF REAL;

Вводити і виводити масиви можна тільки поелементно:

FOR I:=l ТО 20 DO

READ(MAS1[I]);

Процедури READLN і WRITELN для вводу і виводу масивів не застосовуються.

Операції, які можна виконувати над масивами визначаються базовим типом масиву, тобто типом його елементів. Наприклад, якщо тип елементів масиву REAL або INTEGER, то над елементами цього масиву можуть виконуватись операції :+,-,*, /, DIV, MOD, >, >=, <, <=, =, о.

Приклад програми з застосуванням масивів.

В матриці А(10,15) обчислити середнє арифметичне додатнік елементів кожного рядка і записати в масив В(10). Блок-схема алгоритму приведене на Рис. 6.

Програма:

PROGRAM SER;

VAR

I,J,K:INTEGER;

Sr:REAL;

A:ARRAY[1..10,1..15]OF INTEGER;

В:ARRAY[1..10] OF REAL;

BEGIN

WRITELN ('Введи масив');

FOR I:=l TO 10 DO

FOR J:=l TO 15 DO

READ(A[I,J]);

FOR I:=l TO 10 DO

BEGIN

S:=0;

K:=0;

FOR J:=l TO 15 DO

IF A[I,J]>0 THEN

BEGIN

S:=S+A[I, J] ;

K:=K+1

END;

B[I]=S/K;

END;

WRITELN('Результат В');

FOR I:=l TO 10 Do

WRITE(B[I] :7:3) ;

WRITELN

END.

При роботі з масивами у Паскалі слід пам'ятати:

  1. Кількість елементів масиву повинна бути фіксована, тобто визначена при трансляції програми. Паскаль не дозволяє проводити зміну розмірності масиву під час виконання програми.

  2. Оскільки для задання кількості елементів масиву використовується "тип індекса", то кількість елементів визначається кількістю можливих значень цього типу. Це відрізняє мову Паскаль від інших алгоритмічних мов, в яких індекс може бути тільки цілим числом.

  3. Так як елементами масиву можуть бути значення будь-якого типу, в тому числі і елементи типу масиву, то можна описати:

VAR

А:ARRAY[1. .10] OF ARRAY[1. .2 0] OF REAL

Змінну А можна трактувати двояко:

1. як масив елементами якого є масиви;

2. як двомірний масив, для опису якого можна використати еквівалентну форму опису:

VAR

A:ARRAY[1..10, 1..20] OF REAL;

Багатовимірні масиви запам'ятовуються в пам'яті машини послідовно у вигляді окремих компонентів, кожна з яких займає окрему комірку пам'яті машини послідовно у вигляді окремих компонентів, кожен з яких займає окрему комірку пам'яті. Але при роботі з двомірними масивами (матрицями у математиці) слід дотримуватись аналогії з математикою. Тобто, треба пам'ятати, що двомірні масиви вводяться і виводяться по рядках.

Щоб вивести описаний вище масив А слід:

FOR I:=l ТО 10 DO

BEGIN

FOR J:=l TO 20 DO

WRITE(A[I, J] ) ;

WRITELN

END;

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

  1. Як описуються символьні масиви?

  2. Як класифікуються типи даних у Паскалі?

  3. Які стандартні типи даних у Паскалі?

  4. Як можна ввести новий тип даних?

  5. Які особливості опису і застосування скалярного типу даних?

  6. Що таке інтервальний тип даних?

  7. Як описується регулярний тип у Паскалі?

  8. Як задати розмірність масиву?

  9. Як задається тип елементів масиву?

  10. Як вводяться і виводяться двомірні масиви?

  11. Що таке форматований вивід?

ЗАВДАННЯ

  1. Ознайомитись із типами даних, які вживаються у Паскалі і особливостями застосування змінних рядкового типу.

  2. Одержати індивідуальне завдання.

  3. Скласти блок-схему алгоритму і програму на Паскалі для реалізації поставленого завдання.

  4. Виконати обчислення по програмі.

ЗМІСТ ЗВІТУ

  1. Мета роботи.

  2. Короткий опис методів зображення алгоритмів обчислювальних процесів та їх програмування на алгоритмічній мові ПАСКАЛЬ.

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

  4. Блок-схема алгоритму для обчислення по індивідуальному завданню.

  5. Текст програми.

  6. Аналіз результатів, висновки.