program g;
type
te = char;
slovo = packed array [1 .. 50] of te; { по условию }
link = ^kom; { начало создания списка }
kom = record
ini: slovo;
next: link;
end; { конец создания списка }
procedure add(var n: link; x: slovo; num: integer);
{ данная процедура добавляет в список "n" элемент "x" на порядковое место "num" }
var
neo, ind: link;
i: integer;
begin
new(neo);
neo^.ini := x;
if n = nil then
begin
n := neo;
neo^.next := nil;
end
else if num = 1 then
begin
neo^.next := n;
n := neo;
end
else
begin
i := 0;
ind := n;
while (i <> num - 2) and (ind^.next <> nil) do
begin
i := i + 1;
ind := ind^.next;
end;
neo^.next := ind^.next;
ind^.next := neo;
end;
end; { КОНЕЦ процедуры add }
{ ****************************************** }
function veiwLkolvo(n: link): integer;
{ функция определяющая КОЛ-ВО, требовающееся в задании }
var
ind: link;
slotek1, slotek2: slovo;
i, kolvo: integer;
begin
ind := n;
i := 0;
kolvo := 0; { обнуляем счётчик КОЛ-ва, требуемого в задаче }
if ind = nil then
writeln('List is empty')
else
begin
while ind <> nil do
begin { начало считывания списка }
i := i + 1;
if i = 1 then
slotek2 := ind^.ini
else
begin
slotek1 := slotek2;
slotek2 := ind^.ini;
end; { считываем 2 слова со списка }
if i <> 1 then
if slotek1[1] = slotek2[1]
then { если выполняется требуемое условие "начинаются с той же литеры" }
inc(kolvo); { то увеличиваем счётчик КОЛ-ВА }
ind := ind^.next;
end;
end;
veiwLkolvo := kolvo; { присваеваем это КОЛ-ВО самой функции }
end; { КОНЕЦ ФУНКЦИИ }
{ ****************************************** }
var
sl: slovo;
i, n: integer;
L: link;
begin
write('Vvedite kol-vo slov v spiske: ');
readln(n); { считываем размер списка }
writeln('Vvedite sam SPISOK L: ');
for i := 1 to n do
begin
write(i, ' slovo= ');
readln(sl);
add(L, sl, i);
end; { считываем сам список }
writeln('OTVET= ', veiwLkolvo(L)); { выводим РЕЗУЛЬТАТна экран }
readln;
readln;
end.
Похожие записи/страницы:
- Описать процедуру или функцию, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы…
- Последовательность целых чисел заносится в файл. Прочитать из файла последовательность и записать в память в…
- Подсчитать в списке количество слов, содержащих цифры, а затем удалить все цифры списка - Pascal(Паскаль)
- Написать программу, которая будет печатать: а) все слова из списка с, отличные от слова sport: б) текст,…
- Удалить элемент, который находится в середине стека, если нечетное число элементов, а если четное, то два…
- Добавление, удаление, редактирование, чтение списков - Pascal(Паскаль)
- Создать связанный список телефонный справочник- Pascal(Паскаль)
- Проверяет есть ли слово из трех букв - Pascal(Паскаль)