Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2010, 20:35   #1
wlll
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 25
По умолчанию Упорядочить колонки матрицы по возрастанию

Упорядочить колонки матрицы по возрастанию
Паскаль....помогите ато не получается(
wlll вне форума Ответить с цитированием
Старый 26.11.2010, 20:37   #2
Зелёный
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 29
По умолчанию

А матрица как задаётся? Двумерный массив или ещё что?
Зелёный вне форума Ответить с цитированием
Старый 26.11.2010, 20:42   #3
wlll
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 25
По умолчанию

двохмерный.....
Код:
program z5;
 uses crt;
 var a:array[1..5,1..5] of integer;
 k,i,j,c:integer;
  begin
  clrscr;
 for i:=1 to 5 do
  for j:=1 to 5 do
  a[i,j]:=random(10)-3;
  for i:=1 to 5 do
    begin
     for j:=1 to 5 do
     write('  a[',i,',',j,']=',a[i,j]);
     writeln;
    end;
    k:=0;
   for i:=1 to 4 do
   for j:=i+1 to 5 do begin
   if a[i,j]>a[i+1,j] then
     begin
     c:=a[i,j];
     a[i+1,j]:=a[i,j];
     a[i,j]:=c;
     k:=k+1;
     end;end;
   writeln('rezultat');
   for i:=1 to 5 do
      begin
      for j:=1 to 5 do
      write('  a[',i,',',j,']=',a[i,j]);
      writeln;
      end;
      writeln('kilkist perestanovok=',k);
   readln;
   end.
wlll вне форума Ответить с цитированием
Старый 26.11.2010, 20:42   #4
wlll
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 25
По умолчанию

помогите найти ошибку(
wlll вне форума Ответить с цитированием
Старый 26.11.2010, 20:48   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Упорядочить колонки матрицы по возрастанию
Паскаль.
Код:
uses crt;
const 
  N = 20;
  M = 30;
type 
  arr2 = array[1..M,1..N] of integer;
procedure createArr2(var a:arr2;ma,na:integer);
var i,j:integer;
  begin
  randomize; 
  for i:=1 to ma do 
  for j:=1 to na do 
    a[i,j]:=random(25); 
  end;
procedure printArr2(var a:arr2;ma,na:integer);
var i,j:integer;
  begin
  for i:=1 to ma do 
    begin
    for j:=1 to na do 
      write(a[i,j]:3); 
    writeln;
    end;
  end;
procedure sortArray(var a:arr2;ma,col:integer);
var i,j,t:integer;
  begin
  for i:=1 to ma do 
  for j:=1 to ma-i do 
    if (a[j,col]>a[j+1,col]) then
      begin
      t:=a[j,col];
      a[j,col]:=a[j+1,col];
      a[j+1,col]:=t;
      end;
  end;

var b:arr2;
    n1,m1,k:integer;
begin
n1:=5;
m1:=6;
createArr2(b,m1,n1);
writeln('Initial Array:');
printArr2(b,m1,n1);
for k:=1 to m1 do
  sortArray(b,m1,k);
writeln('Sorted Array:');
printArr2(b,m1,n1);
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 26.11.2010 в 20:52.
Mad_Cat вне форума Ответить с цитированием
Старый 26.11.2010, 20:50   #6
Зелёный
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 29
По умолчанию

А вот ещё вопрос...а как определяется это самое возрастание? Какой столбец считается меньшим? Там же не один элемент.Или там в каждой строке просто нужно все элементы по возрастанию расставить?
Зелёный вне форума Ответить с цитированием
Старый 26.11.2010, 20:52   #7
wlll
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 25
По умолчанию

в каждой строке просто нужно все элементы по возрастанию расставить
wlll вне форума Ответить с цитированием
Старый 26.11.2010, 20:59   #8
wlll
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 25
По умолчанию

а полегче никак нельзя?)
wlll вне форума Ответить с цитированием
Старый 27.11.2010, 09:06   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
а полегче никак нельзя?)
Можно....
Код:
program z5;
uses crt;
var a:array[1..5,1..5] of integer;
    k,i,j,c:integer;
begin
clrscr;
randomize;
writeln('Ishodnyj massiv:');
for i:=1 to 5 do
 begin
  for j:=1 to 5 do
   begin
    a[i,j]:=random(10)-3;
    write(a[i,j]:4);
   end;
  writeln;
 end;
for j:=1 to 5 do  {все столбцы}
for i:=1 to 4 do  {сортируем}
for k:=i+1 to 5 do
if a[i,j]>a[k,j] then
 begin
  c:=a[i,j];
  a[i,j]:=a[k,j];
  a[k,j]:=c;
 end;
writeln('rezultat');
for i:=1 to 5 do
 begin
  for j:=1 to 5 do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить колонки матрицы по возрастанию wlll Помощь студентам 2 25.11.2010 17:14
КАК УПОРЯДОЧИТЬ КОЛОНКИ Cone Microsoft Office Excel 3 25.08.2010 09:53
В матрице упорядочить строки по возрастанию максимальных элементов. Помогите найти ошибку. amerhant Помощь студентам 3 16.01.2010 19:39
(c++) Сортировка строк матрицы по возрастанию первых элементов Serg046 Помощь студентам 3 07.01.2010 23:17
Упорядочить по возрастанию элементы.. TemaTim Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 19:00