Массив. Именем массива с индексом
Скачать 33.53 Kb.
|
Массив – конечная группа переменных одного типа, которой присвоено общее имя. Так, совокупность целых чисел -12, 14, 124, -1, 25 можно считать массивом и обозначить одним именем, например A . Каждый элемент массива обозначается именем массива с индексом. В нашем случае имеется пять элементов, тогда, например, первый элемент и четвертый записываются следующим образом первый - A[1], четвертый - A[4]. Имя массива является единым для всех элементов. К каждому элементу массива можно обратиться с помощью индекса. Индекс – величина, характеризующая положение элемента относительно начала массива. Индекс записывается в квадратных скобках, например, A[1] , 1 – это индекс, указывающий на первый элемент массива с именем A . Если в программе используется массив, то он должен быть описан или в разделе переменных Var , или в разделе типов Type . Формат описания массива в разделе переменных: 1.Var 2.:array[индекс] of здесь : array (массив); of (из) – зарезервированные слова языка; индекс – величина, характеризующая положение элемента относительно начала массива. В качестве индекса могут использоваться константы или данные целого, логического, символьного, перечисляемого и интервального типа (кроме Longint ); тип элементов – любой тип Турбо Паскаля. Пример описания массива 1.Var 2.a:array[1..5] of integer; 3.b,c:array[1..20] of real; В приведенном примере описаны три массива: a,b,c . В описании массивов содержатся следующие сведения: имена массивов – a,b,c ; тип элементов массивов: a – целые, b и c – вещественные; диапазон изменения индексов – 1..5 и 1..20 . Нижняя граница отделяется от верхней границы двумя точками. Две точки « .. » рассматриваются как единый неделимый символ. Нижняя граница показывает наименьшее значение индекса, верхняя – наибольшее. Значение нижней границы не может быть больше верхней. Массивы b и c имеют один и тот же тип и одинаковое количество элементов, поэтому описания можно объединить, разделив имена массивов запятой. Выделение памяти для массивов производится раньше, чем выполняется какой-либо оператор программы, поэтому значения верхних границ массивов можно поместить в разделе констант. Например: 1.Program example_2; 2.const n=20; 3.Var 4.b,c:array[1..n] of real; 5.Begin ... Использование констант не только облегчает процесс изменения программы, но и делает его более надежным. Массивы могут быть одномерными и многомерными. На практике, как правило, используют одномерные, двумерные и трехмерные массивы. Схематично одномерный и двумерный массивы можно представить таким образом: Схема представления одномерного массива Схема представления двумерного массива В приведенной схеме массив A можно рассматривать как матрицу или таблицу и говорить, что A[i,j] – это элемент, находящийся в j -ом столбце i- ой строки этой матрицы. Описание двумерного массива. 1.Const 2.m =10; n =20; 3.Var 4.b,c:array[1..m, 1..n] of real; Поскольку в Турбо Паскале тип элементов массива может быть любой, в том числе и другим массивом, то помимо явного описания массивов в разделе переменных, существует и другая форма описания, через использование раздела типов. Последовательность описания и использования раздела Type следующая: в разделе описания типов Type указывается тип массива; в разделе описания переменной Var перечисляются массивы, относящиеся к указанному типу. Формат описания массивов: 1.Type<имя типа массива>=array[индекс] of <тип элементов> 2.Var 3.<имя массива>:<имя типа массива> Пример: 1.Const 2.n=10; m=20; 3.Type 4.mas=array[1..n,1..m] of real; 5.Var 6.a:mas ; Если в программе несколько массивов, например, a,b,c,d, которые имеют тип mas , то изменяется только раздел описаний переменных: 1.Var 2.a,b,c,d:mas; Тип массива mas формально введен только в разделе описания типов и нигде в программе не указывается и не обрабатывается. При работе с массивами следует учитывать следующие правила: над массивами не определены операции отношения. Нельзя писать if a=b then ... сравнивать элементы массива можно поэлементно for i:= 1 to 10 do if a[i]b[i] then ... при работе с массивами наиболее часто используется оператор цикла For ... to ...do Примеры: 1. Всем элементам одномерного массива a[1..10] присвоить нуль: for i:= 1 to 10 do a[i]:=0; 2. Всем элементам двумерного массива a[1..10,1..20] присвоить нуль: for i:= 1 to 10 do for j:= 1 to 20 do a[i,j]:=0; 3. Всем элементам одномерного массива a[1..10] присвоить значения элементов массива b[1..10] : for i:= 1 to 10 do a[i]:=b[i]; ЗАДАЧА 1. Написать программу вычисления суммы пятнадцати чисел. 01.program a16; 02.Type 03.mas=array[1..15] of integer; {объявление типа массива} 04.Var 05.a:Mas; {объявление массива a типа mas} 06.i,sum:integer; {i-параметр цикла; sum-сумма чисел} 07.begin 08.sum:=0; {присваиваем начальное значение} 09.writeln(‘Введите 15 целых чисел:’); 10.for i:=1 to 15 do 11.begin 12.readln(a[i]); {ввод элементов массива} 13.sum:=sum+a[i]; {вычисление суммы} 14.end; 15.writeln(‘Сумма чисел равна:’, sum:6); 16.end. Результаты работы программы: Введите 15 целых чисел 1 1 1 ... 1 Сумма чисел равна: 15 ЗАДАЧА 2. Ввести с клавиатуры 15 вещественных чисел в массив и найти сумму этих чисел. 01.program a17; 02.Const n =15; {количество чисел} 03.Type 04.mas=array[1..n] of real; 05.Var 06.a:Mas; 07.i:integer; {параметр цикла} 08.sum:real; {сумма чисел} 09.begin 10.writeln(‘Введите ’, n:4,’ чисел’); 11.for i:=1 to n do 12.begin 13.write(‘a[‘,i,’]=’); 14.readln(a[i]); {ввод элементов массива} 15.end; 16.sum:=0; {присваиваем начальное значение} 17.for i:=1 to n do sum:=sum+a[i]; {вычисление суммы} 18.writeln; 19.writeln(‘Сумма равна:’, sum:8:2); 20.end. Результаты работы программы: Введите 15 чисел a[1]=1 a[2]=1 a[3]=1 ... a[15]=1 Сумма равна: 15.00 ЗАДАЧА 3. Найти наибольший элемент массива и определить его номер. Количество элементов массива и их значения ввести с клавиатуры. 01.program a18; 02.Const n =100; {допустимое количество чисел} 03.Type 04.mas=array[1..n] of real; 05.Var 06.a:Mas; 07.m:integer; {количество чисел} 08.i:integer; {параметр цикла} 09.k:integer; {порядковый номер элемента массива} 10.max:real; {максимальный элемент массива} 11.begin 12.write(‘Введите количество чисел: ’); 13.readln(m); 14.writeln(‘Введите ’, m:4,’ чисел’); 15.for i:=1 to m do 16.begin 17.write(‘a[‘,i,’]=’); 18.readln(a[i]); {ввод элементов массива} 19.end; 20.max:=a[1]; k:=1; {берем первый элемент массива} 21.for i:=2 tom do {в цикле начиная со второго элемента просматриваем массив} 22.if a[i]>max then 23.begin 24.max:=a[i]; k:=i; 25.end; 26.writeln; 27.writeln(‘Номер наибольшего элемента:’,k:3); 28.writeln(‘Его значение:’,max:8:2); 29.end. Результаты работы программы: Введите количество чисел: 5 Введите 5 чисел a[1]=101.2 a[2]=11.4 a[3]=1.0 a[4]=304.7 a[5]=19.3 Номер наибольшего элемента: 4 Его значение: 304.70 http://turbopro.ru/index.php/turbopascal/6800-turbo-pascal-massivy |