Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
makenzi
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 12
1

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

25.12.2014, 21:06. Просмотров 360. Ответов 1
Метки нет (Все метки)

Не совсем понимаю как рассказать как работает программа, немного запутался
Условие. Дана матрица MxN, упорядочить строки матрицы по возврастанию последних значений в строке.
Если можете просто откомментируйте сточки, заранее спасибо

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
const
Nmax = 10;
var
a : array[1..Nmax,1..Nmax] of real;
M,N,i,j,max,M1,z : byte;
temp : real;
 
begin
writeln('Введите размер матрицы :');
repeat
write('M = ');
readln(M);
until M in [1..Nmax];
repeat
write('N = ');
readln(N);
until N in [1..Nmax];
randomize;
writeln('Исходная матрица :');
for i := 1 to M do begin
for j := 1 to N do begin
a[i,j] := (random(40)-20+random);
write(a[i,j]:7:0,' ');
end;
writeln;
end;
writeln;
M1 := M;
for z := 1 to M-1 do begin// перебор строк
max := 1; // присваиваем начальный номер максимальному
for i := 2 to M1 do// 
if a[i,N]>a[max,N] then max := i;// если текущий элемент строки больше максимильного в строке, то назначаем его максимальным
for j := 1 to N do // перебираем столбцы
begin
temp := a[max,j];
a[max,j] := a[M1,j];
a[M1,j] := temp;
end;
dec(M1);// увеличиваем счетчик М1 на 1
end;
writeln;
writeln('Матрица после перестановки строк:');
for i := 1 to M do begin
for j := 1 to N do
write(a[i,j]:7:0,' ');
writeln;
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2014, 21:06
Ответы с готовыми решениями:

Упорядочить (переставить) строки матрицы по убыванию значений последних элементов строк
Дана действительная матрица размером M N. Упорядочить (переставить) строки матрицы по УБЫВАНИЮ...

Упорядочить элементы последних трех столбцов матрицы А по возрастанию значений
1) a=ln(i+0.5)+(j/2i) 2) хi – скалярное произведение i-й стро-ки на побочную диагональ; ...

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

Определить сумму отрицательных элементов в каждой строке матрицы и упорядочить номера строк по возрастанию значений найденных сумм
Дана прямоугольная матрица размером N x M, содержащая целые числа. Определить сумму отрицательных...

Упорядочить (переставить) столбцы массива, по не возрастанию значений последних элементов столбцов
Составить программу обработки матрицы размерности NxM. Выполнить программу для N=3, M=4. В...

1
Fakeoke
314 / 314 / 201
Регистрация: 28.07.2011
Сообщений: 1,849
03.01.2015, 00:09 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
47
48
49
const
Nmax = 10; //максимальный размер матрицы (10х10)
var        //описание переменных 
a : array[1..Nmax,1..Nmax] of real; //матрица вещественных чисел
M,N,i,j,max,M1,z : byte; //дополнительные переменные
temp : real;    //переменная для обмена строк местами
 
begin
writeln('Введите размер матрицы :'); 
repeat
write('M = ');
readln(M);
until M in [1..Nmax]; 
repeat
write('N = ');
readln(N);
until N in [1..Nmax]; //вводим размеры, пока не получим допустимый(от 1 до 10)
randomize;
writeln('Исходная матрица :'); //выводим матрицу радномных чисел
for i := 1 to M do begin
for j := 1 to N do begin
a[i,j] := (random(40)-20+random);
write(a[i,j]:7:0,' ');
end;
writeln;
end;
writeln;
M1 := M; //запоминаем количество столбцов которые надо проверить на максимальный элемент
for z := 1 to M-1 do begin // перебор строк
max := 1; // типа максимальный в 1 столбце
for i := 2 to M1 do // проверяем остальные столбцы 
if a[i,N]>a[max,N] then max := i;// если в столбцах нашли больше чем наш максимальный, то переприсваиваем и меняем строки
for j := 1 to N do // вот меняем местами строки
begin
temp := a[max,j];
a[max,j] := a[M1,j];
a[M1,j] := temp;
end;
dec(M1);// проверили столбец, значит 1 столбец уже у нас с наибольшим максимальным, надо прооверить остальные M-1, поэтому dec(M)
end;
writeln;
writeln('Матрица после перестановки строк:'); //вывели новую матрицу
for i := 1 to M do begin
for j := 1 to N do
write(a[i,j]:7:0,' ');
writeln;
end;
 
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2015, 00:09

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

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

Упорядочить элементы в каждой строке матрицы по возрастанию.
Дан двумерный массив n*m. Упорядочить элементы в каждой строке по возрастанию. В получившемся...


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

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

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