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

3.1.3. Дані типу array (масив)

Масив – це впорядкований набір змінних одного типу, які називаються елементами масиву. Всі елементи масиву пронумеровані; номер елемента масиву називається його індексом. Перед використанням масиву його необхідно описати. Оголошення (опис) змінних типу ARRAY виконується в розділі оголошень та узгоджень ТР-програми таким чином (для одномірного масиву):

VAR <iм`я масиву>:ARRAY [<поч.індекс>…<кінц. індекс>] OF <тип даних>

Наприклад:

VAR MASSIV:ARRAY[1…100] OF INTEGER;

Цей запис означає, що масив з іменем MASSIV може містити 100 елементів цілого (INTEGER) типу, які пронумеровані (мають індекси) цілими числами від 1 до 100. Індексами елементів масиву можуть бути константи будь-якого простого типу, крім дійсного. Доступ до елементів масиву виконується за іменами цих елементів. Ім`я елемента масиву утворюється з імені самого масиву, за яким у квадратних дужках слідує індекс (номер) цього елемента, наприклад MASSIV [8].

Над елементами масиву можна виконувати ті самі дії, що й над змінними того ж типу.

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

В умові ТР 7.0 немає можливості ввести в пам`ять комп`ютера відразу значення всіх елементів масиву. Тому введення масиву виконується по-елементно за допомогою циклу. Наприклад:

FOR i:=1 TO 100 DO

BEGIN

WRITE (‘Введіть’,і,’-ий елемент масиву’);

READLN (MASSIV[i]);

END;

3.1.4. Зразок виконання індивідуального завдання

Завдання. Скласти програму обчислення функції.

а) аргумент хі задається умовами

а<= хі<=b, хі +1= хі +h, де а, b, с — константи, h – крок.

б) аргумент хі визначається значенням елементів одномірного масиву, тобто хі =[ х12,…,хn-1n], n=20.

  1. Виконання завдання. Складемо алгоритм обчислень для варіанта а), побудувавши графічну блок-схему (рис.3.1.1.).

Рис.3.1.1. Блок-схема обчислення функції з розгалуженням

Перш ніж перейти до написання програми мовою ТР 7.0, яка реалізує цей алгоритм, зробимо декілька зауважень.

  1. У мові ТР 7.0 немає функцій для обчислення математичних операцій logy(x) та yx (піднесення до степеня), але можна скористатися рівностями:

logy(x) =ln(x)/ln(y); yx=e(x·ln(y))

  1. Оскільки в побудованій блок-схемі умова (х>b) стоїть після тіла циклу, то при написанні програми зручно використати циклічну конструкцію REPEAT…UNTIL (цикл із післяумовою).

  2. Конкретні значення констант а, b, с і h слід задавати коректно, тобто так, щоб виконувались умови: a<b, a<c<b, h<<(b-a), a>-1.

  3. Оскільки в тілі циклу після перевірки умови (х<с), слід використовувати умовну конструкцію IF…THEN…ELSE.

Тоді ТР-програма, яка реалізує алгоритм (рис.3.1.1.), запишеться:

PROHRAM TABULATION1; {табуляція функції}

USES Crt; {під`єднання модуля}

CONST a=0.0; b=10.5; C=5.4; h=0.1;

VAR x,F:REAL; {оголошення констант та змінних}

BEGIN {початок основного блоку програми}

ClrScr; {очищення екрана монітора}

X:=a;

REPEAT {цикл}

IF x<c {умовна конструкція}

THEN

F:=ln(x+1)/ln(5)

ELSE

F:=exp(x*ln(2));

WRITELN(x,F); {виведення результатів}

X:=x+h; {перепозначення змінної циклу}

UNTIL x>b; {перевірка умови виходу з циклу}

END. {кінець основного блоку програми}

Змінимо початковий варіант графічної блок-схеми, як показано на рисунку 3.1.2.

Оскільки тепер умова (x<=b) стоїть перед тілом циклу, то при написанні програми зручно використовувати циклічну конструкцію WHILE…DO (цикл із передумовою):

PROGRAM TABULATION2;

uses crt;

CONST a=0.0; b=10.5; C=5.4; h=0.1;

VAR x,F:REAL;

BEGIN

X:=a;

WHILE x<=b DO

BEGIN

IF x<=c

THEN

F:=ln(x+1)/ln(5)

ELSE

F:=exp(x*ln(2));

WRITELN(x,F);

X:=x+h;

END;

END.

Рис.3.1.2. Модифікована блок-схема обчислення функції з розгалуженням

Складемо алгоритм обчислень у вигляді блок-схеми для варіанта б) (рис.3.1.3.) використанням у середині циклу лічильника (змінна циклу і). Очевидно, що в даному випадку при написанні програми зручно використовувати циклічну конструкцію FOR…TO…DO (змінна циклу збільшується)

Рис.3.1.3. Блок-схема обчислення функції F(x[i]) з використанням одинарного масиву

PROGRAM TABULATION3;

uses crt;

CONST C=7.8;N=20;

VAR i:INTEGER; F:REAL;

X:ARRAY [1..N] OF REAL; {опис масиву х}

BEGIN

ClrScr;

For I:=1 to n do

Begin

Writeln ('Уведіть i-ий елемент масивy');

Readln (x[i]);

End; {уведення масиву в пам’ять}

For i:=1 to N do

Begin

IF x[i]<C

THEN

F:=ln(x[i]+1)/ln(5)

ELSE

F:=exp(x[i]*ln(2));

WRITELN(x[i],F);

END;

END.

2) Введемо, налагодимо та виконаємо програми за комп`ютером. При виконанні програми TABULATION3 треба слідкувати, щоб значення елементів масиву х не виходили за межі допустимих (необхідно виконати умови x[i]>-1).