1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Guest |
Сообщение
#1
|
|
Гость |
Пожалуйста подскажите!
Как из списка удалить за каждым вхождением элемента Х один элемент,если он есть и отличен от Х. |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Описание списка и реализацию остальных функций/процедур для работы со списком - в студию...
|
| Guest |
Сообщение
#3
|
|
Гость |
Цитата(volvo @ 8.05.05 19:24) Описание списка и реализацию остальных функций/процедур для работы со списком - в студию... type ref=^Elem; |
| volvo |
Сообщение
#4
|
|
Гость |
Sorry, но Car(p), Cdr(p), Cons(x, L) не являются стандартными функциями... Так что мне эта реализация не говорит ни о чем...
|
| Guest |
Сообщение
#5
|
|
Гость |
Цитата(volvo @ 8.05.05 19:57) Sorry, но Car(p), Cdr(p), Cons(x, L) не являются стандартными функциями... Так что мне эта реализация не говорит ни о чем... Код type ref=^Elem; Elem = RECORD Inf: integer; Next: ref; end; var L, p: ref; x: integer; const Strelka = '->'; function Car(L:ref):integer; begin Car:=L^.inf end; function Cdr(L:ref):ref; begin Cdr:=L^.next end; function Cons(x:integer; L:ref):ref; var p: ref; begin new(p); p^.inf:=x; p^.next:=L; cons:=p; end; Procedure Print_List(p: ref); begin while p<>nil do begin write(Car(p),Strelka); p:=Cdr(p); end; writeln end; Procedure Delete(var p: ref); var r: ref; e:integer; begin write('Vvedite E = '); readln(e); { while p<>nil do begin if p=E then write('error') else begin } r:=e^.next; e^.next:=r^.next; r^.next:=nil; { end; end; } end; Begin L:=nil; write('Element: '); readln(x); while x<>0 do begin L:=Cons(x,L); write('Element: '); readln(x); end; Print_List(L); Delete(p); Print_List(L); END. |
| volvo |
Сообщение
#6
|
|
Гость |
Тогда что-то вроде этого:
procedure DeleteAfter(var p: ref); Кстати, процедура Delete, насколько я вижу, компилироваться не будет... :no: |
| Guest |
Сообщение
#7
|
|
Гость |
Да моя процедура конечно не компилировалась.
Огромное спасибо за помощь :D !! |
![]() ![]() |
|
Текстовая версия | 7.11.2025 17:35 |