![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
HAMELION |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите плиз найти ошибку в программе: Условие=> Написать программу которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 или L2, но не входят во второй.
Проблема в том что программа сравнивает только последние элементы списков L1 и L2 Вот листинг=> Код Program SPISKI; USES CRT; Type spisok=^zveno; zveno = record Elem:integer; Next:spisok; end; var L,P:spisok; L1,L2:spisok; x,z: integer; n,s: integer; i: integer; Procedure AddSpisok(var Top:Spisok; k:integer);{процедура добавления элемента в список} var NewTop:Spisok; begin New(NewTop); NewTop^.Elem:=k; NewTop^.Next:=Top; Top:=NewTop; end; Procedure Print(Top:spisok);{печать списка} begin while Top<>nil do begin writeln(Top^.Elem); Top:=Top^.Next; end; writeln; end; Function Otsev (TOP:spisok; j:integer ):boolean; var P:spisok; begin Otsev:=False; P:=TOP; while P<>nil do if P^.Elem=j then Otsev:=True; end; begin clrscr; L1:=Nil; write('BBEDITE KOLICHESTBO ELEMENTOV SPISKA L1: '); readln(n); for i:=1 to n do begin read(x); AddSpisok(L1,x); end; L2:=Nil; write('BBEDITE KOLICHESTBO ELEMENTOV SPISKA L2: '); readln(s); for i:=1 to s do begin read(z); AddSpisok(L2,z); end; Begin P:=L1; while P<>nil do if P^.Elem<>L2^.Elem then AddSpisok(L,P^.elem); end; Begin P:=L2; while P<>nil do if P^.Elem<>L1^.Elem then AddSpisok(L,P^.elem); end; writeln('SPISOK L => '); Print(L); writeln('PRESS ANY KEY'); READKEY; end. Сообщение отредактировано: HAMELION - 23.06.2007 0:09 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Можно, кстати, пойти другим путем:
function check_list(X: integer; p: spisok): boolean; (что не избавляет от необходимости проверять L на наличие в нем уже элемента со значением P^.elem) Сообщение отредактировано: volvo - 23.06.2007 1:55 |
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 8:45 |