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

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

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

> Задача на списки
dream-x
сообщение 4.05.2008 17:34
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской
Реальное имя: Макс

Репутация: -  1  +


Здравствуйте! Я был бы очень рад если бы вы мне помогли бы с маленькой пробдемой...
Программа должна переставить элементы списка по следующему звкону: если текущий элемент больше некоторого числа Р то поместитьследующий заним элемент в конец цепочки; если текущий элемент меньше или равен Р перенести его в начало цепочки (первый оставить безизменения)
Вот код но это не вся программа почемуто у меня список не хочет присваиваться и выводится на экран...

Program Spisok;
Uses CRT;
Type
TDat=integer;
TLink=^Element;
Element=Record
Data:TDat;
Link:TLink;
End;
Var
List1,Elem,FindElem:TLink;
i,n,p:TDat;
{----------------}
Procedure InPutList(Var List:TLink);
Var
ElNew:TLink;
Val:TDat;
i,n:Integer;
Begin
ClrScr;
WriteLn('vvedite kol-vo elementov spiska ');
ReadLn(n);
List:=NIL;
For I:=1 To n Do
Begin
WriteLn('vvedite ',i,' element');
Read(val);
New(ElNew);
ElNew^.Data:=Val;
ElNew^.Link:=List;
List:=ElNew;
End;
End;
{----------------}
Procedure OutPutList(Var List:TLink);
Var
i:TDat;
Begin
WriteLn('element spiska ');
While List <> NIL Do
Begin
Write(List^.Data,' ');
List:=List^.Link;
End;
WriteLn;
End;
{----------------}
{----------------}
Begin
InPutList(List1);
List1:=List1;
OutPutList(List1);

OutPutList(List1);
Elem:=List1;



Write('wedite P=');
Readln(P);


FindElem:=NIL;
While List1 <> NIL Do
Begin

If Elem^.Data>P
Then
Begin
FindElem:=Elem;
New(FindElem);
{Elem^.Link:=NIL;}
Elem^.Link:=FindElem;
FindElem^.Link:=NIL;

End
Else Elem:=Elem^.Link;

End;

OutPutList(Elem);


End.


Заранее СПАСИБО...

Сообщение отредактировано: dream-x - 4.05.2008 18:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 7.05.2008 16:40
Сообщение #2


Гость






Цитата
Если кому нужна эта задача то вот исходник
Не могу понять программистов, которые делают непонятные (интуитивно) программы...

Если я ввожу данные в список так:
<1, 2, 3, 4, 5> - почему тут же получаю распечатку в виде:
<5, 4, 3, 2, 1> ? Что, настолько сложно сделать добавление в конец списка? Всего навсего:

Procedure InPutList(Var List:PLink);
Var
ElNew, Tail: PLink;
Value:TData;
i,n:Integer;
Begin
ClrScr;
WriteLn('vvedite kol-vo elementov spiska ');
ReadLn(n);

List := nil; Tail := nil;
For I:=1 To n Do
Begin
WriteLn('vvedite ',i,' element');
Read(value);
New(ElNew);
ElNew^.Data:=Value;
ElNew^.Link:=nil;

if List = nil then List := ElNew
else Tail^.Link := ElNew;

Tail := ElNew;
End;
End;
неужели настолько много изменилось?

Второе: по условию -
Цитата
Программа должна переставить элементы списка по следующему звкону: если текущий элемент больше некоторого числа Р то поместитьследующий заним элемент в конец цепочки; если текущий элемент меньше или равен Р перенести его в начало цепочки (первый оставить безизменения)
Все. Точка... Вводить надо только список и значение P. С какой стати программа требует ввода какого-то O? Хоть бы объясняла, зачем оно, а то, собственно, что вводить-то?

Добавлено через 11 мин.
P.S. Опять же... Основная программа:

...
insert(Elem,O);
OutPutList(NewElem); { <--- Это значение что, где-то инициализировалось? }
...

Нет... Зачем выводить пустоту?

А при вводе в O значения, которое превышает P (я не знаю, что туда надо было вводить, поэтому экспериментирую в режиме телепатии) программа вообще зацикливается...
 К началу страницы 
+ Ответить 
dream-x
сообщение 7.05.2008 17:59
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской
Реальное имя: Макс

Репутация: -  1  +


Цитата(volvo @ 7.05.2008 17:40) *

А при вводе в O значения, которое превышает P (я не знаю, что туда надо было вводить, поэтому экспериментирую в режиме телепатии) программа вообще зацикливается...

Уважаемый volvo вот собственно задание: Составить программу вставки элемента O после каждого элемента списка, превышающее некоторое значение Р. Вот код... но есть проблема он стирает последующие символы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
dream-x   Задача на списки   4.05.2008 17:34
compiler   ух, ну ты и намудрил... возьми модуль для работы с...   4.05.2008 18:05
dream-x   ух, ну ты и намудрил... возьми модуль для работы ...   4.05.2008 18:09
compiler   Не не катит...ну если хочешь заняться, как говорит...   4.05.2008 18:20
dream-x   ну если хочешь заняться, как говорит сегодняшний ...   4.05.2008 18:57
compiler   я вроде исправил переменныеисправленный код в студ...   4.05.2008 19:02
dream-x   исправленный код в студию... для проверки, точно ...   4.05.2008 19:05
compiler   Он вверхущаз посмотрим твой всевышний код) и сраз...   4.05.2008 19:08
dream-x   щаз посмотрим твой всевышний код) и сразу вопрос...   4.05.2008 19:12
compiler   я обновил предыдущий пост...   4.05.2008 19:20
dream-x   я обновил предыдущий пост... Ну что я зделал неп...   4.05.2008 19:23
compiler   Ну что я зделал неправильно, я понять не могу тут ...   4.05.2008 19:30
dream-x   процедуры вывода не должны менять значения чего л...   4.05.2008 19:34
compiler   причем здесь InPutList? мы ж вроде говорили о друг...   4.05.2008 19:39
dream-x   причем здесь InPutList? мы ж вроде говорили о дру...   4.05.2008 19:42
compiler   ммм... а если тут убрать это тогда цикл зациклится...   4.05.2008 19:45
volvo   А если убрать Var вот тут: , ничего не зациклится?...   4.05.2008 19:45
dream-x   А если убрать Var вот тут: , ничего не зациклится...   4.05.2008 19:49
volvo   А теперь - по шагам, для тех кто не понимает Паска...   4.05.2008 19:54
dream-x   Вот так вот: 1. исходный список: <5, 6, 7, 8, 9...   4.05.2008 20:17
dream-x   Уважаемый volvo! Поздравляю с днем Рождения...   4.05.2008 19:55
dream-x   Вот еще вопрос появился :), я список перегнал в од...   4.05.2008 22:17
compiler   Вот еще вопрос появился :), я список перегнал в од...   5.05.2008 14:06
dream-x   не захотел делать с деками - ладно, но зачем сува...   5.05.2008 18:24
compiler   Массивами это я как вариант...смотрим примеры рабо...   5.05.2008 18:52
dream-x   Задание слегка изменилось но суть таже... Составит...   5.05.2008 23:44
compiler   Вот код... я не могу понять почему он затирает по...   6.05.2008 14:56
dream-x   чесно говоря, я тоже не очень понимаю твою програ...   6.05.2008 15:36
compiler   Спасибо!!!всегда пожалуйста... Что-то ...   6.05.2008 15:51
dream-x   всегда пожалуйста... посмотри еще примеры... и по...   6.05.2008 19:40
compiler   прошу прощения за оффтоп.. А щас курсач доделыва...   6.05.2008 19:50
dream-x   прошу прощения за оффтоп.. это был курсач? если ...   6.05.2008 20:30
compiler   Нет курсач у меня Пятнашки у меня там проблема с з...   6.05.2008 20:51
dream-x   курс? учебное заведение? и это переменные нашёл?...   6.05.2008 22:01
compiler   Рязанский Радиотехнический Государственный Универс...   7.05.2008 16:04
volvo   Не могу понять программистов, которые делают непон...   7.05.2008 16:40
dream-x   А при вводе в O значения, которое превышает P (я ...   7.05.2008 17:59
volvo   Я тебе написал, какие у тебя ЕЩЕ проблемы в коде.....   9.05.2008 17:11
dream-x   Я тебе написал, какие у тебя ЕЩЕ проблемы в коде....   9.05.2008 17:20
dream-x   Вот собственно что я придумал... Но все равно он у...   9.05.2008 17:45
volvo   Почти... Надо вот так: procedure insert(var p_now...   9.05.2008 17:59
dream-x   Почти... Надо вот так: [code=pas]procedure inser...   9.05.2008 18:04
volvo   Я там поправил, у Insert всего 2 параметра, я прос...   9.05.2008 18:22
dream-x   Я там поправил, у Insert всего 2 параметра, я про...   9.05.2008 18:32
volvo   Проверяй внимательно, у меня только что все отрабо...   9.05.2008 19:28
dream-x   Проверяй внимательно, у меня только что все отраб...   9.05.2008 19:39


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

 



- Текстовая версия 7.07.2025 13:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"