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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2009, 11:50   #1
Расим
 
Регистрация: 25.11.2008
Сообщений: 8
По умолчанию Сортировка двумерного массива

Здравствуйте,проверьте задачу,
условие:Сортировать столбцы в матрице по убыванию,наименьших элементов в столбце. матрица 6х6
Код:
program lab2;
uses crt;
const n=6; m=6;
type arr= array[1..n,1..m] of integer;
Var ft,fi: text;
i,j:integer;
A:Arr;
E:char;
f:string;

Procedure SWP(Var X,Y:Integer); {меняем местами X и Y}
Var T:Integer;
Begin
T:=X;
X:=Y;
Y:=T;
End;

Procedure SWPC(X,Y:Integer);    {меняем местами строки с элементами X и Y}
Var T:Integer;
Begin
For T:=1 To M Do
SWP(A[X,T],A[Y,T]);
End;

Function MinC(X:Integer):Integer;   {определение максимального элемента в строке}
Var Min,T:Integer;
Begin
Min:=A[X,1];
For T:=1 To M Do If A[X,T]>Min Then Min:=A[X,T];
MinC:=Min;
End;

Procedure Sort;  {сотировка строк по убыванию максимального элемента}
Var X,Y:Integer;
Begin
For X:=1 To N-1 Do
For Y:=X+1 To N Do
If MinC(X)>MinC(Y) Then SWPC(X,Y);
End;

begin
clrscr;
writeln('Vi hotite zadat matrizu s klaviaturi? (Y/N):'); {спрашиваем, откуда брать исходные данные}
readln(E);
If UpCase(E)='Y' then   {ввод матрицы с клавиатуры}
begin
for i:=1 to n do
for j:=1 to m do
begin
Write('Vvedite A[',i,',',j,']=');
Readln(A[i,j]);
end;
writeln;
end;

If UpCase(E)='N' then  {загрузка матрицы из файла}
begin
writeln('Matriza budet zagruzena iz faila. Vvedite imja faila:');
readln (f);
assign(ft,'D:\massiv\input.txt');
reset(ft);
For I:=1 To N Do
For j:=1 To M Do
Read(Ft,A[I,J]);
end;

assign(fi, 'd:\massiv\input.txt'); {создаём файл для вывода результатов и открываем его для записи}
Rewrite(fi);

writeln('Ishodnaya matrica:');  {выводим исходную матрицу на экран и в файл}
writeln;
writeln(fi,'Ishodnaya matrica:');
writeln(fi);
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do write(fi,' ',a[i,j]);
writeln(fi);
end;
writeln;
writeln(fi);
Sort;  {сама сортировка!}
writeln('Otsortirovannaja matrica:'); {выводим отсортированную матрицу на экран и в файл}
writeln;
writeln(fi,'Otsortirovannaja matrica:');
writeln(fi);
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do write(fi,' ',a[i,j]);
writeln(fi);
end;
Close(fi); {закрываем файл с записанными данными}
writeln;
writeln ('Rezultat sochranen v faile ''rez.txt". Dlja zawershenia nazmite "Enter"');
readln;
end.
Расим вне форума Ответить с цитированием
Старый 10.09.2009, 12:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Здравствуйте,проверьте задачу,
А сам почему не проверишь? Тут по-моему слишко наворочено. Лишнего многовато.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2009, 13:41   #3
Расим
 
Регистрация: 25.11.2008
Сообщений: 8
По умолчанию

Не уверен в правильности решения задачи....А есть какое-нибудь упрощенное решение задачи?
Расим вне форума Ответить с цитированием
Старый 10.09.2009, 13:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну как минимум я бы сделал так: при ввооде нового числа, выяснял куда его поставить (т.е. находил наибольший) и ставил бы после него непосредственно вновь введенное.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2009, 13:59   #5
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Так, стоп... По-моему решение с условием не вяжется..
Цитата:
отсортировать столбцы в матрице по убыванию,наименьших элементов в столбце. матрица 6х6
Я так понимаю, что в каждом столбце нужно найти наименьшее значение, после чего сортировать по убыванию именно по этим значениям...
Или не так?

По теме:
Можно сделать массив, в котором будет указан вычисленный порядок [3,5,1,2,6,4] и выводить матрицу в соответствии со значениями этого массива. ))
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 10.09.2009, 14:23   #6
Расим
 
Регистрация: 25.11.2008
Сообщений: 8
По умолчанию

вот задание:Сортировать строки/столбцы в матрице по убыванию/по возрастанию (в зависимости от варианта) наименьших/наибольших элементов в строке/столбце.
1) размер массива
2) строки (1)/столбцы(2)
3) наибольший(max)/наименьший(min)
4) сортировка по убыванию(1)/по возрастанию(2)
мой вариант:
6
2
min
1
Может я не правильно понял задание(
Расим вне форума Ответить с цитированием
Старый 10.09.2009, 14:32   #7
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Сортировать строки/столбцы в матрице по убыванию/по возрастанию (в зависимости от варианта) наименьших/наибольших элементов в строке/столбце.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 15.12.2009, 22:29   #8
LLLexxx
 
Регистрация: 15.12.2009
Сообщений: 3
По умолчанию

Помогите пожалуйста. Надо сравнить время сортировки массива. Быстрая, пирамидальная и пузарьковая
LLLexxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка двумерного массива Makarov Помощь студентам 8 29.10.2011 11:55
Сортировка двумерного массива Dwaight$ Помощь студентам 1 27.05.2009 03:14
сортировка двумерного массива cornholio Помощь студентам 1 27.11.2007 23:36