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

Найти минимальный элемент в каждой строке отдельно и среди них максимальный

06.02.2017, 20:37. Показов 1139. Ответов 4

Author24 — интернет-сервис помощи студентам
Условие: Дано массив А [M x N]. Найти минимальный элемент в каждой строке отдельно и среди них самый большой.
Программа должна предусматривать возможность введения входных данных как с клавиатуры, так и из файла ZAD4.DAT. Результаты работы должны выводиться как на экран, так и в файл ZAD4.REZ.

Выходные данные, размещенные в текстовом файле, имеют следующий формат:
 сначала в одной строке через пробел идут два числа M и N - размерность матрицы, если матрица прямоугольная и одно число N - если матрицяквадратна;
 дальше в М (N для квадратной матрицы) строках через пробел идут N чисел -данные из соответствующих ячеек матрицы;

В програме должны быть:
6 пунктов меню
1.Ввод с клавиатуры
2.Ввод с файла
3.Работа
4.Вывод на экран
5.Вывод в файл
6.EXIT

Мой код(не смог сделать):
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
uses crt;
const max_size=15;
type my_array=array[0..max_size,0..max_size] of integer;
var mas:my_array;
i,j:byte;
m,n,chuslo:word;
c:char;
 
label menu;
 
Procedure Input (var m,n:word; var mas:my_array);
  var i,j:byte;
  begin
   for i:=1 to M do
        begin
        for j:=1 to N do
          begin
       writeln('Input size ',i,'x',j);
       readln(chuslo);
     mas[i,j]:=chuslo;
         end;
         end;
         end;
 
 
Procedure List (var m,n:word; var mas:my_array);
  var i,j:byte; f:text; f_n:string;
    begin
      write('f_name?->');readln(f_n);
       assign(f,f_n);reset(f);
        read(f,m);
        read(f,n);
          for i:=1 to m do
          for j:=1 to n do
          read(f,mas[i,j]);
             
             
              close(f);
           end;   
 
Procedure Work (var M,N:word; var mas:my_array);
var  i,j:byte;
begin
     
   for i:=1 to M do
   begin
   
      for j:=1 to N do
    
               begin
               mas[i,0]:=mas[i,1];
               if mas[i,j]>mas[i,0] then begin
               mas[i,0]:=mas[i,j];
               end;
               end;
               end;
            
               mas[0,0]:=0;
               for i:=1 to m do
               if mas[0,0]<=mas[i,0] then
               mas[0,0]:=mas[i,0];
               end;
 
 
Procedure Rezultat (var M,N:word; var mas:my_array);
var  i,j:byte;
begin
writeln('rozmirnosty matruci ',M,'x',N);
    
    writeln('U dannomy masivi');
   
      for i:=1 to M do
    begin
      for j:=1 to N do
      begin
      write(mas[i,j]:5)
      end;
      writeln();
      end;
      
     for i:=1 to M do
     begin
     writeln('min ',i,' rydka',mas[i,0]);
     end;
     writeln('Naybilshe=',mas[0,0]);
     end;
 
 
 
Procedure Save (var M,N:word; var mas:my_array);
var  i,j:byte; f:text;
begin
   assign(f,'C:\ZAD4DAT.txt');
   rewrite(f);
    writeln(f,'U dannomy masivi');
    for i:=1 to m do
    begin
    for j:=1 to n do
    begin
    write(mas[i,j]:5);
    end;
    writeln(f);
    end;
    for i:=1 to m do
    begin
     writeln(f,'min ',i,' rydka',mas[i,0]);
     end;
     writeln(f,'Naybilshe=',mas[0,0]);
     close(f);
     end;
  
     
      
  begin
    menu:clrscr;
     writeln('Vuberit punkt');
     writeln('1:In_keyboard'); 
     writeln('2:List_file'); 
     writeln('3:Work');
     writeln('4:List_rezult');
     writeln('5:Save_file'); 
     writeln('6:exit;'); 
     c:=readkey;
          case c of 
          
  '1': begin
        clrscr;
        writeln('Input keybord!');
        repeat
            write('M(kilkist_ryadkiv)->'); readln(M);
        until M in [1..10];
        repeat
          write('N(kilkist_stovpchukiv)->'); readln(N);
        until N in [1..10];
        Input(m,n,mas);
        readkey;
       goto menu;
     end;
  '2': begin 
       clrscr;
       writeln('List file:');
       List (m,n,mas);
       readkey;
       goto menu;
       end;
  '3': begin
       clrscr;
        if (m=0) or (n=0) then 
        writeln('Work failed. Load masiv')
        else
       Writeln('********WORK COMPLETE********');
       Work (m,n,mas);
         readkey;
       goto menu;
       end;
   '4': begin
        clrscr;
        if (m=0) or (n=0) then 
        writeln('Error. Load masiv')
        else        
        Writeln('Rezultat:');
        Rezultat (m,n,mas);
      readkey;
       goto menu;
      end;
    '5': begin
         clrscr;
         if (m=0) or (n=0) then 
        writeln('Error. Load masiv')
        else 
         Writeln('********SAVE COMPLETE********');
         Save(m,n,mas);
         readkey;
       goto menu;
      end;
            '6': begin
      writeln('****FIND PROGRAM****');readkey;
      exit;
      end;
      else
       begin
        writeln('Error vibor!!!');
        readkey;
        goto menu;
        end;
        end;
        end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2017, 20:37
Ответы с готовыми решениями:

Найти минимальный элемент в каждой строке матрицы отдельно и среди них самый большой
Дано матрицу А . Найти минимальный элемент в каждой строке отдельно и среди них самый большой.

Дан двумерный массив вещественных чисел размерностью n*m. В каждой строке найти минимальный элемент, а среди них-максимальный.
Дан двумерный массив вещественных чисел размерностью n*m. В каждой строке найти минимальный...

В каждой строке найти минимальный элемент, затем среди них найти максимальное и вывести на экран индекс этого элемента
Здравствуйте! Помогите, пожалуйста, с задачей: В двумерном массиве все числа различны. В каждой...

В двумерном массиве найти в каждой строке максимальный элемент, затем среди этих чисел выбрать минимальный
1.в двумерном массиве найти в каждой строке максимальный элемент, затем среди этих чисел выбрать...

4
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
07.02.2017, 10:13 2
Лучший ответ Сообщение было отмечено Katachi как решение

Решение

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
uses crt;
const
  max_size = 15;
 
type
  my_array = array[0..max_size, 0..max_size] of integer;
 
var
  mas: my_array;
  i, j: byte;
  m, n, chuslo: word;
  c: char;
 
procedure Input(m, n: word; var mas: my_array);
var
  i, j: byte;
begin
  for i := 1 to M do
    for j := 1 to N do
    begin
      write('Input value ', i, 'x', j);
      readln(mas[i, j]);
    end;
end;
 
procedure List(var m, n: word; var mas: my_array);
var
  i, j: byte;
  f: text;
  f_n: string;
begin
  write('f_name?->');
  readln(f_n);
  assign(f, f_n);
  reset(f);
  readln(f, m);
  readln(f, n);
  for i := 1 to m do
    for j := 1 to n do
      read(f, mas[i, j]);
  close(f);
end;
 
procedure Work(var M, N: word; var mas: my_array);
var
  i, j: byte;
begin
  for i := 1 to M do
  begin
    for j := 1 to N do
    begin
      mas[i, 0] := mas[i, 1];
      if mas[i, j] < mas[i, 0] then 
        mas[i, 0] := mas[i, j];
    end;
  end;
  
  mas[0, 0] := 0;
  for i := 1 to m do
    if mas[0, 0] <= mas[i, 0] then
      mas[0, 0] := mas[i, 0];
end;
 
 
procedure Rezultat(M, N: word; var mas: my_array);
var
  i, j: byte;
begin
  writeln('rozmirnosty matruci ', M, 'x', N);
  writeln('U dannomy masivi');
  for i := 1 to M do
  begin
    for j := 1 to N do
      write(mas[i, j]:5);
    writeln;
  end;
  for i := 1 to M do
    writeln('min ', i, ' rydka', mas[i, 0]);
  writeln('Naybilshe=', mas[0, 0]);
end;
 
procedure Save(var M, N: word; var mas: my_array);
var
  i, j: byte;
  f: text;
begin
  assign(f, 'ZAD4DAT.txt');
  rewrite(f);
  writeln('U dannomy masivi');
  writeln(f, m);
  writeln(f, n);
  for i := 1 to m do
  begin
    for j := 1 to n do
      write(f, mas[i, j]:5);
    writeln(f);
  end;
  for i := 1 to m do
  begin
    writeln(f, 'min ', i, ' rydka', mas[i, 0]);
  end;
  writeln(f, 'Naybilshe=', mas[0, 0]);
  close(f);
end;
 
begin
  while c <> '6' do
  begin
    clrscr;
    writeln('Vuberit punkt');
    writeln('1:In_keyboard'); 
    writeln('2:List_file'); 
    writeln('3:Work');
    writeln('4:List_rezult');
    writeln('5:Save_file'); 
    writeln('6:exit;'); 
    c := readkey;
    case c of 
      
      '1':
        begin
          clrscr;
          writeln('Input keybord!');
          repeat
            write('M(kilkist_ryadkiv)->');readln(M);
          until M in [1..10];
          repeat
            write('N(kilkist_stovpchukiv)->');readln(N);
          until N in [1..10];
          Input(m, n, mas);
          readkey;
          //          goto menu;
        end;
      '2':
        begin
          clrscr;
          writeln('List file:');
          List(m, n, mas);
          readkey;
          //          goto menu;
        end;
      '3':
        begin
          clrscr;
          if (m = 0) or (n = 0) then 
            writeln('Work failed. Load masiv')
          else
            Writeln('********WORK COMPLETE********');
          Work(m, n, mas);
          readkey;
          //          goto menu;
        end;
      '4':
        begin
          clrscr;
          if (m = 0) or (n = 0) then 
            writeln('Error. Load masiv')
          else        
            Writeln('Rezultat:');
          Rezultat(m, n, mas);
          readkey;
          //          goto menu;
        end;
      '5':
        begin
          clrscr;
          if (m = 0) or (n = 0) then 
            writeln('Error. Load masiv')
          else 
            Writeln('********SAVE COMPLETE********');
          Save(m, n, mas);
          readkey;
          //          goto menu;
        end;
      '6':
        begin
          writeln('****FIND PROGRAM****');readkey;
          exit;
        end;
    else
      begin
        writeln('Error vibor!!!');
        readkey;
        //        goto menu;
      end;
    end;
  end;
end.
0
0 / 0 / 1
Регистрация: 04.12.2016
Сообщений: 20
07.02.2017, 13:43  [ТС] 3
Подскажите, у меня примерна так получалось, но почему программа работает через раз. 1 раз правильно 2 нет
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
07.02.2017, 16:07 4
Katachi, вы покажите, где именно и в каком месте программа неправильно работает.
0
0 / 0 / 1
Регистрация: 04.12.2016
Сообщений: 20
13.02.2017, 22:32  [ТС] 5
Я не могу понять где не правильно но у меня программа через раз работает правильно, немогу понять почему. Но за ответ спасибо.
0
13.02.2017, 22:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2017, 22:32
Помогаю со студенческими работами здесь

В двумерном массиве найти в каждой строке максимальный элемент, затем среди этих чисел выбрать минимальный
Напечатать те слова, которые встречаются в каждом из двух заданных предложений. Задачу выполнить...

Найти максимальный элемент в каждой строке матрицы отдельно.
Задана матрица A(n,m). для выполнения действий над элементами матрицы в соответствии с данными,...

В каждом столбце найти максимальный элемент, а среди них – минимальный
Дан двумерный массив вещественных чисел размерностью nхm. В каждом столбце найти максимальный...

Матрица. В каждой строке выбирать минимальный элемент, затем среди этих чисел выбрать максимальный
задача такова: Дан массив A(N,M). В каждой строке выбирать минимальный элемент, затем среди этих...


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

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

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