лучшие книги по экономике
Главная страница

Главная

Замовити роботу

Последние поступления

Форум

Создай свою тему

Карта сайта

Обратная связь

Статьи партнёров


Замовити роботу
Книги по
алфавиту

Б
В
Г
Д
Е
Ж
З
И
К
Л
М
Н
О

Інформатика та комп’ютерна техніка

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]

 

Формалізація та алгоритмізація
обчислювальних процесів
8.1. Основні відомості
Формалізації будь-якого процесу, завдання чи задачі передує вивчення структури елементів, з яких складається цей процес, в результаті чого з’являється так званий змістовний опис процесу. Той, у свою чергу, є вхідним матеріалом для створення формалізованої схеми процесу. Формалізована схема процесу/задачі має включати в себе:

  • характеристики процесу/задачі;
  • систему параметрів, що впливають на сам процес/задачу;
  • визначені залежності між характеристиками та параметрами процесу/задачі з урахуванням усіх потрібних факторів;
  • систематизовану й уточнену сукупність усіх вхідних даних, відомих параметрів процесу/задачі та початкових умов.

Після формалізації провадиться запис в аналітичній формі всіх співвідношень задачі, які ще не були відображені, викладаються логічні умови та описуються дії по реалізації процесу розв’язання.
8.2. Поняття алгоритму
Організована сукупність дій, необхідних для розв’язання поставленої задачі, називається алгоритмом.
Ефективним методом побудови алгоритмів є метод покрокової деталізації, при якому завдання розбивається на кілька простих підзадач (модулів), і для кожного модуля створюється свій власний алгоритм.
Здебільшого модуль реалізує певний процес обробки інформації і застосовується як для окремого використання, так і для включення модуля в інші алгоритми. Застосування модульності при створенні алгоритмів дозволяє розбити великі задачі на незалежні блоки (модулі), усуває повторення стандартних дій і значно прискорює процес відлагодження алгоритму в цілому. Найчастіше алгоритм складається з головного модуля, який містить декілька інших модулів, створених раніше. Використовуючи модулі як складові великої конструкції, можна створювати алгоритми будь-якого ступеня складності, і при цьому не втрачати контролю за функціюванням алгоритму всієї задачі. Такий метод називається структурним проектуванням алгоритму «зверху донизу», є універсальним і може використовуватися як для обчислювальних процесів (так зване системне програмування), так і для процесів реального життя.
В обчислювальних процесах алгоритм є послідовністю команд (директив або інструкцій), що визначає дії, які треба виконати для досягнення поставленої мети: розв’язання певної задачі.
8.2.1. Властивості алгоритму
Алгоритм повинен мати такі властивості:

  • Дискретність — процес розв’язку розбивається на кроки. Кожен крок — це одна дія або підпорядкований алгоритм (метод покрокової деталізації). Таким чином полегшується процес знайдення помилок і редагування алгоритму.
  • Визначеність (точність) — кожен крок алгоритму має бути однозначно описаною дією і не містити двозначностей.
  • Зрозумілість — усі дії, включені до алгоритму, мають бути у межах компетенції виконавця алгоритму.
  • Універсальність (масовість) — алгоритм має виконуватися при будь-яких значеннях вхідних даний та початкових умов.
  • Скінченність — алгоритм має бути реалізований за конечне число кроків і повинен користуватися конечним набором вхідних значень.
  • Результативність — алгоритм має привести до отримання результату.

Якщо алгоритму присутні перелічені вище властивості, то його виконання провадиться формально, тобто точно за схемою алгоритму, без будь-яких втручань у послідовність дій та у самі дії.
8.2.2. Способи опису алгоритмів
Алгоритми можуть бути описані

  • усно;
  • словесно (у вигляді плану дій — розпоряджень);
  • графічно (у вигляді блок-схем).

Найчастіше алгоритми обчислювальних процесів подаються у вигляді блок-схем, де кожний крок алгоритму представлений спеціальним блоком, який умовно показує дію, яку треба виконати. Сама дія записується всередину блоку і є конкретною для даного алгоритму.
Умовні зображення блоків, їх призначення та дії,
які виконуються за допомогою вибраних блоків


Графічне
зображення

Призначення

Виконувана дія

Пуск

Початок алгоритму

Останов

Закінчення алгоритму

Уведення/
виведення

Уведення або виведення даних

Процес

 

Виконання обчислень або присвоєння значень

Розв’язок

Перевірка умови. Якщо умова справедлива (набуває значення ИСТИНА), виконується перехід по лінії Так, а якщо не справедлива (набуває значення ЛОЖЬ), то виконується перехід на наступний блок по лінії Ні

Визначений процес

Виклик раніше створених алгоритмів (модулів)

Модификація

Найчастіше використовується при присвоєнні нових значень старим, тобто тим, що вже були раніше описані

 

Коментар

Короткі пояснення до показаного блоку

Поєднувач

Поєднання одного блоку з іншим

Блоки поєднуються між собою лініями потоку інформації — лініями зі стрілками, при цьому, якщо інформація передається по блоках зверху вниз або праворуч, стрілки не проставляються. Якщо треба поєднати один блок з іншим, рекомендується не перетинати лінії потоку, а використовувати поєднувач блоків. Для використання поєднувача блоки мають бути попередньо пронумеровані, а сам поєднувач має містити цифру — номер блоку, з яким відбувається поєднання або номер блоку, з якого відбувається поєднання.
8.2.3. Базові структури алгоритмів
Розрізняють три базові алгоритмічні структури (конструкції):

  • Лінійна структура
  • Розгалужена структура
  • Циклічна структура

Лінійна структура використовується в алгоритмах, де одна дія виконується слідом за іншою послідовно в порядку розташування блоків, і при цьому жодна з дій не пропускається і не повторюється.
Розгалужена структура передбачає вибір виконання дії залежно від виконання певної умови, при цьому деякі дії можуть не виконуватися взагалі (пропускатися). Умова може бути простою і складною.
Проста умова містить два вирази (значення), поєднані знаком операції відношення:
>     більше за…
<     менше за…

  • більше або дорівнює…
  • менше або дорівнює …
  • не дорівнює…

Результатом перевірки умови є логічний вираз ИСТИНА, якщо умова виконується, або ЛОЖЬ, якщо умова не виконується.
Складна умова містить дві або більше простих умов, поєднаних знаками логічних операцій:
И         — усі вказані умови мають виконуватися одночасно, тобто результатом усіх включених простих умов має бути ИСТИНА. При цьому операція И дасть результат ИСТИНА, а якщо хоча б одна з перелічених умов має результат ЛОЖЬ, операція И дасть результат ЛОЖЬ.
ИЛИ    — деякі з указаних умов можуть виконуватися, а деякі — ні. Якщо жодна з перелічених умов не виконується, то результатом операції ИЛИ буде ЛОЖЬ, у всіх інших випадках — результат ИСТИНА.
НЕ       — заперечення для умови.
Нижче показані результати перевірки складних умов, які містять по дві прості умови:

Умова 1

Умова 2

И (Умова1;Умова2)

ИЛИ (Умова1;Умова2)

НЕ (Умова1)

ИСТИНА

ИСТИНА

ИСТИНА

ИСТИНА

ЛОЖЬ

ЛОЖЬ

ИСТИНА

ЛОЖЬ

ИСТИНА

ИСТИНА

ИСТИНА

ЛОЖЬ

ЛОЖЬ

ИСТИНА

 

ЛОЖЬ

ЛОЖЬ

ЛОЖЬ

ЛОЖЬ

 

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

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

8.3. Приклади алгоритмів
8.3.1. Лінійна структура алгоритму
Знайти значення виразу:

для заданих вхідних значень a, c і x =cos(a2c2).
При формалізації поставленого завдання використовується метод покрокової деталізації і з’ясовується, що процес визначення Y розбивається на такі етапи:

  • Визначення вхідних значень змінних a, c.
  • Обчислення виразу x =cos(a2c2).
  • Обчислення виразу .
  • Виведення отриманих вихідних значень x та Y.

Створення алгоритму полягає у використанні таких блоків:

  • При уведенні та виведенні даних використовується блок Уведення/Виве­дення:

 

  • При обчисленні виразів
    у блок-схемі використовується блок Процес, а при запису виразу використовується знак := (знак присвоєння значень).

  • Алгоритм починається блоком Пуск:

а закінчується блоком Останов:

Нижче показана блок-схема алгоритму вирішення поставленого завдання:

З прикладу видно, що кожен блок, що складає схему алгоритму, виконується послідовно і не повторюється, тобто алгоритм справді має лінійну структуру.
8.3.2. Розгалужена структура алгоритму
Приклад 1: Обчислити значення коренів квадратного рівняння:
ax2 + bx + c = 0.
При формалізації процес визначення коренів квадратного рівняння розбивається на такі етапи:

  • Уведення вхідних значень коефіцієнтів a, b і вільного члена c.
  • Визначення значення дискримінанта.

D = b2 – 4ac.

  • Перевірка отриманого значення дискримінанта: якщо диск­римінант ? 0, то можна продовжувати обчислення і визначати корені рівняння, в противному разі дійсних значень коренів немає.
  • Продовження обчислень — визначення коренів:

,
.

  • Виведення отриманих результатів: x1 та x2.
  • Виведення повідомлення

Дійсних коренів немає

у разі коли дискримінант < 0.

Алгоритм може виконуватися у порядку 1, 2, 3, 4, 5 пунк-
ти, якщо перевірка умови дає результат ИСТИНА, або у порядку 1, 2, 3, 6 пункти, якщо перевірка умови дає результат ЛОЖЬ.
Нижче наведена блок-схема алгоритму:


У блок-схемі алгоритму блок № 4 використовується для перевірки умови і реалізує розгалуження: якщо умова набуває результату істина, далі алгоритм продовжується по блоках 5, 6, 7, 9, а блок 8 зовсім не використовується. Навпаки, коли умова набуває значення хиба, алгоритм продовжується по блоках 8, 9, при цьому блоки 5, 6, 7 не виконуються взагалі.

Приклад 2: Обчислити значення виразу:

При х > 12 та х = 4 функція не визначена.
Етапи розв’язання задачі:

  • Уведення коефіціентів a, b.
  • Уведення вхідного значення аргументу x.
  • Перевірка значення аргументу x:
  • Якщо = 2, то значення Y обчислюється за формулою

.

  • Якщо x = 4, < 2 або x > 12, то виводиться повідомлення, що функція не визначена.
  • Якщо x > 8, то значення Y обчислюється за формулою:

.

  • Якщо жодна з перерахованих вище умов не виконується, то значення Y обчислюється за формулою:

  • Виведення значення Y.

На третьому етапі алгоритм має містити розгалуження, яке реалізовує перевірку складної умови.
Так само для побудови блок-схеми використовуються стандартні блоки, що реалізують наведені вище етапи розв’язання задачі.
Нижче показана блок-схема створеного алгоритму:

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]


ВНИМАНИЕ! Содержимое сайта предназначено исключительно для ознакомления, без целей коммерческого использования. Все права принадлежат их законным правообладателям. Любое использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием содержимого сайта.
© 2007-2021 BPK Group.