Skip to content

Latest commit

 

History

History
62 lines (62 loc) · 10.1 KB

ФП - UA - Лаб-4.md

File metadata and controls

62 lines (62 loc) · 10.1 KB

20230807201756 #учу/ФП


  • "Функцiональне програмування" - "Функциональное программирование" (ФП)
  • [[ФП - Лаб-4]]
  • [[ФП - Лаб-4+]]

УВАГА !!!

  • При оформленні Звіту про виконання лабораторної роботи – доцільно дотримуватись приблизно такого формату присвоєння імені файлу:
    • ФП_Прізвище Ім'я_КІУКІ-20-6_лаб1234
  • Приблизно там може називатися файл Звіту або директорія, де містяться сам Звіт та супроводжуючі матеріали.

Лабораторна робота № 4

Тема: "Функції вищого порядку. Продовження ознайомлення з можливостями функціонального програмування мови Python"

Мета роботи

  • Продовження практичного відпрацювання використання елементів і підходів функціонального програмування в комбінації з процедурними імперативними складовими програми.

Вихідні умови для виконання роботи

  • 1 - Програмною базою є мова Python - програмний продукт Python_1.1_py2.6.1_Portable. Робота проводиться на ПЕОМ IBM PC AT під операційною системою WINDOWS не нижче XP.
  • 2 - Фіксація результатів (проміжних станів, що виникають при вивченні інтерфейсу та базових положень синтаксису, а так само в процесі налагодження, здійснюється перенесенням вибраного фрагмента діалогового вікна в текстовий редактор, з коментуванням монтажем тексту в Звіт про виконання лабораторної роботи.
  • 3 - Допустимо та вітається використання замість стандартного інтерфейсу Python текстового редактора для виведення програми та протоколу її налагодження (роботи).
  • 4 - У самостійній та домашній роботі, зокрема під час підготовки звіту та активізації матеріалу для здачі (захисту) лаб роботи, допустимо використання програмних засобів Python версії 6.4 - 6.7
  • 5 - Під час підготовки до лабораторної роботи рекомендується ознайомитися з базовими поняттями з теми обсягом начитаного лекційного матеріалу.
  • Додатково, наприклад у разі прогалин у конспектах, в інструкції додається короткий текстове роз'яснення основних понять в області мереж Петрі.

Порядок виконання роботи

  • Ця лабораторна робота в цілому (структурно) аналогічна лабраторній роботі 3, бо Має за мету закріплення розуміння аналізованого питання.
  • 1 - Ознайомитись із цими Методичними вказівками.
  • 2 - Скопіювати з сервера до робочої директорії програмний продукт Python_1.1_py2.6.1_Portable
  • 3 - запустити один із редакторів, наявних з директорії Python_1.1_py2.6.1_Portable. Рекомендується PythonShell-Portable.exe, як найпростіший і, отже, мінімально відволікає від цілей лабораторної роботи.
  • Допустимо та вітається (див. п. 3 вище) робота в текстовому редакторі з текстом програми та протоколом у двох різних вкладках.
  • 4 - Запустити програму (див. [[ФП - Лаб-4+]]) 2lab4.py. Переконатися у її працездатності (видає протокол).
  • 5 - Дописати програму у процедурному стилі, відповідно до коментаря, що міститься в її заключній частині.
  • 6 - Переписати програму, максимально (за мірою свого розуміння принципів функціонального програмування) використовуючи можливості функціонального стилю, що надаються Python. Частково розглянуті у лаб. роботі 2, а також коротко викладені в [[ФП - Лаб-2+]].
  • 7 - Найпростіший варіант практичного відпрацювання прийомів використання елементів і підходів функціонального програмування - може полягати у застосуванні функцій вищого порядку, що надаються Python, при переробці вже написаної (див. [[ФП - Лаб-3+]] і [[ФП - Лаб-4+]]) частина програми.
  • Більш просунутий (рекомендований) варіант – повна дописка процедурного варіанту і потім – повна його переробка у функціональний стиль.
  • Ще більш просунутий варіант - розробка «графічного інтерфейсу» до програми: графіка гістограми в символьній формі.
  • Як завжди, вітається (і відповідно оцінюється при здачі лабораторної роботи) самостійність, оригінальність мислення, не стандартний творчий підхід та інші прояви самобутності та неортодоксальності програмістської індивідуальності.
  • 8 - Оформити Звіт про виконання лабораторної роботи.
  • 9 – Підготовка до захисту лабораторної роботи. Рекомендується опрацювати контрольні питання.
  • 10 – Захист виконаної роботи.

Зміст звіту

  • Звіт з лабораторної роботи повинен містити:
    • мета роботи,
    • покроковий опис її виконання,
    • зведення отриманих результатів,
    • їх аналіз та
    • змістовні висновки.
  • Висновки, щоб бути змістовними, можуть включати виявлені (відзначені) студентом цікаві особливості, зауваження про незвичайне застосування, оригінальні думки про прикладне використання, можливі помічені помилки або невідповідності та ін.
  • Звіт має бути оформлений у текстовому редакторі, можливо, з додатком ілюстрацій, отриманих комп'ютерним способом у процесі виконання роботи.
  • ВАЖЛИВО! Представляються також електронні версії ДВУХ розроблених програм:
    • Процедурною дописаною і
    • Функціональної переробленої
  • При захисті лабораторної роботи – викладач контролює працездатність зазначених програм.

Контрольні питання та завдання

  • 1 – Що таке мережі Петрі (МП)? Як вони працюють? Навіщо воны потрібни?
  • 2 - Намалювати картинку МП, яка розглядається (використовується при налагодженні) у даній лабораторній роботі
  • 3 - Чи може бути розроблена вами перероблена версія програми бути перероблена ще раз з ще більш повним охопленням функціональних принципів? Викладіть напрямки нової переробки.
  • 4 - Скільки та які реалізації принципів функціонального програмування використано у переробленій версії вашої програми?
  • 5 - Що слід змінити у програмі, щоб вона відтворювала роботу МП з іншою конфігурацією?
  • 6 - ☀️ Як модифікувати програму, щоб вона відтворювала якусь іншу політику роботи МП?
  • 7 - ☀️ Які можуть бути практичні застосування цієї програми?
  • 8 - ☀️ Як модифікувати програму, щоб зробити оцінки виграшності продуктивності функціонального варіанту порівняно з процедурним?
  • 9 - ☀️ Ваші зауваження та (або) пропозиції щодо розглянутого будівельника МП.