Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по информатике (2010-2011)(Лекц....doc
Скачиваний:
75
Добавлен:
04.11.2018
Размер:
20 Mб
Скачать

Тема 10. Основи офісного програмування Лекція 16: основи офісного програмування. Алгоритм, мова програмування.

Анотація

Програми, алгоритми, властивості алгоритму. Мови програмування. Засоби описання алгоритмів. Етапи технологічного процесу написання програми. Макроси MS Excel та технологія їх створення і виконання. Редактор VBA. Основи програмування мовою Visual Basic for Applications (VBA). Інтерфейс редактора VBA: вікно проекту (Project), властивості проекту (Properties Windows), перегляду об’єктів (Object Browser), редагування коду процедури, редагування форм (UserForm).

10.1. Алгоритми, властивості та способи представлення алгоритмів

Алгоритм — це скінченна послідовність однозначних розпоряджень, виконання яких дозволяє за допомогою скінченного числа кроків отримати розв’язання задачі, що однозначно визначається початковими даними.

      1. Властивості алгоритму (algorithm properties)

Будь-який алгоритм має відповідати таким вимогам:

  1. Масовість — застосовність алгоритму до будь-яких даних задач певного класу.

  2. Визначеність (детермінованість)(determinancy) — набір вказівок має бути точний, не залежати від виконавця.

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

  4. Зрозумілість — знання виконавця про те, що треба робити для виконання цього алгоритму.

  5. Результативність — кінцівка процесу перетворення вхідної інформації у вихідну.

  6. Формальність — результат виконання алгоритму не повинен залежати від будь-яких факторів, які не є частиною цього алгоритму.

      1. Способи представлення алгоритмів

Словесний запис алгоритму.

При даному способі запису алгоритму кожна операція перетворення формулюється природною мовою у вигляді правила. Правила нумеруються, щоб мати можливість на них посилатися, і зазначається порядок їх виконання. Ось приклад словесної форми запису алгоритму для знаходження найбільшого з трьох чисел. Маємо числа a, b, d. Знайти число x, рівне найбільшому з них.

Алгоритм розв’язання даної задачі можна представити чіткіше таким чином:

1. Якщо а b, то перейти до п. 4.

2. х покласти рівним b.

3. Перейти до п. 5.

4. х покласти рівним a.

5. Якщо х d, то перейти до п. 7.

6. х покласти рівним d.

7. Виведення х.

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

Формульно-словесний спосіб запису. Цей спосіб запису алгоритму ґрунтується на завданні інструкцій про виконання конкретних дій у певній послідовності з використанням математичних символів і виразів зі словесними поясненнями.

Наприклад, потрібно обчислити значення многочлена Pn(х) степеня n в певній точці x. Многочлен можна зобразити у відповідності зі схемою Горнера:

Словесно-формульний запис обчислення значення многочлена степеня n за схемою Горнера можливий, наприклад, такий:

1. i: = n.

2. S: = 0.

3. S: = S*x + ai .

4. i: = i — 1.

5. Якщо i  0, то перейти до п. 3.

Пункти 1, 2 виконуються по одному разу, а пп. 3—5 виконуються n + 1 разів.

Формульно-словесний спосіб запису алгоритму більш компактний і наочний в порівнянні зі словесним, але не є строго формалізованим.

Схема алгоритму [flowchart, flow diagram] являє собою графічне зображення процесу розв’я­зання задачі у вигляді послідовності блоків спеціального вигляду, що відображають специфіку перетворення інформації і сполучених між собою лініями чи стрілками, що вказують черговість виконання блоків.

Оформлення схем алгоритмів і програм повинно виконуватися відповідно до вимог цього стандарту: «Єдина система програмної документації. Схеми алгоритмів, програм, даних і систем. Умовні позначення і правила виконання» ГОСТ 19.701-90 (ИСО 5807—85).

Схеми програм відображають послідовність операцій у програмі. Схема програми складається з:

  1. символів процесу, що вказують фактичні операції обробки даних (включаючи символи, що визначають шлях, якого потрібно дотримуватися з урахуванням логічних умов);

  2. лінійних символів, які вказують потік керування;

  3. спеціальних символів, що використовуються для полегшення написання і читання схеми.

Прийняті графічні зображення блоків наведені в табл. 10.1.

Таблиця 10.1

ОСНОВНІ СИМВОЛИ СХЕМ АЛГОРИТМІВ

Символ

Найменування символу

Функція

Символи процесу

Основні

Процес

Виконання певної операції або гру­пи операцій, що призводить до зміни значення, форми або розміщення інформації чи до визначення, за яким з декількох напрямків потоку потрібно рухатися.

Специфічні

Зумовлений процес

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

Підготовка

Відображає модифікацію команди чи групи команд з метою впливу на певну наступну функцію (установка перемикача, модифікація індексного регістра або ініціалізація програми).

Розв’язання

Вказує вибір напряму виконання алгоритму чи програми в залежності від певних змінних умов.

Паралельні дії

Відображає синхронізацію двох або більше паралельних операцій.

Межа циклу

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

Символи ліній

Основні

Лінія

Символ відображає потік даних або керування. При необхідності або для підвищення зручності читання можуть бути додані стрілки-покажчики.

Специфічні

Пунктирна лінія

Символ відображає альтернативний зв’язок між двома або більше символами, а також використовується для обведення анотованої ділянки.

Спеціальні символи

З’єднувач

Відображає вихід у частину схеми і вхід з іншої частини цієї схеми і використовується для обриву лінії і продовження її в іншому місці. Відповідні символи-з’єднувачі повинні містити одне й те саме унікальне позначення.

Термінатор

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

Коментар

Використовують для додавання описових коментарів або пояснювальних записів з метою пояснення чи приміток.

Пропуск

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

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

Рис. 10.1. Схема алгоритму розв’язання квадратного рівняння

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

Операторна схема — аналітична форма представлення алгоритму за допомогою операторів, що діють на деякі елементи інформації. Для запису алгоритмів застосовують такі основні типи операторів: арифметичні, логічні, оператори переадресації і відновлення, оператори перенесення, оператори формування.

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

  1. оператори мають наскрізну порядкову нумерацію незалежно від їх призначення;

  2. якщо символи двох операторів стоять поруч, то це означає, що оператор, який стоїть праворуч, отримує керування від сусіднього зліва;

  3. якщо оператор, що стоїть праворуч, не отримує керування від оператора, що стоїть ліворуч, то між цими операторами ставиться крапка з комою;

  4. передача керування до оператора, що не стоїть праворуч поряд, позначається стрілкою.

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

У табл. 10.2 наведені символи-оператори, що використовуються в операторній схемі алгоритму даного прикладу.

Таблиця 10.2

СИМВОЛИ-ОПЕРАТОРИ ОПЕРАТОРНОЇ СХЕМИ

№ п/п

Символ-оператор

Етап обробки даних, що описується символом-оператором

1

В1

Введення початкових даних х, у, z

2

p2(x > y)

Перевірка виконання логічної умови х > у

3

[xR]

R присвоїти значення х

4

[yR]

R присвоїти значення у

5

p5(z > R)

Перевірка виконання логічної умови z > R

6

[zR]

R присвоїти значення z

7

П7

Друк результату обчислення R

8

O8

Зупинка

Операторну схему алгоритму можна представити так:

.

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

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

Як приклад приведемо запис псевдокоду обчислення факторіала, відомо, що n! = 123...(n-1)n.

алгоритм факторіал;

початок

введення (n);

f: = 1;

k: = 0;

поки k n

повторювати

початок

k: = k+1;

f: = fk;

кінець;

виведення (f)

кінець

Таблиця розв’язків [decision table]. Таблиця розв’язків — опис дій, які мають бути виконані під час різних комбінацій умов у вигляді матриці зі стовпцями, відповідними комбінаціям умов, і рядками, відповідними діям.

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

Наприклад, обчислити значення функції у, заданої формулою

Алгоритм обчислення цієї функції подамо в таблиці розв’язків.

Дія

Стан

х < 0

х > 0

х = 0

x2

1

0

0

х + 1

0

1

1

Як позначення для значень істинності звичайно використовують символи «ТАК» або «1», що означають, що відповідну дію потрібно виконати, «НІ» або 0 означає, що дія не виконується.

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

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