Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для xdtab
2 / 2 / 0
Регистрация: 05.10.2016
Сообщений: 86

Упорядочить столбцы матрицы в соответствии с ростом заданной характеристики

13.11.2016, 11:53. Показов 2037. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите составить программу с помощью метода сортировок, либо (пузырька или вставок). Условие задачи: Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы матрицы, расположить их в соответствии с ростом характеристик. Кто шарит, то поясните еще значимые элементы программы через комментарии (//) для чего и зачем нужен этот элемент и объясните суть задачи. Тем кто поможет буду очень признателен.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2016, 11:53
Ответы с готовыми решениями:

Переставить столбцы матрицы в соответствии с ростом заданной характеристики
Помогите дописать в задаче сортировку пузырьком и если можно с пояснением как она будет применяться. Условие задачи: Характеристикой...

Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик
1) Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной...

Упорядочить столбцы матрицы по убыванию заданной характеристики
Характеристикой столбца целочисленной матрицы назовем сумму элементов, являющихся простыми числами. Упорядочить столбцы матрицы по...

6
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.11.2016, 12:15
Лучший ответ Сообщение было отмечено xdtab как решение

Решение

Цитата Сообщение от xdtab Посмотреть сообщение
через комментарии (//)
В Турбо Паскале комментарии располагают либо в фигурных скобках
Pascal
1
{комментарий}
либо между
Pascal
1
(*комментарий*)
// это другие Паскали

Добавлено через 10 минут
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
uses crt;
const nmax=10;
var a:array[1..nmax+1,1..nmax] of integer;
    m,n,i,j,k:byte;
    s:integer;
begin
clrscr;
randomize;
repeat
write('Количество строк от 2 до ',nmax,' m=');
readln(m);
until m in [2..nmax];
repeat
write('Количество столбцов от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
for i:=1 to m do
for j:=1 to n do
a[i,j]:=-5+random(11);
{находим харак. в столбцах}
for j:=1 to n do
 begin
  s:=0;
  for i:=1 to m do
  if (a[i,j]<0)and odd(a[i,j]) then s:=s+abs(a[i,j]);
  a[m+1,j]:=s;{и записываем в дополнительную строку}
 end;
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  write(' ':6);{5 пробелов в начале строки}
  for j:=1 to n do
  write(a[i,j]:4);{элементы строки}
  writeln;
 end;
write('Харк. ');{дополнительная строка с суммами}
for j:=1 to n do
write(a[m+1,j]:4);
writeln;
{перестановка столбцов по возрастанию значений в последней строке}
for j:=1 to n-1 do
for k:=j+1 to n do
if a[m+1,j]>a[m+1,k] then
for i:=1 to m+1 do
 begin
  s:=a[i,j];
  a[i,j]:=a[i,k];
  a[i,k]:=s;
 end;
writeln('Столбцы упорядочены:');
for i:=1 to m do
 begin
  write(' ':6);
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
write('Харк. ');
for j:=1 to n do
write(a[m+1,j]:4);
readln
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
13.11.2016, 13:36
Пузырек может заканчиваться раньше, см. Сортировки
Pascal
40
41
42
43
44
45
46
47
48
49
50
  {перестановка столбцов по возрастанию значений в последней строке}
  q:=n;
  repeat
    p:=q; q:=1;
    for j:=1 to p-1 do
      if a[m+1,j+1]<a[m+1,j] then begin
        for i:=1 to m+1 do begin
          t:=a[i,j]; a[i,j]:=a[i,j+1]; a[i,j+1]:=t;
        end; q:=j;
      end;
  until q=1;
Добавлено через 10 минут
Или вставками с использованием двоичного поиска для места вставки, см. Сортировки
Pascal
40
41
42
43
44
45
46
47
48
49
50
51
52
  {перестановка столбцов по возрастанию значений в последней строке}
  for k:=2 to n do begin
    t:=a[m+1,k]; l:=1; r:=k;
    while l<r do begin
      c:=l+(r-l) div 2;
      if a[m+1,c]<=t then l:=c+1 else r:=c;
    end;
    for i:=1 to m+1 do begin
      t:=a[i,k];
      for j:=k downto r+1 do a[i,j]:=a[i,j-1];
      a[i,r]:=t;
    end;
  end;
0
0 / 0 / 0
Регистрация: 07.12.2021
Сообщений: 16
18.12.2021, 14:12
Здравствуйте. А каким образом можно отсортировать сами элементы всех столбцов по возрастанию?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
18.12.2021, 14:38
Цитата Сообщение от Honoe Посмотреть сообщение
отсортировать сами элементы всех столбцов
в качестве следующего элемента брать следующий в столбце.
Подобных тем на форуме должно быть явно больше одной.
0
0 / 0 / 0
Регистрация: 07.12.2021
Сообщений: 16
20.12.2021, 19:04
Я пытаюсь использовать сортировку методом пузырька, чтобы упорядочить элементы столбцов по возрастанию, но у меня так получается, что вторая сортировка перестает правильно работать, а в этой сортировке некоторые значения заменяются на 252-255. Я не могу никак понять почему это происходит. Из-за чего это может быть? И как это исправить. Как можно методом пузырька отсортировать элементы только столбцов по возрастанию, именно в этом алгоритме, вообще никак не получается, сколько бы ни пробовал
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
20.12.2021, 19:28
Honoe,
сортировать нужно каждый столбец отдельно? или матрицу целиком, но по столбцам?

Добавлено через 20 минут
Если каждый столбец отдельно:
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=4; n=4; W=4;
var
  a: array [0..m-1,0..n-1] of Integer;
  i, j, p, q: Integer;
begin
  Randomize;
  for i:=0 to m-1 do for j:=0 to n-1 do a[i,j]:=Random(m*n);
  
  WriteLn('A =');
  for i:=0 to m-1 do begin
    for j:=0 to n-1 do Write(a[i,j]:W); WriteLn;
  end;
  
  for j:=0 to n-1 do begin
    q:=m-1;
    repeat
      p:=q; q:=0;
      for i:=0 to p-1 do if a[i+1,j]<a[i,j] then begin
        q:=a[i+1,j]; a[i+1,j]:=a[i,j]; a[i,j]:=q; q:=i;
      end;
    until q=0;
  end;
  
  WriteLn('A''=');
  for i:=0 to m-1 do begin
    for j:=0 to n-1 do Write(a[i,j]:W); WriteLn;
  end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2021, 19:28
Помогаю со студенческими работами здесь

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

Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы,...

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

Упорядочить слова заданного предложения в соответствии с ростом их характеристик
Характеристикой слова назовем длину содержащейся в нем мак- симальной серии. Упорядочить слова заданного предложения в соответствии с...

Упорядочить слова заданного предложения в соответствии с ростом их длины
Помогите решить данную задачку: Упорядочить слова заданного предложения в соответствии с ростом их длины. А еще другое: Описать...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru