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

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

11.12.2013, 02:17. Показов 1055. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы их последнее элементы были в порядке невозрастания.Сортировка подсчетом.
Куда мне подставить процедуру обмена строк в сортировке чтоб все норм заработало? я уже замучался..
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
program rgr;
uses crt;
const n=4;
var a,b:array [1..n,1..n] of integer;
i,j,buf,z,k,l:integer;
procedure exc(str1,str2:integer);
 begin
 for z:=1 to n do
 begin
 buf:=a[str1,z];
 a[str1,z]:=a[str2,z];
 a[str2,z]:=buf;
 end;
 end;
begin
randomize;
for i:=1 to n do
 begin
 for j:=1 to n do
  begin
  a[i,j]:=random(20);
  write(a[i,j]:4);
  end;
  writeln;
 end;
 writeln;
 for j:=1 to n do
    begin
    for i:=1 to n do begin
    K:=1;
    for j:=1 to n do
    if (a[j,n]>a[i,n]) or
    ((a[j,n]=a[i,n]) and (j>i)) then k:=k+1;
    B[k,n]:=a[i,n];
    end;
    for i:=1 to n do a[i,n]:=B[i,n];
    end;
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(a[i,j]:4);
    end;
    writeln
    end;
    writeln
    end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2013, 02:17
Ответы с готовыми решениями:

Переставить строки матрицы, чтобы их последние элементы были в порядке невозрастания (сортировка подсчетом)
Здравствуйте. Помогите решить. Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы...

Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания
Дана целочисленная квадратная матрица порядка N. Переставить строки матрицы чтобы их последние...

В матрице n -го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине
В матрице n -го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены...

Переставить строки матрицы так, чтобы элементы последнего столбца стали упорядоченными в убывающем порядке
Дана матрица A целых чисел. Напишите программу, которая переставит строки матрицы А таким образом,...

10
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
11.12.2013, 02:33 2
у вас ошибка в 31 строке
1
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 12
11.12.2013, 02:35  [ТС] 3
Емми. Какая?
0
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
11.12.2013, 02:36 4
Цитата Сообщение от vl22d Посмотреть сообщение
Емми. Какая?
ну у вас программа запускается ?вообще ? у меня нет..
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 12
11.12.2013, 02:39  [ТС] 5
20 минут назад запускалась. Все считала. В последнем столбце меняла все как надо. Оставалось ток всунуть процедуру чтоб еще вместе и строки поменяло
0
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
11.12.2013, 02:45 6
ну короче если все работает, то хорошо...процедуру вызываешь вот так exc(1,2) - в скобках параметры, ну я указал 1 и 2 значит переставятся , 1 и 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
45
46
program rgr;
uses crt;
const n=4;
var a,b:array [1..n,1..n] of integer;
i,j,buf,z,k,l:integer;
procedure exc(str1,str2:integer);
 begin
 for z:=1 to n do
 begin
 buf:=a[str1,z];
 a[str1,z]:=a[str2,z];
 a[str2,z]:=buf;
 end;
 end;
begin
randomize;
for i:=1 to n do
 begin
 for j:=1 to n do
  begin
  a[i,j]:=random(20);
  write(a[i,j]:4);
  end;
  writeln;
 end;
 writeln;
 for j:=1 to n do
    begin
    for i:=1 to n do begin
    K:=1;
    for j:=1 to n do
    if (a[j,n]>a[i,n]) or
    ((a[j,n]=a[i,n]) and (j>i)) then k:=k+1;
    B[k,n]:=a[i,n];
    end;
    for i:=1 to n do a[i,n]:=B[i,n];
    end;
    exc(1,2);
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(a[i,j]:4);
    end;
    writeln
    end;
    writeln
    end.
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 12
11.12.2013, 02:49  [ТС] 7
Это оно теперь будет переставлять строки в порядке не возрастания с помощью сортировки подсчетом? Просто доступа к кому на данный момент нет чтоб посмотреть
0
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
11.12.2013, 02:56 8
Цитата Сообщение от vl22d Посмотреть сообщение
Это оно теперь будет переставлять строки в порядке не возрастания с помощью сортировки подсчетом? Просто доступа к кому на данный момент нет чтоб посмотреть
нет, сортировка будет только в последнем столбце, а ваша процедура меня местами две строки, которые вы укажите..
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 12
11.12.2013, 03:01  [ТС] 9
Ага. .. но надо процедуру впихнуть в сортировку чтоб оно меняло не элементы а сразу строки

Добавлено через 2 минуты
Вот так мне написали ранее:
просто кидаете "сортировку подсчетом" на последний столбец
и место того, чтобы менять элементы.. меняете местами строки...
можете отдельную функцию написать для обмена строк и ее использовать
0
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
11.12.2013, 03:10 10
стоп, или короче вы меня путаете или я не пойму , ваша процедура у нее два параметра, она будет меня две строки...но если ее даже и не менять, то последние элементы строк, и так у вас отсортированы по не возрастания...у вас задании написано последние элементы строк, у вас все сделано..что не так..и без процедуры..
0
0 / 0 / 1
Регистрация: 09.12.2013
Сообщений: 12
11.12.2013, 03:14  [ТС] 11
Попробую объяснить.
Надо переставить строки так чтобы их последние элементы были в порядке не возрастания с помощью сортировки подсчетом.
Тоисть я в сортировку подсчетом последнего столбца должен еще как то впихнуть процедуру перестановки строк чтоб усе сразу заработало. По типу exc(j,j+1)
0
11.12.2013, 03:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2013, 03:14
Помогаю со студенческими работами здесь

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

Переставить элементы массива так, чтобы они были расположены по убыванию
Сортировка выбором. Дана последовательность чисел a1,a2,...an. Требуется переставить элементы так,...

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

Переставить строки и столбцы матрицы так, чтобы max элемент располагался на пересечении К строки и К столбца
Задана квадратная матрица. Найти максимальный по модулю элемент матрицы. Переставить строки и...


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

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