Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 07.11.2012
Сообщений: 38
1

Отсортировать столбцы массива методом выбора

08.11.2012, 09:57. Показов 521. Ответов 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
program lab6;
var
    a: array[0..20,0..20] of integer;
    max,id_max,i,j,n,m,k: integer;
 
begin
 writeln ('Введите кол-во строк и столбцов');
 read (m,n);
    randomize;
    for i := 1 to m do begin
    for j := 1 to n do begin
        a[i,j] := random(100);
        write(a[i,j]:4);
        end;
        writeln;
    end;
    writeln;
    for i:=1 to m do
     begin
     k:=1;
      for j:=1 to n do
       begin
        max:=a[i,1];
         for j:=2 to n do
         begin
          if a[i,j]>max then
          begin
          max:=a[i,j];
          id_max:=j;
          end;
         end;
          a[i,id_max] := a[i,k];
          a[i,k]:= max;
          k:=k+1;
       end;
        i:=i+1;
      end;
   for i := 1 to m do begin
   for j := 1 to n do begin
     write(a[i,j]:4);
   end;
    writeln;
     end;
     end.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2012, 09:57
Ответы с готовыми решениями:

Отсортировать столбцы двумерного массива методом прямого выбора по убыванию
Доброе время суток. В задании нужно отсортировать столбцы двумерного массива методом прямого...

Отсортировать элементы массива методом выбора в порядке возрастания
Написать программу, реализующую задание по обработке массива с использованием процедуры и функции....

Отсортировать элементы массива методом линейного выбора с подсчётом
Дан целочисленный вектор А(n). Отсортировать его элементы методом линейного выбора с подсчётом

Отсортировать первую половину массива по возрастанию, а вторую по убыванию(методом выбора)
Заполнить массив из 10 элементов случайными числами в интервалеи отсортировать первую половину по...

2
Модератор
63946 / 47407 / 32678
Регистрация: 18.05.2008
Сообщений: 115,013
08.11.2012, 11:05 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
26
27
28
29
30
31
32
33
34
35
36
uses crt;
var
    a: array[1..20,1..20] of integer;
    id_min,i,j,n,m,k,x: integer;
 
begin
 writeln ('Введите кол-во строк и столбцов');
 read (m,n);
 randomize;
for i := 1 to m do
 begin
  for j := 1 to n do
   begin
    a[i,j] := random(100);
    write(a[i,j]:4);
   end;
  writeln;
 end;
for j:=1 to n do
for i:=1 to m-1 do
 begin
  id_min:=i;
  for k:=i+1 to m do
  if a[k,j]>a[id_min,j] then  id_min:=k;
  x := a[i,j];
  a[i,j]:=a[id_min,j];
  a[id_min,j]:=x;
 end;
writeln('Сортировка столбцов:');
for i := 1 to m do
 begin
  for j := 1 to n do
  write(a[i,j]:4);
  writeln;
 end;
end.
1
0 / 0 / 1
Регистрация: 07.11.2012
Сообщений: 38
08.11.2012, 11:21  [ТС] 3
Cпасибо, правда я тоже уже решил - вот мое решение если кому надо будет)
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
type arr = array[1..100,1..100] of integer;
var a:arr;
Procedure sorting(var a:arr; n,m:integer);
var i,j,f:integer;
    kMin,aMin:integer;
begin
 for i:=1 to m do begin
 for j:= n downto 2 do
  begin
   kMin:=j; aMin:=a[j,i];
   for f:=1 to j-1 do
   if a[f,i] < aMin then
   begin
    kMin:=f; aMin:=a[kMin,i]
   end;
   if kMin <> j then
   begin
    a[kMin,i]:=a[j,i]; a[j,i]:= aMin;
   end;
   end;
 end;
end;
 
var i,j,n,m:integer;
 
begin
   randomize;
   writeln ('Ââåäèòå êîë-âî ñòðîê è ñòîëáöîâ');
   readln (n,m);
   writeln('Èñõîäíûé ìàññèâ ðàâåí:');
   for i:=1 to n do begin
   for j:=1 to m do begin
   a[i,j] := random(100);
   write(a[i,j]:4);
   end;
   writeln;
   end;
   sorting(a,n,m);
   writeln('Îòñîðòèðîâàííûé ìàññèâ:');
   for i:=1 to n do begin
   for j:=1 to m do begin
   write(a[i,j]:4);
   end;
   writeln;
   end;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2012, 11:21

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Отсортировать массив методом выбора в порядке возрастания
Дан массив целых чисел А . Отсортировать их методом выбора в порядке возрастания . Вычислить...

Отсортировать массив методом выбора в порядке убывания
Дан массив латинских букв А . Отсортировать их методом выбора в порядке убывания. Вычислить среднее...

Отсортировать массив по убыванию методом выбора максимального элемента
Помогите. Дана задача отсортировать массив ПО УБЫВАНИЮ методом выбора МАКСИМАЛЬНОГО элемента. Вся...

Отсортировать массив от минимального к максимальному элементу методом выбора
Задача 1. Создать с помощью генератора случайных чисел массив целых чисел в диапазоне (-6..9)....

Упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов методом линейного выбора с обменом
Дана действительная матрица A размерности (m x n). Если среднее арифметическое элементов первой...

Упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов методом линейного выбора с обменом
Дана действительная матрица A размерности . Если среднее арифметическое элементов первой строки...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.