IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Двумерные массивы
gareld
сообщение 25.11.2006 20:18
Сообщение #1


Гость






У вас на форуме нашел нужную задачу помогите разобраться. вот задача и ваш ответ Расположить столбцы матрицы D[M, N] в порядке возрастания элементов k-ой строки (1 ≤ k ≤ М). ОТВЕТ:
 Const
size_col = 6; { число столбцов }
size_row = 8; { число строк }
Type
TColumn = Array[1 .. size_row] Of Integer;
TMatrix = Array[1 .. size_col] Of TColumn;
Var
k: Integer;

Procedure Bubble(Var mx: TMatrix; n: integer);
Var
i, j: Integer;
T: TColumn;
Begin

For i := 1 To n Do
For j := n DownTo i+1 Do
If mx[Pred(j)][k] > mx[j][k] Then Begin
T := mx[Pred(j)]; mx[Pred(j)] := mx[j]; mx[j] := T
End
End;

var
D: TMatrix;

begin
{ вводишь матрицу: D }
{ вводишь номер строки: K }

Bubble(D, size_col);

{ распечатываешь матрицу D }
end.


Вопрос: 1)Как правильно ввести матрицу D 2)Как правильно её отпечатать.
За любые ответы спасибо.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Gareld
сообщение 25.11.2006 21:47
Сообщение #2


Гость






Ну вот получилась какая-то чуш взгляните плиз тыкните в ошибки, не могу я додуматься.
  const
size_row = 10; { число строк }
size_col = 10; { число столбцов }

type
trow = array[1 .. size_row] of integer;
tmatrix = array[1 .. size_col] of trow;

var k:integer;

procedure print(var mx: tmatrix; n:integer);
Var
i, j: Integer;
T: Trow;
Begin

For i := 1 To n Do begin
For j := n DownTo i+1 Do
If mx[Pred(j)][k] > mx[j][k] Then Begin
T := mx[Pred(j)]; mx[Pred(j)] := mx[j]; mx[j] := T ;
write(mx[j][i]:4);
end; { <<< Обратите внимание на индексы !!! }
writeln
End
End;

var
mx: tmatrix;
i, j: integer;

begin
{ Заполнение матрицы }
for i := 1 to size_row do
for j := 1 to size_col do
mx[i][j] := random(100);

{ Матрица до обмена }
writeln('before:'); print(mx,size_col);

{ Обмен столбцов }


{ Матрица после обмена }
writeln('after:'); print(mx,size_col);
readln;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 9:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"