Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 29
1

Поменять местами min и max элементы в матрице на диагоналях, параллельных главной

15.12.2015, 15:34. Показов 1281. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно, не могу сделать указанное требование для диагоналей ниже главной. Главная диагональ тоже попадает под это требование.
В программе сделано для верхних и главной.
Выручите кодом для диагоналей, паралл. главной и ниже главной.


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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
const
  e = 0.0000000000000000001;
 
const
  N = 3;
 
var
  g, j, i: integer;
  max1, max2, min1, min2: integer;
  max, min: real;
 
function z2(a, b: real; k, m: integer): real;
var
  i: integer;
  x, y, s, t, slag, p, h: real;
 
begin
  if (a > 709) or (b > 709) or (a < (-18)) or (b < (-18)) then write('ошибочка') else begin
    begin
      h := (b - a) / m;
      x := a + k * h;
      p := 1;
      slag := x;
      i := 1;
      while abs(slag) > e do 
      begin
        p := p + slag;
        slag := slag * x / (i + 1);
        i := i + 1;
      end;
      y := x;
      while y > 2 * pi do
        y := y - 2 * pi;
      s := 0;
      t := y;
      i := 1;
      while abs(t) > e do 
      begin
        s := s + t;
        t := t * (-1) * y * y / (2 * i * (2 * i + 1));
        i := i + 1;
      end;
    end;
    z2 := s * p;
  end;
end;
 
type
  arrayNN = array [1..N, 1..N] of real;
 
var
  A1: arrayNN;
 
procedure read_array(var A: arrayNN; N: integer);
var
  i, j, m: integer;
begin
  m := sqr(n) - 1;
  for i := 1 to N do
    for j := N downto 1 do 
    begin
      if i mod 2 = 0 then
        a[i, j] := z2(-2, 3, ((i - 1) * n) + j, m)
      else a[i, j] := z2(-2, 3, (i * N - j + 1), m);
    end;
end;
 
procedure write_array(A: arrayNN; N: integer);
var
  i, j: integer;
begin
  for i := 1 to N do 
  begin
    for j := 1 to N do
      write(A[i, j], ' ');
    writeln;
  end;
end;
 
begin
  read_array(A1, N);
  write_array(A1, N);
  for i := 1 to n - 1 do
  begin
    g := 1;
    j := i;
    
    max := A1[g, j];
    min := A1[g, j];
    max1 := g;
    max2 := j;
    min1 := g;
    min2 := j;
    
    while j <> n do
    begin
      g := g + 1;
      j := j + 1;
      if A1[g, j] > max then
      begin
        max := A1[g, j];
        max1 := g;
        max2 := j;
      end;
      
      if A1[g, j] < min then
      begin
        min := A1[g, j];
        min1 := g;
        min2 := j;
      end;
    end;
    
    A1[max1, max2] := min;
    A1[min1, min2] := max;
  end;
  writeln;
  writeln;
  write_array(A1, N)
end.
Добавлено через 12 минут
Конкретная постановка задачи:
...получить матрицу. В полученной матрице необходимо в каждой диагонали матрицы, параллельной главной, включая главную, поменять местами max и min.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2015, 15:34
Ответы с готовыми решениями:

В матрице А(ф,ф) поменять местами элементы на главной и побочной диагоналях
В матрице Х(n,n) поменять местами элементы на главной и побочной диагоналях. Найти положение...

Поменять местами в матрице строки, содержащие MIN и MAX элементы
В данной действительной матрице размера m x n поменять местами строку, содержащую элемент с...

Поменять местами max и min элементы главной диагонали массива c(10,10)
CLS DIM a(10, 10) RANDOMIZE TIMER FOR i = 1 TO 10 FOR j = 1 TO 10 a(i, j) = INT(RND(1) * 100)...

В квадратной матрице размером N поменять местами элементы на главной и побочной диагоналях в каждой строке
1) В квадратной матрице размером N поменять местами элементы на главной и побочной диагоналях в...

6
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
15.12.2015, 19:14 2
Pascal
1
2
3
4
{определение суммы элементов ниже главной диагонали}  
  for i:=1 to n do
   for j:=1 to m do
    if i > j then inc(sum1, arr[i, j]);
0
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 29
17.12.2015, 08:13  [ТС] 3
Как это реализовать в данном случае? Я не могу понять, куда сейчас это впихнуть. Если вы знаете, то напишите как это будет выглядеть.

Добавлено через 22 часа 25 минут
Выручайте) Не могу справиться
0
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 29
18.12.2015, 14:34  [ТС] 4
Нет, ну это не серьезно
0
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 29
20.12.2015, 15:45  [ТС] 5
Все еще нужна помощь
0
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 29
22.12.2015, 03:13  [ТС] 6
up!
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
22.12.2015, 07:00 7
Лучший ответ Сообщение было отмечено benifest как решение

Решение

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
const
  n = 5;
begin
  Randomize;
  var a : array [1..n, 1..n] of Integer;
  for var Row := 1 to n do
    for var Col := 1 to n do
      a[Row, Col] := Random(-9,+9);
      
  WriteLn('Исходная:');
  for var Row := 1 to n do
    begin
      for var Col := 1 to n do
        Write(a[Row, Col]:3);
      WriteLn;
    end;
  WriteLn;
  
  /// Поиск и обмен min и max диагоналей
  for var Start := 1 to N-1 do // Последнюю из одного элемента рассматривать не имеет смысла
    begin
      var min := 0; var max := 0;
      for var i := 1 to N - Start do
        if A[Start + i, 1 + i] < A[Start + min, 1 + min] then min := i
        else if A[Start + i, 1 + i] > A[Start + max, 1 + max] then max := i;
      if min <> max then
        Swap(A[Start + min, 1 + min], A[Start + max, 1 + max]);
    end;
 
  WriteLn('Изменённая:');
  for var Row := 1 to n do
    begin
      for var Col := 1 to n do
        Write(a[Row, Col]:3);
      WriteLn;
    end;
  WriteLn;
end.
1
22.12.2015, 07:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2015, 07:00
Помогаю со студенческими работами здесь

Поменять местами элементы главной диагонали матрицы содержащие min и max
Здраствуйте, может кто-нибудь помочь с задачкой: Среди элементов главной диагонали матрицы H(8x8)...

Найти min и max элементы на главной диагонали матрицы и поменять местами соответствующие столбцы
Составить программу поиска минимального и максимального элементов массива расположенных на главной...

В матрице поменять местами элементы на главной и побочной диагоналях, оставив каждый элемент в той же строке, где он и находился
В матрице n*n поменять местами элементы на главной и побочной диагоналях, оставив каждый элемент в...

Если над главной диагональю матрицы только отрицательные элементы - поменять местами ее min и max значения
даны два двумерных массива A(6,6) и B(7,7). Если над главной диагональю массива только...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru