Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Deathless
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 49
1

Сформировать список Р, включив в него элементы списка Р1, которые не входят в список Р2

06.01.2014, 02:52. Просмотров 361. Ответов 1
Метки нет (Все метки)

Как написать функцию или процедуру, которая формирует список Р, включив в него по одному разу элементы, которые входят в список Р1, но не входят в список Р2?
Я вот начал пробывать писать, но запнулся.. Не знаю как дальше.. Помогите продолжить пожалуйста
Вот пробывал писать начало:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
type
TypeOfElements=string;
ListPointer=^MyList;
        MyList = record
                Value: TypeOfElements;
                Next, Previous: ListPointer;
        end;
var
Head, Tail: ListPointer;
NewElement1,NewElement2, ElementE, InsertElement:TypeOfElements;
n,m,j:integer;
procedure ListInitialization(var Head, Tail: ListPointer);
begin
     Head:=nil;
     Tail:=nil;
end;
 
procedure AddElementsToList1(var Head, Tail: ListPointer; var NewElement1:TypeOfElements);
var
q:ListPointer;
i:integer;
begin
     for i:=1 to n do
     begin
          New(q);
          writeln('Enter element');
          readln(NewElement);
          q^.Value:=NewElement;
          if Head = nil then
          begin
               q^.Previous:=nil;
               Head:=q;
               end
          else
          begin
               q^.Previous:=Tail;
               Tail^.Next:=q;
          end;
          q^.Next:=nil;
          Tail:=q;
     end;
end;
procedure PrintList1(var Head:ListPointer);
var
q:ListPointer;
begin
writeln('List:');
q:=Head;
if q=nil then writeln('Is empty')
else repeat
           writeln(q^.Value,'');
           q:=q^.Next
     until q=nil;
writeln;
end;
procedure AddElementsToList2(var Head, Tail: ListPointer; var NewElement2:TypeOfElements);
var
q:ListPointer;
i:integer;
begin
     for i:=1 to n do
     begin
          New(q);
          writeln('Enter element');
          readln(NewElement);
          q^.Value:=NewElement;
          if Head = nil then
          begin
               q^.Previous:=nil;
               Head:=q;
               end
          else
          begin
               q^.Previous:=Tail;
               Tail^.Next:=q;
          end;
          q^.Next:=nil;
          Tail:=q;
     end;
end;
procedure PrintList2(var Head:ListPointer);
var
q:ListPointer;
begin
writeln('List:');
q:=Head;
if q=nil then writeln('Is empty')
else repeat
           writeln(q^.Value,'');
           q:=q^.Next
     until q=nil;
writeln;
end;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 02:52
Ответы с готовыми решениями:

Списки. Составить программу которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списа L1 и L2
Составить программу которая формирует список L, включив в него по одному разу элементы, которые...

Сформировать. файл, включив в него по одному разу элементы, которые входят одновременно в оба файла
Помогите решить Текстовые файлы заранее спасибо.. Составить программу, которая формирует файл,...

Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1 но не входят в список L2
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые...

Сформировать третий список, включив в него по одному разу элементы из первого, не входящие во второй
Здравствуйте! Начал разбор темы ссылочных типов данных. Интересно, как всегда, но сразу столкнулся...

Сформировать список Р из элементов, которые входят хотя бы в один из списков Q и G
Как написать функцию или процедуру, которая формирует список Р, включив в него по одному разу...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27304 / 18271 / 7231
Регистрация: 22.10.2011
Сообщений: 32,171
Записей в блоге: 6
06.01.2014, 12:43 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
type
  TypeOfElements = shortstring;
  ListPointer = ^MyList;
  MyList = record
    Value: TypeOfElements;
    Next, Previous: ListPointer;
  end;
  Lst = record
    Head, Tail: ListPointer;
  end;
 
procedure AddItem(var L: Lst; Item: TypeOfElements);
var
  q: ListPointer;
begin
  new(q);
  q^.value := item;
  q^.next := nil;
  q^.Previous := L.Tail;
  if L.Head = nil then L.Head := q
  else L.Tail^.Next := q;
  L.Tail := q;
end;
 
procedure CreateList(var L: Lst; n: integer);
var
  i: integer;
  item: TypeOfElements;
begin
  for i := 1 to n do
  begin
    write('Item = '); readln(item);
    AddItem(L, item);
  end;
end;
 
procedure PrintList(L: Lst);
var
  q: ListPointer;
begin
  q := L.Head;
  while q <> nil do
  begin
    write(q^.value, ' ');
    q := q^.next;
  end;
  writeln;
end;
 
function Contains(L: Lst; Item: TypeOfElements): boolean;
var
  p: ListPointer;
begin
  result := True;
  p := L.Head;
  while p <> nil do
    if p^.Value = Item then Exit
    else p := p^.Next;
  result := False;
end;
 
procedure DoIt(var Lres: Lst; first, second: Lst);
var p : ListPointer;
begin
  p := first.Head;
  while p <> nil do
  begin
    if not Contains(second, p^.value) and not Contains(Lres, p^.value) then
      AddItem(Lres, p^.Value);
    p := p^.next;
  end;
end;
 
var
  P1, P2, P3: Lst;
 
begin
  P1.Head := nil; P1.Tail := nil;
  CreateList(P1, 5);
  PrintList(P1);
  
  P2.Head := nil; P2.Tail := nil;
  CreateList(P2, 7);
  PrintList(P2);
  
  DoIt(P3, P1, P2);
  PrintList(P3);
end.
(сообщения для пользователя, какой именно элемент вводится/какой список выводится - это уже сам добавь)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 12:43

Сформировать новый список, который будет содержать положительные элементы исходного списка
Задача: Сформировать список, содержащий случайные целые числа, положительные и отрицательные;...

Сформировать список целых чисел и проверить, создают ли элементы списка арифметическую прогрессию
Доброго вечера дорогие форумчане основную часть программы с горем по полам сделал а вот как ...

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
Ребят я запутался окончательно.Пытался сам разобраться,но увы только все хуже стало. задание:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru