Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2008, 15:41   #1
Artem1987
Пользователь
 
Регистрация: 17.10.2007
Сообщений: 15
По умолчанию Сравнение 2-ух квадратных матриц размер 3*3

Вот код но процедура сравнения не работает, Почему???Зарание спасибо

program nom22;
type
mas=array[1..3,1..3] of integer;
var
a,b:mas;
procedure vvod(x:mas);
var
i,j:integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do
begin
write(i,'.',j,'=');
readln(x[i,j]);
end;
end;

procedure sravnenie(q,y:mas);
var
i,j:integer;
bul:boolean;
begin
bul:=true;
for i:=1 to 3 do
for j:=1 to 3 do
begin
if q[i,j]<>y[i,j] then
bul:=False;
end;
if bul then
writeln(' Rowni')
else
writeln('ne row')
end;

begin
writeln('vvod A');
vvod(a);
writeln('vvod B');
vvod(b);
sravnenie(a,b);
readln;
end.
Artem1987 вне форума Ответить с цитированием
Старый 23.03.2008, 16:10   #2
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
Лампочка

У меня так:

Код:
program Project1;
uses crt;
 
  var
    a,b:array[1..3,1..3] of integer;
    i,j:integer;
    bool:boolean;

begin
  for i := 1 to 3 do
    for j := 1 to 3 do
      begin
        Write('a['+inttostr(i)+','+inttostr(j)+']=');
        ReadLn(a[i,j]);
      end;
  for i := 1 to 3 do
    for j := 1 to 3 do
      begin
        Write('b['+inttostr(i)+','+inttostr(j)+']=');
        ReadLn(b[i,j]);
      end;
  {сравниваем}
  bool := True;
  for i := 1 to 3 do
    for j := 1 to 3 do
      if a[i,j] <> b[i,j] then
      begin
        bool := false;
        break;
      end;
  if bool then WriteLn('Equal') else WriteLn('no Equal');

  ReadLn;
end.
andrey4623 вне форума Ответить с цитированием
Старый 23.03.2008, 16:16   #3
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

1. Перетащите все переменные наверх:
Код:
type  mas = array [1..3,1..3] of integer;
var a, b : mas;
     i, j : Integer;
     Bul : Boolean;
Так удобней.

2. В данном примере ненужно передавать процедурам параметры.
Процедура сравнения выглядит так(Я её "отремонтировал"):
Код:
Procedure sravnenie;
  Begin
    bul := False;
      For i:=1 To 3 Do
         For j:=1 To 3 Do
             if a[i,j] <> b[i,j] Then bul := True;
    if bul = False Then writeln(' Rowni')
    Else writeln('ne row')
End;
3. Ваша процедура заполнения массива не работает.
Переделайте её. Для проверки я тупо написал:
Код:
procedure vvod;
begin
for i:=1 to 3 do
for j:=1 to 3 do
begin
write(i,'.',j,'=');
readln(a[i,j]);
end;
for i:=1 to 3 do
for j:=1 to 3 do
begin
write(i,'.',j,'=');
readln(b[i,j]);
end;
end;
4. Вызов делаем вот так:
Код:
begin
vvod;
sravnenie;
readln;
end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qu 1.0 - программа для решения квадратных уравнений DM_bite Софт 5 20.03.2010 22:37
Задач о квадратных корнях Иллидан Паскаль, Turbo Pascal, PascalABC.NET 14 11.03.2008 23:51
Три квадратных уравнения. Найти минимальное значение среди действительных корней этих уравнений. Паскаль. GE076 Помощь студентам 2 17.12.2007 20:41