ВУЗ:
Составители:
Рубрика:
- 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 -