Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Динамічні масиви

Читайте также:
  1. Варіантні масиви
  2. Електродинамічні зусилля в електричних апаратах. Методи розрахунку зусиль та їх напрямку.
  3. Масиви інформації, типи носіїв. Зберігання і пошук інформації.

У Delphi додана цікава можливість опису масивів без вказівки розмірності і, відповідно, меж зміни індексів:

Var

IntArray: Array Of integer;

Такі масиви є дінамічними і спочатку мають нульову довжину. Установка розміру масиву і визначення його під час виконання програми проводиться так само як і для рядків, за допомогою функцій Setlength і Length, відповідно. Елементи в даному випадку нумеруються від нуля.

Program UsingDynamicArrays1;

Var

А, В: Array of Integer;

{Опис двох змінних - динамічних масивів цілочисельних елементів}

Begin

Setlength(A, 5); {Установка розміру масиву А (5 елементів)}

А[0]:= 1; {Присвоєння значення 1 елементу масиву А з номером 0)

End.

 

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

Лістинг 3. Приклад присвоєння одного масиву іншому

Program Usingdynamicarrays2;

Var

А, В: Array of Integer;

{Опис двох змінних - динамічних масивів цілочисельних елементів}

Begin

Setlength(A, 5);{ Установка розміру масиву А (5 елементів)}

А[0]:= 14; { Присвоєння значення 14 нульовому елементу масиву А}

B:= А; { Присвоєння масиву В масиву А, тепер змінні А і В указують на один і той же масив}

B[0]:= 2; { Присвоєння нульовому елементу масиву В значення 2, тепер нульовий елемент масиву А також має значення 2}

End.

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

Var

S1, S2: Ansistring;

{ Опис двох рядквих змінних типу Ansistring}

А1, А2: Array Of Integer;

{ Опис двох змінних – динамічних масивів цілочисельних елементів}

Begin

S1:= ‘abcdef’;

S2:= ‘abcdef’; {Тепер змінні S1 і S2 рівні}

Setlength(A1, 2); {Установка розміру массиву A1}

Setlength(А2, 2); {Установка розміру масиву А2 рівного розміру масиву А1}

А1[0]:= 0;

А1[1]:= 1;

А2[0]:= 0;

А2[1]:= 1; {Заповнення масивів А1 і А2 однаковими елементами. Тепер масиви мають однакові довжини і складаються з однакових елементів, проте не рівні між собою, оскільки знаходяться в різних місцях пам'яті}

А2:= А1; {Присвоєння посилання на масив А1 у змінну A2. Тепер масиви А1 і А2 рівні, оскільки змінні А1 і А2 указують на одне і те ж місце в пам'яті}


Дата добавления: 2015-07-11; просмотров: 129 | Нарушение авторских прав


Читайте в этой же книге: Опис вихідних документів | Приклад розв’язування системи лінійних рівнянь | Завдання | Одержання та дослідження колоїдних розчинів срібла. | Кадровий облік | Звіти з кадрового обліку, з нарахування і виплати зарплати | Нарахування зарплати | Особливості обліку ПДФО | Виплата зарплати | Введення початкових залишків по зарплаті |
<== предыдущая страница | следующая страница ==>
Типізовані покажчики| Визначення типу варіантних змінних

mybiblioteka.su - 2015-2024 год. (0.007 сек.)