Інформатика – Поглиблений рівень

Безкоштовно

Ніхто не записаний

Урок 32. Кодування алгоритмів. Поняття складності алгоритмів. Математична модель, вибір структури даних

  • З якими мовами програмування ви вже знайомі?
  • Чи можна один і той самий алгоритм реалізувати мовою програмування різними способами?
  • Які способи подання алгоритму ви знаєте?

Прочитайте!

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

Кодування алгоритму — це запис алгоритму мовою програмування.

Структурне програмування в Python виконується за допомогою обов’язкових відступів. Складені оператори об’єднують у блоки. Це означає, що відступи інструкцій кожного блоку встановлюються автоматично, але після останньої інструкції блоку програміст має самостійно змінити відступ.
За наданим програмним кодом легко встановити умову задачі. Приклад програмного коду мовою Python зображено на рис.

Така програма є досить наочною, її легко читати, розуміти та здійснювати пошук помилок. Простим і водночас потужним засобом забезпечення наочності програми є використання коментарів.

У програмному коді доцільно використовувати не однобуквені ідентифікатори, а смислові назви, так, масив краще позначити не буквою m, а ідентифікатором masyv або іншим.

Наведемо деякі рекомендації для підвищення ефективності програм.

  1. Фрагменти коду, що багаторазово повторюються, бажано оформляти у вигляді функції. Це дозволяє скоротити довжину програми, а відповідно й обсяг потрібної пам’яті. Використання функцій не тільки скорочує довжину програми, а й спрощує процес її розроблення і налагодження, підвищує структурованість і надійність програм.
  2. З метою скорочення кількості операцій у складному математичному виразі доцільно виділяти та окремо обчислювати прості вирази. Пояснимо сутність прийому на прикладі. Припустимо, що потрібно обчислити вираз:                                                            y:=(a+c+b-d)/(2/(a+c-3)*(b-d)*(a+c).
  3. Щоб обчислити вираз, потрібно виконати 4 операції додавання, 3 операції віднімання, 2 операції множення, 2 операції ділення. Обчислимо вираз за схемою: x1:=a+c; x2:=b-d; y:=(x1+x2)/(2/x1-3)*x2*x1.
  4. Щоб обчислити вираз, потрібно виконати: 2 операції додавання, 2 операції віднімання, 2 операції множення і 2 операції ділення. Як бачимо, кількість арифметичних операцій скоротилася на три.
  5. Вирази, які не змінюються в тілі циклу, доцільно для наочності програми виконувати до початку тіла циклу.

Складність алгоритму — це функція, що дозволяє визначити, як швидко збільшується час роботи алгоритму зі збільшенням обсягу даних. Складність алгоритму оцінюється людськими ресурсами, потрібними для розробки та тестування алгоритму, й обчислювальними ресурсами. Із практичної точки зору обчислювальні ресурси оцінюються нині двома основними критеріями: обсягом пам’яті, потрібної для реалізації алгоритму, та кількістю часу, необхідного для виконання алгоритму.

Кількість необхідного часу для виконання програми називають обчислювальною складністю. Відзначимо, що ця кількість є неоднозначною оцінкою, оскільки залежить від параметрів апаратних засобів комп’ютера. На одному комп’ютері алгоритм може бути виконаний за один проміжок часу, а на іншому — за інший.

Працюємо за ПК!

Завдання 1. Напишіть програму для підрахунку дрібних грошей. Вона повинна питати:

  • «Скільки у вас монет по 50 копійок?»;
  • «Скільки у вас монет по 10 копійок?»;

Після того, як ми з клавіатури вводимо кількість монет, програма має обчислити суму грошей, яка у нас є, вивівши окремо гривні (цілу частину) та окремо монети (остачу від ділення).

Завдання 2. Створіть програму, для визначення цифр тризначного натурального числа. Доповніть програму, щоб вона визначала суму та добуток цифр.

Завдання 3. Обчислити значення виразу (a+b)-с/(a-2*b), де a, b і c – довільні числа.

Завдання 4. Дано два числа, визначити чи є вони рівні. Якщо ні, то яке з них більше.

Завдання 5. Обчисліть площу трикутника (за формулою Герона) якщо відомо усі три його сторони.

 

 

0.00 на основі 0 рейтингів

5 зірок
0%
4 зірок
0%
3 зірок
0%
2 зірок
0%
1 зірок
0%