ВУЗ:
Составители:
Рубрика:
- 42 -
begin new(q);
q↑.word:= word;
q↑.length:=length;
q↑.next:= nil{= p↑.next};
p↑.next:= q
end {insert};
procedure print(p: list);
{печатает слова из списка с заглавным звеном}
begin p:=p↑.next;
while p < > nil do
begin write(p↑.word,'9');
p:=p↑.next
end;
writeln;
end {print};
function amount(p: list; letter: char;
length: size):integer;
{подсчитывает количество слов в списке, удовлетворяющих
условию: длина равна length и буква letter входит в
слово не менее двух раз}
var k,m,i:integer;
begin
k:=0; p:= p↑.next;
while p < > nil do
begin
if p↑.length=length then
begin m:=0;
for i:=1 to length do
if p↑.word[i]= letter then m:= m+1;
if m>= 2 then k:= k+1
end;
p:=p↑.next
end;
amount:= k
end {amount};
begin {построение заглавного звена списка}
new(L); L↑.next:= nil;
writeln('Введите текст:');
p:=L; {p установили на начало пустого списка}
repeat i:=0; word:= template; read(c);
{ввод очередного слова word из файла input}
repeat i:=i+1; word[i]:= c; read(c);
until (c = ',') or (c='.');
begin new(q);
q↑.word:= word;
q↑.length:=length;
q↑.next:= nil{= p↑.next};
p↑.next:= q
end {insert};
procedure print(p: list);
{печатает слова из списка с заглавным звеном}
begin p:=p↑.next;
while p < > nil do
begin write(p↑.word,'9');
p:=p↑.next
end;
writeln;
end {print};
function amount(p: list; letter: char;
length: size):integer;
{подсчитывает количество слов в списке, удовлетворяющих
условию: длина равна length и буква letter входит в
слово не менее двух раз}
var k,m,i:integer;
begin
k:=0; p:= p↑.next;
while p < > nil do
begin
if p↑.length=length then
begin m:=0;
for i:=1 to length do
if p↑.word[i]= letter then m:= m+1;
if m>= 2 then k:= k+1
end;
p:=p↑.next
end;
amount:= k
end {amount};
begin {построение заглавного звена списка}
new(L); L↑.next:= nil;
writeln('Введите текст:');
p:=L; {p установили на начало пустого списка}
repeat i:=0; word:= template; read(c);
{ввод очередного слова word из файла input}
repeat i:=i+1; word[i]:= c; read(c);
until (c = ',') or (c='.');
- 42 -
