Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Понятие массива
Чтобы определить понятие «массив», сначала необходимо
определить понятие «простая переменная».
Простая переменная - это одно значение, имеющее имя и занимающее одну ячейку
памяти. Размер этой ячейки зависит от типа переменной.
Например:
Var
X:Real; {простая переменная X, занимает 6 байт памяти}
N:Integer; {простая переменная N, занимает 2 байта памяти}
Обращение к простой переменной производится через ее имя.
Например:
X:=10.4; {X присвоили значение 10.4}
N:=round(X)+5; {N присвоили значение округленного до целого
X (а это 10) + 5= 10+5=15}
Массив, в отличии от простой переменной, представляет собой не одно значение, а множество значений, объединенных одним именем. В языке Turbo Pascal’е все значения из этого множества должны иметь один и тот же тип.
Каждое из значений массива называется элементом массива.
Доступ к элементам массива производится посредством указания
имени массива и номера элемента массива, заключенного в
квадратные скобки.
Номер элемента массива называется индексом элемента массива.
Использование элемента массива не отличается от
использования простой переменной, имеющей тот же тип, что и
элемент массива.
В Turbo Pascal’е массив объявляется при помощи ключевого слова array, после которого в квадратных скобках указываются границы индексов – верхняя, а после двух точек нижняя.
После квадратных скобок после ключевого слова of указывается тип элементов массива.
Пример определения массивов:
Var
A: Array [1..10] of integer; {массив A, состоящий из 10 элементов
целого типа с индексами от 1 до 10}
B: Array [5..8] of real; {массив B, состоящий из 4 элементов
вещественного типа с индексами от 5 до 8}
Пример работы с массивами:
Begin
A[1]:=3; {в элемент массива A с индексом 1 записали число 3}
A[4]:=A[1]+1; {в элемент массива A с индексом 4 записали
число 3+1=4}
B[5]:=0.111; {в элемент массива B с индексом 5 записали
число 0.111}
B[A[1]+A[4]]:=B[5]*2; {в элемент массива B с индексом=
A[1]+A[4]=3+4= 7 записали число 0.222}
End.
Одномерные и n - мерные массивы
Все массивы, которые приведены выше, называются одномерными – у элементов одномерных массивов в квадратных скобках указывается только один индекс (у таких массивов только одно измерение).
Кроме одномерных массивов могут быть и двумерные, и трехмерные, и прочие n-мерные массивы. «Мерность» массивов определяется количеством индексов, указываемых в квадратных скобках, для того чтобы определить элемент массива.
На практике чаще всего используются одномерные массивы, реже двумерные, и значительно реже массивы больших размерностей.
Двумерные массивы
Одномерный массив можно представить в виде строки. Например, массив целых чисел
можно представить строкой целых чисел, например такой: 3 2 4 1 3.
Двумерный массив можно представить в виде прямоугольной таблицы, например такой:
2345
0483
7153
Чтобы определить такой массив, в программе надо написать:
Var
A: array[1..3,1..4] of integer;
Здесь в массиве A первый интервал индексов - 1..3 – обозначает индекс номера строки, а
второй интервал индексов – 1..4 – обозначает индекс номера столбца.
Для обращения к элементу двумерного массива необходимо в квадратных скобках сначала указать номер строки, а затем номер столбца.
ОСНОВНЫЕ АЛГОРИТМЫ ОБРАБОТКИ
ОДНОМЕРНЫХ МАССИВОВ
Общие замечания
Алгоритмы обработки массивов включают в себя, как правило,
последовательную обработку каждого из элементов массива. Такая
последовательная обработка называется сканированием массива, и
для ее реализации удобнее всего использовать цикл for. Например,
фрагмент программы, выполняющий подсчет суммы элементов
массива имеет такой вид:
…
S:=0; {Значение суммы S обнуляем}
For i:=1 to N do {проходим по всем N элементам массива}
S:=S+a[i]; {прибавляя к сумме S значение i-го элемента}
…
По сложившейся традиции, переменная, используемая в качестве
счетчика цикла сканирования элементов массива, называется i. Если
в программе требуется не одна, а две переменные-счетчики, то им
дают имена i и j. Если же требуется более двух переменных-
счетчиков, то первым двум дают имена i и j, а остальным, как
правило, дают тоже однобуквенные имена (например k, l,z и т. д.).
Все эти переменные должны иметь тип, совместимый с типом
индекса элемента массива.
Всего же при работе с одномерными массивами нужны:
Константы:
Const
maxN = 20; {максимальное количество элементов
в массиве}
Переменные:
Var
n:integer; {количество используемых элементов в массиве}
i:IndexEl; {счетчик, используемый для сканирования}
Ввод/вывод массива
Задача 1: Ввод массива с клавиатуры
Алгоритм состоит из двух пунктов:
1 . Ввод количества элементов.
2 . Ввод элементов массива поодиночке в цикле.
Фрагмент программы:
…
{1 - ввод количества элементов}
repeat
write('Введите n:');
readln(n);
until (n>=1) and (n<=maxN);
{2 - ввод элементов массива поодиночке}
for i:=1 to n do
begin
write('a[',i,']');
readln(a[i]);
end;
…
Задача 2: Заполнение массива случайными числами.
Алгоритм состоит из трех пунктов:
1 . Перезапустить генератор случайных чисел.
2 . Ввести количество элементов n (или сгенерировать
случайное значение n).
3 . Сгенерировать значения для всех элементов.
Фрагмент программы:
…
{1 - перезапускаем генератор случайных чисел}
randomize;
{2 - генерируем случайное значение n}
n:=random(maxN);
{3 - генерируем n элементов массива}
for i:=1 to n do
a[i]:=random(100); {каждый элемент примет значение
из интервала 0..99}
…
Краткая информация об используемых стандартных процедурах
и функциях:
Randomize - инициализирует генератор случайных чисел
случайным значением (случайное значение зависит от момента
перезапуска, т. е. зависит от времени).
Random(Num) - возвращает случайное целое число, находящееся
в интервале 0 .. (Num-1) (Например, если Num=100 (как в нашем
примере), то Random возвращает числа в интервале от 0 до 99).
Если Num<=0, то Random всегда будет возвращать 0.
Чтобы получить значения в интервале, отличном от [0..Num-1],
необходимо к значению, возвращаемому Random, прибавить
смещение начала интервала.
Пример 1: необходим интервал [-50 .. 50].
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


