Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
1

Минимальный элемент над главной диагональю матрицы

14.04.2018, 23:45. Показов 1099. Ответов 4

Author24 — интернет-сервис помощи студентам
Здравствуйте, почему функция mMinURCD выводит не верное значение мин. элемента над главной диагональю матрицы D?

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
program lr5;
 
type
  massif = array [1..4, 1..4] of real;
 
var
  matrixC, matrixD,r: massif;
  x, qD: real;
  input: text;
 
 
function GetMatrix(n: byte): massif;
var
  m: massif;
  f: Text;
  s: String;
  row, col: byte;
begin
  row := 0; col := 0;
  Assign(f, 'matrix.txt'); Reset(f);
  while not EOF(f) and (n > 0) do
  begin
    if row = 0 then
    begin ReadLn(f, s); inc(row); end
      else
    begin
      inc(col); 
      Read(f, m[row, col]);
      if col = 4 then
      begin
        ReadLn(f); 
        col := 0; 
        inc(row);
        if row > 4 then
        begin 
        row := 0; 
        dec(n); 
        end;
      end;
    end;
  end;
  Close(f);
  GetMatrix := m;
end;
 
procedure mSum(const c, d: massif; var sum: massif);//Сложение матриц
begin
  for var i := 1 to 4 do 
  begin
    for var j := 1 to 4 do
    begin
    sum[i, j] := c[i, j] + d[i, j];
             write('',sum[i,j]:12:5);
      end;
           writeln;
      end;
end;
 
function mMinURCD(const c, d: massif; var qD: real): Real;//Мин. элемент над главной диагональю
var
  minC, minD: Real;
begin
  minC := c[1,2];
  minD := d[1,2];
  
  for var i := 1 to 4 do 
  begin
    for var j := i+1 to 4 do 
      if minC > c[i,j] then
      begin
        minC := c[i,j];
        if minD > d[i,j] then
        minD := d[i,j];
      end;
  end;
  mMinURCD := minC;
  qD := minD;
end;
 
begin
  
  writeln('Введите матрицу 4X4');
  for var i: byte := 1 to 4 do
  begin
    for var j: byte := 1 to 4 do
    begin
      x := 0;
      write('Значение для элемента[', i, '][', j, '] = ');
      read(x);
      matrixC[i][j] := x;
    end;
  end;
  
  writeln;
  
  writeln('Матрица C =');
  for var i: byte := 1 to 4 do
  begin
    for var j: byte := 1 to 4 do
    begin
      write('', matrixC[i][j]:12:5);
    end;
    writeln;
  end;
  
  writeln;
  
  matrixD := GetMatrix(4); 
  WriteLn('Матрица D =');
  for var row: byte := 1 to 4 do
  begin
    for var col: byte := 1 to 4 do Write(matrixD[row, col]:12:5);
    WriteLn;
  end;
  
  writeln;
  
  writeln('Сумма C + D =');
  mSum(matrixC, matrixD, r);
  
  writeln;
  
  writeln('Min над C: ',mMinURCD(matrixC, matrixD, qD):0:5,' и D: ',qD);
    writeln;
    
  WriteLn('Результаты сохранены в файл "result.txt"');
  Assign(input, 'result.txt'); 
  Rewrite(input);
  writeln(input,'Min над C: ',mMinURCD(matrixC, matrixD, qD):0:5,' и D: ',qD);
 writeln(input);
 writeln(input,'Сумма C+D = ');
 for var i := 1 to 4 do 
  begin
    for var j := 1 to 4 do
    begin
             write(input,'',r[i,j]:12:5);
      end;
           writeln(input);
      end;
  Close(input);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2018, 23:45
Ответы с готовыми решениями:

Найти минимальный элемент под главной диагональю и максимальный элемент над главной диагональю
Составьте программу поиска минимального элемента, расположен- ного под главной диагональю, и...

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

Массив: Не получается найти минимальный элемент "над главной диагональю" в динамическом массиве.
Здравствуйте. Не получается найти мин. элемент "над главной диагональю" в динам массиве. Размер...

Проверить утверждение, что наибольший элемент заданной матрицы находится над главной диагональю
Помогите пожалуйста, не могупонять даже суть задачи. Ввести матрицу SLON порядка M. Правда ли....

4
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
15.04.2018, 10:31  [ТС] 2
Матрица D
Вложения
Тип файла: txt result.txt (248 байт, 1 просмотров)
Тип файла: txt matrix.txt (1.0 Кб, 1 просмотров)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.04.2018, 10:54 3
Может так нужно?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function mMinURCD(const c, d: massif; var qD: real): Real;//Мин. элемент над главной диагональю
var
  minC, minD: Real;
begin
  minC := c[1,2];
  minD := d[1,2];
  for var i := 1 to 4 do 
  for var j := i+1 to 4 do 
   begin
    if minC > c[i,j] then  minC := c[i,j];
    if minD > d[i,j] then  minD := d[i,j];
   end;
  mMinURCD := minC;
  qD := minD;
end;
Программу не смотрел, там фиг знает что написано. Зачем файл matrix, если матрицы нужно вводить с клавы?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
15.04.2018, 11:32 4
Лучший ответ Сообщение было отмечено koks_ikkkk как решение

Решение

koks_ikkkk,
Лучше:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
function mMinUR(const c: massif): Real;//Мин. элемент над главной диагональю
var
  min: Real;
begin
  min := c[1,2];
  for var i := 1 to 4-1 do 
    for var j := i+1 to 4 do 
      if min > c[i,j] then  min := c[i,j];
  mMinUR := min;
end;
 
...
  WriteLn('Над гл.диагональю: min(c) = ',mMinUR(c),'  min(d) = ',mMinUR(d));
Велосипеды с квадратными колесами пользуются плохой популярностью. Пользуйтесь инструментами по их назначению, и всё будет намного проще...
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
16.04.2018, 19:04  [ТС] 5
Блин, спасибо)
0
16.04.2018, 19:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2018, 19:04
Помогаю со студенческими работами здесь

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю
Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю....

Сумма элементов матрицы над главной диагональю
Вычислить сумму элементов массива над главной диагональю, Определить индексы минимального элемента....

Двумерные массивы - сложение, мин. элемент над главной диагональю
Здравствуйте, помогите пожалуйста. У меня 3 проблемы: 1) Не правильно выводится минимальный...

Найти максимальный элемент среди элементов, находящихся над главной диагональю
Написать программу которая для массива А(6,6) находит максимал элемент среди элементов находящихся...


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

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