1 Востаннє редагувалося howlvolcano (20.01.2013 23:57:00)

Тема: Дано дві квадратичні матриці 3*3.

Дано дві квадратичні матриці 3*3. Надрукувати квадрат тієї з них, в якій найменший слід (сума діагональних елементів).

program p1111; 
 
type
  arr = array [1..3, 1..3] of integer;
 
var
  i, j, Sa, Sb: integer; a, b: arr;
 
function sled(a: arr): integer; 
var s,i: integer;
begin
  for i:=1 to 3 do 
    s:=s+a[i,i];
  sled:=s;
end;
 
begin
  writeln('vvedite matricu A');
  for i := 1 to 3 do
    for j := 1 to 3 do
      read(a[i, j]);
  Sa := sled(a);
  writeln('vvedite matricu B');
  for i := 1 to 3 do
    for j := 1 to 3 do
      read(b[i, j]);                               
  Sb := sled(b);                               
  if Sa < Sb then begin
    writeln('matrica A (imeet menshiy sled)'); 
    for i := 1 to 3 do 
    begin
      for j := 1 to 3 do
        write(a[i, j], ' ');
      writeln; end; end
  else
  begin
    writeln('matrica B (imeet menshiy sled)');  
    for i := 1 to 3 do
    begin
      for j := 1 to 3 do
        write(b[i, j], ' ');
      writeln; end; end;
end.

Є таке щастя. Працює, але не підносить до квадрату.
Наприклад:
воджу такі матриці:
1 2 3
3 2 1
1 4 2

3 1 2
1 4 3
3 4 1
Матриця А буде мати меньший слід, але потрібно щоб матрицю в якій буде меньший слід піднесло до квадрату. Наприклад:
Матриця А:
1 4 9
9 4 1
1 16 4
Як це все зробити?

2

Re: Дано дві квадратичні матриці 3*3.

Помножити матрицю саму на себе - http://yak-prosto.com/yak-zvesti-matricyu-v-kvadrat/

3

Re: Дано дві квадратичні матриці 3*3.

Voron написав:

Помножити матрицю саму на себе - http://yak-prosto.com/yak-zvesti-matricyu-v-kvadrat/

Дякую, але якшо не тяжко не міг би ти виправити?... Вибач, за нахабність....

4 Востаннє редагувалося Ярослав (21.01.2013 18:15:31)

Re: Дано дві квадратичні матриці 3*3.

 if Sa < Sb then begin
writeln('matrica A (imeet menshiy sled)');
for i := 1 to 3 do
begin
for j := 1 to 3 do
write(a[i, j], ' ');
writeln;
a[i, j]:= a[i, j] * a[i, j];
write(a[i, j], ' ');
writeln; end; end
else
begin
writeln('matrica B (imeet menshiy sled)');
for i := 1 to 3 do
begin
for j := 1 to 3 do
write(b[i, j], ' ');
writeln;
b[i, j] := b[i, j] * b[i, j];
write(b[i, j], ' ');
writeln; end; end;

Синтаксис перевірте самі.

5

Re: Дано дві квадратичні матриці 3*3.

matrica A (imeet menshiy sled)
1 2 3
9
3 2 1
1
1 4 2
4
ось, що в кінці видає...

6

Re: Дано дві квадратичні матриці 3*3.

Цикли на паскалі будуються по інакшому аніж на Сі, почекайте іще відповіді. Скоро вам неодмінно хтось допоможе.

7

Re: Дано дві квадратичні матриці 3*3.

Сам вирішив. Всім дякую!

Подякували: Voron1

8

Re: Дано дві квадратичні матриці 3*3.

howlvolcano написав:

Сам вирішив. Всім дякую!

Можете і результат запостити. Може, хтось теж цікавився задачею. :)

9

Re: Дано дві квадратичні матриці 3*3.

program p1111; 
 
type
 
  arr = array [1..3, 1..3] of integer;
 
var
 
  i, j, Sa, Sb: integer;
  a, b: arr;
 
begin
  writeln('vvedite matricu A');
  for i := 1 to 3 do begin
    for j := 1 to 3 do   begin
      read(a[i, j]);
    end;
   end;
 
  writeln('vvedite matricu B');
  for i := 1 to 3 do begin
    for j := 1 to 3 do begin
      read(b[i, j]);
    end;
  end;
 
  sa:=0; sb:=0;
  for i:=1 to 3 do begin
      sa:=sa+A[i,i];
      sb:=sb+B[i,i];
  end;
 
  if Sa < Sb then begin
    writeln('matrica A (imeet menshiy sled)'); 
    for i := 1 to 3 do begin
      for j := 1 to 3 do begin
      A[i,j]:=A[i,j]*A[i,j];
        write(a[i, j], ' ');
      end;
     writeln;
    end;
   end
  else begin
    writeln('matrica B (imeet menshiy sled)');  
    for i := 1 to 3 do begin
      for j := 1 to 3 do begin
        B[i,j]:=B[i,j]*B[i,j];
        write(b[i, j], ' ');
      end;
      writeln;
    end;
   end;
end.
Подякували: Replace, Voron3

10

Re: Дано дві квадратичні матриці 3*3.

І ще плюс би додав за оформлення коду.

11

Re: Дано дві квадратичні матриці 3*3.

Bartash написав:

І ще плюс би додав за оформлення коду.

Не зрозумів)

Re: Дано дві квадратичні матриці 3*3.

howlvolcano написав:
Bartash написав:

І ще плюс би додав за оформлення коду.

Не зрозумів)

Bartash мав на увазі, що поставив би Вам ще одне "Дякую" за те, що гарно відформатували код.

13

Re: Дано дві квадратичні матриці 3*3.

Hanter написав:
howlvolcano написав:
Bartash написав:

І ще плюс би додав за оформлення коду.

Не зрозумів)

Bartash мав на увазі, що поставив би Вам ще одне "Дякую" за те, що гарно відформатували код.

Ну я скопіював просто і все)

14

Re: Дано дві квадратичні матриці 3*3.

howlvolcano написав:

Ну я скопіював просто і все)

Головне, що код очі не ріже, коли читати його. :)