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

В массиве все элементы, стоящие выше максимального элемента, заменить на минимальный элемент

13.03.2014, 10:24. Показов 2240. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, нужна помощь!

Вот задание:

В массиве все элементы, стоящие выше максимального элемента, заменить на минимальный элемент.

Заранее благодарю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2014, 10:24
Ответы с готовыми решениями:

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

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

В массиве все четные элементы, стоящие снизу от максимального элемента массива, заменить на максимальный элемент столбца
В массиве все четные элементы, стоящие снизу от максимального элемента массива, заменить на...

В двумерном массиве все элементы, стоящие выше максимального элемента, заменить на минимальный элемент
Помогите найти ошибки, пожалуйста. Условие задачи: В двумерном массиве все элементы, стоящие...

7
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
13.03.2014, 10:37 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
// ïîèñê ìèíèìàëüíîãî:
imin:=1; jmin:=1; // èíäåêñû ìèíèìàëüíîãî
imax:=1; jmax:=1; // èíäåêñû ìàêñèìàëüíîãî
for i:=1 to n do
  for j:=1 to m do
  begin
    if a[i,j] < a[imin,jmin] then
    begin
      imin:=i;
      jmin:=j;
    end;
    if a[i,j] > a[imax,jmax] then
    begin
      imax:=i;
      jmax:=j;
    end;
  end;
    
// åñëè ìàêñèìàëüíûé - â ïåðâîé ñòðîêå:
if imax=1 then writeln('Ìàêñèìàëüíûé ýëåìåíò â ïåðâîé ñòðîêå');
 
// èíà÷å - çàìåíà:
for i:=1 to imax-1 do
  for j:=1 to m do
    a[i,j]:=a[imin,jmin];
Добавлено через 2 минуты
пардон, дополнил по заданию
1
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 6
13.03.2014, 11:05  [ТС] 3
Пишет , что в
Pascal
1
if a[i, j] > a[imin, jmin] then
i и j - invalid qualifier

Присвоил i и j значение integer - тоже самое

На всякий случай скину код программы:

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
var a: array [1..20] if integer;
      imin, imax, jmax, jmin, n, m, j, i: integer;
begin
clrscr;
randomize;
 
imin:=1; jmin:=1;
imax:=1; jmax:=1;
 
 for i:=1 to n do
 for j:=1 to m do
if a[i, j] > a[imin, jmin] then
begin
imin:=i;
jmin:=j;
end;
if a[i, j] > a[imax, jmax] then
begin
imax:=i;
jmax:=j;
end;
end;
 
if imax=1 then writeln(' максимальный элемент в первой строке');
for i:=1 to imax-1 do
for j:=1 to m do
a[i, j]:=a[imin, jmin];
writeln;
readln
end.
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
13.03.2014, 11:23 4
Лучший ответ Сообщение было отмечено egfastra как решение

Решение

прежде всего, если используете clrscr нужно объявить использование модуля crt
Pascal
1
2
uses
  crt;
далее - нужно считать размеры матрицы и создать массив, и после преобразований - вывести измененный массив.
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
  a: array [1..20, 1..20] of integer;
  imin, imax, jmax, jmin, n, m, j, i: integer;
 
begin
  clrscr;
  randomize;
  write('Ââåäèòå n, m: ');
  readln(n, m);
 
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := random(99) + 1;
      write(a[i, j]:4);
    end;
    writeln;
  end;
 
  imin := 1; jmin := 1;
  imax := 1; jmax := 1;
 
  for i := 1 to n do
    for j := 1 to m do
    begin
      if a[i, j] < a[imin, jmin] then
      begin
        imin := i;
        jmin := j;
      end;
      if a[i, j] > a[imax, jmax] then
      begin
        imax := i;
        jmax := j;
      end;
    end;
 
  if imax = 1 then writeln('Ìàêñèìàëüíûé ýëåìåíò â ïåðâîé ñòðîêå') else
  begin
    for i := 1 to imax - 1 do
      for j := 1 to m do
        a[i, j] := a[imin, jmin];
    writeln('Ïðåîáðàçîâàííûé ìàññèâ:');
    for i:=1 to n do
    begin
      for j:=1 to m do
        write(a[i,j]:4);
      writeln;
    end;
  end;
  writeln;
  readln
end.
зы. в моем коде были неточности - подправил
1
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 6
13.03.2014, 11:50  [ТС] 5
Программа компилируется только если
Pascal
1
2
3
4
imax := i;
        jmax := j;
      end;
    end;
заменить точку с запятой в последнем end на точку.

Окей, поменял, запускаю. Программа предлагает ввести m и n. Ввожу одну цифру, нажимаю Enter - ничего не происходит. Пробовал записать в числа в ряд через пробел - просто вылетает.
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
13.03.2014, 11:55 6
Цитата Сообщение от egfastra Посмотреть сообщение
Ввожу одну цифру, нажимаю Enter - ничего не происходит
вводить нужно два числа - n и m - количество строк и столбцов. Далее программа геренирует массив из случайных чисел
1
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 6
13.03.2014, 11:57  [ТС] 7
Upd: разделил по отдельности - стал нормально принимать значения матрицы.
Осталось только решить проблему с end.
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
13.03.2014, 12:04 8
Цитата Сообщение от egfastra Посмотреть сообщение
Осталось только решить проблему с end.
нет там проблем с end =), была в вашем первоначальном коде - поправил сразу. Просто скопируйте код.
1
13.03.2014, 12:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2014, 12:04
Помогаю со студенческими работами здесь

В матрице все элементы, стоящие выше максимального элемента, заменить на минимальный элемент
Помогите решить задачу!!!! В массиве все элементы, стоящие выше максимального элемента, заменить...

В двумерном массиве все элементы, которые стоят выше максимального элемента, заменить на минимальный
В двумерном массиве все элементы, которые стоят выше максимального элемента, заменить на...

Двумерные массивы. Все элементы, стоящие выше максимального, заменить на минимальный
В двумерном массиве все элементы, стоящие выше максимального заменить на минимальный. #include...

Найти максимальный элемент в массиве и числа, элементы стоящие до максимального элемента заменить нулями
Найти максимальный элемент в массиве и числа, стоящие до максимального элемента заменить нулями.


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

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

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