Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для {KonFetKa}
0 / 0 / 0
Регистрация: 02.09.2009
Сообщений: 40

Процедуры: отсортировать матрицу по убыванию

02.09.2009, 22:34. Показов 1283. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Отсортировать двумерный масив по убыванию,используя процедуры перестановки местами значений двух величин.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2009, 22:34
Ответы с готовыми решениями:

Отсортировать всю матрицу по столбцам по убыванию
Помогите пожалуста с задачей, завтра сдать надо, не знаю как её сделать. Отсортировать всю...

Отсортировать всю матрицу по столбцам по убыванию
Отсортировать всю матрицу по столбцам по убыванию пример: 9 6 3 ...

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

3
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
03.09.2009, 01:00
{KonFetKa}, вот я думаю что это задание должно выглядеть так:
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
type x = array[1..10,1..10] of integer;
var mas:x;
    i,j,n,m:integer;
procedure Perest;
var s,k:integer;
begin
   for i:=1 to n do      {пробегаем по всем строчкам}
   for k:=1 to m-1 do  {два цикла по K и по J нужны для, }
   for j:=1 to m-1 do   {перестановки всех элементов в одной строке}
    if mas[i,j]<mas[i,j+1] then
     begin
         s:=mas[i,j];
         mas[i,j]:=mas[i,j+1];
         mas[i,j+1]:=s;
     end
end;
begin
   Write('STROk='); {число строк в матрице не больше 10}
   ReadLn(n);
   Write('STOLBCOV='); {число столбцов в матрице не больше 10}
   ReadLn(m);
   for i:=1 to n do   {ввод матрицы}
   for j:=1 to m do
    begin
       Write('Mas[',i,',',j,']=');
       ReadLn(mas[i,j]);
    end;
 
   for i:=1 to n do{вывод получившейся матрицы}
   for j:=1 to m do
    begin
      if j<>m then
       Write(mas[i,j],' ')
      else
       WriteLn(mas[i,j]);
    end;
 
 Perest;   {вызов процедуры перестановки}
 WriteLn;
 WriteLn;
 
   for i:=1 to n do  {вывод новой матрицы }
   for j:=1 to m do
    begin
      if j<>m then
       Write(mas[i,j],' ')
      else
       WriteLn(mas[i,j]);
    end;
 ReadLn;
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.09.2009, 08:22
Лучший ответ Сообщение было отмечено как решение

Решение

Это просто сортировка строк матрицы, а, если я правильно понял задание, нужно всю матрицу. Например имеем
1 2 3
4 5 6
7 8 9
Нужно получить
9 8 7
6 5 4
3 2 1
Кроме того нужна не процедура сортировки, а только процедура обмена двух элементов, типа
Pascal
1
2
3
4
5
6
7
procedure Swap(var a,b:integer);
var tmp:integer;
begin
tmp:=a;
a:=b;
b:=tmp;
end;
Переменные лучше не использовать глобальные, а передавать в программу и обратно через параметры, вроде так больше принято, хотя можно и глобальные.

Добавлено через 48 минут
Я бы написал так.
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
uses crt;
type matr=array[1..50,1..50] of integer;{тип матрицы}
procedure Swap(var a,b:integer); {процедура обмена двух элементов}
var tmp:integer;
begin
tmp:=a;
a:=b;
b:=tmp;
end;
var a:matr;{матрица}
    n,m,i,j,k,v:integer; {размеры матрицы,счетчики циклов, буфер для обмена}
begin
clrscr;
randomize;
writeln('Введите размеры матрицы:');
write(' Количество строк n=');
repeat
readln(n);
until n in [1..50];
write(' Количество столбцов m=');
repeat
readln(m);
until m in [1..50];
writeln;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(100);{заполним матрицу случайными числами в инт[0,99]}
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
{сортировка матрицы пузырьком}
for k:=1 to n*m do  {повторяем сколько элементов в матрице}
for i:=1 to n do
for j:=1 to m do
   begin
    if j<>m then {если элемент в строке не последний}
      begin
       if a[i,j+1]>a[i,j]
       then Swap(a[i,j+1],a[i,j]){обмен элементов}
      end
    else
     if (a[i+1,1]>a[i,j])and(i<>n) {если строка не последняя}
     {меняем первый элемент в следущей строке с последним элементом в текущей строке}
     then Swap(a[i+1,1],a[i,j]);
   end;
writeln('Отсортированная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.
3
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
03.09.2009, 10:32
Puporev, воо класс всё никак вспомнить не мог как из процедуры обратно в программу параметры передать... Да и в общем ты прав, нуно мне опять опыта набираться, а то всё порастерял да позабыл...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.09.2009, 10:32
Помогаю со студенческими работами здесь

Отсортировать всю матрицу по столбцам по убыванию
Отсортировать всю матрицу n*x по столбцам по убыванию. проверить есть ли в этой матрице элемент,...

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

Написать программу которая будет выводить матрицу и отсортировать её по убыванию каждую строку и столбец в матрице
program cal;//Написать программу которая будет выводить матрицу и отсортировать её по убыванию...

Отсортировать матрицу по столбцам по убыванию
Отсортировать всю матрицу n *m по столбцам по убыванию. Проверте есть ли в этой матрице элемент...

Заданы два упорядоченных по убыванию массива. Соединить их в один массив, так чтобы элементы были упорядоченны по убыванию
Заданы два упорядоченных по убыванию массива А и В, состоящих из N и M вещественных элементов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru