МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

створення та обробки однонаправленого списку дійсних чисел.





Методичні рекомендації

До виконання лабораторної роботи № 6

Тема: Реалізація та відлагодження програм обробки списків.

Мета:

1. Вивчення типу даних посилання в мові Турбо-Паскаль. Вивчення основних процедур роботи з Heap-пам’яттю.

2. Отримання навиків в організації динамічної структури даних – однонаправлений список.

Практичний приклад

створення та обробки однонаправленого списку дійсних чисел.

· Задача:

1. Створити однонаправлений список дійсних чисел та заповнити його значеннями введенням з клавіатури.

2. Знайти та вивести на екран максимальний елемент списку.

3. Видалити максимальний елемент зі списку та вивести оновлений список.

4. Видалити список з Heap- пам’яті.

· Опис вхідних – вихідних даних програми6

Вхідні дані:

I::=<дійсне число – елемент списку, що вводиться з клавіатури>::= real;

Вихідні дані:

max::=<максимальний елемент списку>::= real;

ukf::=<посилання на однонаправлений список дійсних чисел>::= ^uzel;

uzel=record

x:real;

next:n;

end;

· Текст програми з коментарями:

 

program sp;

uses CRT;

{Опис вузла списку}

type

n=^uzel;

uzel=record

x:real;

next:n;

end;

var

ukf:n; {Посилання на перший вузол списку – голова списку}

uku:n; { Посилання на черговий вузол списку }

ukmax:n; {Посилання на максимальний елемент списку}

i,max:real; c:char;

begin

clrscr;

{Занесання першого елементу в список}

new(uku); ukf:=uku; c:='y';

writeln('Введите первый елемент'); readln(i); uku^.x:=i;

{Формування списку в циклі}

while c='y' do

begin

new(uku^.next); uku:=uku^.next;

writeln('Введите очередной елемент'); readln(i); uku^.x:=i;

writeln('Хотите продолжать?'); readln(c)

end;

uku^.next:=nil; {Формування кінця списку}

{Пошук максимального елементу}

max:=ukf^.x; ukmax:=ukf; uku:=ukf;

while uku^.next<>nil do

begin

uku:=uku^.next;

if uku^.x>max then begin max:=uku^.x; ukmax:=uku end;

end;

writeln('max=',ukmax^.x:10:5);

{Видалення максимального елементу із списку:}

uku:=ukf;

if ukf=ukmax

then {Видаляємо максимальний - якщо він пеший}

begin

ukf:=ukf^.next; dispose(uku); uku:=ukf;

end

else

begin

{Переміщення по списку до максимального}

while uku^.next<>ukmax do uku:=uku^.next;

{Видаляємо максимальний – якщо він останній}

if ukmax^.next=nil

then

begin

uku^.next:=nil; dispose(ukmax)

end

else

{Видаляємо максимальний – якщо він в середині списку} begin

uku^.next:=ukmax^.next; dispose(ukmax)

end;

end;

{Виведення списку на екран}

writeln('Новый список');

uku:=ukf;

repeat

writeln(uku^.x:10:5); uku:=uku^.next

until uku=nil;

{Видалення списку з пам’яті}

uku:=ukf;

repeat

ukf:=ukf^.next; dispose(uku); uku:=ukf

until uku=nil;

if ukf=nil then writeln('Список пуст');

readln;

end.

 

· Копія вікна виконання програми:

 

Введите первый елемент

Введите очередной елемент

Хотите продолжать?

Y

Введите очередной елемент

-67

Хотите продолжать?

Y

Введите очередной елемент

Хотите продолжать?

N

max= 456.00000

Новый список

45.00000

7.00000

-67.00000

Список пуст

 

 

Варіанти завдань:

1. Створити однонаправлений список дійсних чисел, який може вміщати рівні числа. Знайти та вивести максимальний елемент списку. Видалити із списку всі максимальні елементи та вивести оновлений список. Видалити список.

2. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти суму додатних елементів списку. Видалити із списку всі додатні елементи та вивести оновлений список. Видалити список.

3. Створити однонаправлений список натуральних чисел. Знайти та вивести добуток парних елементів списку. Видалити із списку всі парні елементи та вивести оновлений список. Видалити список.



4. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти добуток та підрахувати кількість від’ємних елементів списку. Видалити із списку всі від’ємні елементи та вивести оновлений список. Видалити список.

5. Створити однонаправлений список натуральних чисел. Знайти та вивести суму квадратів парних елементів списку. Видалити із списку всі парні елементи та вивести оновлений список. Видалити список.

6. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі від’ємні числа в списку на їх модулі та вивести оновлений список. Видалити список.

7. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі додатні числа їх квадратами та вивести оновлений список. Видалити список.

8. Створити однонаправлений список дійсних чисел. Знайти та вивести максимальний та мінімальний елементи списку. Видалити із списку мінімальний та максимальний елементи та вивести оновлений список. Видалити список.

9. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти суму квадратів від’ємних елементів списку. Видалити із списку перший від’ємний елемент та вивести оновлений список. Видалити список.

10. Створити однонаправлений список дійсних чисел. Знайти та вивести максимальний та мінімальний елементи списку та їх суму. Видалити із списку мінімальний елемент та вивести оновлений список. Видалити список.

11. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі від’ємні числа їх квадратами та вивести оновлений список. Знайти максимальний елемент списку. Видалити список.

12. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Створити новий список, який вміщає тільки додатні елементи першого. Вивести новий список. Видалити списки.

 

13. Створити однонаправлений список дійсних чисел, який може вміщати рівні числа. Знайти та вивести мінімальний елемент списку. Видалити із списку всі мінімальні елементи та вивести оновлений список. Видалити список.

14. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Створити новий список, який вміщає тільки квадрати від’ємних елементів першого списку. Вивести новий список. Видалити списки.

15. Створити однонаправлений список натуральних чисел. Знайти та вивести елементи списку, кратні 3. Видалити із списку всі ці елементи та вивести оновлений список. Видалити список.

16. Створити однонаправлений список дійсних чисел, який може вміщати рівні числа. Знайти та вивести максимальний елемент списку. Видалити із списку всі максимальні елементи та вивести оновлений список. Видалити список.

17. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти суму додатних елементів списку. Видалити із списку всі додатні елементи та вивести оновлений список. Видалити список.

18. Створити однонаправлений список натуральних чисел. Знайти та вивести добуток парних елементів списку. Видалити із списку всі парні елементи та вивести оновлений список. Видалити список.

19. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти добуток та підрахувати кількість від’ємних елементів списку. Видалити із списку всі від’ємні елементи та вивести оновлений список. Видалити список.

20. Створити однонаправлений список натуральних чисел. Знайти та вивести суму квадратів парних елементів списку. Видалити із списку всі парні елементи та вивести оновлений список. Видалити список.

21. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі від’ємні числа в списку на їх модулі та вивести оновлений список. Видалити список.

22. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі додатні числа їх квадратами та вивести оновлений список. Видалити список.

23. Створити однонаправлений список дійсних чисел. Знайти та вивести максимальний та мінімальний елементи списку. Видалити із списку мінімальний та максимальний елементи та вивести оновлений список. Видалити список.

24. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Знайти суму квадратів від’ємних елементів списку. Видалити із списку перший від’ємний елемент та вивести оновлений список. Видалити список.

25. Створити однонаправлений список дійсних чисел. Знайти та вивести максимальний та мінімальний елементи списку та їх суму. Видалити із списку мінімальний елемент та вивести оновлений список. Видалити список.

26. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Замінити всі від’ємні числа їх квадратами та вивести оновлений список. Знайти максимальний елемент списку. Видалити список.

27. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Створити новий список, який вміщає тільки додатні елементи першого. Вивести новий список. Видалити списки.

28. Створити однонаправлений список дійсних чисел, який може вміщати рівні числа. Знайти та вивести мінімальний елемент списку. Видалити із списку всі мінімальні елементи та вивести оновлений список. Видалити список.

29. Створити однонаправлений список дійсних чисел, який може вміщати як додатні, так і від’ємні числа. Створити новий список, який вміщає тільки квадрати від’ємних елементів першого списку. Вивести новий список. Видалити списки.

30. Створити однонаправлений список натуральних чисел. Знайти та вивести елементи списку, кратні 3. Видалити із списку всі ці елементи та вивести оновлений список. Видалити список.

31. Створити однонаправлений список дійсних чисел. Знайти та вивести максимальний елемент списку. Видалити із списку ті елементи, квадрат яких менше максимального елементу.Вивести оновлений список. Видалити список.

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.