Динамические структуры данных. Задание практикума. Язык Паскаль. Вылиток А.А - 41 стр.

UptoLike

- 41 -
11) имеют первой и последней буквой одну и ту же заданную;
12) не имеют первой и последней буквой одну и ту же заданную.
Методические указания
1. Вводить последовательность слов следует посимвольно. Для представления
слов в программе использовать строковый тип подходящей длины. Слово
располагать в начальных компонентах строки, не используемые компоненты
заполнять пробелами.
2. Для внутреннего представления текста использовать список с заглавным
звеном. Звено списка состоит из трёх полей: первоестрока, в которой
хранится слово, второедлина данного слова, третьеуказатель на следующее
звено.
3. Для вставки очередного слова в список определить отдельную процедуру; для
подсчёта слов, удовлетворяющих условию, описать функцию. После построения
списка напечатать слова, находящиеся в звеньях списка, используя процедуру
print.
Пример решения
Пусть требуется найти, сколько в тексте слов длиной пять букв и в
которых заданная буква встречается не менее двух раз.
program sample(input, output);
const n=10;
template='9999999999';
type line = packed array[1..n] of char;
size=1..10;
link= node;
node = record
word: line;
length: size;
next: link
end;
list=link;
var L: list;
p: link;
c: char;
word: line;
k,i: integer;
procedure insert(p: link; word: line; length: size);
{создаёт звено для слова word длины length и вставляет
его в конец списка (после звена, на которое указывает p)}
var q: link;
 11) имеют первой и последней буквой одну и ту же заданную;
 12) не имеют первой и последней буквой одну и ту же заданную.

      Методические указания

1. Вводить последовательность слов следует посимвольно. Для представления
слов в программе использовать строковый тип подходящей длины. Слово
располагать в начальных компонентах строки, не используемые компоненты
заполнять пробелами.
2. Для внутреннего представления текста использовать список с заглавным
звеном. Звено списка состоит из трёх полей: первое – строка, в которой
хранится слово, второе – длина данного слова, третье – указатель на следующее
звено.
3. Для вставки очередного слова в список определить отдельную процедуру; для
подсчёта слов, удовлетворяющих условию, описать функцию. После построения
списка напечатать слова, находящиеся в звеньях списка, используя процедуру
print.

      Пример решения

      Пусть требуется найти, сколько в тексте слов длиной пять букв и в
которых заданная буква встречается не менее двух раз.

program sample(input, output);
const n=10;
      template='9999999999';
type line = packed array[1..n] of char;
      size=1..10;
      link= ↑node;
      node = record
               word: line;
               length: size;
               next: link
             end;
      list=link;
var L: list;
    p: link;
    c: char;
 word: line;
  k,i: integer;

procedure insert(p: link; word: line; length: size);
{создаёт звено для слова word длины length и вставляет
его в конец списка (после звена, на которое указывает p)}
var q: link;




                                    - 41 -