Интервальные типы данных. Оператор TYPE. Массивы
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: решебник по английскому языку, реферат экономическое развитие
| Добавил(а) на сайт: Сукачёв.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
FOR j:=i+1 TO N DO
IF a[j]<a_max THEN BEGIN a_max:=a[j]; n_max:=j; END;
IF n_max<>i THEN BEGIN a[n_max]:=a[i]; a[i]:=a_max; END;
END;
Как видите, запись алгоритма несколько длиннее, и потребовалось две новых переменных a_max - типа Integer и n_max - типа IndexType. Это действие универсального закона сохранения - из двух верных алгоритмов лучший, как правило, сложнее.
Теперь перейдем к рассмотрению многомерных массивов. Размерностью, или количеством измерений массива, называется количество индексов у элемента массива, но не количество элементов в массиве. Мы уже знаем, что элемент массива может быть массивом, поэтому двумерный массив можно описать, например, так :
VAR a : ARRAY[1..10] OF ARRAY[1..20] OF Real;
Переменную a можно рассматривать как одномерный массив одномерных массивов и использовать в программе запись вида a[i] ; но можно рассматривать и как двумерный массив вещественных чисел. Элемент этого массива записывается в программе в виде a[ индексное выражение , индексное выражение ] и является переменной типа Real, например, a[i+1,3]. Впрочем, можно записать и так: a[i+1][3], обе эти записи эквивалентны. Описание многомерных массивов также можно записывать компактно: вместо
ARRAY[ t1 ] OF ARRAY[ t2 ] OF ARRAY ... OF t ;
можно записать
ARRAY[ t1 , t2 , ... ] OF t ;
Впрочем, бывают случаи, когда первое описание предпочтительней. Теперь, умея работать с многомерными массивами, напишем программу, перемножающую две квадратные вещественные матрицы:
CONST Nmax=20; {максимальный размер матрицы}
TYPE IndexType=1..Nmax;
Matrix =ARRAY[IndexType,IndexType] OF Real;
VAR a,b,c : Matrix; n,i,j,k : IndexType;
BEGIN WRITE('введите размер матриц '); READ(n);
IF (n<1)OR(n>Nmax) THEN BEGIN
WRITELN('неверный размер!'); Halt; END;
WRITELN('введите матрицу A построчно ');
FOR i:=1 TO n DO FOR j:=1 TO n DO READ(a[i,j]);
WRITELN('введите матрицу B построчно ');
FOR i:=1 TO n DO FOR j:=1 TO n DO READ(b[i,j]);
FOR i:=1 TO n DO FOR j:=1 TO n DO BEGIN
c[i,j]:=0; FOR k:=1 TO n DO c[i,j]:=c[i,j]+a[i,k]*b[k,j]; END;
Рекомендуем скачать другие рефераты по теме: реферат катастрофы, реферат электрические.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата