КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Индексные переменные
Массив – совокупность однотипных данных, объединенных одним именем. Элементы массива пронумерованы, и обратиться к каждому из них можно, указав один из нескольких индексов. Вектор – пример одномерного массива, в котором элементы нумеруются одним индексом. Если в массиве хранится таблица значений (матрица), его элементы нумеруются двумя индексами. Характеристики массива: - тип – общий тип элементов массива; - размерность – количество индексов массива; - диапазон – количество допустимых значений каждого индекса; - форма – совокупность размерности и диапазонов. Массив должен быть объявлен в разделе описания переменных: Var имя массива: array [диапазон индексов] of тип; Тип элементов массива может быть любым, кроме файлового; тип индексов любой порядковый тип. Пример: A: array [1..5, 1..5] of real; X: array [1..10] of integer; После объявления массива каждый его элемент можно обрабатывать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[3], Vector[10] позволяет обратиться к третьему элементу массива Mas и десятому элементу массива vector. При работе с двумерными массивами указываются два индекса. Например, запись Matr[4, 6] делает доступным для обработки значение элемента, находящегося в четвертой строке шестого столбца массива Matr. Рассмотрим типичные ситуации, возникающие при работе с данными типа array. Для этого опишем три массива и четыре вспомогательные переменные. Var A, D: ARRAY [1..4] OF REAL; B: ARRAY [1..10, 1..15] OF INTEGER; I, J, K: INTEGER; S:REAL; Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод-вывод значений производится поэтапно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора read или readln с использованием оператора цикла for: For i:=1 to 4 do readln(a[i]); Аналогично значения элементов двумерного массива вводятся с помощью сложенного оператора for: For i:=1 to 10 do For j:=1 to 15 do Read(b[I, j]); Можно ввести значения и отдельных элементов, а не всего массива. Так операторами read(A[3]), readln(b[6, 9]) вводятся значения третьего элемента вектора А и значения элемента, расположенного в шестой строке девятого столбца матрицы В. Вывод значений элементов массива выполняется аналогичным образом, но используются операторы write и writeln: For i:=1 to 4 do Write(A[i]); writeln; Или For i:=1 to 10 do begin For j:=1 to 15 do Write(b[I, j]); writeln; end; Иногда требуется осуществить поиск в массиве каких-либо элементов, удовлетворяющих неким условиям. Пусть, например, надо выяснить, сколько элементов массива А имеют нулевое значение. Для ответа на этот вопрос введем дополнительную переменную к и воспользуемся операторами for и if: K:=0; For i:=1 to 4 do If a[i]=0 then k:=k+1; После выполнения цикла переменная к будет содержать количество элементов массива А с нулевыми значениями. Пример 1. Составить программу, которая формирует двумерный массив по формуле и выводит его на экран. Program massiv_1; Var Mas:array[1..5, 1..5] of real; I, j:integer; Begin For i:1 to 5 do begin For j:=1 to 5 do begin Mas[I,j]:=sin(i*j)+cos(i/j); Write(mas[I, j]:6:2); End; End; End. Пример 2. Составить программу, которая формирует вектор случайных чисел, выполняет поиск максимального элемента, а затем выводит на экран его значение и порядковый номер в векторе. Program massiv_2; Var mas:array[1..20] of integer; I, max, nim:integer; Begin Randomize; For i:1 to 20 do begin Mas[i]:=random(99)+1; Write(mas[i]:6); End; writeln; Max:=-100000000; For i:=1 to 20 do If mas[i]>max then begin Max:=mas[i]; nim:=I; End; Writeln(‘max=’, max:6, ‘ nom=’, nom:2); End. Пример 3. Составить программу, которая сортирует по возрастанию целочисленный массив и выводит его на экран. Program massiv_3; Const n=10; M:array[1..n] of integer=(9, 11, 12, 3, 19, 1, 5, 17, 10, 18); Var s, I, j:integer; Begin For i:=1 to n-1 do For j:=i+1 to n do If m[i]>m[j] then begin S:=m[i]; M[i]:=m[j]; M[j]:=s; End; For i:=1 to n do Write(m[i]:6); writeln; End. Пример 4. Составить программу, которая сортирует по убыванию двумерный массив целых чисел (сортировка по строкам). Program massiv_4; Const n=4; M:array[1..n, 1..4] of integer=((3,2,4,1),(5,7,6,8),(9,11,10,12),(15,14,16,13)); Var i, j, k:integer; Buffer:integer; Begin For k:=1 to n do For j:=1 to n-1 do For j:=i+1 to n do If m[k, i]<m[k, j] then begin Buffer:=m[k, i]; M[k, i]:=m[k, j]; M[k,j]:=buffer; End; For i:=1 to n do begin For j:=1 to n do Write(m[i, j]:6); writeln; End; End. Пример 5. Составить программу, которая формирует вектор и вычисляет значение среднего арифметического его элементов, больших, чем 10. Program massiv_5; Const n=5; Var d:array [1..n] of integer; I, k:integer; S:real; Begin Randomize; For i:=1 to n do begin D[i]:=random(100); Write(d[i]); End; writeln; K:=0; s:=0; For i:=1 to n do If d[i]>10 then begin S:=s+d[i]; K:=k+1; End; S:=s/k; Writeln(‘s=’, s:6:2); End.
Дата добавления: 2015-06-04; Просмотров: 349; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |