0 / 0 / 0
Регистрация: 23.03.2019
Сообщений: 1
1

Даны две квадратные матрицы n-го порядка. Напечатать ту из них, в которой наименьший след (сумма диагональных элементов)

23.03.2019, 00:27. Показов 1662. Ответов 12
Метки нет (Все метки)

Вот пример кода, по нему нужно сделать задание которое я написал в заголовке, как подкорректировать, обязательно через процедуру или функцию, буду очень благодарен -
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program pz2;
const n=3;
type matrix = array [1..n,1..n] of real;
var A,B:matrix; {Початкові матриці}
{Процедура введення матриці. Параметри: Х – довільна матриця, Name – її ім'я}
procedure Input (var X:matrix; Name:char);
var i,j:integer; {Лічильники}
begin
writeln('Введіть елементи матриці ', Name);
for i:=1 to n do
for j:=1 to n do read (X[i,j]);
writeln;
end;
{Процедура друку матриці. Параметри: Х – довільна матриця, Name – її ім'я}
procedure Print (X:matrix; Name:char);
var і,j:integer; {Лічильники}
begin
writeln('Матрица ', Name);
for i:=1 to n do
begin
for j:=1 to n do write (X[i,j]:6:2);
writeln;
end;
end;
{Функція підрахунку суми елементів останнього стовпця матриці. Параметри: Х -
довільна матриця}
function Summa (X:matrix): real;
var i,j:integer; {Лічильники}
Sum: real; {Розрахункова сума}
begin
Sum:=0;
for i:=1 to n do
Sum:=Sum+X[i,n];
Summa:= Sum;
end;
{Основна програма}
begin
input(A,'A'); input(B,'B');
if Summa(A)>Summa(B) then print(A,'A')
else print(B,'B');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2019, 00:27
Ответы с готовыми решениями:

Даны две квадратные вещественные матрицы 10 порядка. Напечатать квадрат той из них, в которой наименьший след
Даны две квадратные вещественные матрицы 10 порядка. Напечатать квадрат той из них, в которой...

Даны две квадратные матрицы.Напечатать квадрат той из них,в который наименьший след.
Заранее спасибо!!!

Даны две матрицы. Напечатать квадрат той из них, в которой наименьший след
Даны две квадратные вещественные матрицы 4-ого порядка.напечатать квадрат той из них в которой...

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный след
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след' (т.е. сумму...

12
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
23.03.2019, 21:40 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Uses Crt;
const 
N=5;
var
a: array [1..N, 1..N] of integer;
b: array [1..N] of integer;
c: array [1..N] of integer;
d: array [1..N, 1..N] of integer;
e: array [1..N] of integer;
g: array [1..N] of integer;
k,i,j,s,s1,s2,s3,f,f1:integer;
begin
clrscr;
for i:=1 to N do 
for j:=1 to N do 
a[i,j]:=random(-10,10);
for i:=1 to N do begin
for j:=1 to N do 
write(a[i,j]:4);
writeln;
end;
k:=0;
s:=0;
for i:=1 to N do begin 
c[i]:=a[1+k,1+k];
k:=k+1;
s:=s+c[i];
end;
writeln; 
k:=0;
s1:=0;
for i:=1 to N do begin
b[i]:=a[1+k,N-k];
k:=k+1;
s2:=s2+b[i];
end;
f:=s+s1;
for i:=1 to N do 
for j:=1 to N do 
d[i,j]:=random(-10,10);
for i:=1 to N do begin
for j:=1 to N do 
write(d[i,j]:4);
writeln;
end;
k:=0;
s:=0;
for i:=1 to N do begin 
e[i]:=d[1+k,1+k];
k:=k+1;
s:=s+e[i];
end;
writeln; 
k:=0;
s3:=0;
for i:=1 to N do begin
g[i]:=d[1+k,N-k];
k:=k+1;
s3:=s3+g[i];
end;
f1:=s2+s3;
writeln('mensiy sled u matrisi:');
if f<f1 then begin
for i:=1 to N do begin
for j:=1 to N do 
write(a[i,j]:4);
writeln;
end;
end
else for i:=1 to N do begin
     for j:=1 to N do
     write(d[i,j]:4);
     writeln;
     end;
end.
Добавлено через 2 минуты
Я взял в учет и главную, и побочную диагональ, но если побочные диагонали вам не нужны, то просто удалите массивы : c[i],g[i]. Надеюсь смог вам помочь))
0
Модератор
9534 / 4861 / 3230
Регистрация: 17.08.2012
Сообщений: 15,203
24.03.2019, 04:56 3
WildDen, след матрицы по определению - это сумма элементов главной диагонали матрицы.
0
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
24.03.2019, 08:54 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Uses Crt;
const 
N=5;
var
a: array [1..N, 1..N] of integer;
b: array [1..N] of integer;
d: array [1..N, 1..N] of integer;
e: array [1..N] of integer;
k,i,j,s1,s2,f,f1:integer;
begin
clrscr;
for i:=1 to N do 
for j:=1 to N do 
a[i,j]:=random(-10,10);
for i:=1 to N do begin
for j:=1 to N do 
write(a[i,j]:4);
writeln;
end;
k:=0;
s1:=0;
for i:=1 to N do begin
b[i]:=a[1+k,N-k];
k:=k+1;
s1:=s1+b[i];
end;
f:=s1;
writeln;
for i:=1 to N do 
for j:=1 to N do 
d[i,j]:=random(-10,10);
for i:=1 to N do begin
for j:=1 to N do 
write(d[i,j]:4);
writeln;
end;
k:=0;
s2:=0;
for i:=1 to N do begin 
e[i]:=d[1+k,1+k];
k:=k+1;
s2:=s2+e[i];
end;
writeln; 
f1:=s2;
writeln('mensiy sled u matrisi:');
if f<f1 then begin
for i:=1 to N do begin
for j:=1 to N do 
write(a[i,j]:4);
writeln;
end;
end
else for i:=1 to N do begin
     for j:=1 to N do
     write(d[i,j]:4);
     writeln;
     end;
end.
Добавлено через 2 минуты
Тогда эта программа больше подходит
0
3 / 2 / 1
Регистрация: 06.01.2019
Сообщений: 32
24.03.2019, 10:22 5
Если нужно найти главный диагонали то вот это:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var
  I, J, S, N, K: integer;
  A, B: array [1..1000,1..1000] of integer;
 
begin
  Write('massivlar oxirini kiriting');
  Readln(n);
  Randomize;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      Write('A[ ', I, ' , ', J, ']=');
      Readln(A[I, J]);
    end;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      Write('B[ ', I, ' , ', J, ']=');
      Readln(B[I, J]);
    end;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      if J-1=N-I then begin
        S := S + A[i, j];
        K := K + B[I, J];
      end;
    end;
  if K > S then 
    Writeln('eng kattasi massiv B massiv') 
  else if K = S then 
    Writeln('ikkala massiv bir-biriga teng')
  else 
    Writeln('eng kattasi massiv A massiv')
end.
0
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
24.03.2019, 10:37 6
axbor, ваша программа тоже имеет место быть, но тут нет вывода матриц, а по условию это нужно
1
3 / 2 / 1
Регистрация: 06.01.2019
Сообщений: 32
25.03.2019, 06:34 7
Вывод той матрицы которое больше диагонали ?

Добавлено через 19 минут
Так надо:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
uses crt;
var
  I, J, S, N, K: integer;
  A, B: array [1..1000,1..1000] of integer;
 
begin
  Write('massivlar oxirini kiriting');
  Readln(n);
  Randomize;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      A[I,J]:=random(1000);
      Write( A[i,j],' ');
      if j=n then Writeln
    end;
    Writeln;Writeln;
    Randomize;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      B[I,J]:=random(5000);
      Write( B[i,j],' ');
      if j=n then Writeln
    end;
  for i := 1 to n Do
    for j := 1 to n Do 
    begin
      if J-1=N-I then begin
        S := S + A[i, j];
        K := K + B[I, J];
      end;
    end;
    Writeln;
      if K > S then begin
      Writeln('меньший след главный диагонали');
      Writeln;
    for i:=1 to n do 
for j:=1 to n do begin
Write( A[i,j],' ');
if j=n then Writeln
end
end
  else if K = S then   begin
  Writeln;
    Writeln('след главный диагонали одинаковы');
    Writeln
    end
  else begin
  Writeln('меньший след главный диагонали');Writeln;
    for i:=1 to n do 
for j:=1 to n do begin
Write( A[i,j],' ');
if j=n then Writeln
    end
    end
end.
0
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
25.03.2019, 06:49 8
Нет, нужно вывести 2 матрицы, а потом ту, у которой меньший след
0
3 / 2 / 1
Регистрация: 06.01.2019
Сообщений: 32
25.03.2019, 08:31 9
должно быть 3 матрицы так ?
0
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
25.03.2019, 10:38 10
Да, 3 матрицы
0
3 / 2 / 1
Регистрация: 06.01.2019
Сообщений: 32
25.03.2019, 10:58 11
Там же уменя тоже выходят 3 матрицы только число рандомно выбирает
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
25.03.2019, 11:03 12
Цитата Сообщение от WildDen Посмотреть сообщение
Да, 3 матрицы
Матриц должно быть 2, ту матрицу у которой меньше след, вывести еще раз.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const n=3;
type matrix = array [1..n,1..n] of real;
{Процедура введения матриц}
procedure Input (var X:matrix);
var i,j:integer; 
begin
for i:=1 to n do
for j:=1 to n do
X[i,j]:=9*random;
end;
{Процедура вывода матриц}
procedure Print (X:matrix; Name:char);
var i,j:integer;
begin
writeln('Матрица ', Name);
for i:=1 to n do
 begin
  for j:=1 to n do
  write (X[i,j]:6:2);
  writeln;
 end;
end;
{Нахождение следа}
function Summa (X:matrix): real;
var i,j:integer;
Sum: real;
begin
Sum:=0;
for i:=1 to n do
Sum:=Sum+X[i,i];
Summa:= Sum;
end;
{Основная программа}
var A,B:matrix;
begin
input(A);
input(B);
print(A,'A');
writeln('След=',Summa(A):0:2);
print(B,'B');
writeln('След=',Summa(B):0:2);
writeln('Матрица с наименьшим следом');
if Summa(A)<Summa(B) then print(A,'A')
else print(B,'B');
end.
1
3 / 2 / 1
Регистрация: 06.01.2019
Сообщений: 32
25.03.2019, 11:10 13
Ну я понял пожалуйста посмотрите на мой код ёще раз у меня точна как у вас выходят только я не использовал процедуры и функций.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2019, 11:10
Помогаю со студенческими работами здесь

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный след
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный &quot;след' (т.е. сумму...

Даны две квадратные матрицы, напечатать ту, у которой больше сумма элементов в последнем столбце
Подскажите, где ошибки? Даны 2 квадратные матрицы n-го порядка, напечатать ту из них, у которой...

Напечатать квадрат той из двух матриц, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна
Даны две квадратные вещественные матрицы шестого порядка. Напечатать квадрат той из них, в которой...

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след"
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный &quot;след&quot; (т.е. сумму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru