Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 28
1

Если максимальный элемент квадратной матрицы находится выше главной диагонали, транспонировать ее

25.04.2016, 12:59. Просмотров 381. Ответов 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
type 
   matrix= array [1..5, 1..5] of integer;
   var
   a: matrix;
    k,f,g,h,s: integer;
    i,j:real;
    procedure poisk(i,j:integer; var matri:array [1..5, 1..5] of integer; a:matrix; f,g,h,k:integer;);
     begin
     k:=a[1,1];
     for i:=1 to 5 do
          begin
         for j :=1 to 5 do
         begin
        if a[i,j]>k then
        begin
        k:=a[i,j];
        h:=i;
        f:=j;
        if j>i then
        begin
        g:=1;
        end
        else
        g:=0;
        
        end;
        end;
        end;
        end;
        procedure transponirovka;
        begin
        for i :=1 to 5 do
     begin
         for j :=1 to 5 do
         begin
     k:=a[i,j];
     a[i,j]:=a[j,i];
     a[j,i]:=k;
     write('a[',i,',',j,']=',a[i,j]);
     end;
     writeln;
     end;
     end;
     procedure summa;
      begin
      for i :=1 to 5 do
     begin
         for j :=1 to 5 do
         begin
         if (i=h or j=f) then
         s:=a[i,j];
         end;
         end;
         write('s=',s)
         end;
begin 
   for i :=1 to 5 do
     begin
         for j :=1 to 5 do
         begin
              a[i,j]:=random(33);
              write('a[', i, ',', j, ']= ', a[i,j]:2, '   ');
         end;
         WriteLn;
     end;
     poisk;
     if (g=1) then
     transponirovka;
     else
     summa;
     end.
Решение через подпрограммы обязательно,хотя смысла в них 0,буду благодарен.А то что сверху,я как-то попытался побрыкаться,но так и не понял как описывать массивы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2016, 12:59
Ответы с готовыми решениями:

Сменить знак минимального элемента матрицы, если он находится выше главной диагонали
Добрый вечер) Мне необходимо разработать две программы на языке pascal. Не могли бы Вы мне в этом...

Найти максимальный элемент среди элементов матрицы, лежащих выше главной диагонали
Доброго времени суток, помогите написать парочку программ: 1)Задана матрица A(NxN). Определить,...

Поменять местами максимальный элемент выше главной диагонали и минимальный элемент ниже главной диагонали
Определить максимальный элемент среди элементов квадратной матрицы размера 5x5, лежащих выше...

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

2
Модератор
60572 / 45566 / 31447
Регистрация: 18.05.2008
Сообщений: 109,518
25.04.2016, 13:57 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
const n=5;
type matrix= array [1..n, 1..n] of byte;
procedure vvod(var a:matrix);
var i,j:byte;
begin
randomize;
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100);
    write(a[i,j]:3);
   end;
  writeln;
 end;
end;
procedure poisk(a:matrix;var imx,jmx:byte);
var i,j:byte;
begin
imx:=1;
jmx:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>a[imx,jmx] then
 begin
  imx:=i;
  jmx:=j;
 end;
writeln('Максимальный элемент=',a[imx,jmx],' его координаты [',imx,',',jmx,']');
end;
procedure transponirovka(var a:matrix);
var i,j,k:byte;
begin
for i:=2 to n do
for j:=1 to i-1 do
 begin
  k:=a[i,j];
  a[i,j]:=a[j,i];
  a[j,i]:=k;
 end;
writeln('Транспонированная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
end;
procedure summa(a:matrix;imx,jmx:byte;var s:integer);
var i,j:byte;
begin
s:=0;
for i:=1 to n do
s:=s+a[imx,i]+a[i,jmx];
s:=s-a[imx,jmx];
writeln('Сумма элементов строки номер ',imx,' и столбца номер ',jmx,'=',s);
end;
var a: matrix;
    imx,jmx:byte;
    s: integer;
begin
vvod(a);
poisk(a,imx,jmx);
if jmx>imx then
 begin
  writeln('Максимальный элемент выше главной диагонали');
  transponirovka(a);
 end
else
 begin
  writeln('Максимальный элемент не выше главной диагонали');
  summa(a,imx,jmx,s);
 end;
end.
1
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 28
25.04.2016, 17:20  [ТС] 3
Огромное спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2016, 17:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Определить максимальный элемент из элементов матрицы, расположенных выше главной диагонали
В заданном целочисленном массиве Аnn определить максимальный элемент из элементов, расположенных...

Найти максимальный элемент для каждой диагонали квадратной матрицы, параллельной главной
Дана квадратная матрица A порядка M. Найти максимальный элемент для каждой ее диагонали,...

найти сумму элементов квадратной матрицы выше главной диагонали
найти сумму элементов квадратной матрицы выше главной диагонали,заранее спасибо!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.