АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Одновимірні масиви

Читайте также:
  1. Багатовимірні масиви
  2. Рух частинки в нескінченній глибокій одновимірній потенційній ямі

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

 

1 Мета роботи

 

Знайомство з найпростішим зі структурованих типів даних – одновимір-ним масивом. Вивчити засоби використання одновимірних масивів в програмах алгоритмічною мовою Object Pascal в середовищі програмування Delphi.

 

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

 

2.1 Поняття масиву

Масив (Array) в програмуванні ­­– це упорядкована сукупність елементів одного й того самого типу. Масиви зручно використовувати для зберігання та опрацювання однорідної інформації, наприклад, таблиць, векторів, матриць, коефіцієнтів рівнянь тощо.

Кожен елемент масиву однозначно можно визначити ім’ям та індексами. Ім’я масиву (iдентифікатор) складають за тими самими правилами, що й для змінних. Індекси визначають місцезнаходження елемента в масиві. Наприклад, елементи вектора мають один індекс – номер за порядком; елементи матриць чи таблиць мають по два індекси: перший означає номер рядка, другий - номер стовпчика. Кількість індексів визначає вимірність масиву. Наприклад, вектори в програмах – це одновимірні масиви, матриці – двовимірні. В цій роботі ми розглянемо лише одновимірні масиви.

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

A [10], Vect [к], r7 ['с'] - елементи векторів: А10, Vectk, r7’c’;

Масив може займати в пам’яті не більш 2 Гбайти.

2.2 Описування одновимірних масивів

Масиви в програмах можна описувати двома способами:

1) Type ім'я_типу = аrray [ тип_індексу ] оf тип_елементів_масиву;

Var ім'я_масиву: ім'я_типу;

2) Var ім'я_масиву: аrray [ тип_індексу ] оf тип_елементів;

Тут тип_індексу – це константи або змінні перераховного типу, які визначають діапазон змінювання індексів. Приклади описування масивів:

Type Mas1= array [1.. 11] of real;

Mas2= array [1.. 5] of integer;

Mas3 = array ['a'..'e'] of real;

Mas4= array [Boolean] of char;

Var A: Mas1; B: Mas2; C: Mas3; D: Mas4;

У прикладах наведено опис таких масивів:

А - вектор величин А1, А2,…, А11, який складається з дійсних елементів А [ 1 ], А [ 2 ], …, А [ 11 ];

B- послідовності 5 цілих чисел B1,B2,…B5, яка складена з цілих елементівB[1], B[2], ..., B[3].

C - вектор з п’яти елементів дійсного типу C['a'], C['b'], C['c'], C['d'], C['e'];

D - символьний масив з двох елементів D [ True ], D [ False ];

Для описування масивів зручно використовувати типізовані констант-масиви, які дозволяють водночас об’явити масив й задати його значення в розділі опису констант:

Const ім'я_масиву: аrray [ тип_індексу ] оf тип_елементів_масиву =

(значення_елементів_масиву);

Наприклад, оператор

Const T: array [1..5] of real = (0.5, 3.4, –2.7, 6.5, 4.8);

описує й задає значення п’ятьом елементам вектора Т.

Значення елементів масивів із загальним описом можна присвоювати лише одним оператором присвоєння, не використовуючи цикли. Наприклад, якщо масиви S й Z мають опис

Var S,Z: array [1..14] of real;

то після введення або обчислення значень масиву S можна присвоїти такі ж самі значення масиву Z одним оператором

Z: = S;

 

2.3 Виведення елементів одновимірного масиву

Виводити значення масивів можна у файл або на форму, використо-вуючи різноманітні компоненти Delphi. При цьому виводити значення елементів масивів можна лише поелементно, для чого слід організувати цикли змінювання за значеннями індексу. Як зорганізувати виведення масивів у файл, буде розглянуто в інших лабораторних роботах. Тепер розглянемо, як зорганізувати виведення одновимірних масивів на форму за допомогою компонентів Edit, Label, Memo, ListBox та функції ShowMessage.

В наведених прикладах використовуватимемо змінні, що мають такий опис:

Var А: array[1..11] of real;

i, ier: integer;

sa, st: string;

 

2.3.1 Виведення в Edit

В компонент Edit можна виводити одновимірні масиви, відокремлюючи елементи пропусками чи іншим символом. Кількість елементів масиву, котрі можна побачити, обмежена довжиною компонента Edit на формі вікна.

Приклад фрагменту програми виведення масиву А:

 

st: =’’; // очищення рядка st

For i: =1 to 11 do // початок циклу за індексами масиву

begin

str(А[i]: 4:1, sa); // перетворення числа на рядкову величину

st: = st+sa +’ ’; // нагромадження рядка значень масиву

end;

Edit1.Text:=st; // присвоєння значень масиву компоненту Edit1

2.3.2 Виведення у Label

В компоненту Label можна виводити масиви, відокремлюючи елементи пробілами (’ ’) або символами переходу до нового рядка (#13). Виведення одновимірного масиву в рядок організують за тими ж правилами, що й в компоненті Edit, лише в програмі замість Edit1.Text треба писати Label1.Caption (наприклад, Label1.Caption:=st;). Для виведення одновимірного масиву в стовпчик замість символу пробіл (’ ’) треба писати символ #13 (наприклад, st:=st + sa + #13;).

 

2.3.3 Виведення у вікно повідомлень

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

Edit1.Text: = st;

треба записати

ShowMessage(st);

 

2.3.4 Виведення у Memo

За допомогою компонента Memo можна виводити масиви з будь-якою кількістю елементів, оскільки можна використовувати смуги прокручування (надати властивості ScrollBars значення ssBoth чи ssVertical).

Приклад фрагмента програми виведення масиву А (в стовпчик):

 

Memo1.Clear; // очищення компонента

For i:=1 to 11 do // початок циклу за індексами масиву

begin str(A[i]:4:1, sa); // перетворення числа в рядкову величину

Memo1.Lines.Add(sа); // виведення одного значення масиву

end;

2.3.5 Виведення у ListBox

Виведення масивів за допомогою компонента ListBox організують так само, як і з компонентом Memo, лише замість Memo треба писати оператор виклику процедури ListBox. Наприклад, замість оператора

Memo2.Lines.Add(sа);

треба записати

ListBox1.Items.Add(sа);

 

2.4 Введення елементів масиву

Вводити значення масивів можна використовуючи такі компоненти Delphi, як Memo, ListBox, Edit. Як і при виведенні масивів, при введенні слід організовувати цикли змінювання за значенням індексу.

 

2.4.1 Введення з вікна Memo

За допомогою компонента Memo можна вводити масиви як в процесі виконання програми, так і при конструюванні форми проекта програми через вікно властивості Lines (для переходу до нового рядка при введенні значень треба натиснути клавішу <Enter>).

Приклад фрагмента програми введення значень елементів одновимір-ного масиву А (в кожному рядку по одному числу):

 

For i:=1 to 11 do // початок циклу за індексами масиву

begin

sa:=Memo1.Lines[i-1]; // читання строкового значення елемента масиву

val(sa,a[i],ier); // перетворення рядкової величини елемента масиву на числову

end;

2.4.2 Введення з ListBox

За допомогою компонента ListBox можна вводити масиви так само, як і з компонентою Memo, лише замість властивості Lines використовувати властивість Items.

2.4.3 Введення з Edit

Введення елементів одновимірного масиву за допомогою компонента Edit (у один рядок через пробіл) потребує створення спеціальної підпрограми введення рядкової величини та перетворення її на масив величин іншого типу. Така підпрограма буде розглянута при вивченні роботи з рядковими величинами.

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)