Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labtp_12_ssylki.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
102.4 Кб
Скачать

Виключення даних із списку

5. Приклад програми, що вводить дані про кожного студента, будує список, а потім видаляє зі списку елементи, що не задовольняють умову поставлену у задачі (дані про невстигаючих студентів).

Program Iskl_dan_spis;

Uses Crt;

Type

Dat = Record

FIO : String [30];

Ocen : Array [1. .4] Of Integer;

End;

Ssyl = ^Zapis;

Zapis = Record

SS : Ssyl;

Y : Dat;

End;

Var

Nach, S1,S2 : Ssyl;

N, I, J : Integer;

Begin

ClrScr;

Writeln('Введіть кількість прізвищ у списку');

Readln(N);

New(S1); Nach:=S1;

For I:= 1 To N Do

begin

S1^. SS:=Nil;

Writeln('Введіть прізвище студента :');

Readln(S1^. Y. FIO);

Writeln('Введіть оцінки по чотирьом предметам');

For J:= 1 To 4 Do Readln (S1^. Y. Ocen[j]);

S2:=S1; New(S1);

If I <> N

Then S2^. SS:=S1

Else Dispose(S1);

end; {Кінець формування списку}

s1:=nach;

while s1<>nil do

begin

write(S1^. Y. FIO:15);

For J:= 1 To 4 Do write (S1^. Y. Ocen[j]:2);

writeln;

s1:=s1^. ss;

end;

writeln;

S1:= nach;

Repeat

For I:= 1 To 4 Do

If S1^. Y. Ocen[i]=2

Then

If S1=Nach Then Nach:=S1^. SS

Else S2^. SS:=S1^. SS;

S2:=S1; {S2 - посилання на попередній елемент}

S1:=S1^. SS;

Until S1=Nil; {закінчено виключення із списку}

{Друкування списку}

Writeln ('Список Встигаючих студентів');

S1:=Nach;

While S1<>Nil Do

begin

Write(S1^. Y. FIO:15 );

For I:= 1 TO 4 Do Write(' ',S1^. Y. Ocen[i]:4);

Writeln;

S1:=S1^. SS;

end;

Readln;

End.

Практична частина

Завдання 1. Робота з чергою.

  1. Змоделювати чергу з абонентів, які поступають на обслуговування (введення з клавіатури не менше 20)

  2. Створити копію черги у файлі Inp_Ch.txt.

  3. Поставити на обслуговування n елементів черги (n дорівнює номеру варіанта) і вилучити їх з черги.

  4. Вилучених абонентів та абонентів, що лишились занести відповідно до файлів:Out_Chv.txt та Out_Chl.txt .

Завдання 2. Робота зі стеком.

Парні варіанти

  1. Створити чергу абонентів з m елементів. Створити копію черги у файлі Inp_Ch.txt.

  2. Переставити елементи черги у зворотньому порядку, не використовуючи проміжні масиви. Кінцевий результат зберегти у файлі Out_Ch.txt

Непарні варіанти

  1. Створити чергу із n елементів і стек із m елементів . Їхні копії зберегти у файлі Inp_St.txt.

  1. Додати елементи черги у вершину стека, отриманий результат зберегти у файлі Out_St.txt

Завдання 3. Робота з односпрямованим списком.

Постановка задачі.

Створити список студентів, що містить не менше 10 студентів.

Для кожного студента зазначити рік народження і оцінки по 4 екзаменам.

Алгоритм повинний містити в собі такі дії:

  • Введення з клавіатури даних про кожного студента;

  • Занесення інформації в однонаправлений список, упорядкований за алфавітом;

  • Збереження списку в текстовому файлі Inp_Sp.txt.

  • Виключення із списку елементів, що відносяться до студентів, у яких:

1. Середній бал менше середнього бала групи.

2. Середній бал менше 4.5.

3. Середній бал менше 4.

4. Середній бал менше 3.5.

5. Всі оцінки 5.

6. Одна 4, а інші 5.

7. Оцінка, отримана на першому іспиті, - 2.

8. Оцінка, отримана на другому іспиті, - 5.

9. Немає 3 і 2.

10.Більше однієї 2.

11.Одна 3, а інші 4 і 5.

12.Прізвище починається на букву Т

13.Прізвище починається на букву С

14.Рік народження нижче 1982.

15.Рік народження вище 1982

  • Результати представити у вихідному файлі Out_Sp.txt: Спочатку список вилучених студентів, далі список студентів, що лишились.

ПИТАННЯ ДЛЯ САМОКОНТРОЛЮ

  1. На які групи можна розділити використовувані в програмуваннідані?

  2. В чому полягає основне розходження між даними статичної структури і даними динамічної структури?

  3. В чому особливість об'яви даних динамічної структури?

  4. Яка конструкція використовується При роботі з динамічною змінною, що знаходиться в пам'яті, на яку вказує вказівник?

  5. Як об’являються змінні-вказівники?

  6. З яких елементів складається динамічна змінна?

  7. Як вказівнику привласнити вміст іншого вказівника?

  8. Як вказівнику привласнити адресу об'єкта?

  9. Які операції можна виконувати над вказівниками?

  10. Задано:

Var i:^ integer;

Чи відрізняються записи :

I:=234;

I^:=234 ?

Відповідь пояснити.

  1. За допомогою яких процедур відбувається розподіл пам'яті під динамічні змінні?

  2. В чому розходження між Nil і невизначеним станом?

  3. Які дії виконують процедури New і Dispoze?

  4. Що являє собою черга як структура даних?

  5. Що являє собою стек, як структура даних?

  6. Скільки вказівників потрібно для роботи з чергою?

  7. Як додати елементи в чергу?

  8. Як виключити елементи з черги?

  9. Скільки вказівників потрібно для роботи зі стеком?

  10. Як додати елементи в стек?

  11. Як виключити елементи зі стеку?

  12. Скільки вказівників потрібно для роботи зі односпрямованим списком?

  13. Як додати елементи в список?

  14. Як виключити елементи зі списку?

  15. Як роздрукувати однонаправлений список?

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]