Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Занятие 4-5. Примеры задач, решаемых с помощью списка. Решение задач.




 

Задание. Просмотрите предложенные решения задач и приготовьтесь объяснить алгоритм их решения учителю. Если необходимо, то наберите программы на компьютере и просмотрите их действие.

 

Задача 1. Проверить есть ли и сколько раз встречается список М1 в списке М2.

 

Program BaranovA;

Uses

Crt;

Type

EXS = ^ S;

S = Record

Data: integer;

Next: EXS;

End;

Var

u, x, m1, m2: EXS;

i, Kol: integer;

 

Procedure Poisk(Var x1, x2: EXS);

Var

m3, m4: EXS;

Begin

Kol:= 0;

m3:= m1;

m4:= m2;

while m4 <> Nil do

Begin

if m4^.Data = m3^.Data

then

Begin

m3:= m3^.Next;

m4:= m4^.Next;

if m3 = Nil

then

Begin

Kol:= Kol+1;

m3:= m1;

End;

End;

else

Begin

m3:= m1;

m4:= m4^.Next;

End;

End;

End;

 

Procedure Init (Var u: EXS);

Var

y: EXS;

Digit: integer;

Begin

Writeln('Введите список. Конец ввода – 0');

u:= Nil;

Read(Digit);

while Digit <> 0 do

Begin

New(y);

y^.Next:= Nil;

y^.Data:= Digit;

if u = Nil

then

u:= y

else

x^.Next:= y;

x:= y;

Read(Digit);

End;

Writeln;

End;

 

Procedure Print(X: EXS);

Begin

while X <> Nil do

Begin

Write(X^.Data: 5);

X:= X^.Next;

End;

Readln;

Writeln;

End;

 

Begin

ClrScr;

Init(m1);

Init(m2);

Writeln('***Список 1***');

Print(m1);

Writeln('***Список 2***');

Print(m2);

Poisk(m1, m2);

Writeln('Список 1 встречается в списке 2 ', Kol, ' раз(а)');

Readln;

End.

 

Задача 2. Из текстового файла, состоящего из строк, сформировать список, запросить слово и удалить это слово из списка.

 

 

Program;

Uses

Crt;

Type

EXS = ^ Spisok;

Spisok = Record

Data: string;

Next: EXS;

End;

Var

Golova _ Spiska, Golova _ Spiska _ Udalen_: EXS;

F: text;

S, St: string;

 

Procedure Smotr(x: EXS);

Begin

TextColor(LightRed);

Write('Ваш список...');

while x <> Nil do

Begin

Writeln (x^.Data,' ');

x:= x^.Next;

End;

End;

 

Procedure Reading;

Begin

Reset (F);

Writeln('Ваш файл...');

while no Eof(F) do

Begin

Readln (F, St);

Writeln (St);

End;

close (F);

End;

 

Procedure CreateFile;

Begin

Writeln('Создание файла');

Write('Введите имя файла...');

Readln(S);

Assign (F, S);

rewrite('Вводите текст в файл (окончание ввода - <Enter>');

Repeat

Readln(St);

Writeln (F, St);

until St = '';

Write('Файл создан');

close (F);

Reading;

End;

 

Procedure Proverka;

Var

x, y, u: EXS;

i: integer;

Begin

Reset (F);

while not Eof (F) do

Begin

Readln (F, St[i]);

while i < Length (St) do

Begin

New (x);

x^.Next:= Nil;

if (St[i] <> '') or (St[i] <> St[Length(St)])

then

x^.Data:= x^.Data + St[i];

if u = Nil

then

u:= x

else

y^.Next:= x;

y:= x;

End;

End;

close (F);

Smotr (u);

End;

 

Begin

ClrScr;

TextColor (White);

CreateFile;

Proverka;

End.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных