Опишите процедуру ЗАМЕНА (L , i , j) - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Используйте представление последовательности строк в виде линейного списка и опишите процедуру ЗАМЕНА (L , i , j), заменяющую i- ю строку списка L на копию j- й строки . Help me. Please.

Решение задачи: «Опишите процедуру ЗАМЕНА (L , i , j)»

textual
Листинг программы
  1. type
  2.   tList = ^rList;
  3.   rList = record
  4.     S : String;
  5.     Next : tList;
  6.   end;
  7.  
  8. // Процедура добавления нового элемента к списку
  9. procedure ListAdd(var List : tList; S : String);
  10. var
  11.   tmp : tList;
  12. begin
  13.   if List = nil then // Добавляем первый
  14.     begin
  15.       New(List);
  16.       List^.S := S;
  17.       List^.Next := nil;
  18.     end
  19.   else // Добавляем в конец списка
  20.     begin
  21.       // Идём к последнему элементу списка
  22.       tmp := List;
  23.       while tmp^.Next <> nil do
  24.         tmp := tmp^.Next;
  25.       // Добавляем новый
  26.       New(tmp^.Next);
  27.       tmp := tmp^.Next;
  28.       tmp^.S := S;
  29.       tmp^.Next := nil;
  30.     end;
  31. end;
  32.  
  33. // Процедура ввода строк
  34. procedure InputStrings(var List : tList);
  35. var
  36.   S : String;
  37. begin
  38.   WriteLn('Ввод пустой строки означает окончание ввода.');
  39.   WriteLn('Вводите текст:');
  40.   repeat
  41.     ReadLn(S);
  42.     if S <> '' then
  43.       ListAdd(List, S);
  44.   until S = '';
  45.   WriteLn('Ввод текста окончен.');
  46. end;
  47.  
  48. // Вывод списка
  49. procedure OutputStrings(msg : String; List : tList);
  50. begin
  51.   WriteLn(msg);
  52.   while List <> nil do
  53.     begin
  54.       WriteLn(List^.S);
  55.       List := List^.Next;
  56.     end;
  57. end;
  58.  
  59. var
  60.   List : tList;
  61. begin
  62.   List := nil;
  63.   InputStrings(List);
  64.   OutputStrings('Введён следующий текст:', List);
  65. end.

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

  1. Тип данных tList определен как указатель на структуру tList, которая содержит строку S и указатель на следующий элемент списка Next.
  2. Процедура ListAdd добавляет новый элемент в список. Если список пуст, то создается новый элемент и он становится первым в списке. Если список уже содержит элементы, то ищется последний элемент, к которому добавляется новый.
  3. Процедура InputStrings запрашивает у пользователя ввод строк до тех пор, пока не будет введена пустая строка. Введенные строки добавляются в список с помощью процедуры ListAdd.
  4. Процедура OutputStrings выводит список, перебирая все его элементы и выводя значение каждого элемента (строку).
  5. В основной части программы создается пустой список List, затем с помощью процедуры InputStrings заполняется строками, а затем выводится на экран с помощью процедуры OutputStrings.

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


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

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

11   голосов , оценка 4.636 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы