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

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

25.12.2014, 21:06. Просмотров 347. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Упорядочить строки матрицы по возрастанию последних значений в строке: Комментирование программы (Turbo Pascal):

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

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

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

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

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

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

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. Упорядочить элементы в каждой строке по возрастанию....

Упорядочить элементы первых трех столбцов матрицы по возрастанию значений
1.Разработать в среде Turbo Pascal программу решения взаимосвязанных задач: a....

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


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

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

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