Сформировать список из двух других по правилу - 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.

Объяснение кода листинга программы

  1. Создается тип данных tList, который представляет собой указатель на структуру tLink. В структуре tLink есть два поля: целое число N и указатель на список X.
  2. Создаются три переменные типа tList: L, L1 и L2. Изначально все они равны нулю.
  3. Задается начальное значение для случайной генерации чисел от 1 до 19.
  4. Запускается цикл, который повторяется 20 раз. В каждой итерации цикла создается новый объект tLink и присваивается одной из переменных L, L1 или L2. Значение N в новом объекте генерируется случайным образом от 1 до 19. Значение X в новом объекте устанавливается равным значению переменной, которая была использована для создания нового объекта.
  5. После завершения каждой итерации цикла, значения переменных L, L1 и L2 обновляются, чтобы отразить добавление нового объекта в список.
  6. В конце программы выводятся значения переменных L, L1 и L2.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы