Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Fbi26rus
1

В двумерном массиве поменять местами строку с максимальным количеством элементов кратных 5, и минимальным

15.10.2014, 12:24. Показов 534. Ответов 4
Метки нет (Все метки)

В двумерном массиве поменять местами строку с максимальным количеством элементов кратных 5, и минимальным. Используя процедуры и функции... желательно на паскале
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2014, 12:24
Ответы с готовыми решениями:

Поменять местами столбцы с максимальным и минимальным элементами в двумерном массиве
Ребят,нужно поменять местами столбцы с максимальным и минимальным элементами в двумерном...

Поменять в массиве местами строку с наибольшим и строку с наименьшим количеством различных элементов
Помогите, пожалуйста, решить задачу на С++ . Дан массив действительных чисел размера m на n, где m...

Найти слова с минимальным и максимальным количеством символов, затем поменять их местами
Найти слово с минимальным и максимальным количеством символов, затем поменять их местами. На си

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

4
Эксперт Pascal/Delphi
6768 / 4536 / 4807
Регистрация: 05.06.2014
Сообщений: 22,364
15.10.2014, 19:20 2
Взято отсюда и чуть подправлено:
Замена в матрице строки с максимальным элементом и столбца с минимальным элементом.
Случай, когда в строке нет элементов, кратных 5, рассмотрите самостоятельно.

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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j,imx,jmn:byte;
    mn,mx,x,y,z:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=random(50)-25;
     write(a[i,j]:4);
    end;
   writeln;
 end;
mn:=a[1,1]; jmn:=1;
mx:=a[1,1]; imx:=1;
for i:=1 to n do
for j:=1 to n do
 begin
  if a[i,j]<mn then
   begin
    mn:=a[i,j];
    jmn:=j;
   end;
  if (a[i,j] mod 5=0) then
    if (a[i,j]>mx) then
      begin
        mx:=a[i,j];
        imx:=i;
      end;
 end;
writeln('Минимальный элемент=',mn,' в столбце ',jmn);
writeln('Максимальный элемент=',mx,' в строке ',imx);
{запомним элементы на пересечениях на главной диагонали}
x:=a[imx,imx];
y:=a[jmn,jmn];
for i:=1 to n do
if not(i in [imx,jmn]) then {все элементы кроме гл. диаг. обменяем}
  begin
   z:=a[imx,i];
   a[imx,i]:=a[i,jmn];
   a[i,jmn]:=z;
  end;
a[imx,imx]:=y;{обменяем на главной}
a[jmn,jmn]:=x;
writeln('Обмен строки ',imx,' и столбца ',jmn);
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
6177 / 3701 / 2560
Регистрация: 22.11.2013
Сообщений: 10,584
Записей в блоге: 1
15.10.2014, 22:58 3
ZX Spectrum-128,
какую-то не ту задачку вы решали...
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
const
  m=5; n=19; LIM=100; W=4;
var
  a: array [0..m,1..n] of Integer;
  i, j, c, imin, cmin, imax, cmax: Integer;
begin
  Randomize;
  cmin:=n+1; cmax:=-1;
  WriteLn('A=');
  for i:=1 to m do begin
    c:=0;
    for j:=1 to n do begin
      a[i,j]:=Random(LIM); Write(a[i,j]:W);
      if 0=a[i,j] mod 5 then Inc(c);
    end; WriteLn;
    if c<cmin then begin
      imin:=i; cmin:=c;
    end;
    if c>cmax then begin
      imax:=i; cmax:=c;
    end;
  end;
  a[0]:=a[imin]; a[imin]:=a[imax]; a[imax]:=a[0];
  WriteLn(imin,'<->',imax); WriteLn('A''=');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:W); WriteLn;
  end;
end.
0
Эксперт Pascal/Delphi
6768 / 4536 / 4807
Регистрация: 05.06.2014
Сообщений: 22,364
15.10.2014, 23:03 4
bormant, опять я тормознул, что ли?
Блин
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
6177 / 3701 / 2560
Регистрация: 22.11.2013
Сообщений: 10,584
Записей в блоге: 1
16.10.2014, 00:19 5
Ах да, процедуры и функции были в условии... Исправляюсь:
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
const
  m=5; n=19; LIM=100; W=4;
type
  TRow=array[1..n] of Integer;
  TMatr=array[1..m] of TRow;
 
function CountD5(const r: TRow): Integer;
var i, c: Integer;
begin
  c:=0; for i:=Low(r) to High(r) do if 0=r[i] mod 5 then Inc(c);
  CountD5:=c;
end;
 
procedure GetMinMaxRows(const a: TMatr; var iMin, iMax: Integer);
var i, j, c, cmin, cmax: Integer;
begin
  cmin:=n+1; cmax:=-1;
  for i:=Low(a) to High(a) do begin
    c:=CountD5(a[i]);
    if c<cmin then begin iMin:=i; cmin:=c; end;
    if c>cmax then begin iMax:=i; cmax:=c; end;
  end;
end;
 
procedure mSwapRows(var a: TMatr; r1, r2: Integer);
var t: TRow;
begin
  t:=a[r1]; a[r1]:=a[r2]; a[r2]:=t;
end;
 
procedure mInit(var a: TMatr);
var i, j: Integer;
begin
  for i:=Low(a) to High(a) do
    for j:=Low(a[Low(a)]) to High(a[Low(a)]) do
      a[i,j]:=Random(LIM);
end;
 
procedure mWrite(const a: TMatr);
var i, j: Integer;
begin
  for i:=Low(a) to High(a) do begin
    for j:=Low(a[Low(a)]) to High(a[Low(a)]) do Write(a[i,j]:W); WriteLn;
  end;
end;
 
var
  a: TMatr;
  imin, imax: Integer;
begin
  Randomize; mInit(a);
  WriteLn('A='); mWrite(a);
  GetMinMaxRows(a,imin,imax);
  mSwapRows(a,imin,imax);
  WriteLn(imin,'<->',imax);
  WriteLn('A''='); mWrite(a);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2014, 00:19

Поменять местами строку матрицы с максимальным и минимальным элементом
Проблема такова: программа меняет местами строку с максимальным и минимальным элементом. Когда я...

Поменять местами строку с максимальным и минимальным элементом матрицы
Задана матрица размером NxN. Поменять местами строку с максимальным элементом матрицы и строку с...

В двумерном массиве поменять местами строку
Двумерный массив А (N, N) поменять местами строку с max эл-ом и первым отрицательным эл-ом.

Процедуры: найти строку в массиве с большим количеством нулей и поменять эту строку местами с первой
Дана задача: найти строку в массиве с большим кол-вом нулей и поменять эту строку местами с первой....


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

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

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