![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Caries |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
Описать процедуру которая формирует список L, включив в него по одному разу элементы которые входят хотя в один из списков L1 и L2
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Сначала идешь сюда: FAQ: Списки
читаешь все внимательно, и пишешь программу. Вот если она у тебя не заработает, то приходи и скажи, где... |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
А вообще-то это делается вот так:
Код uses item, list; const first: array[1 .. 10] of integer = (1, 3, 6, 3, 8, 2, 6, 5, 3, 9); second: array[1 .. 10] of integer = (1, 23, 6, 83, 8, 2, 16, 5, 35, 9); procedure add_once(var lst_from, lst_to: tlist); var p: ptitem; begin p := lst_from.first; while assigned(p) do begin if lst_to.find(p^.info) = nil then lst_to.append(p^.info); p := p^.next end end; var L, L1, L2: tlist; i: integer; begin L1.init; for i := 1 to 10 do L1.append(first[i]); L1.print; L2.init; for i := 1 to 10 do L2.append(second[i]); L2.print; L.Init; add_once(L1, L); add_once(L2, L); L.print; L.done; L2.done; L1.done; end. Чтобы запустить эту программу - качай файл list.rar из аттача и распаковывай в ту же директорию, где сама программа. Прикрепленные файлы ![]() |
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Описать процедуру которая формирует список L, включив в него по одному разу элементы которые входят хотя в один из списков L1 и L2 Тебе дали ссылку, с необходимой информацией. Если хочешь думать, читай и делай сам. Если нет, получай решение с ООП... и разбирайся с ООП и ДСД ![]() ООП в массы!!! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Caries |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
прогу накидал но она просто пока соединяет 2 списка. Нужно реализовать проверку списков, дабы исключить повторных включений в соединенном списке. Как?
![]() Код program name; uses crt; type tdata=integer; sllptr=^slltype; slltype = record inf:tdata; next: sllptr; end; procedure Unite(var head1,head2:sllptr); var cur: sllptr; begin if head2<>nil then begin if head1=nil then head1:=head2 else begin cur:=head1; while cur^.next<>nil do cur:=cur^.next; cur^.next:=head2; end; end; writeln;writeln; cur:=head1; while cur <> nil do begin write(cur^.inf); if cur^.next <> nil then write(','); cur:=cur^.next end;readln; end; var head3,head4,g:sllptr;a:integer; i,n:integer; begin clrscr; writeln('vvedite kol-vo elementov spiska1'); readln(n); writeln('vvedite element spiska1'); read(a); new(head3); head3^.inf:=a; head3^.next:=nil; for i:=1 to n - 1 do begin read(a); new(g); g^.inf:= a; g^.next:=head3; head3:=g; end; writeln('vvedite kol-vo elmenetov spiska2'); read(n); writeln('vvedite elementi spiska2'); read(a); new(head4); head4^.inf:=a; head4^.next:=nil; for i:=1 to n-1 do begin read(a); new(g); g^.inf:=a; g^.next:=head4; head4:=g; end; unite(head3,head4); readln; end. Сообщение отредактировано: Caries - 20.04.2005 19:35 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата(Caries @ 20.04.05 19:07) Нужно реализовать проверку списков, дабы исключить повторных включений в соединенном списке. Как? ![]() "Еще раз повторю - не пытайтесь объять необъятное" (С) Козьма Прутков. Не надо все действия производить в основной программе. Действуй по принципу "разделяй и властвуй": program name; |
Caries |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
Извиняюсь. Я не понял какую роль выполняет function present_in_list...
Объясните пожалуйста |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Функция проверки, присутствует ли элемент в списке...
function present_in_list(var l: tlist; Передаем этой функции список, в котором надо проверять (L) и значение (element), и функция вернет True если element уже присутствует в L... Иначе вернется False... |
Caries |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
А если мне надо чтобы входило одновременно в 2 списка?
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
То есть? Условие переформулируй полностью. Как оно будет звучать?
|
Caries |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
Описать процедуру которая формирует список L, включив в него по одному разу элементы которые входят одновременно в L1 и L2
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Тогда Unite должна будет выглядеть так:
procedure unite(var l_res, one, two: tlist); Все просто :yes: |
Caries |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо!
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:02 |