Сформировать список из двух других по правилу - Turbo Pascal
Формулировка задачи:
Используя описание
список = ^ звено
звено = record
элемент: тип элемента
следующий список
end
Написать программу , которая формирует список L, включив в него по одному разу элементы, которые входят хотя бы в один из списков L1 и L2.
Решение задачи: «Сформировать список из двух других по правилу»
textual
Листинг программы
type tList = ^tLink; tLink = record N : Real; X : tList; end; var L, L1, L2, Cur, T, S : tList; i : Integer; begin L1 := nil; L2 := nil; L := nil; Randomize; for i := 1 to 20 do begin New(Cur); Cur^.N := Random(19) - 9; Cur^.X := L1; L1 := Cur; end; for i := 1 to 20 do begin New(Cur); Cur^.N := Random(19) - 9; Cur^.X := L2; L2 := Cur; end; Write('L1 = '); Cur := L1; while Cur <> nil do begin Write(Cur^.N:3); Cur := Cur^.X; end; WriteLn; Write('L2 = '); Cur := L2; while Cur <> nil do begin Write(Cur^.N:3); Cur := Cur^.X; end; WriteLn; Cur := L1; while Cur <> nil do begin T := L; i := 0; while (T <> nil) and (i = 0) do if T^.N = Cur^.N then i := 1 else T := T^.X; if i = 0 then begin New(T); T^.N := Cur^.N; T^.X := nil; if L = nil then L := T else S^.X := T; S := T; end; Cur := Cur^.X; end; Cur := L2; while Cur <> nil do begin T := L; i := 0; while (T <> nil) and (i = 0) do if T^.N = Cur^.N then i := 1 else T := T^.X; if i = 0 then begin New(T); T^.N := Cur^.N; T^.X := nil; if L = nil then L := T else S^.X := T; S := T; end; Cur := Cur^.X; end; Write(' L = '); Cur := L; while Cur <> nil do begin Write(Cur^.N:3); Cur := Cur^.X; end; WriteLn; end.
Объяснение кода листинга программы
- Создается тип данных
tList
, который представляет собой указатель на структуруtLink
. В структуреtLink
есть два поля: целое числоN
и указатель на списокX
. - Создаются три переменные типа
tList
: L, L1 и L2. Изначально все они равны нулю. - Задается начальное значение для случайной генерации чисел от 1 до 19.
- Запускается цикл, который повторяется 20 раз. В каждой итерации цикла создается новый объект
tLink
и присваивается одной из переменных L, L1 или L2. ЗначениеN
в новом объекте генерируется случайным образом от 1 до 19. ЗначениеX
в новом объекте устанавливается равным значению переменной, которая была использована для создания нового объекта. - После завершения каждой итерации цикла, значения переменных L, L1 и L2 обновляются, чтобы отразить добавление нового объекта в список.
- В конце программы выводятся значения переменных L, L1 и L2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д