Урок 32. Кодування алгоритмів. Поняття складності алгоритмів. Математична модель, вибір структури даних
- З якими мовами програмування ви вже знайомі?
- Чи можна один і той самий алгоритм реалізувати мовою програмування різними способами?
- Які способи подання алгоритму ви знаєте?
Прочитайте!
Для того самого алгоритму можна розробити різні варіанти програм, які відрізняються наочністю, обсягом потрібної пам’яті, швидкістю виконання, формою подання отриманих результатів та ін.
Кодування алгоритму — це запис алгоритму мовою програмування.
Структурне програмування в Python виконується за допомогою обов’язкових відступів. Складені оператори об’єднують у блоки. Це означає, що відступи інструкцій кожного блоку встановлюються автоматично, але після останньої інструкції блоку програміст має самостійно змінити відступ.
За наданим програмним кодом легко встановити умову задачі. Приклад програмного коду мовою Python зображено на рис.

Така програма є досить наочною, її легко читати, розуміти та здійснювати пошук помилок. Простим і водночас потужним засобом забезпечення наочності програми є використання коментарів.
У програмному коді доцільно використовувати не однобуквені ідентифікатори, а смислові назви, так, масив краще позначити не буквою m, а ідентифікатором masyv або іншим.
Наведемо деякі рекомендації для підвищення ефективності програм.
- Фрагменти коду, що багаторазово повторюються, бажано оформляти у вигляді функції. Це дозволяє скоротити довжину програми, а відповідно й обсяг потрібної пам’яті. Використання функцій не тільки скорочує довжину програми, а й спрощує процес її розроблення і налагодження, підвищує структурованість і надійність програм.
- З метою скорочення кількості операцій у складному математичному виразі доцільно виділяти та окремо обчислювати прості вирази. Пояснимо сутність прийому на прикладі. Припустимо, що потрібно обчислити вираз: y:=(a+c+b-d)/(2/(a+c-3)*(b-d)*(a+c).
- Щоб обчислити вираз, потрібно виконати 4 операції додавання, 3 операції віднімання, 2 операції множення, 2 операції ділення. Обчислимо вираз за схемою: x1:=a+c; x2:=b-d; y:=(x1+x2)/(2/x1-3)*x2*x1.
- Щоб обчислити вираз, потрібно виконати: 2 операції додавання, 2 операції віднімання, 2 операції множення і 2 операції ділення. Як бачимо, кількість арифметичних операцій скоротилася на три.
- Вирази, які не змінюються в тілі циклу, доцільно для наочності програми виконувати до початку тіла циклу.
Складність алгоритму — це функція, що дозволяє визначити, як швидко збільшується час роботи алгоритму зі збільшенням обсягу даних. Складність алгоритму оцінюється людськими ресурсами, потрібними для розробки та тестування алгоритму, й обчислювальними ресурсами. Із практичної точки зору обчислювальні ресурси оцінюються нині двома основними критеріями: обсягом пам’яті, потрібної для реалізації алгоритму, та кількістю часу, необхідного для виконання алгоритму.
Кількість необхідного часу для виконання програми називають обчислювальною складністю. Відзначимо, що ця кількість є неоднозначною оцінкою, оскільки залежить від параметрів апаратних засобів комп’ютера. На одному комп’ютері алгоритм може бути виконаний за один проміжок часу, а на іншому — за інший.
Працюємо за ПК!
Завдання 1. Напишіть програму для підрахунку дрібних грошей. Вона повинна питати:
- «Скільки у вас монет по 50 копійок?»;
- «Скільки у вас монет по 10 копійок?»;
Після того, як ми з клавіатури вводимо кількість монет, програма має обчислити суму грошей, яка у нас є, вивівши окремо гривні (цілу частину) та окремо монети (остачу від ділення).
Завдання 2. Створіть програму, для визначення цифр тризначного натурального числа. Доповніть програму, щоб вона визначала суму та добуток цифр.
Завдання 3. Обчислити значення виразу (a+b)-с/(a-2*b), де a, b і c – довільні числа.
Завдання 4. Дано два числа, визначити чи є вони рівні. Якщо ні, то яке з них більше.
Завдання 5. Обчисліть площу трикутника (за формулою Герона) якщо відомо усі три його сторони.
-
Тема 1.Бази даних
- Урок 1. Поняття бази даних. Поняття, призначення й основні функції систем управління базами даних.
- Урок 2. Поняття моделі подання даних, основні моделі подання даних. Проектування баз даних. Поняття сутності, атрибута, ключа, зв’язку. Модель «сутність-зв’язок» предметної області. Класифікація зв’язків за множинністю та обов’язковістю. Бази даних в інформаційних системах.
- Урок 3. Основні відомості про СУБД MS Access. Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.
- Урок 4. Модифікація структури таблиць. Ключові поля, індекси, зв’язування таблиць.
- Урок 5. Уведення, пошук і редагування даних у таблиці.
- Урок 6. Інструктаж з БЖД Практична робота 1. Створення структури таблиць і введення вмісту.
- Урок 7. Сортування та фільтрація записів. Операції над таблицями.
- Урок 8. Розв’язання задач на створення таблиць та зв’язків
- Урок 9. Розв’язання задач на створення таблиць та зв’язків
- Урок 10. “ЗАПИТИ Загальні відомості про запити. Створення й виконання запитів на вибірку даних.”
- Урок 11. Запити з функціями і з полями, що обчислюються.
- Урок 12. Запити з параметрами. Перехресні запити.
- Урок 13. Інструктаж з БЖД. Практична робота 3.Запити з функціями та з полями, що обчислюються.
- Урок 14. Запити на змінення даних.
-
Тема 2. Форми. Звіти. Імпорт та експорт даних.
- Урок 18. Створення форм за допомогою простих засобів. Елементи керування та властивості форм.
- Урок 19. Поняття звіту. Автоматичне створення звіту. Створення звіту за допомогою конструктора звітів.
- Урок 20. Інструктаж з БЖД Практична робота 4. Створення форм, звітів, запитів..
- Урок 21. Призначення, основні поняття та терміни мови SQL. Найпростіші запити мовою SQL у системі Access.
- Урок 22. Запити з умовою. Групування запитів.
- Урок 23. Сутність імпорту та експорту об’єктів. Імпорт об’єктів з однієї бази даних в іншу. Експорт об’єктів з однієї бази даних в іншу.
- Урок 25. Інструктаж з БЖД. Практична робота 5. Основи мови запитів SQL. Імпорт та експорт об’єктів бази даних.
- Урок 30. Практикум з використання інформаційних технологій
-
Тема 3. Алгоритми
- Урок 31. Повторення теми «алгоритми» вивченої в 10 класі. Методи проектування і подання алгоритмів.
- Урок 32. Кодування алгоритмів. Поняття складності алгоритмів. Математична модель, вибір структури даних
- Урок 33. Пошук оптимального алгоритму розв’язання
- Урок 34. Оцінка та аналіз ефективності алгоритму
- Урок 35. Інструктаж з БЖД. Практична робота 6. Реалізація алгоритму мовою програмування
- Урок 36. Розв’язання задач на оцінку аналізу ефективності алгоритму
- Урок 37. Основні поняття теорії чисел: системи числення
- Урок 38. Робота з великими числами
- Урок 39. Факторизація чисел. Інструктаж з БЖД. Практична робота 7. Основні поняття теорії чисел.
- Урок 42. Алгоритми сортування. Квадратичні алгоритми сортування. Алгоритми сортування вибором.
- Урок 43. Алгоритм сортування методом обміну
- Урок 44. Сортування вставленням
- Урок 45. Сортування злиттям.
- Урок 48. Бінарний пошук
- Урок 49. Пошук максимального і мінімального елементів у масиві
- Урок 50. Поняття про пошук із поверненням і тернарний пошук.
- Урок 51. Інструктаж з БЖД. Практична робота 9. Розв’язування практичних завдань
- Урок 52. Практикум з використання інформаційних технологій
- Урок 53. Практикум з використання інформаційних технологій
-
Тема 4. Обробка рядків
- Урок 61. Обробка рядків. Основні відомості про рядки й операції над ними
- Урок 62. Функції і методи опрацювання рядків
- Урок 63. Функції і методи опрацювання рядків
- Урок 64. Приклади програм обробки рядків
- Урок 65. Основні поняття і терміни теорії графів.
- Урок 66. Способи подання графів у комп’ютері.
- Урок 67. Пошук у глибину та ширину
- Урок 68. Визначення найкоротшого шляху у графі. Алгоритм Дейкстри та його реалізація
- Урок 69. Алгоритм Флойда-Уоршела та його реалізація. Інструктаж з БЖД. Практична робота №10 “Реалізація алгоритму пошуку”
- Урок 70. Динамічне програмування.
- Урок 71. Жадібні алгоритми
- Урок 72. Критерії застосування задач динамічного програмування
- Урок 74. Базові поняття обчислювальної геометрії
- Урок 75. Операції над векторами. Векторний добуток
- Урок 76. Обчислення площі многокутника
- Урок 79. Інструктаж з БЖД. Практична робота №12 “Основи обчислювальної геометрії”
-
Веб-технології
- Урок 85. Основні тренди у веб-дизайні.
- Урок 86. Види і типи сайтів. Цільова аудиторія.
- Урок 87. Інформаційна структура сайта.
- Урок 88. Системи керування вмістом
- Урок 89. Запуск проекту «Розробка власного сайта»
- Урок 90. Адміністрування сайта
- Урок 91. Інструменти веб-розробника
- Урок 92. Інструктаж з БЖД. Практична робота №13 “Створення макету інформаційної структури сайта”
- Урок 93. Мова гіпертекстової розмітки.
- Урок 94. Мова гіпертекстової розмітки. Списки на веб-сторінках
- Урок 95. Каскадні таблиці стилів
- Урок 96. Проектування та верстка веб-сторінок. Адаптивна верстка.
- Урок 97. Кросбраузерність.
- Урок 98. Інструктаж з БЖД. Практична робота №14 “Створення веб-сторінок”
- Урок 99. Графіка для веб-середовища.
- Урок 100. Анімаційні ефекти.
- Урок 103. Інструктаж з БЖД. Практична робота №15 “Графіка та мультимедіа для веб-середовища”
- Урок 105. Веб-програмування та інтерактивні сторінки.
- Урок 106. Хостинг сайта. Інструктаж з БЖД. Практична робота №16 “Розміщення сайту на сервері”
- Урок 108. Валідація та збереження даних форм.
- Урок 110. Правила ергономічного розміщення відомостей на веб-сторінці.
- Урок 111. Пошукова оптимізація та просування веб-сайтів. Інструктаж з БЖД. Практична робота №17 “Оцінка сайту. Просування сайту”
-
Парадигми програмування. повторення вивченого матеріалу
0.00 на основі 0 рейтингів