SaDFromSpb
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Program BlaBlaBLa; Uses Crt; Const N = 3; Type Matrix = array[1..N, 1..N] Of Integer; PMatr = ^Matrix; Var Matr1, Matr2 : Matrix; i, j, count : Integer; isEqual : Boolean; { Матрица передается в процедуру по адресу. Второй параметр - ширина матрицы } Procedure Transpan(Matr : PMatr; n : Integer); var i, j, t : Integer; Begin For i:=1 To n Do {Меняем местами i-й столбец с i-й строкой} For j:=i+1 To n Do Begin t := Matr^[i][j]; Matr^[i][j] := Matr^[j][i]; Matr^[j][i] := t; End; End; Begin clrscr; { Заполняем две матрицы какой-нибудь ерундой } count := 1; For j:=1 to N Do For i:=1 to N Do Begin Matr1[i][j] := count; Matr2[i][j] := 0; Inc(count); End; { И кидаем вторую в процедуру (@ - операция взятия адреса) } Transpan(@Matr2, N); { сравниваем } isEqual := true; For i:=1 To N Do For j:=1 To N Do isEqual := isEqual And (Matr1[i][j] = Matr2[i][j]); { isEqual после заверешения цикла останется равной true, только если матрицы одинаковые. } If isEqual Then Writeln('Ok.') Else Writeln('Not Ok.'); readkey; End. | Всего записей: 209 | Зарегистр. 22-06-2004 | Отправлено: 23:55 01-05-2006 | Исправлено: SaDFromSpb, 23:59 01-05-2006 |
|