Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
1

max и min поменять местами

30.03.2010, 15:16. Показов 1367. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, нужна программа.
Составить двухмерный массив из случайных чисел.
Представьте что массив разделен двумя диагоналями на 4 части: верхняя, нижняя, левая, правая.
Рассматриваем левую и правую часть и находим в них минимальный элемент.
В верхней и нижней части находим максимальный элемент.
И меняем местами минимальный и максимальный элемент.
Помогите пожалуйста.....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2010, 15:16
Ответы с готовыми решениями:

Поменять местами max и min четных строк матрицы (C++ -> Pascal)
Дана квадратная матрица. Размерность вводится. Поменять местами max и min четных строк....

Найти в одномерном массиве F(n) max и min элементы и поменять их местами.
Найти в одномерном массиве F(n) max и min элементы и поменять их местами.

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

В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы
В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы. Вывести...

5
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
01.04.2010, 16:15 2
Цитата Сообщение от Elena0602 Посмотреть сообщение
И меняем местами минимальный и максимальный элемент.
Который с которым? Их же 2 пары.
0
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
01.04.2010, 16:22 3
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
uses crt;
const n=5;
var a:array[1..n,1..n]of integer;
i,j,mini,minj,maxi,maxj,b:integer;
 
begin
 clrscr;
 randomize;
 writeln('Исходный массив');
 for i:=1 to n do
 begin 
  for j:=1 to n do
  begin
    a[i,j]:=-50+random(100);
    write(a[i,j]:4);
  end;
  writeln;
 end;
 
 mini:=2;
 minj:=1;
 maxi:=1;
 maxj:=2;
 
 for i:=1 to n div 2 do for j:=1+i to n-i do if a[i,j]>a[maxi,maxj] then
 begin
  maxi:=i;
  maxj:=j;
 end; 
 for i:=1 to (n div 2) + 1 do for j:=n-i downto 1+i do if a[i,j]>a[maxi,maxj] then
 begin
  maxi:=i;
  maxj:=j;
 end;
 for j:=1 to n div 2 do for i:=1+j to n-j do if a[i,j]<a[mini,minj] then
 begin
  mini:=i;
  minj:=j;
 end; 
 for j:=1 to (n div 2) + 1 do for i:=n-j downto 1+j do if a[i,j]<a[mini,minj] then
 begin
  mini:=i;
  minj:=j;
 end;
 
 b:=a[mini,minj];
 a[mini,minj]:=a[maxi,maxj];
 a[maxi,maxj]:=b;
 
 writeln('Преобразовнная матрица');
 for i:=1 to n do
 begin
  for j:=1 to n do write(a[i,j]:4);
  writeln;
 end;
end.
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
01.04.2010, 16:29 4
k1ry4, Я так понял нужно найти 2 минимума и 2 максимума и как-то их обменять. Но как?

Добавлено через 1 минуту
А, я наверное неправильно понял. Нужно только по 1 минимуму и максимуму.
1
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
06.04.2010, 16:49  [ТС] 5
Puporev,
Помоги пожалуйста.
Составить двухмерный массив из случайных чисел.
Представьте что массив разделен двумя диагоналями на 4 части: верхняя, нижняя, левая, правая.
Рассматриваем левую и правую часть и находим в них минимальный элемент.
В верхней и нижней части находим максимальный элемент.
И меняем местами минимальный и максимальный элемент.
Вот программа, но она работает как-то неправильно(((. Нужен 1 минимум и 1 максимум
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
uses crt;
const n=5;
var a:array[1..n,1..n]of integer;
i,j,mini,minj,maxi,maxj,b:integer;
 
begin
 clrscr;
 randomize;
 writeln('Исходный массив');
 for i:=1 to n do
 begin 
  for j:=1 to n do
  begin
    a[i,j]:=-50+random(100);
    write(a[i,j]:4);
  end;
  writeln;
 end;
 
 mini:=2;
 minj:=1;
 maxi:=1;
 maxj:=2;
 
 for i:=1 to n div 2 do for j:=1+i to n-i do if a[i,j]>a[maxi,maxj] then
 begin
  maxi:=i;
  maxj:=j;
 end; 
 for i:=1 to (n div 2) + 1 do for j:=n-i downto 1+i do if a[i,j]>a[maxi,maxj] then
 begin
  maxi:=i;
  maxj:=j;
 end;
 for j:=1 to n div 2 do for i:=1+j to n-j do if a[i,j]<a[mini,minj] then
 begin
  mini:=i;
  minj:=j;
 end; 
 for j:=1 to (n div 2) + 1 do for i:=n-j downto 1+j do if a[i,j]<a[mini,minj] then
 begin
  mini:=i;
  minj:=j;
 end;
 
 b:=a[mini,minj];
 a[mini,minj]:=a[maxi,maxj];
 a[maxi,maxj]:=b;
 
 writeln('Преобразовнная матрица');
 for i:=1 to n do
 begin
  for j:=1 to n do write(a[i,j]:4);
  writeln;
 end;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.04.2010, 19:01 6
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    mn,mx,x:integer;
    n,i,j,imx,jmx,imn,jmn:byte;
begin
clrscr;
randomize;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(20);
mx:=a[1,2];
imx:=1;
jmx:=2;
for i:=1 to n do
for j:=1 to n do
if (((j>i)and(j<n-i+1)){верх}
or((j>n-i+1)and(j<i)))and(a[i,j]>mx) then{низ}
 begin
  mx:=a[i,j];
  imx:=i;
  jmx:=j;
 end;
mn:=a[2,1];
imn:=2;
jmn:=1;
for i:=1 to n do
for j:=1 to n do
if (((j<i)and(j<n-i+1)){слева}
or((j>n-i+1)and(j>i)))and(a[i,j]<mn) then{справа}
 begin
  mn:=a[i,j];
  imn:=i;
  jmn:=j;
 end;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
  if (i=imx)and(j=jmx)then
     begin
      textcolor(12);
      write(a[i,j]:4);
     end
  else if (i=imn)and(j=jmn)then
     begin
      textcolor(13);
      write(a[i,j]:4);
     end
  else if (i=j)or(j=n-i+1)then
     begin
      textcolor(10);
      write(a[i,j]:4);
     end
  else
     begin
      textcolor(15);
      write(a[i,j]:4);
     end;
  writeln;
 end;
textcolor(15);
writeln('Максимальный вверху и внизу a[',imx,',',jmx,']=',mx);
writeln('Минимальный слева и справа a[',imn,',',jmn,']=',mn);
x:=a[imn,jmn];
a[imn,jmn]:=a[imx,jmx];{обмен элементов}
a[imx,jmx]:=x;
writeln('Перестановка:');
for i:=1 to n do
 begin
  for j:=1 to n do
  if (i=imx)and(j=jmx)then
     begin
      textcolor(13);
      write(a[i,j]:4);
     end
  else if (i=imn)and(j=jmn)then
     begin
      textcolor(12);
      write(a[i,j]:4);
     end
  else if (i=j)or(j=n-i+1)then
     begin
      textcolor(10);
      write(a[i,j]:4);
     end
  else
     begin
      textcolor(15);
      write(a[i,j]:4);
     end;
  writeln;
 end;
textcolor(15);
readln
end.
1
06.04.2010, 19:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2010, 19:01
Помогаю со студенческими работами здесь

Переписать данные из массива в односвязный линейный список, поменять местами min и max
Задача: Создать массив, переписать данные из массива в односвязный линейный список, поменять...

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

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

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с...


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

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