КАТЕГОРИИ: Архитектура-(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) |
Упакованные массивы
Многомерные массивы До сих пор мы рассматривали массивы, каждый элемент которых содержал один индекс. Такие массивы называют одномерными. Из многомерных массивов в математике наиболее часто используют двумерные массивы – матрицы. Описание матрицы 3 х 4: 1) Type T = Array [1..3,1..4] of Integer; Var A:T; 2) Type T = Array [1..3] of Array [1..4] of Integer; Var A:T; Пример: Type T1 = Array [1..4] of Integer; T = Array [1..3] of T1; Var A:T; B: T1; Здесь сначала описывается тип одной строки Т1, а затем, через тип строки Т1, описывается тип всей матрицы Т. В разделе переменных указывается, что А является двумерным массивом (т.е. матрицей), а В – одномерным массивом. Пример: Найти сумму положительных элементов массива D(n,m) n£10, m£20. Program Summa; Const n=10; m=20; Var i, j:Integer; Sum: Real; D: Array [1..n,1..m] of Real; Begin Sum: = 0; For i: = 1 to n do For j: = 1 to m do Begin Read (D[i,j]); If D[i,j] > 0 then Sum: = Sum + D[i,j]; End; Writeln (‘Sum=’,Sum); End. Пример: Даны две матрицы: A[N*M], B[N*M]. Найти их сумму C[N*M]= A + B. Cij = aij + bij Program Summa; Const N=3; (*количество строк*) M=5; (*количество столбцов*) Type Mat = Array [1..N,1..M] of Real; Var A, B, C: Mat; I: Integer; (*индекс строки*) J: Integer; (*индекс столбца*) Begin Writeln (‘Ввести А, В’); For I: = 1 to N do Begin For J: = 1 to M do Begin Read (A[I,J],B[I,J]); C[I,J]:= A[I,J] + B[I,J]; End; Readln; End; Writeln (‘Матрица С’); For I: = 1 to N do Begin For J: = 1 to M do Write (C[I,J]:3:1, ‘ ‘:2); Writeln; End; End. Как правило, одно целое число или один символ занимают в памяти ЭВМ два байта. В то же время для изображения символа достаточно одного байта. С целью экономии памяти машины в языке программирования Паскаль введено понятие упакованного массива. Элементы упакованного массива хранятся по два в двух байтах ЭВМ. И хотя при этом экономится место в памяти, но увеличивается время доступа к компонентам массива. Элементы упакованного массива используются в программе точно так же, как элементы не упакованного массива. Только память машины при этом автоматически выделяется меньше. Например, массивы А и АР описаны как Var AP: Packed Array [1..3] of Boolean; A: Array [1..3] of Boolean; Обычнвй м упакованный массивы идентичны в смысле объема и характера хранимой информации, но различаются способами представления в памяти ЭВМ. Упакованный массив можно описывать в разделе переменных или с использованием раздела типов. Описание в разделе типов: Type имя типа = Packed Array [имя индекса] of тип элемента; Var имя переменной:имя типа; Здесь служебное слово Packed указывает на то, что массив данных является упакованным. К упакованным символьным массивам в языке программирования Паскаль относится строки символов, которые задаются либо в разделе операторов, либо в разделе констант (строки символов, а не символьные строки String, о которых речь пойдет дальше). Как известно, тип константы однозначно определяется ее записью. Поэтому если, например, в разделе констант определена константа S=’end’, то она принадлежит к типу: Packed Array [1..3] of Char. Считается, что символьные константы имеют тип упакованных массивов: Packed Array [1..n] of Char; где n - длина строки. Символьные массивы и константы могут участвовать в операциях присваивания и сравнения. Пусть, например, описание символов массива имеет вид: Type Mas= Packed Array [1..7] of Char; Var A:Mas; Тогда, можно записать такой оператор: A:=’ZADACHA’; Если к строкам и упакованным символьным векторам применяют операции сравнения, то при этом аргументы обязательно должны содержать одинаковое количество символов, т.е. их типы д/б идентичными. Операции сравнения выполняются посимвольно, слева направо.
Дата добавления: 2014-10-23; Просмотров: 1263; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |