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

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

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

 
 Ответить  Открыть новую тему 
> Сортировка списка, что-то не так видимо делаю
сообщение
Сообщение #1


Гость






Люди! Здраствуйте! Помогите! Почему-то не хочет работать задача: "Ввести 2 списка. Объеденить. Отсортировать объединённый список.
Вот задача:

program lab1_2;
uses crt;
type plist = ^tlist;
tlist = record
info: integer;
link: plist;
end;
var first1, posl1, first2, posl2: plist;
p, k, max: plist;
s: integer;
n, i: integer;
procedure vvod (var first, posl: plist);
var s: integer;
begin
posl:=first;
write ('Введите следующий элемент: ');
readln(s);
while s<>-999 do
begin
new(p);
p^.info:=s;
p^.link:=posl;
posl:=p;
write ('Введите следующий элемент: ');
readln(s);
end;
end;
begin
clrscr;
first1:=nil;
vvod (first1, posl1);
first2:=nil;
vvod (first2, posl2);
p:=posl2;
{Объединение}
while p<>nil do begin
if p^.link = nil then begin
p^.link:=posl1;
break;
end;
p:=p^.link;
end;
{Вывод объединённого}
p:= posl2;
while p<>nil do begin
inc (n);
write (p^.info, ' ');
p:=p^.link;
end;
{Сортировка}
k:= posl2;
for i:=1 to n do
begin
p:=k;
max:=p;
while p<>nil do
begin
if max^.info < p^.info then max:= p;
p:=p^.link;
end;
s:=max^.info;
max^.info:= p^.info;
p^.info:= s;
k:=k^.link;
end;
{Вывод отсортированного}
writeln;
p:= posl2;
while p<>nil do begin
inc (n);
write (p^.info, ' ');
p:=p^.link;
end;
readkey;
end.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






-Павел-, вопрос на засыпку: ты уверен, что они правильно вводятся? wink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Выводится всё вроде Верно... sad.gif
Помогите люди! Завтра сдавать уже - хана будет! sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Как-то вот так:
program lab1_2;
uses crt;
type
plist = ^tlist;
tlist = record
info: integer;
link: plist;
end;
var
first1, posl1, first2, posl2: plist;

procedure print(p: plist);
begin
while p <> nil do begin
write(p^.info:5);
p := p^.link
end;
writeln;
end;

procedure vvod (var first, last: plist);
var
s: integer;
p: plist;
begin

last := first;
repeat
write('Введите следующий элемент: '); readln(s);
if s <> -999 then begin
new(p);
p^.info := s;
p^.link := nil;

if first = nil then first := p
else last^.link := p;
last := p;
end;
until s = -999;

end;

var
ii, jj, nmin: plist;
T: integer;

begin
clrscr;
writeln('Первый список:');
first1:=nil; vvod (first1, posl1);
print(first1);

writeln('Второй список:');
first2:=nil; vvod(first2, posl2);
print(first2);

writeln('Объединенный список:');
posl1^.link := first2;
print(first1);

{ Сортировка ! }
ii := first1;
while ii^.link <> nil do begin
nmin := ii;

jj := ii^.link;
while jj <> nil do begin
if jj^.info < nmin^.info then nmin := jj;
jj := jj^.link;
end;

T := ii^.info;
ii^.info := nmin^.info;
nmin^.info := T;

ii := ii^.link;
end;
writeln('Отсортированный список:');
print(first1);

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Спасибо! щас опробую!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






volvo - ты монстр в Pascale... Спасибо огромное - всё работает супер...
Я просто програмёр во Flash (ActionScript) - так что если что надо обращайся!
dogpaul@yandex.ru

З.Ы. Щас эту задачу в лабу оформлю и бдуу длеать "Сортировка списка слиянием" - так что есличё не получиться, прошу о помощи! smile.gif ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






2volvo
Слушай! Ты уж извини что дастаю...
Вот если первый список пустой, то ваще он их не объединяет...
Я впрнципе понимаю что что-то в перменных first и posl... а вот что... sad.gif
Помоги!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Замени это:
...
writeln('Объединенный список:');
posl1^.link := first2;
print(first1);
...

на это:
...
writeln('Объединенный список:');
if first1 = nil then first1 := first2
else posl1^.link := first2;
print(first1);
...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Спасибо! готов просто расцеловать! smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






blink.gif no1.gif Не надо ... lol.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Cialis.60mg.Sale
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Buy Synthroid Mexico
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 21:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name