Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на проверку матрицы на симметричность относительно побочной диагонали

Автор: djdenisoff 29.09.2011 0:08

Ребята,помогите!!!К пятнице надо сделать задачу!!!!!
Условие:проверить матрицу на симметричность относительно главной диагонали.Матрица вводится с текстового файла.Решить с помощью динамических переменных.


Прикрепленные файлы
Прикрепленный файл  peresdacha.pas ( 1.25 килобайт ) Кол-во скачиваний: 327

Автор: Lapp 29.09.2011 3:18

А в чем, собственно, проблема?

Автор: djdenisoff 29.09.2011 12:07

Цитата(Lapp @ 28.09.2011 23:18) *

А в чем, собственно, проблема?

Надо написать процедуру Ворк,написать её не знаю как....Проблема в том,что надо придумать формулу...Помогите пожалуйста

Автор: Lapp 29.09.2011 13:00

Цитата(djdenisoff @ 29.09.2011 9:07) *
Надо написать процедуру Ворк,написать её не знаю как....Проблема в том,что надо придумать формулу...Помогите пожалуйста

Это можно. Только не процедуру, функцию.
(в этом коде ошибка, исправленный см. ниже)
type
tArr= array of array of integer;

function Symmetric(a: tArr): boolean;
var
i,j: integer;
begin
for i:=2 to Length(a) do
for j:=1 to i-1 do
if a[i,j]<>a[j,i] then begin
Symmetric:= false;
exit
end;
Symmetric:= true
end;

...

Если не в курсе про динамические массивы - спрашивай, расскажем. Или переделывай на статические..

Автор: IUnknown 29.09.2011 14:58

Андрей, вылета не боишься на Length(a) (при использовании дин. массивов)? smile.gif

Автор: djdenisoff 29.09.2011 21:01

Цитата(Lapp @ 29.09.2011 9:00) *

Это можно. Только не процедуру, функцию.
type
tArr= array of array of integer;

function Symmetric(a: tArr): boolean;
var
i,j: integer;
begin
for i:=2 to Length(a) do
for j:=1 to i-1 do
if a[i,j]<>a[j,i] then begin
Symmetric:= false;
exit
end;
Symmetric:= true
end;

...

Если не в курсе про динамические массивы - спрашивай, расскажем. Или переделывай на статические..




было бы лучше процедуру написать...так требует препод....помогите

Автор: sheka 29.09.2011 21:30

procedure qwerty(a: tArr, var Symmetric: boolean);
Также учти пожелания Volvo.

Автор: djdenisoff 30.09.2011 0:32

Помогите.программа идёт.но выводит цифру из матрицы и ответ.надо чтобы выводило только ответ.Условия задачи те же.


Прикрепленные файлы
Прикрепленный файл  P.PAS ( 1.42 килобайт ) Кол-во скачиваний: 312
Прикрепленный файл  f.txt ( 19 байт ) Кол-во скачиваний: 246

Автор: Lapp 30.09.2011 4:27

Цитата(IUnknown @ 29.09.2011 11:58) *
Андрей, вылета не боишься на Length(a) (при использовании дин. массивов)? smile.gif

Oops! Sorry..
Спасибо, Володь, +1 ))

Исправленный код:
type
tArr= array of array of integer;

function Symmetric(a: tArr): boolean;
var
i,j: integer;
begin
for i:=1 to Length(a) do
for j:=0 to i-1 do
if a[i,j]<>a[j,i] then begin
Symmetric:= false;
exit
end;
Symmetric:= true
end;

...


Цитата
было бы лучше процедуру написать...так требует препод....помогите
Ты же просил "придумать тебе формулу"! Тебе дали ГОРАЗДО БОЛЬШЕ. Извини, если ты не можешь переделать функцию в процедуру, интнрес к твоей персоне испаряется.. Асталависта, учи язык.

Автор: djdenisoff 30.09.2011 23:32

Цитата(Lapp @ 30.09.2011 0:27) *

Oops! Sorry..
Спасибо, Володь, +1 ))

Исправленный код:
type
tArr= array of array of integer;

function Symmetric(a: tArr): boolean;
var
i,j: integer;
begin
for i:=1 to Length(a) do
for j:=0 to i-1 do
if a[i,j]<>a[j,i] then begin
Symmetric:= false;
exit
end;
Symmetric:= true
end;

...


Ты же просил "придумать тебе формулу"! Тебе дали ГОРАЗДО БОЛЬШЕ. Извини, если ты не можешь переделать функцию в процедуру, интнрес к твоей персоне испаряется.. Асталависта, учи язык.


Я уже разобрался)))спасибо за помощь огромное