Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Обработка матриц (http://www.tehnari.ru/f41/t43739/)

STALKER1992 22.12.2010 23:00

Обработка матриц
 
Люди глянте что не так не поиму чет!
Код:

program n10;
uses crt;
const n=10;
var
B:array[1..n, 1..n] of integer;
i,j,k,m:byte;
begin clrscr;
writeln('----исходная матрица B');
randomize;
For I:=1 to n do
For j:=1 to n do
b[i,j]:=Trunc(Random*90)+10;
For i:=1 to n do Begin
For j:=1 to n do
write (b[i,j],'  ');
writeln;
end;
    for i:=1 to n-1 do
    for j:=1 to n-1 do  begin
    if b[1,i]>b[1,i+1] then begin
          for m:=1 to n do begin
          k:=b[m,i];
          b[m,i]:=b[m,i+1];
          b[m,i+1]:=k;
              end;
            end;
          end;
writeln('-----отсортированная матрица B  ');
for i:=1 to n do  begin
for j:=1 to n do write(b[i,j],'  ');
writeln;
end;
end.

Заранее спасибо!

Vladimir_S 23.12.2010 10:13

А где формулировка задания? Или Вы предлагаете нам восстанавливать задачу по неправильно работающей программе? Спасибо, конечно, но нам есть чем заняться.

STALKER1992 23.12.2010 10:16

забыл
 
Дана матрица K(nxn). Написать программу, которая упорядочивает столбцы этой матрицы по возрастанию.

Vladimir_S 23.12.2010 10:28

Цитата:

Сообщение от STALKER1992 (Сообщение 433472)
Дана матрица K(nxn). Написать программу, которая упорядочивает столбцы этой матрицы по возрастанию.

По возрастанию чего?

STALKER1992 23.12.2010 11:29

Цитата:

Сообщение от Vladimir_S (Сообщение 433474)
По возрастанию чего?

ну я как понял чтобы первые элементы столбца шли по возратсанию типо так
4 12 45 64 75 88
46 45 76 57 24 75
32 45 7 32 67 54

Vladimir_S 23.12.2010 11:55

Цитата:

Сообщение от STALKER1992 (Сообщение 433492)
ну я как понял чтобы первые элементы столбца шли по возратсанию типо так
4 12 45 64 75 88
46 45 76 57 24 75
32 45 7 32 67 54

Теперь понятно. Сейчас посмотрю.

Vladimir_S 23.12.2010 12:10

Да, несколько Вы запутались с методом пузырька. Правильно так:
Код:

program n10;
uses crt;
const n=10;
var
 B:array[1..n, 1..n] of integer;
 i,j,k,m:byte;
begin
 clrscr;
 writeln('----исходная матрица B');
 randomize;
 For I:=1 to n do
  For j:=1 to n do
  b[i,j]:=Trunc(Random*90)+10;
 For i:=1 to n do
  Begin
  For j:=1 to n do
    write (b[i,j],'  ');
  writeln;
  end;
for i:=1 to n-1 do
  for j:=1 to n-i do {Именно n-i, а не n-1!!!}
  begin
    if b[1,j]>b[1,j+1] then {Обратите внимание - перебор по j, а не по i !!!}
    begin
      for m:=1 to n do
      begin
        k:=b[m,j];
        b[m,j]:=b[m,j+1];
        b[m,j+1]:=k;
      end;
    end;
  end;

 writeln('-----отсортированная матрица B  ');
 for i:=1 to n do
  begin
  for j:=1 to n do
    write(b[i,j],'  ');
  writeln;
  end;
 readln;
end.


STALKER1992 23.12.2010 16:54

Спасибо! Я был близок к решению=)))


Часовой пояс GMT +4, время: 05:31.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.