МАССИВЫ
1. Массивы. Понятие массивности. 2. Типы данных. 3. Одномерные массивы. 4. Индексация элементов. 5. Поиск максимального(минимального)элемента массива. 6. Введение данных в массивы.
Очень многие задачи на языке программирования решаются с помощью массивов. Очень многие задачи на языке программирования решаются с помощью массивов. Массив это набор однотипных данных, то есть если массив объявлен как числовой, то в него нельзя записать строку. Часто у многих возникают проблемы с массивами из-за того, что они просто не понимают и не представляют, что такое массив. Массив это набор однотипных данных, то есть если массив объявлен как числовой, то в него нельзя записать строку. Часто у многих возникают проблемы с массивами из-за того, что они просто не понимают и не представляют, что такое массив. Попробуем разобраться с этой проблемой. Массив - набор однотипных данных. Алфавит - это тоже массив.(а б в г д...) Набор каких-то цифр - массив ( ) Массивы бывают: одномерные и двумерные. Одномерные (строка или столбец): Двумерные ( в виде какой-либо таблицы)
1. Boolean - логический тип. Для хранения переменной отводятся 2 байта. Переменная может принимать только 2 значения True(Истина) и False(Ложь). 2. Byte - числовой тип. Для хранения переменной отводиться 1 байт. Значения переменной может находиться в промежутке от 0 до 255. Знак не используется. 3. Char - символьный тип. Для хранения переменной отводиться 2 байта. В качестве значения переменной обычно применяются символы, так как используются теперь 2 байта. Разработчики могут применять символы Unicode. 4. Date - предназначен для хранения дат. Переменная занимает 8 байт. Возможные значения находятся в промежутке от 1 января 100 года нашей эры до 31 декабря 9999 года. 5. Decimal - самый мощный числовой тип. Для хранения переменной подобного типа отводиться 16 байт. Отрицательная и положительная границы промежутка, в котором располагаются возможные значения этой переменной, одинаковы по модулю и равны +/ , если использовать целые числа. Если же необходимо хранить дробные величины, то границы возможных значений будут смещены на несколько порядков в зависимости от того, сколько знаков после запятой использует разработчик. Подобный тип может использоваться только для хранения десятичных дробей. Разработчик может использовать до 28 знаков после запятой.
6. Double - это числовой тип. Применятся для хранения чисел в экспоненциальной форме. Для хранения переменной отводится 8 байт. Отрицательные значения находятся в промежутке от - 1, E+308 до -4, E-324. Положительные значения входят в промежуток от 4, E-324 до 1, E Integer - предназначен для обработки целочисленных значений. Переменная подобного типа занимает 4 байта. Возможные значения находятся в промежутке от до Long - предназначен для целочисленных значений. Для хранения переменной отводится байт. Возможные значения переменной подобного типа находятся в промежутке от до Object - по сути, переменная подобного типа является всего лишь ссылкой на некий конкретный экземпляр какого либо объекта. Для хранения переменной отводятся 4 байта. 6. Double - это числовой тип. Применятся для хранения чисел в экспоненциальной форме. Для хранения переменной отводится 8 байт. Отрицательные значения находятся в промежутке от - 1, E+308 до -4, E-324. Положительные значения входят в промежуток от 4, E-324 до 1, E Integer - предназначен для обработки целочисленных значений. Переменная подобного типа занимает 4 байта. Возможные значения находятся в промежутке от до Long - предназначен для целочисленных значений. Для хранения переменной отводится байт. Возможные значения переменной подобного типа находятся в промежутке от до Object - по сути, переменная подобного типа является всего лишь ссылкой на некий конкретный экземпляр какого либо объекта. Для хранения переменной отводятся 4 байта.
10. Short - облегченный целочисленный тип. Для хранения переменной отводятся 2 байта. Возможные значения переменной данного типа находятся в промежутке от до Single - предназначен для хранения чисел в экспоненциальной форме. Для хранения переменной отводятся 4 байта. Отрицательные возможные значения переменной такого типа расположены в промежутке от - 3,402823E+38 до -1,401298E-45. Положительные значения укладываются в промежуток от 1,401298E-45 до 3,402823E String - строковый тип. Предназначен для хранения строк различной длинны. Возможная длинна строки, может, доходит до 2-х миллионов символов кодировки Unicode. Объем памяти для хранения переменной выделяется в зависимости от длинны строки.
Для получения доступа к элементу массива используется индекс. Пример: Представим массив, состоящий из 88 элементов типа real, в котором элементы нумеруются от 11 до 99. x [11]x [12]x [13] … x [98]x [99] Индекс … 9899 Значение … Индекс массива - это величина целого типа, характеризующая положение элемента в массиве. Каждому массиву, используемому в программе, выделяется место в памяти. Массиву отводится не одна ячейка, а последовательность расположенных друг за другом ячеек, в каждую из которых записывается значение соответствующего элемента.
Описание массива Описание массива включает в себя: 1) Имя массива: 2) Ключевое слово array; 3)Диапазон изменения индексов, определяемый граничной парой, например: N Нижняя граница показывает наименьшее возможное значение индекса, верхняя - наибольшее. Нижняя граница не может превосходить верхнюю. Нижняя граница отделяется от верхней двумя точками; 4) Тип элементов массива.
Описание массива строится по следующей схеме: : array [граничная пара] of (массив) (из) Если несколько массивов имеют один и тот же тип, и одинаковый диапазон изменения индекса, то их описание можно объединить, разделив имена массивов запятыми: Var : array [граничная пара] of Примеры: Var Vector: array [1..60] of integer; xBlock: array [40..50] of real: Xl,x2: array [0..60] of integer;
Действия над элементами массива После объявления массива каждый его элемент можно обработать, указав имя массива и индекс элемента в квадратных скобках. Например, запись xBlock [42], Vektor[10] позволяет обратиться к элементу массива xBlock с индексом 42 и элементу массива Vektor с индексом 10.
Заполнение массива. Заполнить элементы одномерного массива значениями мы можем: вводя значения с клавиатуры; случайным образом; по формуле. Надо помнить, что во всех трех случаях нам не обойтись без организации цикла. Будем считать, что объявили массив из 10 элементов (тип элементов в данном случае значения не имеет).
1. Заполнение с клавиатуры. FOR i:=1 to 10 do begin writeln('введите значение элемента'); readln(a[i]) end; 2. Заполнение случайным образом. Для этого мы должны подключить датчик случайных чисел. FOR i:=1 to 10 do a[i]:=random(n); {n должно быть заранее задано} 3. Заполнение по формуле. Каждый элемент массива должен быть рассчитан по формуле (например, а i = sin i – cos i). FOR i=1 to 10 do a[i]:=sin(i)-cos(i);
Вычисление суммы элементов S:=0; FOR i:=1 to 10 do S := S + a[i]; Вычисление среднего значения элементов массива S:=0; FOR i:=1 to 10 do S := S + a[i]; SR:= S/10;
Поиск максимального (минимального) элемента массива. Пусть мы имеем одномерный массив: 20,-2,4, 10,7,21,-12,0,4, 17. Алгоритм поиска максимального (минимального) элемента мы построим так, чтобы сравнивать пару чисел, повторяя действие сравнения нужное количество раз. Введем дополнительную переменную с именем max. Она и будет одним из чисел, второе число это очередной элемент массива. Для того, чтобы провести первую операцию сравнения необходимо переменной max присвоить некоторое начальное значение. Здесь могут быть два варианта: 1) присвоить переменной max первый элемент массива, тогда количество повторений операции сравнения равно n -1; 2) присвоить число заведомо меньшее всех элементов массива. В этом случае, количество повторений операции сравнения n.
Чтобы ввести данные в массив, необходимо напрямую обратиться к каждому элементу и присвоить ему нужное значение. Проход по массиву обычно выполняется с помощью цикла. Для заполнения одномерного массива, установите один циклический обработчик (for, while или др.), при работе с двумерным массивом должны быть заданы два цикла (один в другом). Пример кода заполнения одномерного массива: DIM m а ss(5,6) FOR i=1 to m FOR j=1 to n m а ss(i,j) = j; next next Здесь в каждый элемент массива вносится его порядковый номер в строке (индекс второго цикла j).