Статья: Интервальные типы данных. Оператор TYPE. Массивы
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;
WRITELN('матрица A*B :');
FOR i:=1 TO n DO FOR j:=1 TO n DO WRITE(c[i,j]);
WRITELN;
END.
Наша программа сработала правильно, но полученную матрицу вывела плохо - все элементы подряд без деления на строки. Исправималгоритмвывода:
FOR i:=1 TO n DO BEGIN
FOR j:=1 TO n DO WRITE(c[i,j]:8);
WRITELN;
END;
Теперь матрица выводится аккуратно.
В Паскале допускаются типизированные константы - массивы, список значений элементов массива задается в круглых скобках и разделяется запятыми:
CONST a : ARRAY[1..5] OF Byte=(1,2,3,4,5);
c : ARRAY[0..3] OF Char=('a','b','c','d');
b : ARRAY[-1..1] OF Boolean=(FALSE,TRUE,FALSE);
Символьные массивы можно инициализировать и более простым способом:
CONST c : ARRAY[0..3] OF Char='abcd';
Если инициализируется многомерный массив, то, поскольку каждый его элемент есть массив, нужно использовать вложенную скобочную структуру:
CONST A : ARRAY[1..3,1..2] OF Real = ((0,1),(2,4),(3,5));
Каким именно образом сгруппировать значения элементов, легко понять, вспомнив, что массив ARRAY[1..3,1..2] OF Real есть на самом деле компактная запись описания ARRAY[1..3] OF ARRAY[1..2] OF Real.
Итак, мы узнали, что кроме величин известных нам арифметических, символьного, логического типа и интервальных типов, каждая из которых имеет одно значение, существуют массивы - совокупности многих значений. Первые величины называются скалярными, а массивы и ряд других типов, пока нам не известных, структурированными величинами.