Едномерни и двумерни масиви (таблици)

Информация - Компютри, програмиране

Други материали по темата Компютри, програмиране

Едномерни и двумерни масиви (таблици)

Масивът е номерирана последователност от стойности от същия тип, обозначени със същото име. Елементите на масива се намират в последователни места в паметта, посочени от името на масива и индекса. Всяка от стойностите, съставляващи масива, се нарича негов компонент (или елемент на масив).

Масив от данни в програмата се счита за променлива от структуриран тип. На масива е присвоено име, чрез което можете да препращате както към масива от данни като цяло, така и към всеки от неговите компоненти.

Променливите, които представляват компоненти на масива, се наричат ​​индексирани променливи, за разлика от простите променливи, които представляват примитивни данни в програма. Индексът в нотацията на компонентите на масива може да бъде константа, променлива или израз от пореден тип.

Ако на всеки елемент от масива е присвоен само един пореден номер, тогава такъв масив се нарича линеен. По принцип броят на индексите на елементите на масива определя измерението на масива. На тази основа масивите се разделят на едномерни (линейни), двумерни, триизмерни и т.н.

Пример: числова последователност от четни естествени числа 2, 4, 6,. N е линеен масив, елементите на който могат да бъдат означени A [1] = 2, A [2] = 4, A [3] = 6,. A [K] = 2 * (K + 1), където K е номерът на елемента и 2, 4, 6,. N стойности. Индексът (поредният номер на елемента) се записва в квадратни скоби след името на масива.

Например A [7] е седмият елемент от масив A; D [6] шести елемент от масива D.

За да се постави масив в паметта на компютъра, се разпределя поле за памет, чийто размер се определя от вида, дължината и броя на компонентите на масива. В Pascal тази информация е посочена в раздела за описание. Масивът е описан по следния начин:

име на масив: масив [начало на индекс . стойност на индекс] от основен тип;

Var B: Array [1.5] от Real, R: Array [1.34] от Char;

описва масив B, състоящ се от 5 елемента и масив R, състоящ се от 34 елемента. За масив B ще бъдат разпределени 5 * 6 = 30 байта памет, за масив R 1 * 34 = 34 байта памет.

Основният тип елементи на масива може да бъде всеки, с изключение на файла.

Можете да попълните масива, както следва:

1) с помощта на оператора за присвояване. Този метод за запълване на елементите на масива е особено удобен, когато има някаква зависимост между елементите, например аритметична или геометрична прогресия, или елементите са свързани помежду си чрез рекурсивна връзка.

Задача 1. Попълнете едномерния масив с елементи, които отговарят на следната връзка:

a1 = 1; a2 = 1; ai = ai-2 + ai-1 (i = 3, 4, n).

ЗА I: = 3 ДО НЕ

A [I]: = A [I - 1] + A [I - 2];

Друга възможност за присвояване на стойности на елементи от масив е попълването със стойности, получени с помощта на генератор на случайни числа.

Задача 2. Попълнете едномерния масив, като използвате генератор на случайни числа по такъв начин, че всички негови елементи да са различни.

Въведете Mas = Array [1.100] Integer;

Var A: Mas; I, J, N: байт; Log: Boolean;

рандомизира; A [1]: = -32768 + случаен (65535);

За I: = 2 To N Do

A [i]: = -32768 + случаен (65535); J: = 1;

Докато Log и (j a [j]; j: = j + 1 End

За i: = 1 до N Напишете (a [i]: 7); writeln

2) въвеждането на стойностите на елементите на масива от клавиатурата обикновено се използва, когато няма зависимост между елементите. Например, последователност от числа 1, 2, -5, 6, -111, 0 може да бъде въведена в паметта, както следва:

Var N, I: Цяло число;

О: Масив [1.20] от цяло число;

Write (Въведете броя на елементите в масива); ReadLn (N);

ЗА I: = 1 ДА НЕ НАПРАВЯ

Пишете (Въведете A [, I,]); ReadLn (A [I])

Най-често срещаните действия, извършвани върху елементи на масива, са

а) търсене на ценности;

б) сортиране на предмети във възходящ или низходящ ред;

в) броене на елементи в масив, които отговарят на дадено условие.

Сумата на елементите на масива може да бъде изчислена с помощта на формулата S = S + A [I], като първоначално е зададена S = 0. Броят на елементите на масива може да бъде изчислен с помощта на формулата K = K + 1, като първоначално е зададена K = 0. Продуктът на елементите на масива може да бъде изчислен чрез формулата P = P * A [I], като първоначално е зададена P = 1.

Задача 3. Даден линеен масив от цели числа. Пребройте колко различни числа има в него.

ИДЕЯ ЗА РЕШЕНИЕ: стартираме спомагателен масив, елементи

които са логически стойности (False - ако елементът

срещнали по-рано, вярно иначе)>

Var I, N, K, Kol: Integer;

О: Масив [1.50] от цяло число;

Lo: Array [1.50] от Boolean;

Write (Въведете броя на елементите на масива:); ReadLn (N);

ЗА I: = 1 ДА НЕ НАПРАВЯ

Пишете (A [, I,] =); ReadLn (A [I]);

ЗА I: = 1 ДА НЕ НАПРАВЯ

ЗА K: = И ДА НЕ СЕ

ако номерът вече е възникнал преди или съвпада с текущия елемент A [I]>

Lo [K]: = (A [K] <> A [I]) И Lo [K];

WriteLn (Брой отделни числа:, Kol)

Тест: N = 10; масивни елементи - 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. Отговор: 6.

Задача 4. Даден линеен масив. Подредете елементите му във възходящ ред.

Идея за решение: оставете част от масив (до K-тия елемент включително)