Очень нужно Написать программу на ПАСКАЛЕ для сортировки линейного списка (стека). Критериями сортировки являються поля данных (ShortInteger + Word) в прямом порядке. Тип списка - стек. тип сортировки: Быстрая сортировка и сортировка слитием. Программа создания списка готова, надо только написать процедуру которая будет сортировать этот список.
Люди, не дайте провалить сессию, очень нужно.:weep::weep:
ToSHa Ты ещё тут? Давай кусок твоей проги, будет тебе процедура
Код:
просьба за это меня не банить! :mad:
Добавлено спустя 15 минут, 13 секунд: fishka (11:51 PM) :
каким именно стилем сортировка производиться должна?
fishka (11:51 PM) :
и что значит быстрая сортировка?
fishka (11:51 PM) :
списки можно и без стеков обрабатывать
Последний раз редактировалось Вася Хобот 08.01.2004 20:56, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 23.07.2003 Откуда: Moscow
Вася Хобот Быстрая - quick sort. В VS есть. Но если руками - быстрее.
ToSHa Если б в С, щас бы и выслал. (Я на сортировках курсовик в свое время на 5 защитил). А на Паскале - нет. Просто нет времени.
Advanced member
Статус: Не в сети Регистрация: 23.10.2003 Откуда: Иркутск/Майкоп
ToSHa Какие сроки? Попробуй поискать в Яндексе, исходников на Паскале/Дельфи море, и этот наверняка есть готовый.
Другой вопрос - сумеешь ли ты его присобачить к своей программе.
QuickSort у меня есть, а вот слияние не приходилось писать.
_________________ Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.
Program Laba_2;
Uses Crt;
label terminate;
Type DList=^List;
List=Record
SrtInt:shortint;
WD:Word;
Next:DList;
End;
Var n,i,k,sort_men:integer;
DynList,First,P,OldTop:DList;
slovo:string;
Procedure Create(B:Dlist);
begin
textcolor(7);
New(B);
write(' Введiть кiлькicть елементiв списку > ');
readln(k);
B^.next:=nil;
writeln('');
For i:=1 to k-1 do
begin
write(' Введiть першу частину елементу списку > ');
ReadLn(B^.SrtInt);
write(' Введiть другу частину елементу списку > ');
ReadLn(B^.WD);
P:=B;
New(B);
B^.Next:=P;
end;
First:=B;
write(' Введiть першу частину елементу списку > ');
Read(B^.SrtInt);
write(' Введiть другу частину елементу списку > ');
Read(B^.WD);
writeln('');
textcolor(white);
Write(' Список створено. Натиснiть <Enter> для продовження роботи прогарми...');
readkey;
end;
Procedure PrList(A:DList);
begin
textcolor(RED);
if A=Nil then write(' Стек не мiстить в собi даних');
textcolor(7);
While A<>Nil do
begin
textcolor(white);
write(' Перша частина елементiв списку має вигляд: ');
Writeln(A^.SrtInt);
textcolor(7);
write(' Друга частина елементiв списку має вигляд: ');
writeln(A^.WD);
A:=A^.Next;
Writeln('');
textcolor(white);
end;
Write(' Натиснiть <Enter> для продовження роботи програми...');
Readkey;
end;
Procedure AddElem(var C:Dlist);
var Old_top: DList;
begin
textcolor(7);
Old_top:=C;
new(C);
Write(' Введiть першу частину нового елементу > ');
Readln(C^.SrtInt);
Write(' Введiть другу частину нового елементу > ');
Readln(C^.WD);
C^.next:=Old_top;
textcolor(white); writeln('');
Writeln(' До списку додано новий елемент.');
Write(' Натиснiть <Enter> для продовження роботи прогарми...');
readkey;
end;
Procedure DelElem(D:Dlist);
var Old_First: DList;
Result: boolean;
begin
if First=Nil then
Result:=false
else
begin
textcolor(7);
Old_First:=First;
First:=First^.next;
dispose(Old_First);
Result:=true
end;
if result=true then begin
textcolor(white); Writeln(' Видалення елемента завершено.');
writeln(' Натиснiть <Enter> для продовження роботи програми...');
end
else begin textcolor(red); Writeln(' Стек не мiстить елементiв');
textcolor(white); writeln(' Натиснiть <Enter> для продовження роботи програми...');end;
readkey;
end;
procedure sortElem(Z:Dlist);
label sortbegin,quick_sort,zlyt_sort;
var answer:byte;
tempDlist:DList; tempSrtInt:ShortInt; tempWD:Word;
begin
sortbegin:
tempDlist:=Z;
writeln(' Вiдсортувати елементи методом: ');
WriteLn('');
writeln(' 1: Швидке сортування');
writeln(' 2: Сортування злиттям');
WriteLn('');
write(' Bиберiть опцiю > ');
readln(answer_1);
write;
if (answer<>1) and (answer<>2) then begin
writeln('Вибрана вами опцiя не опрацьовується!!!');
gotoxy(1,12);
goto sortbegin;
end;
if answer=1 then goto quick_sort;
if answer=2 then goto zlyt_sort;
quick_sort:
zlyt_sort:
end;
Procedure ViewElem(E: DList);
var i: integer;
begin
Write(' Введiть номер елемента для виведення > ');
read(n);
for i:=1 to n-1 do
E:=E^.next;
write(' Перша частина елемент списку має вигляд: ');
WriteLn(E^.SrtInt);
Write(' Друга частина елемент списку має вигляд: ');
WriteLn(E^.WD);
textcolor(white);
writeln('');
writeln(' Натиснiть <Enter> для продовження роботи програми...');
readkey;
end;
Begin While True do
begin
ClrScr;
textcolor(7);
for i:=1 to 80 do
write(chr(196));
for i:=1 to 19 do
write(chr(205));
Write(' Виберiть одну iз запропонованих операцiй ');
for i:=1 to 17 do
write(chr(205));
for i:=1 to 80 do
write(chr(196));
Writeln(' 1: Створення списку елементiв');
Writeln(' 2: Виведення списку елементiв');
WriteLn(' 3: Додавання елементу до списку');
WriteLn(' 4: Видалення елементу зi списку');
WriteLn(' 5: Вивести певний елемент списку (за номером)');
WriteLn(' 6: Сортування елементiв списку');
Write(' 8:'); textcolor(red); WriteLn(' Вихiд з програми');
textcolor(7);
writeln('');
Write(' Зробiть свiй вибiр > ');
Readln(N);
writeln('');
Case N of
1:Create(First);
2:PrList(First);
3:AddElem(First);
4:DelElem(First);
5:ViewElem(First);
6:SortElem(First);
8:goto terminate;
end;
end;
terminate:
clrscr;
window(15,5,70,10);
gotoxy(5,4);
textcolor(8);
slovo:=(' Program is made by ToSHa');
for i:=1 to 37 do begin
write(slovo[i]);
end;
window(15,10,70,15);
gotoxy(4,5);
textcolor(8);
for i:=7 downto 2 do begin
textcolor(7);
clrscr;
writeln('');
write('Робота програми закiнчиться через ',i-2,' секунд...');
delay(65000);
end;
end.
Последний раз редактировалось ToSHa 08.01.2004 23:54, всего редактировалось 2 раз(а).
Ответ
Не волнуйся, сделаю. Вышли исходный текст того, что есть на pifagor57@mail.ru, а также напиши (поподробнее) что надо сделать. Об оплате договоримся. Роман
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения