У вас вопросы?
У нас ответы:) SamZan.net

і. Тому кваліфікований спеціаліст повинен мати високий рівень знань в області інформаційних технологій вміт

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 7.3.2025

Вступ

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

Мова програмування Visual Basic є об’єктно-орієнтованою мовою програмування, дає змогу студентам познайомитися з основами об’єктно-орієнтованого  програмування, яке в сучасних програмах автоматизації професійної діяльності часто застосовується для настроювання середовища. Наприклад,  об’єктно-орієнтовані технології використовуються у програмах 1С: Підприємство, Акцент – бухгалтерія та ін. Мова Visual Basic є також базовою для додатків Microsoft Office, які на теперішній час є найбільш вживаними для обробки текстової, табличної інформації, роботи з базами даних.

Навчальний посібник  підготовлено по основних темах розділу “Основи програмування мовою Visual Basic” дисципліни “Інформатика та комп’ютерна техніка” у відповідності з типовою програмою базового рівня підготовки спеціалістів вищої кваліфікації з урахуванням сучасних досягнень в області комп’ютерних технологій.

Посібник містить сім розділів. У першому розділі розглядаються питання створення програм у середовищі Visual Basic 6.0 – основні поняття мови програмування, етапи створення програм. Другий розділ присвячено питанням використання операторів мови для організації розгалужених і циклічних обчислювальних процесів. У третьому розділі розглянуто розробку програм із застосуванням смуг прокручування, перемикачів, прапорців, груп, списків, що розчиняються, декількох форм. Четвертий розділ дає змогу познайомитися з процесом створення програм із застосуванням меню і масивів елементів управління та змінних. У п’ятому розділі розглядаються питання створення програм із використанням підпрограм – процедур і функцій. Шостий розділ присвячено знайомству з роботою з файлами. У сьомому розділі викладені основні поняття Visual Basic for Application для табличного процесору Microsoft Excel, правила роботи з редактором VBA, розглянуті питання створення функцій користувача, автоматизації розрахунків на робочому листі, роботи з формами у середовищі VBA.


1 Створення програм у середовищі Visual Basic 6.0.

Основні поняття - об'єкт, властивість, подія.

Середовище візуального програмування Visual Basic завантажується так само, як і будь-яка програма за допомогою головного меню операційної системи Windows: Пуск - Програми - …  Для створення нової програми необхідно виконати команду меню File - New Project, обрати у вікні діалогу New Project значок Standard EXE, клацнути на кнопці Ok.  У результаті виконання команди з'являються вікна проекту, у тому числі вікно першої форми з заголовком Form1. Можна приступити до створення програми.

Процес розробки програм у середовищі Visual Basic містить у собі 2 етапи:

  •  етап візуального програмування;
  •  етап програмування у вихідному коді.

1.1 Візуальне створення програми

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

Форми і всі елементи управління, які використовуються в Windows-додатках, є об'єктами. Мова програмування Visual Basic реалізує концепцію об'єктно-орієнтованого програмування, відповідно до  якої програміст одержує можливість працювати з об'єктами так, як це виконується в навколишньому світі. Поняття об'єкта містить у собі елемент роботи (наприклад, форму, перемикач або командну кнопку), параметри об'єкта, що називаються властивостями, і програмні засоби для роботи з ним - методи.

Для створення нової форми проекту потрібно виконати команду меню Project - Add Form, створення інших об'єктів виконується за допомогою панелі елементів. Управління виведенням панелі елементів здійснюється за допомогою команди меню View - Toolbox.

За допомогою кнопок на панелі елементів можна помістити у форму необхідний елемент управління. Для цього потрібно клацнути на значку елемента управління, далі при натиснутій лівій кнопці миші визначити розмір і місце розташування елемента у формі. Коли об'єкт є виділеним, активним (рамка об'єкта містить маленькі прямокутники) можна змінити розмір об'єкта, переміщувати об'єкт за допомогою миші.

Рисунок 1.1 - Вікно панелі елементів

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

-

Малюнок  (PictureBox)

-

Етикетка або поле напису (Label)

-

Текстове поле, що можна використовувати для введення, виведення даних (TextBox)

-

Група (Frame)

-

Командна кнопка (CommandButton)

-

Прапорець (CheckBox)

-

Перемикач (OptionButton)

-

Горизонтальна смуга прокручування (HScrollBar)

-

Вертикальна смуга прокручування (VScrollBar)

-

Таймер (Timer)

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

Для зміни властивостей об'єктів необхідно відчинити вікно властивостей командою View - Properties Window. У вікні відображається список властивостей активного в даний момент об'єкта. Склад переліку властивостей залежить від типу об'єкта. Щоб змінити значення властивості потрібно клацнути на кнопці праворуч від рядка властивості або активізувати рядок і ввести дані за допомогою клавіатури.

Характеристика деяких властивостей об’єктів подана  в таблиці:

Об'єкт

Властивість

Опис

1

2

3

Форма (Form)

Name

Ім’я об’єкту

Caption

Опис - текст, який буде видаватися в заголовку форми

BackColor

Колір форми

BorderStyle

За замовчуванням приймає значення 2 - Sizable - розмір вікна під час роботи програми можна змінити за  допомогою рамки. Якщо властивості привласнити значення, наприклад, 1 - Fixed Single, рамка стає недоступною  

ControlBox

Властивість управляє виведенням кнопок Згорнути, Розгорнути, Зачинити, системного меню. Якщо властивість приймає значення True (Істина), кнопки у вікні присутні, False (Брехня)  - відсутні.

Командна кнопка (CommandButton)

Name

Ім’я елемента управління

Caption

Надпис - текст на кнопці

Font

Шрифт надпису

1

2

3

Етикетка

(Label)

Name

Ім’я елемента управління

Caption

Надпис - текст, який друкується в формі

BackColor

Колір фону

ForeColor

Колір символів

Alignment

Спосіб вирівнювання: Left Justify - по лівому краю, Right Justify – праворуч, Center - по центру.

AutoSize

Розмір надпису визначається автоматично, якщо значення властивостей True (Істина), користувачем  - при значенні False (Брехня).

Текстове поле (TextBox)

Name

Ім’я елемента управління

Text

Надпис - текст, який друкується в полі

BackColor

Колір фону

ForeColor

Колір символів

Alignment

Спосіб вирівнювання

Enabled

Значення властивості True визначає, що поле можна використовувати як для введення, так і для виведення інформації, False – лише для виведення.

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

Об'єкт

Перші 3 символи імені

Приклад імені

Form

frm

frmMyForm

Picture Box

pic

picChema

Label

lbl

lblInfo

Text Box

txt

txtInput

Frame

fra

fraChoices

Command Button

cmd

cmdExit

Check Box

chk

chkSound

Option Button

opt

optLevel

HScrollBar

hsb

hsbSpeed

VScrollBar

vcb

vcbSpeed

Timer

tmr

tmrAnswer

Як приклад  створення програми в середовищі Visual Basic описано процес розробки програми «Обчислення квадрата числа», у ході виконання якої користувач може ввести в поле Число будь-яке число і після натискання кнопки Обчислення в поле Результат вивести квадрат числа. Натискання кнопки Очищення призводить до видалення значень із полів Число і Результат, Вихід - до завершення роботи програми. Після запуску програми повинно з'явитися вікно, аналогічне поданому на рис.1.2.

Рисунок 1.2 - Вікно програми обчислення квадрата числа

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

Об'єкт

Властивість

Значення

1

2

3

Форма (Form)

Name

frmSolve

Caption

Програма обчислення квадрата числа

BackColor

жовтий (властивість доцільно  визначити за допомогою вкладинки Palette)

Командна кнопка (Command Button)

Name

cmdSqr

Caption

&Обчислення

Font

Times New Roman Cyr, Bold (напівжирний), 12 пунктів

Командна кнопка (Command Button)

Name

cmdClear

Caption

Очи&стка

Font

Times New Roman Cyr, Bold, 12 п.

Командна кнопка (Command Button)

Name

cmdExit

Caption

&Вихід

Font

Times New Roman Cyr, Bold, 12 п.

Етикетка (Label)

Name

lblNumber

Caption

Число:

Font

Times New Roman Cyr, Bold, 14 п.

BackColor

жовтий

ForeColor

коричневий

AutoSize

True

Етикетка (Label)

Name

lblResult

Caption

Результат:

Font

Times New Roman Cyr, Bold, 14 п.

BackColor

жовтий

ForeColor

коричневий

AutoSize

True

1

2

3

Текстове поле (TextBox)

Name

txtNumber

Text

порожній рядок - пробіл (властивість не повинна мати значення)

Font

Times New Roman Cyr, Bold, 14 п.

Enabled

True

Текстове поле (TextBox)

Name

txtResult

Text

порожній рядок - пробіл

Font

Times New Roman Cyr, Bold, 14 п.

Enabled

False

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

1.2 Створення вихідного коду

Visual Basic є мовою, що орієнтована на опрацювання подій. Це означає, що визначені частини програми виконуються у відповідь на визначені події. Подією є, наприклад, клацання лівою кнопкою миші на командній кнопці (подія Click), натискання клавіші на клавіатурі (подія KeyPress).

Щоб увести вихідний код для визначеного елемента потрібно виконати подвійне клацання на елементі. У результаті відчиняється вікно коду, в якому міститься заголовок і останній рядок процедури. Дана процедура описує дії, що потрібно виконати, у випадку настання визначеної події (наприклад, для командних кнопок за замовчуванням створюється процедура для події Click - натискання лівої кнопки миші). Ім'я процедури містить ім'я об'єкта, знак підкреслення, назву події. Щоб змінити подію можна використовувати список у верхній правій частині вікна коду Procedure.

У процедурах можна змінювати властивості об'єктів. Для цього потрібно зазначити ім'я об'єкта, поставити крапку, визначити властивість, після знака = увести нове значення властивості. У цьому випадку знак = використовується як оператор привласнення. Властивостям об'єктів можна привласнювати числові та текстові значення. Якщо властивостям об'єктів слід надати текстові значення, їх треба зачинити у подвійні лапки (“_”). Наприклад,

txtZ.Text = 45

– властивості Text текстового поля txtZ привласнюється значення 45

txtMes.Text  = “Помилка”

– властивості Text текстового поля txtMes привласнюється значення рядка символів “Помилка”

lblY.Caption = 100

– властивості Caption етикетки lblY привласнюється значення 100

lblV.Caption = “Результат: ”

– властивості Caption етикетки lblY привласнюється значення рядка символів “Результат: ”

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

Змінні, використовувані в програмі, потрібно оголосити в розділі оголошення змінних. Для цього у вікні коду в списку Object потрібно вибрати General (Загальний розділ), у списку Procedure - Declaration (Оголошення). На початку розділу доцільно ввести оператор Option Explicit. Даний оператор визначає, що в програмі заборонено використання змінних, які не оголошено. Якщо в процедурах будуть використовуватись змінні, які попередньо не оголошені, система видасть повідомлення про помилку. Щоб уникнути зайвих помилок оператор Option Explicit у програмах потрібно використовувати.

Для оголошення змінних використовується оператор Visual Basic Dim. При оголошенні змінних слід визначити їх ім’я, можна задати тип даних. Мова Visual Basic підтримує роботу з такими типами даних:

integer

- ціле число

single

- число

currency

- грошове значення

string

- рядок символів

byte

- ціле число в діапазоні від 0 до 255

boolean

- логічне значення, що може приймати лише значення True (Істина, 1) або False (Брехня, 0)

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

Dim X

Dim A, B, C

Dim Z As integer

Змінним, як і властивостям об'єктів, можна привласнювати різні значення.

Змінним і властивостям об'єктів можна також привласнювати результати обчислення деяких виразів. У виразах можна застосовувати числа, змінні, знаки арифметичних операцій “+”, “-“, “*”, “/”. Якщо вираз використовується для обчислення деякого числового значення, у ньому можна застосовувати лише змінні числових типів. Припустимими є операції конкатенації – об’єднання текстових значень. Приклади використання виразів:

lblX.Caption = X + 15

Z = (X+Y)/3

lblPrim.Caption = “Мова ”+ “програмування”

У програмах можуть також використовуватися константи. Константи – це якісь значення (числові, текстові та ін.), яким у програмі надано ім’я. Після оголошення констант їх можна використовувати у виразах. Оголошення констант здійснюється в розділі загальних оголошень General  Declaration за допомогою оператору Const. Приклади оголошення констант:

Const X=16308

Const Povid=“Повідомлення про помилку: ”

Далі константи можна використовувати, наприклад так:

lblZ.Caption = X*40

lblRes.Caption = Povid+CodOsh

Завершення роботи програми здійснюється виконанням оператору End.

При створенні коду програми можна використовувати буфер обміну, а саме такі команди меню:

EditCopy: копіювання виділеного фрагмента в буфер обміну (команда Копировать);

EditCut: вирізування фрагменту в буфер обміну (команда Вырезать);

EditPaste: вставка даних з буферу обміну в позицію курсору (команда Вставить).

При розробці  програми можна використовувати вікно проекту. Якщо вікно проекту відсутнє, його можна вивести командою View - Project Explorer. У результаті з'явитися вікно, показане на рис.1.3.

Рисунок 1.3 - Вікно проекту

Для створення коду програми, що подається як приклад,  необхідно ввести опис змінних, створити такі процедури:

Дані в рядку коду

Коментар

1

2

Option Explicit

Dim X

Оголошення змінної Х, в якій буде знаходитися число

Dim Y

Оголошення змінної У для обчислення квадрата числа Х

Private Sub cmdClear_Click()

Заголовок процедури, яка виконується у випадку події Click - клацання кнопкою миші на кнопці cmdClear (Очистка) або натиснення ALT + с.

txtNumber.Text = "└┘"

Властивості Text текстового поля txtNumber (для введення числа Х) привласнюється значення “└┘“ (порожній рядок).

txtResult.Text = "└┘"

Властивості Text текстового поля txtResult (для виведення результату - числа У) привласнюється значення “└┘“ (порожній рядок).

End Sub

Кінець процедури cmdClear_Click.

Private Sub cmdExit_Click()

Заголовок процедури, яка виконується у випадку клацання кнопкою миші на кнопці cmdExit (Вихід) або  натиснення клавіш ALT + В.

End

Кінець роботи програми

End Sub

Кінець процедури cmdExit_Click.

1

2

Private Sub cmdSqr_Click()

Заголовок процедури, яка виконується у випадку клацання кнопкою миші на кнопці cmdSqr (Обчислення) або  натиснення клавіш ALT + О.

X = Val(txtNumber.Text)

Змінній Х привласнюється значення властивості Text об'єкта txtNumber - значення числа, яке введено за допомогою клавіатури. Оскільки значення текстового поля має тип даних  string (текстові дані), щоб можна було виконувати обчислення, їх треба перетворювати до числових значень з використанням функції Val.

Y = X * X

У змінну У записується  результат множення числа Х на Х.

txtResult.Text = Str(Y)

Властивості Text об'єкту txtResult привласнюється значення змінної У. За допомогою функції Str виконується перетворення числового значення змінної У у рядок символів.  

End Sub

Кінець процедури cmdSqr_Click.

Після створення вихідного коду можна приступити до апробації програми. Для запуску програми на виконання використовується команда меню Run - Start. У випадку виявлення помилок можна завершити виконання програми командою Run - End, внести необхідні виправлення в програму.

Щоб зберегти проект на магнітному диску потрібно виконати команду File - Save Project або скористатися інструментом Save Project. При зберіганні проекту на диск записуються такі файли:

файл проекту (файл із розширенням VBP), у якому утримується інформація про будівлю проекту;

файли форм (файли із розширенням FRM) з описом форм.

Коли програма створена можна одержати файл програми у машинних кодах - файл із розширенням EXE. Такий файл можна буде використовувати безпосередньо для запуску програми на виконання, причому він буде незалежний від середовища візуального програмування Visual Basic. Щоб одержати файл програми, готовий до виконання, використовується команда меню File - Make <ім'я проекту>. exe. Для запуску отриманої даним способом програми не потрібно завантажувати Visual Basic, відчиняти в середовищі Visual Basic проект, виконувати команду Run - Start. Проте, для роботи з таким файлом потрібно, щоб у каталозі SYSTEM знаходився файл MSVBVM60.DLL, у якому міститься бібліотека стандартних підпрограм Visual Basic.

Щоб надрукувати програму потрібно виконати команду File - Print, у вікні діалогу команди обрати опцію Current Project (поточний проект), для друку форми включити прапорець Form Image, коду - прапорець Code.

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

  1.  Чому мову Visual Basic називають об'єктно-орієнтованою мовою програмування? Що таке об'єкт?
  2.  Як на етапі візуальної розробки програми створити нову форму, помістити елементи управління в форму?
  3.  Які властивості форм, етикеток, текстових полів, командних кнопок Вам відомі? Як змінити властивості об'єктів?
  4.  Визначить поняття «подія». Що означає подія Click?
  5.  Для чого в коді програми використовується оператор Option Explicit?
  6.  Що таке змінна? Як у коді програми можна оголосити змінні?
  7.  Як змінюються в коді програми властивості об'єктів?
  8.  З якими операторами Visual Basic Ви познайомились?
  9.  Які файли створюються при записі проекту на магнітний диск? Як створити файл програми, готовий до виконання?

1.4 Практичні завдання

Завдання

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форму, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форму та код програми. Звіт про роботу повинен вміщувати:

  •  роздруковану форму програми;
  •  роздрукований код програми.

Варіант №1

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

Варіант №2

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

Рисунок 1.4  - Вікно програми

Варіант №3

Створити програму, за допомогою якої можна ввести суму нарахованої заробітної плати працівнику підприємства. Після натиснення на кнопці Обчислення програма повинна видавати: суму прибуткового податку – 13% від нарахованої заробітної плати, суму відрахувань у пенсійний фонд – 1% від нарахованої заробітної плати, суму відрахувань у фонд зайнятості – 0,05% від нарахованої заробітної плати, суму до виплати – нарахована заробітна плата мінус усі суми відрахувань.

 

Варіант №4

Створити програму, за допомогою якої можна ввести закупівельну ціну товару. Після натиснення на кнопці Розрахунок програма повинна видавати: суму торговельної націнки – 10% від закупівельної ціни товару, суму реалізації товару – закупівельна ціна плюс сума торговельної націнки.

Варіант №5

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

Варіант №6

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

Варіант №7

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

Варіант №8

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

Варіант №9

Створити програму, за допомогою якої можна ввести складові собівартості продукції – підручників: вартість паперу, заробітна плата виробничого персоналу, оренда обладнання, гонорар автора, а також кількість виробів. Після натиснення на кнопці Розрахунок програма повинна видавати: суму загальних витрат на друкування підручників, собівартість одного підручника, ціну одного підручника, виходячи з того, що плановий прибуток підприємства складає 20%.

Варіант №10

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

Варіант №11

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

 


Варіант №12

Створити програму, за допомогою якої можна ввести дані про ціни товару в поточному і попередньому роках. Після натиснення на кнопці Розрахунок програма повинна видавати: суму зміни ціни товару (нова ціна – стара ціна), відсоток відхилення ціни .

 Варіант №13

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

Варіант №14

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

Варіант №15

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

1.5 Тест

Відповідь

Вміє

Не вміє

  1.  Яке з визначень об’єкту є найбільш повним?

  1.  Об’єкт – це елемент управління

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

  1.  Об’єкт – це елемент роботи, з яким під час виконання програми може відбутися певна подія

  1.  Що з перерахованого є властивостями об’єктів?

  1.  Name

  1.  Click

  1.  TextBox

  1.  Caption

  1.  Як вивести вікно властивостей об’єктів?

  1.  командою меню View - Toolbox

  1.  командою меню View - Properties Window

  1.  командою меню View - Project Explorer

  1.  Що з перерахованого є подією?

  1.  KeyPress

  1.  Text

  1.  Command Button

  1.  Click

  1.  Які оператори коду, що визначають властивості об'єктів, помилкові?

  1.  frmGlav.Caption = Програма розрахунку значень функцій

  1.  txtNum.Caption = “Приклад“

  1.  txtPr.Text = “Введіть число”

  1.  txtR.Caption = “Результат = ”

  1.  lblZap.Caption = 16

  1.  Які вирази є правильними?

  1.  X = (Y + 47) * 3

  1.  lblR.Caption = “Результат: ” +12 / X

  1.  txtX.Text= “X=”+str(X)

  1.  Які ствердження щодо призначення процедур правильні?

  1.  Процедура Private Sub txtNumber_Click() виконується у випадку клацання лівою кнопкою миші на командній кнопці txtNumber.

  1.  Процедура Private Sub txtNumber_Click() виконується у випадку подвійного клацання лівою кнопкою миші на текстовому полі txtNumber.

  1.  Процедура Private Sub txtX_KeyPress() виконується у випадку натиснення будь-якої клавіші, коли курсор перебуває в текстовому полі txtX.

  1.  Процедура Private Sub cmdExit_Click() виконується у випадку клацання лівою кнопкою миші на кнопці cmdExit.


2 Основні оператори мови

2.1 Організація  розгалужених обчислювальних процесів

2.1.1 Умовний оператор If

Оператор If реалізує алгоритмічну конструкцію “Розгалуження”.

Загальна форма оператора:

If <умова> then

       <Блок_операторів_1>

Else

       <Блок_операторів_2>

End If

“Блок_операторів_1” виконується в тому випадку, якщо умова має значення «істинно». У тому випадку, якщо логічна умова має значення «брехня» виконується “Блок_операторів_2”.

Оператор If можна використовувати також у такій формі:

If умова Then

       Блок_операторів

End If

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

Приклад використання оператора If

Використання оператора If розглянуто на прикладі програми розрахунку суми до виплати співробітникам підприємства. Користувач програми повинен увести суму нарахованої заробітної платні. З нарахованої суми слід відняти прибутковий податок і внесок у пенсійний фонд. Прибутковий податок  сплачується в розмірі 13% від нарахованої заробітної плати. Внесок у пенсійний фонд складає 1% від нарахованої заробітної платні, якщо нараховано менш 150 грн., і 2% в іншому випадку. У програмі використовуються такі змінні:

S – сума нарахованої заробітної платні;

PP – сума прибуткового податку;

PF – сума внеску в пенсійний фонд;

SV – сума до виплати.

Блок-схема розв’язання задачі подана на рисунку 2.1.


Рисунок 2.1 - Блок-схема розв’язання задачі “Розрахунок суми до виплати працівникові підприємства”

На етапі візуального програмування потрібно створити форму, подану на рисунку 2.2.

Рисунок 2.2 - Вікно програми – прикладу використання оператору If


Характеристика форми, елементів управління подана в таблиці.

Об'єкт

Властивість

Значення

Форма (Form)

Name

frmExampleIf

Caption

Програма - приклад If

BackColor

білий

Командна кнопка (Command Button)

Name

cmdSolve

Caption

Розрахунок

Font

12 пунктів, напівжирний

Командна кнопка (Command Button)

Name

cmdClear

Caption

Очистка

Font

12 пунктів, напівжирний

Командна кнопка (Command Button)

Name

cmdExit

Caption

Вихід

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblS

Caption

Нараховано:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblSVZ

Caption

Сума до виплати:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblSV

Caption

0

BackColor

білий

Font

12 пунктів, напівжирний

Alignment

1 – Right Justify (вирівнювання праворуч)

Текстове поле

(TextBox)

Name

TxtS

Text

” (порожній рядок)

Характеристика коду програми подана  в таблиці.




Дані в рядку коду

Коментар

Option Explicit

Оголошення змінних:

Dim S, PP, PF,  SV

S – сума нарахованої заробітної платні;  PP – сума прибуткового податку; PF – сума внеску в пенсійний фонд;  SV – сума до виплати.

Private Sub cmdClear_Click()

Заголовок процедури, яка виконується у випадку події Click – клацання лівою кнопкою миші на кнопці cmdClear (Очистка).

TxtS.Text = " "

Властивості Text текстового поля txtS (для введення нарахованої суми) привласнюється значення “” (порожній рядок).

lblSV.Caption = 0

Властивості Caption етикетки lblSV (для виведення результату – суми до виплати) привласнюється значення 0.

End Sub

Кінець процедури cmdClear_Click.

Private Sub cmdExit_Click()

Заголовок процедури, яка виконується у випадку події Click – клацання лівою кнопкою миші на кнопці cmdExit (Вихід).

End

Кінець роботи програми

End Sub

Кінець процедури cmdExit_Click.

Private Sub cmdSolve _Click()

Заголовок процедури, яка виконується у випадку події Click на кнопці cmdSolve (Розрахунок).

S = Val(txtS.Text)

Змінній S привласнюється значення властивості Text поля txtS – значення нарахованої суми. При цьому виконується перетворення текстового значення на числове за допомогою функції Val.

PP=S-*0.13

РР привласнюється значення (S-170)*0.2+15.3 /15,3 - податок, який сплачується з суми 170 грн./

If S <= 150 Then

Якщо S менше або рівно 150, то

PF=S*0.01

РF привласнюється значення S*0.01

else

інакше

PF=S*0.02

РР привласнюється значення S*0.02

End If

Завершення оператору If

SV=S-PP-PF

Змінній SV привласнюється значення S-PP-PF

lblSV.Caption = str(SV)

Властивості Caption етикетки lblSV привласнюється значення SV, яке функцією str перетворюється з числового типу на текстовий.

End Sub

Кінець процедури cmdSolve _Click.

2.1.2 Оператор варіанти Select Case

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

Загальна форма оператора:

Select Case X

Case <значення1 або віраз1>

ділянка програми, що виконується, якщо Х = значення1 або выраз1

Case <значення2 або віраз2>

ділянка програми, що виконується, якщо Х = значення2 або выраз2

. . .

Case <значенняN або віразN>

ділянка програми, що виконується, якщо Х = значенняN або выразN

Case Else

ділянка програми, що виконується, якщо жодна  з умов не відповідає

фактичному значенню Х

End Select

Виконання оператору Select Case залежить від значення змінної Х – змінної варіанти. У першій гілці обчислюється значення виразу1, якщо він є в операторі, результат або значення1 порівнюється з фактичним значенням змінної Х. Якщо в наслідок порівняння отримано значення “істина”, виконуються оператори, які йдуть після рядка Case. Коли отримано значення “брехня”, обчислюється значення виразу2, змінна Х порівнюється з отриманим результатом або значенням2, якщо значення рівні, виконується друга гілка і т.д. Гілка Case Else в операторі не обов'язкова, виконується, якщо жодна  з умов не відповідає фактичному значенню Х.

Приклад застосування оператора Select Case

Щоб розглянути використання оператора Select Case на прикладі потрібно доробити програму, створену в п.2.1.1. Після редагування програма повинна включати засоби аналізу клавіші, натиснутої при введенні даних у поле txtS (Сума нарахованої заробітної плати). Припустимим вважається натискання спеціальних клавіш (наприклад, клавіш керування курсором, Del, Home), клавіші Backspace, десяткової крапки, цифр від 0 до 9. У форму необхідно помістити ще один елемент - етикетку lblMesKey для виведення повідомлення у випадку натискання неприпустимої клавіші. Після натискання будь-якої клавіші в текстовому полі, якому відповідає подія KeyPress, потрібно виконати аналіз натиснутої клавіші. Якщо натиснута неприпустима клавіша, то видається повідомлення про помилку і вміст текстового поля знищується, у противному випадку ніяких дій не виконується. Аналіз натиснутої клавіші виконується за допомогою цілої числової змінної KeyAscii. Через цю змінну в момент натискання (подія KeyPress) процедурі, яка відповідає події, передається значення ASCII-коду натиснутої клавіші. Процедура повинна перевіряти символ, що вводиться, на припустимість. Список припустимих  у процедурах кодів наведено в таблиці:

Значення змінної KeyAscii

Пояснення

0

Спеціальні клавіші

8

Backspace

46

Десяткова крапка

48. .57

Цифри від 0 до 9

На етапі візуального програмування потрібно змінити ім'я форми, помістити у форму додатковий елемент - етикетку lblMesKey.

Рисунок 2.3 - Вікно програми - приклада використання оператора Select Case


До коду програми потрібно додати процедуру,  яка подана в таблиці.

Дані в рядку коду

Коментар

 Private Sub txtS_KeyPress (KeyAscii As Integer)

Процедура, що виконується у випадку натискання будь-якої клавіші в полі txtS для введення нарахованої суми. Для створення процедури потрібно виконати подвійне клацання лівою кнопкою миші на текстовому полі.

lblMesKey.Caption = " "

Властивості Caption етикетки lblMesKey (для виведення повідомлення про помилку) привласнюється значення ““ (порожній рядок).

Select Case KeyAscii

Початок оператора Select Case, що реалізує розгалуження виконання програми в залежності від значення стандартної змінної KeyAscii

Case 0, 8, 46, 48 To 57

У тому випадку, якщо змінна KeyAscii дорівнює 0, 8 або 46, або знаходиться в діапазоні від 48 до 57 ніяких дій не виконується.

'Припустиме значення

Рядок коментарю, який введено для зручності читання коду програми.

Case Else

інакше, коли жодна  з умов не відповідає значенню змінної KeyAscii виконуються такі дії

'Неприпустиме значення

lblMesKey.Caption = "Натиснута неприпустима клавіша"

Властивості Caption етикетки lblMesKey привласнюється значення "Натиснута неприпустима клавіша".

txtS.Text = " "

Властивості Text текстового поля txtS прив-ласнюється значення ““ (порожній рядок).

KeyAscii = 0

Змінної KeyAscii присвоюється значення 0.

End Select

Завершення оператора Select Case.

End Sub

Завершення процедури txtS_KeyPress

2.2 Організація циклічних обчислювальних процесів

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

2.2.1 Оператор циклу For . . . Next

Оператор циклу For . . . Next використовується тоді, коли потрібно виконати групу операторів заздалегідь відоме число раз.

Загальна форма оператора:

For I = Start to Finish Step N

Блок_операторів

Next

Процес виконання оператора For . . . Next такий:

  1.  Змінній I присвоюється значення змінної або виразу Start.
  2.  Значення I порівнюється зі значенням змінної або виразом Finish.
  3.  Якщо I <= Finish, виконується блок операторів у тілі циклу - чергова ітерація (повторення). Потім змінна I (лічильник циклу) збільшується на N, виконується перехід до п. b. Якщо I > Finish, цикл завершує свою роботу.

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

Приклад використання циклу For … Next

Як приклад розглядається створення програми обчислення суми на рахунку в банку. Користувач повинен ввести такі дані: суму попереднього внеску на рахунок - SPV, банківський відсоток - V, період часу - P. Після натиснення кнопки Розрахунок, програма повинна вивести суму SR, яка буде на рахунку після P років при визначеному банківському відсотку, якщо відома сума первинного внеску. Формула розрахунку суми така:

  1.  На початок роботи програми SR = SPV.
  2.  Кожного року сума на рахунку змінюється таким чином .

Блок-схем розв’язання задачі подана на рис. 2.4.

На етапі візуального програмування потрібно створити форму, подану на рис. 2.5.

 


Рисунок 2.4 - Блок-схема розв’язання задачі «Обчислення суми на рахунку»

Рисунок 2.5 - Вікно програми – прикладу використання оператору For...Next

Характеристика форми, елементів управління форми подана в таблиці.

Об'єкт

Властивість

Значення

1

2

3

Форма (Form)

Name

frmExampleFor

Caption

Програма - приклад циклу For

BackColor

білий

Командна кнопка (Command Button)

Name

cmdSolve

Caption

&Розрахунок

Командна кнопка (Command Button)

Name

cmdClear

Caption

&Очистка

Командна кнопка (Command Button)

Name

cmdExit

Caption

&Вихід

Етикетка (Label)

Name

lblSPV

Caption

Сума первинного внеску:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblV

Caption

Банківський відсоток:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblP

Caption

Період:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblS

Caption

Сума на рахунку:

BackColor

білий

Font

12 пунктів, напівжирний

Етикетка (Label)

Name

lblSR

Caption

0

BackColor

білий

Font

12 пунктів, напівжирний

Alignment

1 – Right Justify (вирівнювання праворуч)

Текстове поле

(TextBox)

Name

TxtSPV

Text

” (порожній рядок)

Текстове поле

(TextBox)

Name

TxtV

Text

” (порожній рядок)

Текстове поле

(TextBox)

Name

TxtP

Text

” (порожній рядок)

Характеристика коду програми подана  в таблиці.

Дані в рядку коду

Коментар

1

2

Option Explicit

Оголошення змінних:

Dim SPV, V, P,  SR

SPV – сума первинного внеску;  V – банківський відсоток; P – період;  SR – сума на рахунку після P років.


1

2

Private Sub cmdClear_Click()

Заголовок процедури, яка пов’язана з подією Click на кнопці cmdClear (Очистка).

TxtSPV.Text = " "

Властивості Text текстового поля txtSPV (для введення суми первинного внеску) привласнюється значення “” (порожній рядок).

TxtV.Text = " "

Властивості Text текстового поля txtV (для введення банківського відсотку) привласнюється значення “” (порожній рядок).

TxtP.Text = " "

Властивості Text текстового поля txtP (для введення періоду) привласнюється значення “” (порожній рядок).

lblSR.Caption = 0

Властивості Caption етикетки lblSR (для виведення результату) привласнюється значення 0.

End Sub

Кінець процедури cmdClear_Click.

Private Sub cmdExit_Click()

Заголовок процедури, яка виконується у випадку події Click – клацання лівою кнопкою миші на кнопці cmdExit (Вихід).

End

Кінець роботи програми

End Sub

Кінець процедури cmdExit_Click.

Private Sub cmdSolve _Click()

Заголовок процедури, яка пов’язана з подією Click на кнопці cmdSolve (Розрахунок).

SPV = Val(txtSPV.Text)

Змінній SPV привласнюється значення властивості Text поля txtSPV – значення суми первинного внеску, яка введена в поле txtSPV. При цьому виконується перетворення текстового значення на числове за допомогою функції Val.

V = Val(txtV.Text)

Змінній V привласнюється значення властивості Text поля txtV – значення банківського відсотка.

P = Val(txtP.Text)

Змінній P привласнюється значення властивості Text поля txtP – значення періоду.

SR=SPV

Змінній SR перед початком циклу привласнюється значення змінної SPV.

For i=1 To P

Для і, що змінюється від 1 до Р (оскільки Step N не визначено, крок зміни дорівнює 1), доки і<=P виконується дія

SR=SR*(100+V)/100

змінній SR привласнюється значення – попереднє значення SR помножене на  (100+V)/100

Next

Значенню і привласнюється і+1, виконується перехід до рядку For.

lblSR.Caption = str(SR)

Властивості Caption етикетки lblSR привласнюється значення SR, яке функцією str перетворюється з числового типу текстовий.

End Sub

Кінець процедури cmdSolve _Click.

2.2.2 Оператор циклу Do While . . . Loop

Цикл цього типу використовується в тих випадках, коли необхідно повторювати ділянку коду доти, поки виконується деяка умова.

Загальна форма оператора:

Do While <Умова>

<Блок_операторів>

Loop

Процес виконання оператора Do While . . . Loop такий:

  1.  Перевіряється на істинність деяка логічна умова.
  2.  Якщо умова істинна, виконується блок операторів у тілі циклу. В іншому випадку цикл завершує свою роботу.

При використанні циклу Do While . . . Loop потрібно, на відміну від оператора For...Next, усередині циклу змінювати значення змінної - лічильника циклу.

У програмі визначення суми на рахунку після декількох років при певному банківському відсотку може бути використаний замість оператора For...Next оператор Do While . . . Loop. У цьому випадку алгоритм виконання програми не зміниться. Процедура cmdSolve _Click() прийме такий вид:

Private Sub cmdSolve _Click()

SPV = Val(txtSPV.Text)

V = Val(txtV.Text)

P = Val(txtP.Text)

SR = SPV

i = 1

Do While i<= P

SR = SR*(100+V)/100

i = i+1

Loop

lblSR.Caption = Str(SR)

End Sub

2.2.3 Оператор циклу Do. . . Loop While

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

Загальна форма оператора:

Do

Блок_операторів

Loop While Умова

Якщо спробувати вирішити задачу визначення суми ряду чисел із використанням оператора Do. . . Loop While,  алгоритм виконання програми зміниться (рис.2.6).

 

Рисунок 2.6 - Блок-схема розв’язання задачі обчислення суми на рахунку з використанням оператора Do ... Loop While

Процедура cmdSolve _Click() прийме такий вид:

Private Sub cmdSolve_Click()

SPV = Val(txtSPV.Text)

V = Val(txtV.Text)

P = Val(txtP.Text)

SR = SPV

i = 1

Do

SR = SR*(100+V)/100

i = i+1

Loop While i<= P

lblSR.Caption = Str(SR)

End Sub

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

  1.  Що таке розгалужений обчислювальний процес?
  2.  Чим оператор If відрізняється від оператора Select Case?
  3.  Які обчислювальні процеси можна організувати за допомогою оператора Select Case?
  4.  Який обчислювальний процес називають циклічним?
  5.  Чому оператор Do ... Loop While називають циклом із після умовою?
  6.  У чому полягає відмінність оператора циклу For … Next    від оператора Do While … Loop?

 

2.4 Практичні завдання

Завдання

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форму, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форму та код програми. Звіт про роботу повинен вміщувати:

  •  блок-схему алгоритмічного процесу розв’язання задачі;
  •  роздруковану форму програми;
  •  роздрукований код програми.

Варіант №1

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

Програма повинна реагувати, якщо користувач введе від’ємні або рівні 0 значення суми місячного внеску та банківського відсотку.

Рекомендація! При оголошенні змінних доцільно використовувати грошовий тип Currency.

Рисунок 2.7 - Вікно програм.

Варіант №2

Створити програму, за допомогою якої можна визначити добуток цілих чисел від 1 до Х, значення Х вводиться за допомогою клавіатури. Обчислення не повинно виконуватись тоді, коли введено від’ємне число або 0. 

а)

б)

Рисунок 2.8 - Вікно програми

а) вид з вікна з результатом обчислення добутку натуральних чисел;

б) вид із повідомленням про помилку – введення від’ємного числа або 0.

При візуальній розробці програми, щоб помістити формулу розрахунку функції в форму,  слід використовувати елемент “Об’єкт OLE” , після розташування об’єкту в формі вибрати у вікні діалогу Microsoft Equation, ввести формулу.

Варіант №3

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

.

Для товарів різних груп діють різні відсотки нарахування торговельної націнки, від якої залежить доход. Так доход від реалізації одягу складає 15% від суми придбання товару (Sт), взуття – 20%, канцелярських товарів – 10%, парфумерних товарів – 22%, товарів інших груп – 8%.

 

Рисунок 2.9 - Вікно програми

Варіант №4

Розробити програму, яка дозволяє визначити залишкову вартість основних засобів після певного періоду експлуатації. Щомісяця вартість основних засобів зменшується на суму амортизаційних відрахувань. При роботі програми слід ввести первинну вартість основного засобу, період експлуатації, відсоток амортизаційних відрахувань (Ав). Щомісяця виконується розрахунок залишкової вартості за алгоритмом: Вз * Ав / 100.

Рисунок 2.10 - Вікно програми


Варіант №5

Розробити програму, яка дозволяє ввести суму нарахованої заробітної плати за рік співробітникові підприємства, відсоток виконання виробничого завдання, визначити суму премії по результатах роботи за рік. Співробітник отримує премію у розмірі 10% від заробітної плати за рік, якщо план виконано на 100%. Якщо перевиконання плану складає до 5%, то премія нараховується у розмірі  12% від заробітної плати за рік, якщо перевиконання більше 5%, то премія обчислюється як 15% від заробітної плати за рік. Якщо план не виконано, премія не сплачується.

Варіант №6

Розробити програму, яка дозволяє ввести найменування товарної групи, купівельну ціну товару, кількість товару (див. рис.2.9). Програма повинна давати змогу розрахувати ціну продажу товару і суму реалізації з урахуванням того, що торговельна націнка на товари групи “Взуття” складає 15%, групи “Меблі” – 20%, групи “Електротовари” – 18%, інші товари – 22%.

Варіант №7

Розробити програму, яка дозволяє ввести ціле позитивне число Х, розрахувати значення функції У за формулою:

П – добуток чисел від 1 до Х (Х!).

Якщо введено число, яке є від’ємним або дорівнює 0, програма повинна видавати повідомлення про помилку (див. рис.2.8).

Варіант №8

Розробити програму, яка дозволяє ввести суму первинного внеску на рахунок у банку, термін зберігання коштів. Програма повинна давати змогу обчислити суму на рахунку в банку, виходячи з того, що якщо сума   первинного внеску складає менше 500 грн., то банківський відсоток дорівнює 14% річних, якщо сума більше 500 грн. і менш ніж 1000 грн., то банківський відсоток 15% річних, більше 1000 грн. – 16% річних. Банківські відсотки нараховуються щомісячно.

Варіант №9

Розробити програму, яка дозволяє ввести оцінки, які отримав певний студент під час складання сесії з дисциплін: вища математика, фізика, інформатика, історія України. Визначити за допомогою програми розмір стипендії, яка нараховується студентові. Якщо всі екзамени складено на “відмінно”, нараховується стипендія в розмірі 100 грн., якщо студент отримав оцінки “відмінно” і “добре”, то стипендія складатиме 80 грн., у інших випадках стипендія не нараховується.

Варіант №10

Розробити програму, яка дозволяє ввести число Х, розрахувати значення функції У за формулою:

Варіант №11

Розробити програму, яка дозволяє ввести дані про роботу торговельного агента: суму реалізації товарів за місяць, кількість самостійно проведених акцій, кількість залучених до співробітництва фірм. Програма повинна давати змогу обчислити суму премії, нарахованої торговельному агенту за проведену роботу. Якщо сума проданого за місяць товару перевищує 2000 гривень, премія нараховується в розмірі 100 гривень, при продажі товару більше ніж на 3000 гривень нараховується премія в розмірі 250 гривень, у випадку, коли агент залучив до співробітництва більше 5 фірм або самостійно провів одну або більше акцій, сума премії зростає на 30%.

Варіант №12

Розробити програму, яка дозволяє ввести суму нарахованої заробітної за рік, відсоток виконання виробничого завдання, кількість раціоналізаторських пропозицій. Програма повинна давати змогу обчислити суму премії співробітникам підприємства. Якщо виконання виробничого завдання складає менше 100%, то премія не нараховується. Коли виробниче завдання виконано на 100%, нараховується премія у розмірі 200 гривень. Якщо виробниче завдання виконано більш ніж на 100%, то до суми премії додається 1% нарахованої заробітної плати за рік за кожний відсоток перевиконання виробничого завдання. Коли виробниче завдання виконано або перевиконано, то при наявності хоча б двох раціоналізаторських пропозицій до суми премії додається 100 гривень.

Варіант №13

Розробити програму, яка дозволяє ввести дані для розрахунку вартості столярного виробу: площа, матеріал (1 – сосна, 2 – бук, 3 – дуб), рівень складності виробу (1 – висока, 2 – середня, 3 – низька). Після натискання на кнопці Розрахунок програма повинна виводити вартість виробу, яка розраховується на основі таких даних: вартість 1 м2 виробу з сосни складає 100 грн., з бука – 140 грн., з дуба – 200 грн.; до вартості виробів з високою складністю застосовується коефіцієнт 1,2, середньою – 1, низькою – 0,8.

Варіант №14

Розробити програму, яка дозволяє ввести суму первинного внеску на рахунок у банку, термін зберігання коштів – 6, 9 або 12 місяців /інше значення є помилкою користувача, слід виводити повідомлення про помилку (див. рис.2.7)/. Програма повинна давати змогу обчислити суму на рахунку в банку, виходячи з того, що якщо кошти зберігаються протягом 6 місяців, то банківський відсоток дорівнює 12% річних, якщо термін збереження коштів 9 місяців, то банківський відсоток 15% річних, 12 місяців – 18% річних. Банківські відсотки нараховуються щомісячно.

Варіант №15

Розробити програму, яка дозволяє ввести число Х, розрахувати значення функції У за формулою:

2.5 Тест

Відповідь

Вміє

Не вміє

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

  1.  Select Case

  1.  DIM

  1.  Do While . . . Loop

  1.  For . . . Next

  1.  Яким буде значення властивості Caption етикетки lblExample, якщо значення перемінної Х = 6?

Select Case X

Case 0

lblExample.Caption = “Приклад”

case 2..5, 10..20

lblExample.Caption = “ Example ”

case else

lblExample.Caption = “ Значення ”

End Select

  1.  Значення

  1.  Example

  1.  Приклад

  1.   └┘  (пробіл)


  1.  Які оператори використовуються для організації циклічних обчислювальних процесів?

  1.  DIM

  1.  Select Case

  1.  Do While . . . Loop

  1.  For . . . Next

  1.   Які фрагменти коду можуть бути включені в програму зведення числа Х у ступінь N?

  1.  Z = X

i = 2

Do

Z = Z *X

i = i +1

Loop While i<=N

  1.  Z = 1

For i = 1 To N

Z = X * Z

Next

  1.  Z = X

i = 1

Do While i <= N

Z = X*X

i = i + 1

Loop

  1.  Які помилки допущені у фрагменті коду?

For X = 1 To 7

X = 3

Y = Y + X

Next

X = 1

  1.  відсутня умова виходу з циклу While

  1.  у циклі постійно змінюється значення Х

  1.  відсутня фраза Step N

  1.  Знайдіть помилки у операторі.

If X = 3

У = 5*Х

Х = 20

End If

  1.  відсутня гілка else

  1.  відсутня фраза Then

  1.  X привласнюється значення 20


3 Використання елементів управління в програмах. Робота з формами. Поняття методу

3.1 Елементи управління - смуги прокручування, перемикачі,

прапорці, групи, списки, що розчиняються

Горизонтальну або вертикальну смуги прокручування можна помістити у форму за допомогою відповідних елементів на панелі:  HscrollBar,  VscrollBar. Прийнято, щоб імена смуг прокручування у програмах починалися зі сполучення hsb для горизонтальних смуг і vsb для вертикальних.

Переміщення бігунка по смузі призводить до зміни властивості Value елемента, що може знаходиться в діапазоні, обумовленому властивостями Max і Min елемента. Властивість Small Change визначає крок зміни властивості Value при використанні кнопок ,  або  ,  . У програмах смуги прокручування використовуються, на відміну від вікон, не для переміщення всередині вікна, а для визначення значення засобом переміщення бігунка. У результаті виконання переміщення бігунка по смузі прокручування відбувається подія Change, тобто події Change відповідає зміна місця розташування бігунка на смузі, подія відбувається після того, як бігунок займе нове місце. Процесу переміщення бігунка відповідає подія Scroll, лише бігунок зрушив з місця – відбулась подія Scroll.

Для перемикачів (OptionButton) в області діалогу, обмеженою рамкою (Frame), у стані «включено» значення властивості Value дорівнює True (Істина), у стані «вимкнено» - False (Брехня). Аналізуючи значення властивості Value кожного перемикача можна виконувати визначені дії. Імена перемикачів доцільно починати зі сполучень літер opt, груп -  fra.

Елемент прапорець (Check Box) у стані «включено» одержує значення властивості Value - True (1), у стані «вимкнено» - False (0). У програмах при аналізі стану прапорців слід використовувати значення 1 або 0. Імена прапорців слід починати зі сполучень літер chk.

Списки, що розчиняються, створюються за допомогою елемента  (ComboBox), вони використовуються для вибору одного значення з переліку можливих. Імена списків, що розчиняються, доцільно починати зі сполучень літер cbo. Перелік можливих значень визначається як значення властивості List  об’єкта. Значення властивості Text відповідає поточному стану списку, дорівнює тому значенню, яке обрано зі списку.


3.2 Робота з формами. Поняття методу

Програма, розроблена засобами Visual Basic, може містити декілька форм. Щоб додати до проекту нову форму, потрібно виконати команду меню Project - Add Form. При завантаженні форми з нею відбувається подія Load. Таким чином можна створити пов’язану з формою процедуру, яка буде виконуватись при завантаженні форми. Для роботи з формами й іншими об'єктами можуть використовуватися методи.

Метод визначає деяку дію, що може бути виконана з об'єктом, але на відміну від процедури вона нерозривно пов'язана з об'єктом, якому він належить. Методи адекватні створеними раніше процедурам, що можуть бути виконані стосовно деяких об'єктів. Наприклад, застосування методу Cls стосовно форми призводить до очищення форми. Об'єднання імені об'єкта і через точку імені методу дає ім'я існуючої процедури, що виконує визначені дії з об'єктом. Кожний об'єкт у середовищі Visual Basic володіє не тільки набором властивостей, але супутнім набором стандартних процедур, які називаються методами. Для   форм можуть бути застосовані методи Show - показати форму,  Hide - сховати форму (прибрати з екрана).

Якщо в програмі є декілька форм і змінні, які створюються чи редагуються в одній формі, використовуються в інших формах, то такі змінні слід оголошувати як глобальні.  Для цього до проекту слід додати модуль командою меню ProjectAdd Module, у вікні модуля оголосити змінні після зарезервованого слова Global. Приклади оголошення глобальних змінних:

Global Х

Global Zap As String

Приклад програми

Щоб розглянути на прикладі використання елементів управління в формах, слід створити програму, у ході виконання якої можна розрахувати ціну та поживність порції морозива на основі визначених вхідних даних. Основним компонентом порції може бути морозиво одного з трьох видів, у кількості від 75 до 250 гр.

Вид морозива

Ціна за 100 гр.

Калорійність, ккал. на 100 гр. продукту

Пломбір

0,90 грн.

100

Вершкове

1 грн.

110

Молочне

0,80 грн.

90

Порція морозива може також вміщувати:

Додаток

Ціна

Калорійність, ккал.

Джем полуничний

0,30 грн.

50

Джем вишневий

0,25 грн.

47

Джем помаранчевий

0,40 грн.

48

Збиті вершки

0,70 грн.

80

Шоколад

0,50 грн.

120

Горіхи

0,90 грн.

130

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

Програма повинна включати 3 форми. Перша основна форма з’являється при запуску програми, дозволяє перейти до розрахунку, вивести інформацію про автора програми, завершити роботу (рис.3.1. а). Форма з відомостями про автора (рис.3.1. б) з’являється після натиснення кнопки Відомості про автора. Після знайомства з інформаційним вікном натисненням кнопки Ок можна повернутись до головного вікна програми. Третє вікно використовується для введення даних, виконання розрахунку (рис.3.1. в).

а)

б)

в)

Рисунок 3.1 - Вікна програми – приклада використання декількох форм, різних елементів управління

При розв’язанні задачі використовуються такі змінні:

V – вага морозива в порції;

C – ціна порції;

K – калорійність.

Блок-схема розв’язання задачі подана на рис.3.2.

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

Об'єкт

Властивість

Значення

Форма (Form)

Name

frmMain

Caption

Програма - приклад

BackColor

білий

Командна кнопка (Command Button)

Name

cmdR

Caption

Початок розрахунку

Командна кнопка (Command Button)

Name

cmdA

Caption

Відомості про автора

Командна кнопка (Command Button)

Name

cmdZ

Caption

Завершення роботи

Етикетка (Label)

Name

lbl1

Caption

Працює програма,

BackColor

білий

Font

14 пунктів, напівжирний курсив

Етикетка (Label)

Name

lbl2

Caption

яка дозволяє розрахувати ціну та калорійність однієї порції морозива

BackColor

білий

Font

12 пунктів, напівжирний

Далі необхідно додати до проекту ще одну форму командою меню Project – Add Form, створити форму інформаційного повідомлення у відповідності з таблицею.

Об'єкт

Властивість

Значення

Форма (Form)

Name

frmА

Caption

Програма - приклад

BackColor

білий

Командна кнопка (Command Button)

Name

cmdОк

Caption

Ок

Етикетка (Label)

Name

lbl1

Caption

Автором програми є студент групи ОФФ 99 А Ляшенко М.Д.

BackColor

білий

Font

14 пунктів, напівжирний

Етикетка (Label)

Name

lbl2

Caption

тел.: (0622) 92 – 13 - 70

BackColor

білий

Font

12 пунктів, напівжирний

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

Об'єкт

Властивість

Значення

1

2

3

Форма (Form)

Name

frmR

Caption

Програма - приклад

BackColor

білий

1

2

3

Командна кнопка (Command Button)

Name

cmdRoz

Caption

Розрахунок

Командна кнопка (Command Button)

Name

cmdExit

Caption

Вихід

Етикетка (Label)

Name

lblV

BackColor

білий

Font

12 пунктів, напівжирний

AutoSize

True

Етикетка (Label)

Name

lblR

Caption

” (порожній рядок)

BackColor

білий

Font

12 пунктів, напівжирний

Alignment

2 - Center

Горизонтальна смуга прокручування (HscrollBar)

Name

hsbV

Min

75

Max

250

SmallChange

25

Група (Frame)

Name

fraOK

Caption

Основний компонент

BackColor

білий

Font

12 пунктів, напівжирний

Перемикач (OptionButton)

Name

optO1

Caption

Пломбір

BackColor

білий

Font

12 пунктів, напівжирний

Value

True

Перемикач (OptionButton)

Name

optO2

Caption

Вершкове

BackColor

білий

Font

12 пунктів, напівжирний

Перемикач (OptionButton)

Name

optO3

Caption

Молочне

BackColor

білий

Font

12 пунктів, напівжирний

Група (Frame)

Name

fraD

Caption

Джем

BackColor

білий

Font

12 пунктів, напівжирний

Перемикач (OptionButton)

Name

optD1

Caption

полуничний

BackColor

білий

Font

12 пунктів, напівжирний

Value

True

Перемикач (OptionButton)

Name

optD2

Caption

вишневий

BackColor

білий

Font

12 пунктів, напівжирний


1

2

3

Перемикач (OptionButton)

Name

optD3

Caption

помаранчевий

BackColor

білий

Font

12 пунктів, напівжирний

Перемикач (OptionButton)

Name

optD4

Caption

немає

BackColor

білий

Font

12 пунктів, напівжирний

Прапорець (CheckBox)

Name

chk1

Caption

збиті вершки

BackColor

білий

Font

12 пунктів, напівжирний

Прапорець (CheckBox)

Name

chk2

Caption

шоколад

BackColor

білий

Font

12 пунктів, напівжирний

Прапорець (CheckBox)

Name

chk3

Caption

горіхи

BackColor

білий

Font

12 пунктів, напівжирний

Активізувати головну форму frmMain, створити такий код програми:

Дані в рядку коду

Коментар

Private Sub cmdA_Click()

Заголовок процедури, яка виконується після клацання кнопкою миші на кнопці Відомості про автора.

frmMain.Hide

До головної форми програми frmMain застосовується метод Hide – форма зникає з екрану.

frmA.Show

До інформаційної форми frmA застосовується метод Show – форма з’являється на екрані.

End Sub

Кінець процедури.

Private Sub cmdR_Click()

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

frmMain.Hide

До головної форми програми frmMain застосовується метод Hide – форма зникає з екрану.

frmR.Show

До форми для визначення даних і виконання розрахунку ціни і поживності порції морозива frmR застосовується метод Show – форма з’являється на екрані.

End Sub

Кінець процедури.

Private Sub cmdZ_Click()

При клацанні на кнопці Завершення роботи

End

програма закінчує роботу.

End Sub

Кінець процедури.


Для інформаційної форми потрібно створити код, як у таблиці.

Дані в рядку коду

Коментар

Private Sub cmdOk_Click()

Заголовок процедури, яка виконується при клацанні кнопкою миші на кнопці Ок у інформаційному вікні.

frmA. Hide

До інформаційної форми frmA застосовується метод Hide – форма зникає з екрану.

frmMain.Show

До головної форми програми frmMain застосовується метод Show – форма з’являється на екрані.

End Sub

Кінець процедури.

З формою для розрахунків слід пов’язати такий програмний код:

Дані в рядку коду

Коментар

1

2

Dim V, c, k

Оголошення змінних V, c, k

Private Sub frmR_Load()

Заголовок процедури, яка виконується у зв’язку з подією Load – завантаженням форми frmR

hsbV.Value = 75

Властивості Value горизонтальної лінійки прокручування hsbV привласнюється значення 75 – мінімальна вага порції морозива.

V = 75

Змінній V привласнюється значення 75.

lblV.Caption = "Вага морозива в порції - " + Str(V) + " гр."

Властивості Caption етикетки lblV для виведення повідомленні про обрану вагу морозива в порції привласнюється відповідне значення – “Вага морозива в порції 75 гр.”.

End Sub

Кінець процедури.

Private Sub hsbV_Change()

Заголовок процедури, яка виконується якщо бігунок змінив місце розташування на смузі прокручування – відбулась подія Change.

V = hsbV.Value

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

lblV.Caption = "Вага морозива в порції - " + Str(V) + " гр."

Властивості Caption етикетки lblV для виведення повідомленні про обрану вагу морозива в порції привласнюється відповідне значення – “Вага морозива в порції V гр.”.

End Sub

Кінець процедури.

Private Sub hsbV_Scroll()

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

hsbV_Change

Виконується процедура hsbV_Change, пов’язана зі зміною положення на смузі.

End Sub

Кінець процедури.


1

2

Private Sub cmdExit_Click()

Заголовок процедури, пов’язаної з кнопкою Вихід.

frmR.Hide

До форми frmR застосовується метод Hide – форма зникає з екрану.

frmMain.Show

До головної форми frmMain застосовується метод Show – форма з’являється на екрані.

End Sub

Кінець процедури.

Private Sub cmdRoz_Click()

Заголовок процедури, пов’язаної з кнопкою Розрахунок.

If optO1.Value = True Then

Якщо властивість Value перемикача optO1 (пломбір) має значення True (перемикач у стані включено), то

c = V * 0.9 / 100

обчислюється ціна за морозиво за формулою

V * 0.9 / 100

k = V

обчислюється калорійність за формулою V 

Else

інакше

If optO2.Value = True Then

якщо властивість Value перемикача optO2 (вершкове) має значення True (перемикач у стані включено), то

c = V / 100

обчислюється ціна за морозиво за формулою

V  / 100

k = V * 110 / 100

обчислюється калорійність за формулою

V * 110 / 100

Else

інакше, коли можливим є тільки значення True властивості Value перемикача optO3 (молочне)

c = V * 0.8 / 100

ціна морозива обчислюється як V * 0.8 / 100

k = V * 90 / 100

калорійність обчислюється за формулою 

k = V * 90 / 100

End If

Кінець внутрішнього оператору If

End If

Кінець першого оператору If

If optD1.Value = True Then

Якщо властивість Value перемикача optD1 (полуничний) у групі fraD має значення True (перемикач у стані включено), то

c = c + 0.3

до ціни порції додається 0,3 грн.

k = k + 50

до калорійності додається 50 ккал.

Else

інакше

If optD2.Value = True Then

якщо властивість Value перемикача optD2 (вишневий) має значення True, то

c = c + 0.25

до ціни порції додається 0,25 грн.

k = k + 47

до калорійності додається 47 ккал.

Else

інакше

If optD3.Value = True Then

якщо властивість Value перемикача optD3 (помаранчевий) має значення True, то

c = c + 0.4

до ціни порції додається 0,4 грн.

k = k + 48

до калорійності додається 48 ккал.


1

2

End If

кінець If

End If

кінець If

End If

кінець If

If chk1.Value = 1 Then

Якщо властивість Value прапорця chk1 (збиті вершки) має значення 1 (перемикач у стані включено, True), то

c = c + 0.7

до ціни додається 0,7 грн.

k = k + 80

до калорійності додається 80 ккал.

End If

кінець If

If chk2.Value = 1 Then

Якщо властивість Value прапорця chk2 (шоколад) має значення 1 (перемикач у стані включено), то

c = c + 0.5

до ціни додається 0,5 грн.

k = k + 120

до калорійності додається 120 ккал.

End If

кінець If

If chk3.Value = 1 Then

Якщо властивість Value прапорця chk3 (горіхи) має значення 1 (перемикач у стані включено), то

c = c + 0.9

до ціни додається 0,9 грн.

k = k + 130

до калорійності додається 130 ккал.

End If

кінець If

lblR.Caption = "Ціна порції - " + Str(c) + " грн. (калорійність - " + Str(k) + " ккал.)"

Властивості Caption етикетки lblR привласнюється нове значення – результат конкатенації (об’єднання) текстових рядків "Ціна порції - ", Str(c), " грн. (калорійність - ", Str(k) і " ккал.)"

End Sub

Кінець процедури.

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

  1.  Як використовуються лінійки прокручування в програмах, створених мовою Visual Basіc?
  2.  Як відрізняються перемикачі в області діалогу?
  3.  Для чого застосовується об’єкт Група (Frame) у формах?
  4.  Як у коді програми аналізувати стан прапорців?
  5.  Як визначити, яке значення обрано зі списку, що розчиняється?
  6.  Що таке метод? Які методи Вам відомі?
  7.  Для чого і як оголошуються глобальні змінні?

3.4 Практичні завдання

Завдання

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форми, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форми та код програми. Звіт про роботу повинен вміщувати:

  •  блок-схему алгоритмічного процесу розв’язання задачі;
  •  роздруковані форми програми;
  •  роздрукований код програми.

Варіант №1

Створити програму, під час виконання якої користувач може:

  •  ввести закупівельну ціну товару;
  •  обрати товарну групу;
  •  визначити продається товар зі знижкою в 3% чи ні;
  •  розрахувати ціну продажу товару.

Для товарів групи одягу ціна збільшується на 10%, взуття – на 20 %, інші товари – 15%.

 

Варіант №2

Створити програму, під час виконання якої користувач може:

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

При розрахунку слід:

визначити суму нарахованої заробітної плати пропорційно окладу, кількості відпрацьованих днів, зворотно пропорційно кількості робочих днів у місяці;

відрахувати суму прибуткового податку, який обчислюється за ставкою 13% від суми нарахованої заробітної плати;

зменшити суму, яка видається співробітникові, на суму відрахувань у пенсійний фонд:  якщо заробітна плата складає менше ніж 150 грн., то сума відрахувань складає 1% від нарахованої заробітної плати, більше 150 грн. – 2%;

зменшити суму до виплати на суму відрахувань у фонд зайнятості – 0,05% від суми нарахованої заробітної плати.

Варіант №3

Створити програму, під час  виконання якої користувач може:

  •  ввести суму первинного вкладу, кількість періодів (років) зберігання грошей на рахунку в банку;
  •  обрати за допомогою списку, що розчиняється, один з трьох видів вкладу: звичайний – 5% річних, ветеранський – 10 % річних, терміновий – 8% річних ;
  •  після натискання на кнопці Розрахунок визначити суму грошей на рахунку в банку після визначеного терміну зберігання.

Варіант №4

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування фонд заробітної плати підприємства (число у діапазоні від 1 до 30000);
  •  обрати один з видів нарахувань на фонд заробітної плати – пенсійний фонд (32% від фонду заробітної плати), фонд соціального страхування (4% від фонду заробітної плати) або фонд страхування на випадок безробіття (1,5% від фонду заробітної плати);
  •  розрахувати значення обраного показника.


Варіант №5

Створити програму, під час виконання якої користувач може:

  •  за допомогою смуги прокручування визначити первісну вартість основного засобу;
  •  обрати відсоток амортизаційних відрахувань – 1%, 2% або 3%;
  •  ввести дані про кількість періодів розрахунку;
  •  після натискання на кнопці Розрахунок обчислити остаточну вартість основного засобу.

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

Наприклад, якщо первісна вартість основного засобу дорівнює 2000 грн., а відсоток амортизаційних відрахувань - 2%, то після першого періоду експлуатації остаточна вартість основного засобу дорівнюватиме 1960 грн., другого – 1920,80 грн., третього – 1882,38 грн. і т.д.

Варіант №6

Розробити програму, під час виконання якої користувач може:

  •  за допомогою смуги прокручування визначити суму позики;
  •  ввести термін погашення позики;
  •  обрати зі списку, що розчиняється, значення банківського відсотку: 20%, 15% або 12%;
  •  визначити за допомогою прапорця спосіб погашення позики – рівними частинами протягом усього періоду або один раз наприкінці періоду;
  •  розрахувати загальну суму, яку буде сплачено по позичці з урахуванням суми по банківських відсотках.

Якщо позика погашається  рівними частинами протягом періоду, то щороку сплачуються відсотки за суму боргу та певна частина боргу. Наприклад, якщо сума позики складає 2000 грн., період погашення боргу – 2 роки, банківський відсоток – 20%, то наприкінці першого року сплачується  грн., наприкінці другого року  грн. Разом за позикою буде сплачено 2600 грн.

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

Варіант №7

Створити програму, під час виконання якої користувач може:

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

Сума реалізації товару визначається як добуток ціни на кількість. Сума реалізації може бути зменшена на суму знижки. Знижка у розмірі 3% надається при продажу більш ніж 2-ох комп’ютерів, 2% при продажу більш ніж 3-ох одиниць оргтехніки, 1% при продажу більш ніж 6-ти одиниць побутової техніки.


Варіант №8

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування кількість слів у рекламному повідомленні;
  •  обрати за допомогою перемикачів  видання, у якому потрібно розмістити рекламу, при чому від обраного видання залежить вартість публікації одного слова;
  •  обрати за допомогою списку, що розчиняється, місце розташування реклами (при розміщенні рекламного повідомлення на першій або останній сторінці вартість публікації збільшується на 50%, на другій або передостанній сторінці – на 20%, всередині видання зменшується на 10%);
  •  розрахувати вартість публікації рекламного оголошення.

Варіант №9

Створити програму, під час виконання якої користувач може:

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

Вартість виготовлення поліграфічної продукції залежить від загальної кількості сторінок у виданні. Друкування кожної сторінки коштуватиме 4 коп., на кожну наступну 1000 сторінок надається знижка в 1%. Так наприклад, вартість виготовлення 100 брошур по 30 сторінок у кожній обчислюється так:

загальна кількість сторінок у виданні:;

перші 1000 примірників друкуються без знижки, вартість друку складатиме:  грн.;

на друкування наступних 1000 сторінок надається знижка 1%, тому вартість складатиме:  грн.;

на друкування наступних 1000 сторінок до знижки 1% дається ще одна знижка в 1%, тому вартість складатиме:  грн.;

загальна вартість друкування брошур складатиме: 118,8 грн.

До вартості друкування слід додати також вартість виготовлення обкладинок, при чому якщо обкладинка повинна бути тверда, то її вартість складатиме 1 грн. на кожний примірник, гнучка поліпшена обкладинка коштуватиме 0,7 грн. на кожний примірник, звичайна гнучка обкладинка – 0,4 грн. на один примірник.

Варіант №10

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування кількість спожитої протягом місяця електроенергії (число у діапазоні від 0 до 500);
  •  ввести дані про загальну площу квартири;

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

При розрахунку суми квартплати слід використовувати такі дані:

  •  один кіловат спожитої електроенергії коштує 15 коп.;
  •  оплата за опалення складає 1,2 грн. на один метр квадратової площі житла;
  •  оплата за воду обчислюється пропорційно кількості мешканців у квартирі та складає 4,5 грн. на одну особу;
  •  при наявності телефону до суми квартплати додається 4,5 грн.


Варіант №11

Створити програму, під час виконання якої користувач може:

  •  ввести данні про витрати, які пов’язано з друкуванням підручників, - вартість паперу, гонорар автора, оплата праці виробничих працівників, оренда обладнання;
  •  визначити за допомогою смуги прокручування кількість підручників, що друкуються (число у діапазоні від 1 до 1000);
  •  обрати відсоток планового прибутку – 20%, 15% або 12%;
  •  розрахувати собівартість одного підручника і його ціну.

Собівартість одного підручника визначається як загальні витрати, пов’язані з друкуванням однієї одиниці продукції. Ціна підручника складається з його собівартості та прибутку від виробництва однієї одиниці продукції.

Варіант №12

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування собівартість виробу (число у діапазоні від 1 до 10000);
  •  обрати за допомогою списку, що розчиняється, відсоток націнки виробника – 5%, 10% або 15%;
  •  обрати за допомогою списку, що розчиняється, відсоток націнки оптової торгівлі – 5%, 10% або 15%;
  •  обрати за допомогою списку, що розчиняється, відсоток націнки роздрібної торгівлі – 5%, 10% або 15%;

  •  розрахувати роздрібну ціну виробу.

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


Варіант №13

Створити програму, під час виконання якої користувач може:

  •  ввести данні для аналізу про обсяг реалізації товарів у певному періоді по таких товарних групах – одяг, взуття та галантерейні товари;
  •  обрати один з п’яти показників – загальний обсяг

реалізації, середнє значення, питома вага реалізації товарів однієї з груп у загальному обсязі реалізації;

  •  розрахувати значення обраного показника.

Варіант №14

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування суму оплати по позичці (число у діапазоні від 100 до 30000), яка виплачується наприкінці періоду;
  •  ввести данні про термін оплати позики;
  •  обрати зі списку, що розчиняється, одне з можливих значень банківського відсотку -  5%, 7%, 10%, 12% або 15%;
  •  розрахувати суму позики.

Сума позики – це грошові кошти, які отримує позичальник, при чому він повинен оплатити по позичці певну суму наприкінці визначеного періоду з урахуванням банківських відсотків, що нараховуються за кожний період. Наприклад, якщо згідно угоди через один період слід повернути 100 грн. при 10%, то позичальник отримує на руки 91 грн.


Варіант №15

Створити програму, під час виконання якої користувач може:

  •  визначити за допомогою смуги прокручування загальну суму реалізації товару Ср(число у діапазоні від 100 до 30000);
  •  визначити за допомогою смуги прокручування собівартість товару Ст (число у діапазоні від 100 до 30000) – вартість товарів по закупівельних цінах;
  •  визначити за допомогою смуги прокручування суму витрат обігу Во (число у діапазоні від 100 до 30000);
  •  обрати один з двох розрахунковий показник – результат основної діяльності або відсоток прибутку.

Результат основної діяльності обчислюється за формулою .

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

3.5 Тест

Відповідь

Вміє

Не вміє

  1.  Які ствердження є правильними?

  1.  Процедура Private Sub hsbT_SmallChange() виконується, коли бігунок змінив положення на смузі прокручування hsbT

  1.  Процедура Private Sub hsbDat_Scroll() виконується, коли бігунок переміщується по смузі прокручування hsbDat

  1.  Процедура Private Sub hsbPrim_Change() виконується, коли бігунок змінив положення на смузі прокручування hsbPrim

  1.  Метод – це . . .

  1.  стандартна процедура для виконання певних дій з об’єктами одного типу

  1.  процедура, яку створено автором програми

  1.  властивість об’єкту


  1.  Які ствердження є правильними?

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

  1.  смуга прокручування використовується в програмах для переміщення

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

  1.  Списки, що розчиняються, створюються як об’єкти класу . . .

  1.  OptionButton

  1.  CheckBox

  1.  Frame

  1.  ComboBox

  1.  OLE

  1.  Що з переліченого відноситься до методів?

  1.  Caption

  1.  Hide

  1.  Value

  1.  Change

  1.  Select Case

  1.  Перемикачі створюються як об’єкти класу . . .

  1.  OptionButton

  1.  CheckBox

  1.  Frame

  1.  ComboBox

  1.  OLE

  1.  Для створення нової форми у проекті слід подати команду . . .

  1.  Project – Add Form

  1.  View - Toolbox

  1.  Edit - Cut

  1.  File – Save Project


4 Управління програмою за допомогою меню.

Робота з масивами елементів управління, змінних

4.1 Управління програмою за допомогою меню

Мова програмування Visual Basic дає змогу помістити у програми, які розроблено її засобами, меню. Щоб додати до форми меню, слід її активізувати, виконати команду меню ToolsMenu Editor, у результаті відчиниться вікно редактору форм (рис.4.1).

У вікні редактору меню слід визначити складові елементи меню, їх властивості. Обов’язково треба ввести значення властивостей Caption – назва пункту меню, Name – ім’я елемента меню, з яким буде далі пов’язана відповідна процедура. Імена елементів меню починаються символами mnu, далі можуть йти будь-які букви латинського алфавіту, цифри. Імена повинні бути унікальними, не повторюватись. Щоб додати новий черговий елемент меню, слід скористатись кнопкою Next. Якщо новий елемент слід вставити у меню, яке вже існує, то слід виділити той пункт, перед яким додається новий, скористатись кнопкою Insert. Знищення активного елементу виконується з використанням кнопки Delete.

Рисунок 4.1 - Вікно редактору меню

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

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

Елементи меню на початку роботи програми можуть бути неактивними. Щоб визначити це, після створення програмного коду, можна для деяких елементів меню встановити значення властивості Enabled як False - виключити прапорець.

4.2 Робота з масивами елементів управління, змінних

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

Масивом є сукупність однотипних компонент, які мають подібні властивості, використовуються однаково. Масив повинен мати ім’я, як будь-який іншій об’єкт. Наприклад, масив текстових полів може мати назву txtName. Елементи масиву відрізняються між собою, як правило, лише значенням властивості Index. Ім’я кожного елементу масиву складається з імені, в якому в круглих дужках визначається значення властивості Index. Наприклад, елементом масиву текстових полів може бути поле txtName(3).

При роботі програми можна використовувати імена елементів масивів, визначаючи кожний окремий елемент, або використовуючи як індекс деяку змінну. Наприклад, у фрагменті коду програми знищується вміст таких елементів масиву txtName(1), txtName(2), txtName(3), txtName(4).

For i = 1 to 4

txtName(i).Text = “ ”

Next

Для створення масиву елементів управляння можна спочатку створити перший елемент, визначити усі його властивості (ім’я елементу повинно бути введено як ім’я масиву), скопіювати елемент у формі за допомогою буферу обміну. За замовчуванням середовище програмування Visual Basic створює при вставці з буферу обміну черговий елемент масиву, нумерація яких починається з 0.

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

Dim X(6) As String

Dim S(10)

Нумерація елементів масиву змінних починається з 0, тому наприклад, у масиві Х є такі елементи Х(0), Х(1), Х(2), Х(3), Х(4), Х(5).

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

Sum = 0

For i = 0 to 5

Sum = Sum + X(i)

Next

Приклад програми

Використання меню, масивів розглядається на прикладі програми обробки даних про реалізацію товарів. Під час роботи програми користувач повинен мати змогу ввести дані про реалізацію не менш 6 товарів: найменування, ціна, кількість. Управління роботою програми повинно здійснюватись за допомогою меню, в якому містяться режими Вікно, Розрахунок, Параметри. Команди меню Вікно призначені для очистки таблиці з попередніми даними і підсумкових значень, завершення роботи програми. За допомогою команд Меню Розрахунок користувач повинен мати змогу розрахувати суму по кожному товару (ціна*кількість), визначити загальну вартість усіх реалізованих товарів, підрахувати середню ціну товарів. У програму можна також помістити  можливості зміни кольору символів усіх даних у вікні (можливі значення – чорний, синій, червоний), вибору кольору фону – білого чи жовтого, шрифту - звичайного або напівжирного. Вікно програми буде виглядати як на рис. 4.3.

Рисунок 4.3 - Вікно програми – приклада роботи з меню, масивами

На першому етапі розробки програми слід створити форму, помістити на неї такі елементи управління:

Об'єкт

Властивість

Значення

1

2

3

Форма (Form)

Name

frmMenu

Caption

Робота з меню, масивами

BackColor

білий

Етикетка (Label)

Name

lblZag

Caption

Відомість реалізації товарів

BackColor

білий

Font

14 пунктів, напівжирний курсив

AutoSize

True

Етикетка (Label)

Name

lblZ

Caption

Найменування

BackColor

білий

Font

12 пунктів, напівжирний

Alignment

2 - Center

BorderStyle

1 – Fixed Single

Далі слід клацнути на етикетці lblZ, скопіювати її в буфер обміну, виконати операцію вставки даних з буферу, на запитання системи відповісти Так. Етикетка lblZ після цієї операції стає об’єктом lblZ(0), тому що властивість Index елемента управління прийме значення 0. Новий об’єктом, який отримано з буферу обміну, буде мати ім’я lblZ(1), його властивість Index буде мати значення 1. Цю етикетку слід перетягти у відповідне місце, встановити значення властивості CaptionЦіна, налаштувати розмір об’єкта. Аналогічним чином слід створити об’єкти lblZ(2) - Кількість, lblZ(3)Сума. Таким чином, створено масив етикеток lblZ, у якому міститься 4 елемента.

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

  1.  Створити поле txtN для введення найменування товару з такими властивостями:

Текстове поле

(Text Box)

Name

txtN

Text



Font

12 пунктів, напівжирний

BorderStyle

1 – Fixed Single

  1.  Скопіювати поле txtN у буфер обміну, вставити текстове поле з буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtN(0), txtN(1), txtN(2), txtN(3), txtN(4), txtN(5). Створено масив текстових полів txtN, що нараховує 6 елементів.
  2.  Створити поле txtС для введення ціни товару з такими властивостями:

Текстове поле

(Text Box)

Name

txtС

Text



Font

12 пунктів, напівжирний

BorderStyle

1 – Fixed Single

  1.  Скопіювати поле txtС у буфер обміну, вставити текстове поле з буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtС(0), txtС(1), txtС(2), txtС(3), txtС(4), txtС(5). Створено масив текстових полів txtС, у якому є 6 елементів.
  2.  Створити поле txtК для введення ціни товару з такими властивостями:

Текстове поле

(Text Box)

Name

txtК

Text



Font

12 пунктів, напівжирний

BorderStyle

1 – Fixed Single

  1.  Скопіювати поле txtК у буфер обміну, вставити текстове поле з буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtК(0), txtК(1), txtК(2), txtК(3), txtК(4), txtК(5). Створено масив текстових полів txtК, що нараховує 6 елементів.
  2.  Створити поле txtS для виведення вартості товару з такими властивостями:


Текстове поле

(Text Box)

Name

txtS

Text



Font

12 пунктів, напівжирний

BorderStyle

1 – Fixed Single

Enabled

False

  1.  Скопіювати поле txtS у буфер обміну, вставити текстове поле з буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtS(0), txtS(1), txtS(2), txtS(3), txtS(4), txtS(5). Створено масив текстових полів txtS.

Додати до форми такі етикетки для виведення підсумкових значень:

Об'єкт

Властивість

Значення

Етикетка (Label)

Name

lblPid

Caption



BackColor

білий

Font

12 пунктів, напівжирний курсив

Етикетка (Label)

Name

lblSC

Caption



BackColor

білий

Font

12 пунктів, напівжирний курсив

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

Caption

Name

Структура меню

Вікно

mnuWind

Вікно

Очистити

mnuClear

. . . . Очистити

Таблицю

mnuTabl

. . . . . . . . Таблицю

Підсумки

mnuPid

. . . . . . . . Підсумки

Вихід

mnuExit

. . . . Вихід

Розрахунок

mnuRoz

Розрахунок

Сума

mnuRSum

. . . . Сума

Підсумок

mnuRPid

. . . . Підсумок

Середня ціна

mnuRSC

. . . . Середня ціна

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

Створимо процедуру для завершення роботи програм:

Private Sub mnuExit_Click()

End

End Sub

Дію програми вже можна перевірити, тобто можна запустити програму на виконання, завершити роботу програми.

Програма повинна працювати таким чином:

  1.  Після завантаження програми користувач повинен мати змогу ввести дані для розрахунків.
  2.  У меню Розрахунок активним є лише пункт Сума тому, що при виконанні розрахунку суми  дані про кількість товару в кожному рядку таблиці та суму записуються в масиви змінних Sum, K, в яких по 6 елементів. Обчисленні значення будуть використовуватись для подальших розрахунків. Масиви змінних слід оголосити у розділі General Declaration оператором:

Dim Sum(6), K96)

  1.  Після розрахунку сум по товарах користувач не повинен мати змогу змінювати значення текстових полів для введення даних, значення властивості Enabled зміниться на False. У меню команда  РозрахунокСума повинна стати неактивною (значення властивості Enabled елементу меню зміниться на False), а команди РозрахунокПідсумок, РозрахунокСередня ціна навпаки повинні стати активними.
  2.  Після очистки полів таблиці текстові поля для введення даних стають доступними, команда меню РозрахунокСума активною, команди меню РозрахунокПідсумок, РозрахунокСередня ціна неактивними.

Обов’язкові процедури програми повинні бути такими:

Дані в рядку коду

Коментар

1

2

Dim Sum(6), K(6)

Оголошення масивів Sum(6), K(6).

Private Sub mnuTabl_Click()

Процедура виконується, якщо клацнути на пункті Таблицю в режимі Очистити пункту меню Вікно.

For i = 0 To 5

Змінна циклу і використовується для роботи з індексами елементів масивів, тому вона може змінюватись від 0 до 5.

txtN(i).Text = " "

Властивості Text і-го елемента масиву txtN привласнюється значення – порожній рядок.

txtC(i).Text = " "

Знищується вміст чергового поля для введення ціни.

txtK(i).Text = " "

Знищується вміст чергового поля для введення кількості.

txtS(i).Text = " "

Знищується вміст поля для виведення суми.

txtN(i).Enabled = True

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

txtC(i).Enabled = True

Можна змінювати значення елементу масиву для введення ціни з використанням клавіатури.

txtK(i).Enabled = True

як у попередньому пункті

Next

І привласнюється значення і+1, якщо і менше або рівно 5, починається наступна ітерація циклу, в іншому випадку цикл завершує свою роботу.


1

2

mnuRSum.Enabled = True

Команда меню РозрахунокСума стає  активною.

mnuRPid.Enabled = False

Команда меню РозрахунокПідсумок стає неактивною.

mnuRSC.Enabled = False

Команда меню РозрахунокСередня ціна стає неактивною.

End Sub

Кінець процедури.

Private Sub mnuPid_Click()

Заголовок процедури, які буде виконано якщо в меню обрати команду ВікноОчисткаПідсумки.

lblPid.Caption = " "

Знищується текст у етикетці lblPid.

lblSC.Caption = " "

Знищується текст у етикетці lblSC.

End Sub

Кінець процедури.

Private Sub mnuRSum_Click()

Заголовок процедури, яка пов’язана з командою меню РозрахунокСума.

For i = 0 To 5

Для і, що змінюється від 0 до 5 виконується такі дії:

C = Val(txtC(i).Text)

Змінній С привласнюється значення властивості Text чергового елемента масиву txtC(i), яке при цьому перетворюється з числового на текстове.

K(i) = Val(txtK(i).Text)

Елементу масиву змінних K(i) привласнюється значення, яке введено в елемент масиву полів txtK(i).

Sum(i) = K(i) * C

Елементу масиву змінних Sum(i) привласнюється значення добутку ціни на кількість.

If Sum(i) <> 0 Then

Якщо значення суми, яке отримано, не рівно 0, то

txtS(i).Text = Str(Sum(i))

виводиться значення суми у елементі масиву текстових полів txtS(i).

End If

txtN(i).Enabled = False

Елемент масиву txtN(i) для введення найменувань товарів  стає недоступним для подальшого редагування.

txtC(i).Enabled = False

Елемент масиву txtC(i) для введення цін товарів стає недоступним для подальшого редагування.

txtK(i).Enabled = False

Елемент масиву txtК(i) для введення кількості стає недоступним для подальшого редагування.

Next

І привласнюється значення і+1, якщо і менше або рівно 5, починається наступна ітерація циклу, в іншому випадку цикл завершує свою роботу.

mnuRSum.Enabled = False

Команда меню РозрахунокСума стає неактивною.

mnuRPid.Enabled = True

Команда меню РозрахунокПідсумок стає активною.

mnuRSC.Enabled = True

Команда меню РозрахунокСередня ціна стає активною.

End Sub

Кінець процедури.



1

2

Private Sub mnuRPid_Click()

Заголовок процедури, яка пов’язана з командою меню РозрахунокПідсумок.

Pid = 0

Змінній Pid для накопичення підсумку надається значення 0.

For i = 0 To 5

Для і від 0 до 5

Pid = Pid + Sum(i)

змінній Pid привласнюється значення – попереднє значення Pid + значення поточного елементу масиву змінних Sum(i), в якому зберігаються розраховані суми по товарах.

Next

Перехід до наступної ітерації або кінець циклу.

lblPid.Caption = "Підсумок:  " + Str(Pid) + " грн."

Друкування результату в етикетці lblPid.

End Sub

Кінець процедури.

Private Sub mnuRSC_Click()

Заголовок процедури, яка пов’язана з командою меню РозрахунокСередня ціна.

Pid = 0

Змінній Pid для накопичення підсумку надається значення 0.

Kol = 0

Змінній Kol для накопичення загальної кількості товарів привласнюється значення 0.

For i = 0 To 5

Для і від 0 до 5

Pid = Pid + Sum(i)

змінній Pid привласнюється значення – попереднє значення Pid + значення поточного елементу масиву змінних Sum(i), в якому зберігаються розраховані суми по товарах.

Kol = Kol + K(i)

змінній Kol привласнюється значення – попереднє значення Kol + значення поточного елементу масиву змінних К(i), в якому зберігаються дані про кількість реалізованих товарів  по рядках таблиці.

Next

Перехід до наступної ітерації або кінець циклу.

lblSC.Caption = "Середня ціна:  " + Str(Pid / Kol) + " грн."

Друкування результату в етикетці lblSC.

End Sub

Кінець процедури.

Для того, щоб встановити правильні значення параметрів, які визначають активність команд меню, слід перейти у вікно редактора меню, для елементів меню встановити такі значення властивості Enabled:

  •  для елемента mnuRSum (РозрахунокСума) – True (включити прапорець, щоб визначити, що пункт меню є активним);
  •  для елемента меню mnuRPid (РозрахунокПідсумок) – False (виключити прапорець, режим меню є неактивним, оскільки щоб підрахувати підсумки, слід спочатку обчислити суми реалізації товарів);
  •  для елемента mnuRSC (РозрахунокСередня ціна) – False.

Після введення програмного коду програма виконує всі необхідні функції, може бути апробована.

Щоб розширити можливості програми за бажанням можна  додати ще один режим меню Параметри. Для цього треба активізувати форму, перейти до редактору меню командою ToolsMenu Editor, у вікні редактору додати до меню такі елементи:

Caption

Name

Структура меню

Параметри

mnuParam

Параметри

Колір

mnuColor

. . . . Колір

Символ

mnuSimbl

. . . . . . . . Символ

чорний

mnuBlack

. . . . . . . . . . . . чорний

синій

mnuBlue

. . . . . . . . . . . . синій

червоний

mnuRed

. . . . . . . . . . . . червоний

Фон

mnuF

. . . . . . . . Фон

білий

mnuWhite

. . . . . . . . . . . . білий

жовтий

mnuYellow

. . . . . . . . . . . . жовтий

Шрифт

mnuFont

. . . . Шрифт

звичайний

mnuNormal

. . . . . . . . звичайний

напівжирний

mnuBold

. . . . . . . . напівжирний

Для зміни кольору символів, фону об’єктів, слід змінювати значення властивостей BackColor – колір фону,  ForeColor – колір символів. Це можна зробити за допомогою функції QBColor(), параметрами якої є такі кольори:

Колір

Номер

Колір

Номер

Black

Чорний

0

Dark Gray

Темно - сірий

8

Blue

Синій

1

Light Blue

Голубий

9

Green

Зелений

2

Light Green

Світло - зелений

10

Cyan

Бірюзовий

3

Light Cyan

Світло - бірюзовий

11

Red

Червоний

4

Light Red

Рожевий

12

Magenta

Фіолетовий

5

Light Magenta

Світло - фіолетовий

13

Brown

Коричневий

6

Yellow

Жовтий

14

Light Gray

Сірий

7

White

Білий

15


Щоб змінювати колір символів, наприклад, на синій слід створити таку процедуру:

Дані в рядку коду

Коментар

Private Sub mnuBlue_Click()

Процедура, яка виконується якщо обрати команду ПараметриКолірСимволсиній.

mnuBlack.Enabled = True

Пункт меню для вибору чорного кольору символів стає активним.

mnuBlue.Enabled = False

Пункт меню для вибору синього кольору символів стає неактивним.

mnuRed.Enabled = True

Пункт меню для вибору червоного кольору символів стає активним.

lblZ.ForeColor = QBColor(1)

Колір символів етикетки lblZ стає синім (код синього кольору - 1).

For i = 0 To 3

Для і від 0 до 3

lblZag(i).ForeColor = QBColor(1)

кожний і-ий елемент масиву етикеток lblZag змінює свій колір на синій.

Next

lblPid.ForeColor = QBColor(1)

Етикетка для виведення підсумку lblPid змінює колір символів на синій.

lblSC.ForeColor = QBColor(1)

Етикетка для виведення середньої ціни lblSC змінює колір символів на синій.

End Sub

Кінець процедури.

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

Private Sub mnuBlack_Click()

Private Sub mnuRed_Click()

mnuBlack.Enabled = False

mnuBlack.Enabled = True

mnuBlue.Enabled = True

mnuBlue.Enabled = True

mnuRed.Enabled = True

mnuRed.Enabled = False

lblZ.ForeColor = QBColor(0)

lblZ.ForeColor = QBColor(4)

For i = 0 To 3

For i = 0 To 3

lblZag(i).ForeColor = QBColor(0)

lblZag(i).ForeColor = QBColor(4)

Next

Next

lblPid.ForeColor = QBColor(0)

lblPid.ForeColor = QBColor(4)

lblSC.ForeColor = QBColor(0)

lblSC.ForeColor = QBColor(4)

End Sub

End Sub

Перед апробацією цієї гілки меню у вікні редактора меню слід визначити такі значення властивості Enabled:

  •  для елемента mnuBlack False (виключити прапорець, щоб визначити, що пункт меню є неактивним);
  •  для елемента меню mnuBlue - True;
  •  для елемента mnuRed True.

Для зміни кольору фону треба створити такі процедури, пов’язані з командами меню ПараметриКолірФонбілий (mnuWhite), ПараметриКолірФонжовтий (mnuYellow):


Private Sub mnuWhite_Click()

Private Sub mnuYellow_Click()

mnuWhite.Enabled = False

mnuWhite.Enabled = True

mnuYellow.Enabled = True

mnuYellow.Enabled = False

frmMenu.BackColor = QBColor(15)

frmMenu.BackColor = QBColor(14)

lblZ.BackColor = QBColor(15)

lblZ.BackColor = QBColor(14)

For i = 0 To 3

For i = 0 To 3

lblZag(i).BackColor = QBColor(15)

lblZag(i).BackColor = QBColor(14)

Next

Next

For i = 0 To 5

For i = 0 To 5

txtN(i).BackColor = QBColor(15)

txtN(i).BackColor = QBColor(14)

txtC(i).BackColor = QBColor(15)

txtC(i).BackColor = QBColor(14)

txtK(i).BackColor = QBColor(15)

txtK(i).BackColor = QBColor(14)

txtS(i).BackColor = QBColor(15)

txtS(i).BackColor = QBColor(14)

Next

Next

lblPid.BackColor = QBColor(15)

lblPid.BackColor = QBColor(14)

lblSC.BackColor = QBColor(15)

lblSC.BackColor = QBColor(14)

End Sub

End Sub

Після створення процедур для зміни кольору фону необхідно правильно  встановити властивості Enabled для елементів меню:

  •  для елемента mnuWhiteFalse (виключити прапорець, щоб визначити, що пункт меню є неактивним);
  •  для елемента mnuYellowTrue.

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

Для зміни шрифтів елементів управління в формі необхідно створити процедури для елементів меню mnuBold (ПараметриШрифтнапівжирний) і mnuNormal (ПараметриШрифтзвичайний).


Private Sub mnuBold_Click()

Private Sub mnuNormal_Click()

mnuNormal.Enabled = True

mnuNormal.Enabled = False

mnuBold.Enabled = False

mnuBold.Enabled = True

lblZ.FontBold = True

lblZ.FontBold = False

For i = 0 To 3

For i = 0 To 3

lblZag(i).FontBold = True

lblZag(i).FontBold = False

Next

Next

For i = 0 To 5

For i = 0 To 5

txtN(i).FontBold = True

txtN(i).FontBold = False

txtC(i).FontBold = True

txtC(i).FontBold = False

txtK(i).FontBold = True

txtK(i).FontBold = False

txtS(i).FontBold = True

txtS(i).FontBold = False

Next

Next

lblPid.FontBold = True

lblPid.FontBold = False

lblSC.FontBold = True

lblSC.FontBold = False

End Sub

End Sub

Перед використанням цієї функції програми слід визначити такі значення властивості Enabled для елементів меню:

  •  для елемента mnuBoldFalse;
  •  для елемента mnuNormalTrue.

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

  1.  Як створити меню в програмі? Які властивості елементів меню Вам відомі?
  2.  Що таке масив елементів управління?
  3.  Коли можна встановлювати значення False властивості Enabled елементу масиву?
  4.  Як відрізняються між собою елементи масиву об’єктів?
  5.  Яким чином можна звернутися до окремого елементу масиву?
  6.  Як оголосити масиви змінних?
  7.  Як працювати з масивами у коді програми?

4.4 Практичні завдання

Завдання

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форму для розрахунку економічних показників із застосування масивів елементів управління – етикеток і текстових полів, меню програми, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форму та код програми.

Меню програми повинно мати таку структуру:

Вікно

Розрахунок

?

Очистка всієї таблиці

Інформаційні рядки

Інформація про автора

Вихід

Підсумкові значення

У формі слід надати змогу користувачеві ввести 5 інформаційних рядків, розрахувати підсумкові значення по рядках і таблиці в цілому. Розрахункові показники помічено символом *.

Звіт про роботу повинен вміщувати:

  •  блок-схему алгоритмічного процесу розв’язання задачі;
  •  роздруковані форми програми;
  •  роздрукований код програми.

Варіант №1

Створити програму, що дозволяє обробити такі дані:

Аналіз стану товарних запасів

Найменування

товарних груп

Норматив

товарних запасів

Фактичні

запаси (сума)

Відхилення

від нормативу

* (факт-норматив)

Підсумок:

*

*

*


Варіант №2

Створити програму, що дозволяє обробити такі дані:

Відомості про виробництво продукції

Найменування

продукції

Місяці

Усього за період

січень

лютий

березень

*

Підсумок:

*

*

*

*

Варіант №3

Створити програму, що дозволяє обробити такі дані:

Картка кількісного обліку товарів

Найменування

товару

Залишок на

початок періоду

Прихід

Витрата

Залишок на

кінець періоду

* (гр.2+гр.3-гр.4)

Підсумок:

*

*

*

*

Варіант №4

Створити програму, що дозволяє обробити такі дані:

Відомості про виробництво продукції

Найменування

продукції

Перший

квартал

Другий

квартал

Третій

квартал

Четвертий

квартал

Усього

за рік

*

Підсумок:

*

*

*

*

*

Варіант №5

Створити програму, що дозволяє обробити такі дані:

Аналіз виконання плану товарообігу за структурою

Найменування

товарів

План

реалізації

Фактично

реалізовано

Відхилення

від плану

Відсоток виконання

плану

* (гр.3-гр.2)

* (гр.3/гр.2*100)

Підсумок:

*

*

*

*

Варіант №6

Створити програму, що дозволяє обробити такі дані:

Аналіз реалізації товарів у 2005 році в порівнянні з 2004 р. (тис. грн.)

Найменування

товарів

Реалізація в 2004 р.

Реалізація

в 2005 р.

Відхилення

Сума

Відсоток

* (гр. 3/ гр. 2*100)

Разом:


Варіант №7

Створити програму, що дозволяє обробити такі дані:

Відомість розрахунків покупців по кредитах

Прізвище

покупця

Сума

кредиту

Сума внесків

Залишок

заборгованості

у погашенні заборгованості

пеня за прострочення платежу

* (гр.2-гр.3)

Підсумок:

*

*

*

*

Варіант №8

Створити програму, що дозволяє обробити такі дані:

Відомість результатів інвентаризації товарів

Наймену-

вання

товару

Ціна

Книжкові

залишки

Фактичні

залишки

Відхилення

кіль-

кість

сума

кіль-

кість

сума

кіль-

кість

сума

*

*

*

*

Разом:

*

*

*

*

*

*

Варіант №9

Створити програму, що дозволяє обробити такі дані:

Рахунок-фактура

Найменування товару

Кіль-

кість

Ціна

Сума

Відсоток націнки

Сума націнки

Загальна сума

*

*

*

Разом:

*

*

*

*

Варіант №10

Створити програму, що дозволяє обробити такі дані:

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

Найменування культури

Найменування покупця

Фонд

Фактично вибрано

Відхилення

* (гр.4-гр.3)

Разом:

*

*

*

Варіант №11

Створити програму, що дозволяє обробити такі дані:

Відомість залишків основних фондів

Найменування об'єкта

Початкова вартість

Сума зносу

Залишкова вартість

* (гр.2-гр.3)

Разом:

*

*

*


Варіант №12

Створити програму, що дозволяє обробити такі дані:

Реєстр листків по тимчасовій непрацездатності

Прізвище

Номер

лікарняного листка

Сума оплати за день

Число днів хвороби

Сума

*

Підсумок:

*

*

Варіант №13

Створити програму, що дозволяє обробити такі дані:

Відомість відрахувань із зарплати

П ІБ

Табельний номер

Види відрахувань

Разом

відраховано

аванс

прибутковий податок

за покупку товарів у кредит

* (гр.3+гр.4+гр.5)

Разом:

*

*

*

*

 

Варіант №14

Створити програму, що дозволяє обробити такі дані:

Меню на відпустку харчування співробітникам столової

Найменування

блюда

Кількість

По цінах відпустки

По обліковим цінам

виробництва

ціна

сума

ціна

сума

* (гр. 3*гр.2)

* (гр.5*гр.2)

Підсумок:

*

*

*

Варіант №15

Створити програму, що дозволяє обробити такі дані:

Аналіз забезпеченості кадрами

Професія

Чисельність працюючих

Відхилення

Коефіцієнт забезпеченості

за планом

фактично

(+, -)

%

гр.3-гр.2

100-(гр.3*100/гр.2)

* (гр.3/гр.2)

Підсумок:

*

*

*

*

*

4.5 Тест

Відповідь

Вміє

Не вміє

  1.  Скільки елементів вміщує масив змінних, який оголошено DIM X(8)?

  1.  8

  1.  9

  1.  7


  1.  Які ствердження є правильними?

  1.  Якщо обрати пункт меню Розрахунок, ім’я якого mnuSolve , то буде виконано процедуру nmuSolve_Change()

  1.  Якщо обрати пункт меню Работа, ім’я якого mnuRun , то буде виконано процедуру nmuRun_Click()

  1.  Якщо обрати пункт меню Розрахунок, ім’я якого mnuSolve , то буде виконано процедуру nmuSolve_Load()

  1.  Щоб створити меню програми слід подати команду ...

  1.  Tools - Menu Editor

  1.  View - Menu Editor

  1.  Project – Add Form

  1.  Які дії виконує наступний фрагмент коду?

Private Sub mnuC_Click()

For i = 0 to 3

If val(lblN(i).Caption)>0 Then

lblN(i).Caption = “ ”

End If

Next

End Sub

  1.  знищує вміст 4-ох елементів масиву етикеток

  1.  знищує вміст 3-ох елементів масиву етикеток, значення яких більше 0

  1.  знищує вміст 3-ох елементів масиву етикеток, значення яких більше 0

  1.  Для зміни порядку підпорядкованості елементів меню у вікні редактору меню використовуються кнопки ...

  1.  Next

  1.  ,

  1.  Insert

  1.  Яких помилок припущено у фрагменті коду?

Sum = 0

For m = 0 to 4

Sum = Sum + X(i)

Next

  1.  індексація елементів масиву починається з 0, а не з 1

  1.  відсутнє слово Then

  1.  X(i) замість X(m)

5 Розробка програм з використанням

підпрограм – процедур і функцій, вікон повідомлень

5.1 Підпрограми – процедури і функції

У програмах, що розглядалися раніше, використовувалися процедури як частки програмного коду, які виконуються коли відбувається певна подія, пов’язана з деяким об’єктом. Мова програмування Visual Basic дозволяє, як і інші мови програмування, створювати окремі підпрограми – процедури і функції, які не пов’язані з об’єктами, подіями. Підпрограми використовуються коли у декількох частинах програми треба виконати подібні дії – обчислення показників, привласнення нових значень властивостям об’єктів і т. ін. Підпрограми створюються як окремі фрагменти коду, до яких можна звертатися з різних частин програми, викликати підпрограми.

Існують такі види підпрограм: підпрограми – процедури, підпрограми – функції.

Підпрограма – процедура призначена для виконання деякої послідовності дій. Щоб створити нову процедуру слід активізувати вікно коду і подати команду ToolsAdd Procedure. У вікні діалогу Add Procedure необхідно визначити ім’я процедури, тип підпрограми – процедура Sub, у області діалогу Scope визначити видимість процедури: Public – процедура буде доступна для будь-яких частин коду програми або Private – процедура доступна лише для інших підпрограм поточної форми. Після натиснення на кнопці Ок до коду програми додається заголовок і заключний рядок процедури.

Наприклад, можна створити процедуру, яка дає змогу визначити будь-який колір символів і фону всіх об’єктів форми:

Public Sub ChangeColor()

End Sub

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

Процедура може приймати якісь початкові значення, які в тілі процедури використовуються, обробляються. Ці значення називаються параметрами процедури, задаються в круглих дужках у заголовку процедури. Параметрами процедури можуть бути будь-які змінні. При створенні процедури слід визначити її параметри як певні змінні з обов’язковим зазначенням їх типів. Наприклад, процедура, яка буде змінювати кольори об’єктів форми повинна отримувати значення двох параметрів – коду кольору символів, коду кольору фону. Цим параметрам повинні відповідати дві змінні типу Integer, які будуть використовуватись у процедурі для зміни властивостей об’єктів. Процедура для зміни кольорів може виглядати так:

Public Sub ChangeColor(F As Integer, Sim As Integer)

frmMain.BackColor = QBColor(F)

lbl1.BackColor = QBColor(F)

lbl2.BackColor = QBColor(F)

lbl1.ForeColor = QBColor(Sim)

lbl2.ForeColor = QBColor(Sim)

End Sub

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

Наприклад, щоб встановити чорний колів символів і світло-бірюзовий колір фону, в коді програми можна так звернутися до процедури:

ChangeColor 11, 0

Якщо треба встановити синій колір символів, жовтий колір фону можна виконати, наприклад, такі дії:

Simbol = 1

BackC = 14

ChangeColor BackC, Simbol

Підпрограми – функції, на відміну від процедур, призначені для обчислення деякого параметру. Кажуть, що функція повертає деяке значення. Для створення функції, як і процедури, слід виконати команду меню ToolsAdd Procedure, ввести ім’я процедури, обрати перемикачі Function, Public. Функція може також приймати деякі параметри, у тілі функції можна виконувати різні дії. Обов’язково всередині функції привласнити якесь значення імені функції, значення, яке буде повертати функція.

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

 

Щоб скоротити програмний код, спростити програму, цю операцію можна оформити як функцію:

Public Function RozF(S As Integer, i As Integer, X As Integer)

Dim Y As Integer

Y = 0

For n = 1 To X

Y = Y + S * (1 + i)

Next

RozF = Y

End Function

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

Наприклад, таке використання функції

lbl1.Caption = Str(RozF(10, 1, 2))

призводить до зміни властивості Caption об’єкту lbl1 – їй привласнюється значення, яке розраховується функцією RozF для S=10, i=1, X=2.

5.2 Вікна повідомлень

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

  •  оператор MsgBox;
  •  функцію MsgBox().

Оператор MsgBox викликає стандартну підпрограму, яка виводить вікно повідомлення. Загальна форма оператору:

MsgBox Message, CodKey + CodIcon, Title

Параметри процедури MsgBox:

Message – повідомлення у вікні діалогу, рядок символів;

CodKey – код кнопок у вікні;

CodIcon – код значка, який відображається у вікні;

Title – вміст заголовку вікна повідомлення, рядок символів.

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

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

Коди сполучень кнопок у вікні повідомлення

Ім’я константи

Значення

Сполучення кнопок

vbOKOnly

0

Ok

vbOKCancel

1

Ok i Cancel (Отмена)

vbAbortRetryIgnore

2

Abort (Стоп), Retry (Повтор), Ignore (Пропустить)

vbYesNoCancel

3

Yes (Да), No (Нет), Cancel (Отмена)

vbYesNo

4

Yes (Да), No (Нет)

vbRetryCancel

5

Retry (Повтор), Cancel (Отмена)


Коди значків у вікні повідомлення

Ім’я константи

Значення

Значок

Вигляд

vbCritical

16

Критичне повідомлення

vbQuestion

32

Запит

vbExclamation

48

Попередження

vbInformation

64

Інформація

У операторі можна використовувати як імена стандартних констант, так і їх значення.

Наприклад, якщо  виконати оператор

MsgBox "Ви впевнені?", vbOKOnly + vbExclamation, "Увага!"

на екрані з’явиться таке вікно

Результат не зміниться, якщо в програмному коді ввести:

MsgBox "Ви впевнені?", 0 + 48, "Увага!"

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

Функція MsgBox() усуває цей недолік. Параметри функції MsgBox() такі ж, як і параметри оператору MsgBox. Функція MsgBox() повертає деяке значення, яке можна привласнити змінній, проаналізувати і в залежності від обраної кнопки виконати різні дії.

Можливі значення, що повертає функція MsgBox()

Ім’я константи

Значення

Обрано кнопку

vbOK

1

кнопка Ok

vbCancel

2

кнопка Cancel (Отмена)

vbAbort

3

кнопка Abort (Стоп)

vbRetry

4

кнопка Retry (Повтор)

vbIgnore

5

кнопка Ignore (Пропустить)

vbYes

6

кнопка Yes (Да)

vbNo

7

кнопка No (Нет)

Приклад використання функції MsgBox():

Private Sub cmdDelete_Click()

Vid=MsgBox("Знищити дані таблиці?",vbOKCancel+vbQuestion,"Увага - знищення")

If Vid = vbOK Then

For i = 0 To 5

txtName(i).Text = " "

txtSum(i).Text = " "

Next

End If

End Sub

Процедуру буде виконано, якщо клацнути кнопкою миші по кнопці cmdDelete. Функція MsgBox() виведе на екран таке вікно повідомлення:

Після натиснення кнопки ОК або Отмена, значення, що повертає функція, буде привласнено змінній Vid. Якщо Vid дорівнює vbOK (можна порівнювати з 1), то виконується знищення вмісту  елементів масиву текстових полів txtName  і txtSum.

Приклад програми з використанням

підпрограм, вікон повідомлень

Як приклад розглядається програма, яка дозволить ввести данні в масив записів з полями для збереження прізвищ та ініціалів співробітників, сум нарахованої заробітної плати. При введенні значень нарахованої заробітної плати програма повинна перевіряти значення і, якщо введено від’ємне число видавати повідомлення та знищувати уміст текстового поля. Командами меню Вікно користувач повинен мати змогу Очистити таблицю, підсумок або таблицю і підсумок, завершити роботу програми. Режим меню Розрахунок дає змогу визначити суму нарахування з фонду заробітної плати у пенсійний фонд (32% від загальної суми нарахувань), у фонд соціального страхування (4,4% від загальної суми нарахувань), у фонд зайнятості (0,5% від загальної суми нарахувань).

Рисунок 5.1 - Види вікна програми – приклада

На етапі візуальної розробки програми слід створити форму, розташувати на неї елементи управління, визначити їх властивості у відповідності з даними таблиці:

Об’єкт

Властивість

Значення

Форма (Form)

Name

frmMain

Caption

Виплати з фонду заробітної плати

Font

Times New Roman, 12 п., напівжирний

Етикетка (Label)

Name

lblZag

Caption

Введіть дані для розрахунку:

Font

курсив

Етикетка (Label)

Name

lblNamе

Caption

П І Б

Етикетка (Label)

Name

lblN

Caption

Нараховано

Етикетка (Label)

Name

lblRez

Caption

“_”

Масив текстових полів (TextBox)

Name

txtName(04)

Text

“_”

Index

04

Масив текстових полів (TextBox)

Name

txtN(04)

Text

“_”

Index

04


Далі слід розчинити вікно редактору меню командою
ToolsMenu Editor, створити таке меню програми:

Caption

Name

Структура меню

Вікно

mnuWind

Вікно

Очистка

mnuClear

. . . .Очистка

таблиця

mnuTabl

. . . . . . . . таблиця

підсумок

mnuPid

. . . . . . . . підсумок

таблиця та підсумок

mnuTablPid

. . . . . . . . таблиця та підсумок

Вихід

mnuExit

. . . .Вихід

Розрахунок

mnuRoz

Розрахунок

Пенсійний фонд

mnuPF

. . . .Пенсійний фонд

Фонд соціального страхування

mnuSS

. . . .Фонд соціального страхування

Фонд зайнятості

mnuFZ

. . . .Фонд зайнятості

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

Дані в рядку коду

Коментар

Dim Z(5)

Оголошення в розділі General Declaration масиву Z, у якому 5 елементів.

Private Sub txtN_Change(Index As Integer)

Заголовок процедури, яка виконується коли зміниться вміст будь-якого елементу масиву txtN, відбудеться подія Change. Процедура приймає значення 1-го параметра – значення властивості Index конкретного елементу, що змінився.

If Val(txtN(Index).Text) < 0 Then

Якщо властивість Text елементу масиву txtN з індексом Index менш ніж 0, то

Povid Index

виконується процедура Povid, яка приймає значення змінної Index як фактичний параметр

Else

інакше

Z(Index) = Val(txtN(Index).Text)

у відповідний елемент масиву змінних Z записується значення нарахованої заробітної плати співробітникові, яке попередньо перетворюється функцією Val на числове

End If

Кінець оператору If

End Sub

Кінець процедури

Для створення нової процедури Povid, яка повинна виводити повідомлення у випадку, якщо в полі нарахувань введено від’ємне число, слід перебуваючи у вікні коду виконати команду меню ToolsAdd Procedure. У вікні діалогу треба ввести ім’я процедури, обрати перемикачі Sub, Public. До коду програми буде добавлено заголовок і останній рядок процедури, далі слід визначити параметри процедури і її вміст як у таблиці:

Дані в рядку коду

Коментар

Public Sub Povid(I As Integer)

Параметром процедури є змінна I типу Integer

MsgBox "У чарунку введено від’ємне значення!", 0 + 64, "Увага!"

Оператором MsgBox виводиться таке вікно повідомлення:

txtN(I).Text = " "

Після натиснення на кнопці Ок буде знищено вміст елементу масиву тестових полів txtN з індексом, який буде прийнято як фактичний параметр процедури

End Sub

Кінець процедури

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

Дані в рядку коду

Коментар

Private Sub mnuExit_Click()

Процедура завершує роботу програми, якщо в меню обрано команду Вихід.

End

End Sub

Public Sub ClearTabl()

Заголовок процедури ClearTabl, яку слід створити для знищення вмісту елементів масивів текстових полів командою ToolsAdd Procedure.

For I = 0 To 4

Для і, що змінюється від 0 до 4

Z(I) = 0

елементу масиву змінних Z привласнюється значення 0

txtName(I).Text = " "

уміст і-го елементу текстових полів txtName для введення ПІП знищується

txtN(I).Text = " "

уміст і-го елементу текстових полів txtN для введення нарахованих сум заробітної плати знищується

Next

Кінець циклу

End Sub

Кінець процедури

Public Sub ClearlPid()

Заголовок процедури ClearlPid, яку слід створити для знищення вмісту етикетки для виведення результатів командою ToolsAdd Procedure.

lblRez.Caption = " "

Знищення вмісту етикетки lblRez.

End Sub

Кінець процедури

Private Sub mnuTabl_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчистититаблицю.

ClearTabl

Виклик процедури ClearTabl для знищення вмісту таблиці.

End Sub

Кінець процедури

Private Sub mnuPid_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчиститипідсумок.

ClealPid

Виклик процедури ClealPid для знищення вмісту етикетки з підсумком.

End Sub

Кінець процедури

Private Sub mnuTablPid_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчистититаблицю і підсумок.

ClearTabl

Виклик процедури ClearTabl для знищення вмісту таблиці.

ClealPid

Виклик процедури ClealPid для знищення вмісту етикетки з підсумком.

End Sub

Кінець процедури

Для виконання розрахунків пропонується створити функцію RozSum командою меню Tools – Add Procedure,  у вікні діалогу команди слід ввести ім’я функції, обрати перемикачі Function, Public. Далі треба створити коди процедур, які пов’язані з командами режиму Розрахунок.

Дані в рядку коду

Коментар

Public Function RozSum(V As Single)

Функція RozSum приймає один параметр – число типу Single, яке буде розміщено в змінній V. Змінна V буде вміщувати відсоток для розрахунку певного виду виплат з фонду соціального страхування.

RozSum = 0

Імені функції привласнюється значення 0.

For I = 0 To 4

Для і, що змінюється від 0 до 4,

RozSum = RozSum + Z(I)

Функції RozSum привласнюється значення – RozSum + значення  і-го елементу масиву змінних Z

Next

Кінець циклу.

RozSum = RozSum * V

Імені функції привласнюється значення – RozSum* V.

End Function

Кінець функції.

Private Sub mnuPF_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокПенсійний фонд.

lblRez.Caption = "Нараховано в пенсійний фонд " + Str(RozSum(0.32)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в пенсійний фонд "; результату, який повертає функція RozSum(0.32) для аргументу 0,32, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.


Private Sub mnuSS_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокФонд соціального страхування.

lblRez.Caption = "Нараховано в  фонд соціального страхування  " + Str(RozSum(0.044)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд соціального страхування  "; результату, який повертає функція RozSum(0.044) для аргументу 0,044, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.

Private Sub mnuZan_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокФонд зайнятості.

lblRez.Caption = "Нараховано в фонд зайнятості " + Str(RozSum(0.005)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд зайнятості  "; результату, який повертає функція RozSum(0.005) для аргументу 0,005, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.

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

  1.  Коли слід створювати підпрограми?
  2.  Чим відрізняються підпрограми – процедури від підпрограм – функцій?
  3.  Як виконати процедуру?
  4.  Як можна використовувати результат, що повертає функція?
  5.  Що визначає параметр CodKey процедури MsgBox, функції MsgBox()?
  6.  Для чого використовується параметр CodIcon у процедурі MsgBox, функції MsgBox()?
  7.  Як проаналізувати обрану користувачем кнопку у вікні повідомлення, в залежності від виробу виконати різні дії?

5.4 Практичні завдання

Завдання

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форму із застосування масивів елементів управління, меню програми, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форму та код програми.

Звіт про роботу повинен вміщувати:

  •  блок-схему алгоритмічного процесу розв’язання задачі;
  •  роздруковану форму програми;
  •  роздрукований код програми.


Варіант №1

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

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

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

Варіант №2

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

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

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

Варіант №3

Створити програму, у ході виконання якої можна ввести дані про п'ять міст Донецької області: найменування, середньомісячний обсяг виробництва, чисельність населення, кількість шкіл, кількість лікарень.

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

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

Варіант №4

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

При зміні значення хоча б одного з полів (ціна або кількість) програма повинна розраховувати і виводити у формі значення:

сума покупна (ціна покупки * кількість);

ціна продажу покупцю (10% торгової надбавки);

сума реалізації покупцю (ціна продажу * кількість);

ціна для постійних покупців (8% торгової надбавки);

сума реалізації постійним покупцям (ціна продажу для постійних покупців * кількість).

Меню програми повинне містити режими «Очищення», «Вихід».

Варіант №5

Створити програму, у ході виконання якої можна ввести дані: ПІБ співробітника, нараховано за рік, стаж роботи, кількість днів, пропущених через хворобу.

При зміні значення хоча б одного з полів (нараховано за рік, стаж роботи, кількість днів, пропущених через хворобу) програма повинна розраховувати і виводити у формі значення:

основна сума премії (10% від суми нарахованої заробітної плати за рік для співробітників, стаж роботи яких менш 5 років, 15% від суми нарахованої для співробітників, стаж роботи яких менш 10 років і більш 5 років, 20% для співробітників, що відробили більш 10 років);

додаткова сума премії: 100 грн., якщо через хворобу пропущено менш 5 днів у році, 50 грн. у тому випадку, якщо пропущено більш 5 але менш 15 днів;

загальна сума премії.

Меню програми повинне містити режими «Очищення», «Вихід».

Варіант №6

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

При зміні значення хоча б одного з полів (фактична або облікова суми) програма повинна розраховувати і виводити у формі значення:

сума відхилення (факт – облікові дані);

відсоток відхилення (сума відхилення / облікові дані * 100);

розмір природного збитку, якщо відхилення негативне (нестача товару) – 2% від суми фактичного залишку товару;

сума відхилення з урахуванням природного збитку (сума відхилення + розмір природного збитку).

Меню програми повинне містити режими «Очищення», «Вихід».

Варіант №7

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

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

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


Варіант №8

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

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

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

Варіант №9

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

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

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

Варіант №10

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

При зміні значення хоча б одного з полів (ціна, кількість або відсоток надбавки) програма повинна розраховувати і виводити у формі значення:

сума покупна (ціна покупки * кількість);

ціна продажу покупцю з урахуванням торгової надбавки;

сума реалізації покупцю (ціна продажу * кількість);

ціна зі знижкою (знижка складає 3%);

сума реалізації зі знижкою.

Меню програми повинне містити режими «Очищення», «Вихід».

Варіант №11

Створити програму, у ході виконання якої можна ввести дані: найменування постачальника, суму фактичного надходження товару від постачальника, суму постачання за договором.

При зміні значення хоча б одного з полів (фактична або договірна суми) програма повинна розраховувати і виводити у формі значення:

сума недовиконання договору;

сума перевиконання договору;

відсоток відхилення (сума відхилення / договір * 100).

Меню програми повинне містити режими «Очищення», «Вихід».

Варіант №12

Створити програму, у ході виконання якої можна ввести дані про шість шкіл: найменування, чисельність молодших класів, чисельність старших класів, чисельність викладачів, площа навчальних приміщень.

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

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

Варіант №13

Створити програму, у ході виконання якої можна ввести дані про п'ять держав СНД: найменування, чисельність населення, річний обсяг виробництва, кількість вузів, кількість театрів.

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

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

Варіант №14

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

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

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

Варіант №15

Створити програму, у ході виконання якої можна ввести дані: найменування покупця, суму фактичної реалізації товару покупцю, суму реалізації згідно з договором.

При зміні значення хоча б одного з полів (фактична або договірна суми) програма повинна розраховувати і виводити у формі значення:

сума недовиконання договору;

сума перевиконання договору;

відсоток відхилення (сума відхилення / договір * 100).

Меню програми повинне містити режими «Очищення», «Вихід».

5.5 Тест

Відповідь

Вміє

Не вміє

  1.  Підпрограма-функція призначена для . . .

  1.  призначені для обчислення деякого параметру

  1.  для виконання деякої послідовності дій

  1.  для виведення повідомлення

  1.  Щоб створити підпрограму-слід . . .

  1.  розчинити вікно коду, ввести заголовок процедури

  1.  подати команду меню Tools – Add Procedure

  1.  подати команду меню View – Add Procedure

  1.  Що є обов’язковим при створенні функції?

  1.  привласнити імені функції значення, яке вона повертає

  1.  оголосити змінні, що використовуються в функції

  1.  привласнити певній змінній значення, яке функція повертає

  1.  Які способи використання функції Obch() коректні?

  1.  X = Obch(12)+10

  1.  Obch(Roz)

  1.  lblZ.Caption = str(Obch(Z))+20

  1.  Obch(25)

  1.  Які заголовки підпрограм є помилковими?

  1.  Public Sub Summery(X, Y, Z)

  1.  Public Sub txtNaim_Change(Index As Integer)

  1.  Public Function Solve(X As Integer)

  1.  Оператор MsgBox є . . .

  1.  стандартною функцією

  1.  стандартною процедурою

  1.  процедурою, яка створена у вікні коду


6 Робота з файлами

6.1 Файли довільного доступу

Файл довільного доступу містить записи однакового розміру. Кожний запис може включати поля, в яких вміщуються дані. Наприклад, записи файлу з відомостями про співробітників Employees.txt підприємства можуть вміщувати дані про прізвище та ініціали робітника (поле довжиною 15 байт), освіта (поле у 4 байти). Кожний запис буде мати фіксовану довжину, вміщувати два поля, кожне з яких також має фіксований розмір.

Запис 1

Запис 2

Запис 3 і т.д.

поле 1

поле 2

поле 1

поле 2

поле 1

І

в

а

н

ч

е

н

к

о

М

.

Ф

.

в

и

щ

.

К

р

а

в

ч

е

н

к

о

В

.

Б

.

с

е

р

.

Для доступу до файлу його слід розчинити оператором Open:

Open "FileName" For Random As FileNumber Len = RecordLength

FileName - ім'я файлу, можна задавати повне ім'я файлу з маршрутом пошуку (наприклад, "C:\Data.txt");

Random - визначає, що файл буде розчинено в режимі довільного доступу;

FileNumber - номер файлу, ціле число в діапазоні від 1 до 511, яке визначає номер незайнятого в системі в дану мить файлу, так званий дескриптор файлу;

RecordLength - визначення довжини запису файлу.

Наприклад, щоб розчинити файл Employees.txt у режимі довільного доступу коли відомо, що номер файлу 5 не зайнято ніяким іншим файлом, можна виконати команду:

Open "Employees.txt" For Random As 5 Len = 19

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

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

Наприклад, для роботи з файлом Employees.txt буде використовуватись змінна PZ, яка має тип Person. Тип Person оголошено у вікні модуля так:

Type Person

Priz As String * 15

Osv As String * 4

End Type

Для розчинення файлу Workers.txt можна виконати таку послідовність дій:

DZ = Len(PZ)

VF = FreeFile

Open "Employees.txt" For Random As VF  Len = DZ

Якщо файл у поточному каталозі не буде знайдено, то створюється новий файл з ім'ям Employees.txt.

При розчинені, створенні файлу довільного доступу обов’язково існує запис файлу з номером 1. Для визначення загальної кількості записів у файлі можна використовувати функцію FileLen(), яка повертає розмір файлу в байтах. Наприклад, щоб привласнити змінній ZKZ значення, яке відповідає загальній кількості записів у файлі, можна виконати таку дію:

ZKZ = FileLen("Employees.txt") / DZ

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

Для запису даних у файл використовується оператор Put

Put # FileNumber, <номер запису файлу>, <змінна>

Якщо <номер запису файлу> відповідає будь-кому з існуючих записів розчиненого файлу, то вміст запису  буде змінено на нове значення - значення змінної, яка може бути одного зі стандартних типів, або типу - запис. Для того, щоб додати до файлу новий запис, слід звернутися до запису з номером: <останній запис> + 1.

Наприклад, щоб додати до файлу Employees.txt новий запис про співробітника Матвієнко Л.І. з вищою освітою можна виконати дії:

PZ.Priz = "Матвієнко Л.І."

PZ.Osv = "вищ."

Put #VF, ZKZ + 1, PZ

Зчитування даних з файлу довільного доступу виконується оператором Get:

 Get # FileNumber, <номер запису файлу>, <змінна>

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

Наприклад, якщо оголосити масив змінних PersZap для зчитування всієї інформації з файлу, можна прочитати дані всього файлу так:

For i = 1 To ZKZ

Get #VF, i, PersZap(i)

Next

При зчитуванні даних з файлу може стати у нагоді функція Eof() (від End of file), яка повертає значення True, якщо досягнуто кінця файлу, і False у зворотному випадку. Прочитати усі записи файлу доки не буде досягнуто кінця файлу можна так:

i = 1

Do While Not EOF(VF)

Get #VF, i, PersZap(i)

txtPriz(i - 1).Text = PersZap(i).Priz

txtOsv(i - 1).Text = PersZap(i).Osv

i = i + 1

Loop

Після виконання операцій з файлом його обов'язково слід зачинити оператором Close:

Close # FileNumber

Знищити записи файлу довільного доступу безпосередньо неможливо. Щоб виконати цю операцію, слід:

  1.  Створити тимчасовий файл у форматі, який відповідає формату файлу, що вміщує записи, які треба знищити.
  2.  Переписати у тимчасовий файл усі записи, крім тих, що знищуються.
  3.  Зачинити файл - джерело даних, знищити його оператором

Kill "FileName"

  1.  Зачинити тимчасовий файл, перейменувати його оператором

Name "OldName" As "NewName"

Наприклад, щоб знищити п'ятий запис файлу Employees.txt можна виконати такі дії:

NF1 = FreeFile

Розчиняється файл Employees.txt

Open For "Employees.txt" Random As NF1 Len = 19

NF2 = FreeFile

Створюється тимчасовий файл Employees.tmp

Open "Employees.tmp" For Random As NF1 Len = 19

KZZ = FileLen("Employees.txt") / 19

Визначається кількість записів файлу.

i = 1

n = 1

Do While i <= KZZ

Цикл діє доки і менш або рівно кількості записів файлу

If i <> 5 Then

Якщо обробляється не п'ятий запис файлу, то

Get #NF1, i, PZ

виконується зчитування і-го запису файлу Employees.txt у змінну PZ

Put #NF2, n, PZ

записується n-ий запис у файл Employees.tmp зі змінної PZ

n = n +1

n збільшується на 1

End If

Завершується оператор If

i = i + 1

і збільшується на 1

Loop

кінець циклу - оброблено всі записи файлу Employees.txt

Close #NF1

Зачиняється файл Employees.txt

Kill "Employees.txt"

Знищується файл Employees.txt

Close #NF2

Зачиняється файл Employees.tmp

Name "Employees.tmp" As "Employees.txt"

Перейменовується файл Employees.tmp у Employees.txt


6.2 Файли послідовного доступу

Файл послідовного доступу можна розглядати як послідовність рядків. У файлі послідовного доступу всі текстові рядки можуть мати різну довжину, тому система не може визначити позицію рядка в файлі, довільний доступ неможливий. При роботі з такими файлами щоб прочитати, наприклад, двадцятий рядок, слід перейти до початку файлу і прочитати дев'ятнадцять початкових рядків. Файли послідовного доступу зручні при роботі з текстом, оскільки можна працювати з рядками будь-якої довжини.

Розчинити файл послідовного доступу можна в одному з трьох режимів:

  1.  для введення даних Input - режим зчитування даних з файлу;
  2.  для виведення Output - вивід тексту в файл, причому попередній уміст файлу втрачається;
  3.  для приєднання Append - режим, який дає змогу додати нові рядки у кінець файлу.

Щоб розчинити файл, слід виконати команду:

 Open "FileName" For Mode As FileNumber

FileName - режим доступу до файлу.

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

Print # FileNumber, <змінна або константа> [,<змінна або константа> …]

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

Write # FileNumber, <змінна або константа> [,<змінна або константа> …]

Оператор Write відрізняється від оператору Print тим, що форматує дані при запису так

Тип поля

Форматування

Текстове

у лапках

Числове

без форматування

Дата

універсальний формат дати

Наприклад, якщо виконати наступний фрагмент коду програми, буде створено файл Data.txt.

Date = #10/06/2000#

FN = FreeFile

Open "C:\Data.txt" For Output As FN

Write #FN, "Oдин", FN, Date

Print #FN, "Два", FN, Date

Уміст файлу Data.txt буде таким:

"Oдин",1,#2000-10-06#

Два            1            06.10.00

Оператор Input зчитує повний рядок з файлу і розміщує його в одну або декілька змінних.

Input # FileNumber, <змінна > [,<змінна> …]

Якщо запис файлу створено оператором Print, дані можна прочитати як один рядок у деяку змінну. У випадку, коли дані було записано оператором Write, кожну складову запису можна прочитати у окрему змінну для подальшого використання. Причому не слід забувати, що прочитані дані будуть текстового типу.

Зчитування даних з файлу Data.txt можна виконати, наприклад, так:

Open "C:\Data.txt" For Input As FN

Input #FN, X, Y, Z

lblX.Caption = X

lblY.Caption = Y

lblZ.Caption = Z

Input #FN, M

lblM.Caption = M

У результаті виконання коду, значення властивості Caption об'єктів буде таким:

об'єкт X: Oдин;

об'єкт Y: 1;

об'єкт Z: 2000-10-06;

об'єкт M: Два            1            06.10.00.

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

6.3 Бінарні файли

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

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

Розчинити файл можна командою:

Open "FileName" For Binary As FileNumber

Запис і зчитування даних у бінарних файлах виконується операторами Get i Put.

Приклад виконання програми роботи з файлом

Як приклад розглядається програма, під час виконання якої можна ввести дані про господарські операції  реалізації товарів - дата реалізації, покупець, найменування товару, ціна, кількість. Введені дані можна записати у файл довільного доступу realiz.doc. Форма програми вміщує кнопки для переходу до попереднього, наступного запису файлу. Коли переміщення неможливе - виконано перехід до початку або кінця файлу, видається відповідне повідомлення. Програма також дає змогу додати новий запис до файлу, знищити непотрібні записи файлу.

Рисунок 6.1 - Вид вікна програми для роботи з файлом довільного доступу

На етапі візуальної розробки програми слід створити об'єкти за описом.

Об’єкт

Властивість

Значення

Форма (Form)

Name

frmProgram

Caption

Програма - приклад

Font

Times New Roman, 12 п., напівжирний

Етикетка (Label)

Name

lblDate

Caption

Дата реалізації:

Етикетка (Label)

Name

lblPok

Caption

Покупець:

Етикетка (Label)

Name

lblTov

Caption

Найменування товару:

Етикетка (Label)

Name

lblC

Caption

Ціна:

Етикетка (Label)

Name

lblK

Caption

Кількість:

Текстове поле (TextBox)

Name

txtDate

Text

“_”

Текстове поле (TextBox)

Name

txtPok

Text

“_”

Текстове поле (TextBox)

Name

txtTov

Text

“_”

Текстове поле (TextBox)

Name

txtC

Text

“_”

Текстове поле (TextBox)

Name

txtK

Text

“_”

Командна кнопка (CommandButton)

Name

cmdNew

Caption

Новий запис

Командна кнопка (CommandButton)

Name

cmdNext

Caption

Наступний запис

Командна кнопка (CommandButton)

Name

cmdPrivious

Caption

Попередній запис

Командна кнопка (CommandButton)

Name

cmdDelete

Caption

Знищення запису

Командна кнопка (CommandButton)

Name

cmdFin

Caption

Завершення роботи

Далі слід у вікні модуля (команда меню Project - Add Module),  оголосити новий тип даних:

Дані в рядку коду

Коментар

Type Zap

Date As String * 12

поле для дати реалізації

Pok As String * 20

поле для роботи з найменуванням покупця

Tov As String * 20

поле найменування товару

C As String * 10

поле ціни

K As String * 10

поле кількості

End Type

Програмний код повинен бути таким як у таблиці:

Дані в рядку коду

Коментар

1

2

Option Explicit

Dim Z As Zap

Оголошення змінних є обов'язковим

Змінна Z типу Zap буде використана для зчитування даних з файлу, запису інформації в файл

Dim LastRec As Long

Змінна - покажчик останнього запису файлу

Dim CurRec As Long

Змінна - покажчик поточного запису файлу

Dim NFile As Integer

Змінна для збереження номеру відчиненого файлу (дескриптору файлу)

Dim RZ As Long

Розмір файлу

Private Sub frmProgram _Load()

Процедура, яка виконується при завантаженні форми (подія Load)

RZ = Len(Z)

Значення змінної RZ буде дорівнювати розміру змінної - запису Z, значення отримано функцією Len()

NFile = FreeFile

Змінна Nfile отримує значення номеру вільного в дану мить файлу

Open "realiz.doc" For Random As NFile Len = RZ

Відчиняється файл realiz.doc, що міститься в поточній папці, у режимі довільного доступу (Random) як файл з номером Nfile і розміром запису RZ. Якщо файл не буде знайдено, система його створить і відкриє.

CurRec = 1

Покажчик поточного запису CurRec отримує значення 1.

LastRec = FileLen("realiz.doc") / RZ

Покажчик останнього запису LastRec отримує значення - розмір файлу "realiz.doc", що визначається за допомогою функції FileLen(), який буде поділено на довжину запису RZ.

If LastRec = 0 Then

Якщо номер останнього запису дорівнює 0, то

LastRec = 1

змінній LastRec привласнюється значення 1

End If

Кінець оператору If

ShowZ

Виклик процедури ShowZ для виведення у вікні вмісту поточного запису файлу.

End Sub

Кінець процедури.

1

2

Public Sub ShowZ()

Процедуру для зчитування запису з файлу і виведення даних у формі слід створити за допомогою команди меню Tools - Add Procedure.

Get #NFile, CurRec, Z

Оператором зчитується поточний запис CurRec файлу з номером NFile у змінну Z.

txtDate.Text = Trim(Z.Date)

Властивості Text текстового поля txtDate для роботи з датою привласнюється значення поля Date змінної Z. Функція Trim() знищує пробіли у кінці текстового рядка.

txtPok.Text = Trim(Z.Pok)

Властивості Text текстового поля txtPok для виведення, редагування найменування покупця привласнюється значення поля Pok змінної Z.

txtTov.Text = Trim(Z.Tov)

Властивості Text текстового поля txtTov для роботи з найменуванням товару привласнюється значення поля Tov змінної Z.

txtC.Text = Trim(Z.C)

Властивості Text текстового поля txtC для виведення, редагування ціни товару привласнюється значення поля C змінної Z.

txtK.Text = Trim(Z.K)

Властивості Text текстового поля txtK для роботи з кількістю товару привласнюється значення поля K змінної Z.

frmProgram.Caption = "Запис " + Str(CurRec) + " / " + Str(LastRec)

У заголовку вікна програми виводиться: Запис <номер поточного запису> / <загальна кількість записів у файлі>

End Sub

Кінець процедури.

Public Sub SaveZ()

Процедура буде виконувати запис даних у файл.

Z.Date = txtDate.Text

Полю Date змінної Z привласнюється значення властивості Text об'єкту txtDate, яке може бути введено, відредаговано.

Z.Pok = txtPok.Text

Полю Pok змінної Z привласнюється значення властивості Text об'єкту txtPok.

Z.Tov = txtTov.Text

Полю Tov змінної Z привласнюється значення властивості Text об'єкту txtTov.

Z.C = txtC.Text

Полю C змінної Z привласнюється значення властивості Text об'єкту txtC.

Z.K = txtK.Text

Полю K змінної Z привласнюється значення властивості Text об'єкту txtK.

Put #NFile, CurRec, Z

Запис у файл realiz.doc (файл з номером Nfile) у запис з номером CurRec  умісту змінної Z.

End Sub

Кінець процедури.


1

2

Private Sub cmdNew_Click()

Процедуру буде виконано, якщо клацнути на кнопці Новий запис.

SaveZ

Виконання процедури SaveZ - збереження у файл поточного запису файлу.

LastRec = LastRec + 1

Покажчик останнього запису файлу LastRec збільшується на 1.

Z.Date = " "

Знищується вміст полів змінної - запису Z

Z.Pok = " "

Z.Tov = " "

Z.C = " "

Z.K = " "

Put #NFile, LastRec, Z

До файлу додається новий запис (запис з номером LastRec) зі змінної Z.

CurRec = LastRec

Покажчик поточного запису приймає значення LastRec.

ShowZ

Виконується процедура ShowZ - виведення вмісту поточного запису файлу у вікні програми.

End Sub

Кінець процедури.

Private Sub cmdNext_Click()

Процедуру буде виконано, якщо клацнути на кнопці Наступний запис.

If CurRec = LastRec Then

Якщо покажчик поточного запису CurRec дорівнює покажчику останнього запису LastRec, то

Beep

видається звуковий сигнал

MsgBox "Кiнець файлу!", vbOKOnly + vbExclamation

на екрані з'являється вікно повідомлення, що вже досягнуто кінця файлу (тобто перехід до наступного запису неможливий)

Else

інакше

SaveZ

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

CurRec = CurRec + 1

покажчик поточного запису збільшується на одиницю

ShowZ

виконується процедура ShowZ зчитування запису CurRec з файлу і виведення інформації, що отримана, у вікні програми

End If

кінець оператору If.

txtDate.SetFocus

Текстове поле txtDate отримує фокус - поле стає активним, курсор буде розташовано в полі.

End Sub

Кінець процедури.


1

2

Private Sub cmdPrivious_Click()

Процедуру буде виконано, якщо клацнути на кнопці Попередній запис.

If CurRec = 1 Then

Якщо покажчик поточного запису CurRec дорівнює одиниці, то

Beep

виводиться звуковий сигнал

MsgBox "Початок файлу!", vbOKOnly + vbExclamation

на екрані з'являється вікно повідомлення, що вже досягнуто початку файлу,  перехід до попереднього запису неможливий

Else

інакше

SaveZ

зберігається поточний запис у файлі за допомогою процедури SaveZ

CurRec = CurRec - 1

покажчик поточного запису зменшується на 1

ShowZ

виконується процедура ShowZ зчитування запису CurRec з файлу і виведення інформації, що отримана, у вікні програми

End If

кінець оператору If.

txtDate.SetFocus

Передача фокусу текстовому полю txtDate.

End Sub

Кінець процедури.

Private Sub cmdDelete_Click()

Процедуру буде виконано, якщо клацнути на кнопці Знищення запису.

Dim TmpNFile

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

Dim TmpZ As Zap

Оголошення змінної TmpZ типу Zap

Dim RecN As Long

Оголошення змінної RecN для роботи з номером запису файла realiz.doc.

Dim TmpRecN As Long

Оголошення змінної TmpRecN для роботи з номером запису тимчасового файлу

If MsgBox("Знищити запис?", vbYesNo) = vbNo Then

Якщо у вікні повідомлення обрано кнопку Нет, то

txtDate.SetFocus

Текстове поле txtDate отримує фокус.

Exit Sub

Процедура завершує свою роботу.

End If

Кінець оператору If.

If Dir("realiz.tmp") = "realiz.tmp" Then

Якщо у поточному каталозі знайдено тимчасовий файл realiz.tmp, то

Kill "realiz.tmp"

файл realiz.tmp знищується

End If

Кінець оператору If.

TmpNFile = FreeFile

Змінна TmpNFile отримує номер вільного файлу

Open "realiz.tmp" For Random As TmpNFile Len = RZ

Розчиняється тимчасовий файл як файл довільного доступу з номером файлу TmpNFile і довжиною запису RZ.

RecN = 1

Змінна RecN отримує значення 1

TmpRecN = 1

Змінна TmpRecN отримує значення 1

Do While RecN < LastRec + 1

Цикл діє доки RecN < LastRec + 1 (LastRec - номер останнього запису файлу realiz.doc)

If RecN <> CurRec Then

Якщо номер запису файлу realiz.tmp не дорівнює номеру поточного запису файлу realiz.doc (запис, що знищується), то

Get #NFile, RecN, TmpZ

у змінну TmpZ зчитується запис файлу realiz.doc з номером RecN

Put #TmpNFile, TmpRecN, TmpZ

записується запис з номером TmpRecN у файл realiz.tmp

TmpRecN = TmpRecN + 1

змінна TmpRecN збільшується на 1

End If

Кінець оператору If.

RecN = + 1

Змінна RecN збільшується на 1 щоразу крім ітерації циклу коли обробляється запис з номером CurRec - той, що слід знищити.

Loop

Кінець оператору циклу.

Close NFile

Зачиняється файл realiz.doc.

Kill "realiz.doc"

Знищується файл realiz.doc.

Close TmpNFile

Зачиняється файл realiz.tmp.

Name "realiz.tmp" As "realiz.doc"

Перейменовується файл realiz.tmp у файл realiz.doc.

NFile = FreeFile

Визначається номер вільного файлу

Open "realiz.doc" For Random As NFile Len = RZ

Розчиняється файл realiz.doc, що міститься в папці диску С:, у режимі довільного доступу (Random) як файл з номером Nfile і розміром запису RZ. Якщо файл не буде знайдено, система його створить і розчинить.

LastRec = LastRec - 1

Зменшується значення покажчика останнього запису файлу LastRec оскільки один запис знищено.

If LastRec = 0 Then LastRec = 1

Якщо LastRec = 0 (у файлі не залишилось записів), то LastRec привласнюється значення 1.

If CurRec > LastRec Then

Якщо покажчик поточного запису файлу виходить за межи файлу, то

CurRec = LastRec

йому привласнюється значення LastRec

End If

Кінець оператору If.

ShowZ

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

txtDate.SetFocus

Передача фокусу текстовому полю txtDate.

End Sub

Кінець процедури.

Private Sub cmdFin_Click()

Процедуру буде виконано, якщо клацнути на кнопці Завершення роботи.

SaveZ

Збереження даних у поточному записі файлу.

Close #NFile

Зачинення файлу realiz.doc.

End

Кінець програми.

End Sub

Кінець процедури.

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

  1.  Як інформація розташовується в файлі довільного доступу?
  2.  Як розчинити файли довільного, послідовного доступу, бінарні файли?
  3.  Що таке номер вільного файлу (дескриптор файлу)?
  4.  Як визначити розмір файлу?
  5.  Які оператори використовується для зчитування – запису даних у файл довільного доступу?
  6.  Які відмінності є в роботі операторів Print і Write? При роботі з якими файлами вони використовуються?
  7.  Як виконати зчитування даних з файлу послідовного доступу?
  8.  У чому схожість між файлами довільного доступу і бінарними файлами?

5.5 Практичні завдання

Завдання №1

Розробити програму, яка дає змогу записати дані про нормативний залишок товарів у файл послідовного доступу. Запис файлу повинна вміщувати найменування товару і норматив залишку товару на складі. Запис і редагування даних слід здійснювати у одному вікні, після роботи з яким файл обов’язково слід зачинити. Інше вікно програми повинно використовуватися для того, щоб на основі введених найменування товару і його фактичного залишку можна було зробити висновок про відхилення залишку конкретного товару від нормативу. При завантаженні вікна програми треба відкрити файл з нормативними, прочитати усі записи файлу в масив змінних – записів.

Завдання №2

Розробити програму для запису в файл послідовного доступу дані про 8 співробітників підприємства: прізвище та ініціали, освіта, стаж роботи, оклад.

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

а)

б)

с)

Рисунок 6.2 - Вікна програми

Завдання №3

Створити програму, яка призначена для зчитування даних з текстового файлу, що створено за допомогою програми “Блокнот”, виведення інформації у вікні програми. Користувач повинен мати змогу ввести маршрут пошуку та ім’я файлу.

 


7 Використання Visual Basic for Application у Microsoft Excel

7.1 Основні поняття

Поняття об’єкту у VBA відповідає загальноприйнятому поняттю об’єкту. Тобто, об’єкт – це об’єднання даних з кодом, що призначено для їх обробки, у єдине ціле. Під час роботи з VBA у Microsoft Excel можна створювати, використовувати вже знайомі нам об’єкти – форми, командні кнопки, прапорці, перемикачі та ін. Усі об’єкти одного типу належать до певного класу. Об’єкти характеризуються властивостями. Властивості представляють собою атрибути об’єктів, які визначають їх характеристики, зовнішній вигляд. До кожного об’єкту можна застосувати певні методи. Метод – це дії, що можуть виконуватися по відношенню до об’єктів певного класу.  У VBA також не змінюється смисл поняття “подія”. Подія – це дія, яку виконано по відношенню до певного об’єкту, для якої можна запрограмувати процедуру обробки.

Однак, для автоматизації виконання робіт у середовищі  Microsoft Excel із застосуванням VBA потрібно познайомитись із об’єктами додатку Excel.

Об’єктна модель Microsoft Excel являє собою ієрархію об’єктів, що підпорядковані об’єкту Application, який відповідає додатку Excel. Об’єкт  Application – це головний кореневий об’єкт у ієрархії об’єктів, він має велику кількість властивостей і методів, які дають змогу встановити загальні параметри додатку Excel.  Об’єкту  Application підпорядковані інші об’єкти. Усі візуальні об’єкти, такі як робоча книга - Workbook, робочий лист - Worksheet, діапазон чарунок - Range, діаграма - Chart, є об’єктами VBA.

Декілька об’єктів, які зазвичай є об’єктами одного класу, часто групуються, утворюючи колекцію об’єктів. Колекція об’єктів є об’єктом, у якому міститься декілька інших об’єктів. Наприклад, колекція Workbooks містить усі розчинені робочі книги - об’єкти Workbook, колекція Worksheets включає всі листи певної робочої книги - об’єкти Worksheet. Кожний елемент колекції нумерується, до нього можна звернутися по номеру або імені. Наприклад, Worksheets(1) – це перший лист активної робочої книги,  Worksheets(“Лист3”) – лист активної робочої книги з іменем  Лист3.

Щоб застосувати метод або змінити властивість об’єкту потрібно визначити його ім’я, після крапки ввести ім’я методу або властивості. Наприклад, у рядку коду

Application.Quit

до об’єкту Application застосовуються метод Quit – завершується робота програми Microsoft Excel.

Для звернення до об’єктів з метою зміни їх властивостей або застосування до них методів потрібно визначити імена об’єктів у певній ієрархії, відокремлюючи імена, назви властивостей і методів крапками. Розглянемо як приклад такий рядок коду:

Application.Workbooks("Книга2").Worksheets("Лист1").Name = "Звіт"

У рядку коду здійснюється звернення до додатку Microsoft Excel, до робочої книги з іменем "Книга2", а також до робочого листа з ім’ям "Лист1", властивість Name, якого змінюється – привласнюється нове ім’я листу робочої книги "Звіт".

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

7.2 Редактор VBA

Для створення процедур і функцій мовою Visual Basic for Application, перегляду та редагування макросів використовується редактор VBA. Для активізації редактору можна:

  •  подати команду меню СервисМакросРедактор Visual Basic;
  •  скористатися інструментом  Редактор Visual Basic на панелі інструментів Visual Basic (для виведення панелі інструментів потрібно подати команду меню ВидПанели инструментов - Visual Basic).

Інтерфейс редактору Visual Basic for Application включає такі основні компоненти (рис. 7.1):

  •  вікно проекту ProjectVBA Project;
  •  вікно редагування коду;
  •  вікно властивостей Properties;
  •  вікно перегляду об’єктів Object Browser;
  •  вікно редагування форм UserForm.

Вікно проекту ProjectVBA Project у редакторі VBA можна вивести командою меню ViewProject Explorer або натисканням на кнопці  Project Explorer на панелі інструментів Standard. У вікні подається дерево об’єктів додатку Microsoft Excel. Для кожної робочої книги, що розчинена у середовищі Excel, у дереві містяться елементи, які використовуються для створення та редагування модулів для листів робочої книги, для книги у цілому, для кожної форми користувача, яку створено у проекті, для  макросів.

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

У вікні властивостей перелічені настанови властивостей об’єктів – обраної форми, елементів керування, листів робочої книги, робочої книги у цілому. Це вікно можна застосовувати для перегляду та зміни властивостей об’єктів. Для виведення вікна властивостей слід виконати команду меню ViewProperties Window або скористатися інструментом  Properties Window на панелі інструментів Standard.

Вікно перегляду об’єктів Object Browser відображується у редакторі VBA після виконання команди меню ViewObject Browser або натискання на інструменті  Object Browser на панелі інструментів Standard. У цьому вікні міститься список усіх об’єктів, які існують у системі та які можна використовувати при створенні проекту. Можна обрати будь-який об’єкт зі списку Classes і у списку Members буде відображуватися перелік властивостей і методів для даного об’єкту. При чому властивості характеризуються символом , а методи символом - . Значення властивості або методу можна переглянути у рідку стану вікна Object Browser.

Рисунок 7.1 - Вид вікна редактору VBA

Для створення вікон діалогу додатків, що розробляються, у VBA використовуються форми. Форма до проекту додається виконанням команди Insert – UserForm. У результаті до проекту додається порожня форма з панеллю елементів (рис.7.2). Використовуючи панель елементів можна помістити у форму необхідні елементи управління – командні кнопки, етикетки, текстові поля, прапорці та ін., за допомогою вікна властивостей визначити властивості форми і кожного елемента управління. Панель елементів стає активною після активізації форми. Якщо панель елементів зачинено, то вивести її у вікні редактору  VBA можна за допомогою команди меню View – Toolbox.

Рисунок 7.2 - Вікно редагування форм UserForm і панель елементів

7.3 Створення функцій користувача

Можливості мови VBA зручно використовувати для створення функцій, які автоматизують розрахунки і не належать до комплекту стандартних функцій Microsoft Excel. Наприклад, можна самостійно розробити функцію для розрахунку суми реалізації товару клієнту з урахуванням кількості проданих товарів, знижки постійним клієнтам і інших факторів. Звернутися до такої функції можна буде за допомогою майстра функцій Microsoft Excel, після визначення всіх необхідних аргументів, за допомогою функції, що створено засобами VBA, можна буде отримати потрібний результат.

Для створення нової функції потрібно:

  •  активізувати вікно редактору VBA;
  •  додати до проекту новий модуль командою меню InsertModule (зверніть увагу на те, що до дерева елементів проекту буде додано нову гілку Modules, до якої додаються модулі проекту – у нашому випадку  Module1);
  •  у вікні коду модуля слід ввести нову функцію.

Функції у  VBA створюються як і в середовищі Visual Basic 6.0. Створення функції може починатися із визначення статусу функції, далі повинно слідувати зарезервоване слово Function після якого визначається ім’я функції та у круглих дужках список аргументів функції. Після списку аргументів може бути визначено тип значення, яке повертає функція. Параметрами функції є дані, які визначатимуться як аргументи функції. Це можуть бути адреси чарунок, числа, блоки чарунок. Синтаксис функцій такий:

[Public | Private ] Function <ім’я функції> [(список аргументів)] [As тип]

[оператори]
[ім’я функції = вираз]

End Function

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

Обов’язковим параметром є ім’я функції, після імені визначається список аргументів. У списку аргументів параметри функції відокремлюються комами, можуть зазначатися лише іменами, а можна визначати імена аргументів і їх типи (наприклад, X As Integer).

Необов’язковий параметр [As тип] визначає тип значення, яке повертає функція (Integer, String, Byte або ін.). Якщо даний параметр пропущено, то функція повертає значення типу Variant. Обов’язково в середині функції привласнити імені функції значення, яке вона повинна повертати.

При розробці функції можна застосовувати оператори привласнення, умовний оператор If, оператор циклу For . . . Next, інші  оператори мови Visual Basic Після створення функції можна активізувати робочу книгу Microsoft Excel і за допомогою майстра функцій помістити у будь-яку чарунку формулу із застосуванням нової функції. Створену таким способом функцію буде віднесено до категорії функцій Определенные пользователем.

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

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

якщо нарахована заробітна плата менш або рівно 85 грн., то від суми, що перевищує  17 грн., сплачується 10%  як прибутковий податок;

якщо нарахована заробітна плата менш або рівно 170 грн., то від суми, що перевищує  85 грн., сплачується 15% плюс податок від 85 грн. як прибутковий податок;

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

Для створення функції потрібно завантажити табличний процесор Excel, перейти до редактору  VBA (команда меню СервисМакросРедактор Visual Basic), виконати команду меню InsertModule для додавання до проекту нового модуля, у вікні коду модуля ввести код функції:

Function ПРИБПОД(x)

If x <= 17 Then

n = 0

Else

If x <= 85 Then

n = (x - 17) * 0.1

Else

If x <= 170 Then

n = (x - 85) * 0.15 + 6.8

Else

n = (x - 170) * 0.2 + 19.55

End If

End If

End If

ПРИБПОД = n

End Function

Функція має ім’я ПРИБПОД, приймає для обробки значення одного аргументу, яке поміщається в змінну х. У тілі функції здійснюється аналіз значення змінної х: якщо х менше або рівно 17, то змінній n привласнюється значення 0, інакше якщо х менше або рівно 85, то змінній n привласнюється значення (x - 17) * 0.1 – 10% від нарахованої заробітної плати мінус 17, інакше якщо х менше або рівно 170, то змінній n привласнюється значення (x - 85) * 0.15 + 6.8, інакше змінна n дорівнюватиме (x - 170) * 0.2 + 19.55 – податок з суми, що перевищує 170 грн. Далі імені функції привласнюється значення змінної n – значення, яке відповідає суму розрахованого прибуткового податку.

Після створення функції можна перейти у вікно поточної робочої книги і за допомогою майстра функції створити формулу із застосуванням щойно створеної функції. Функцію можна обрати, розчинивши категорію Определенные пользователем. Таблиця із застосуванням функції ПРИБПОД може виглядати так:

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

Якщо аргументом функції є діапазон чарунок, то VBA працює з ним як з масивом, індексація елементів якого починається з 1. Щоб дізнатися скільки рядків і стовпців міститься в діапазоні можна використовувати властивості Rows і Columns, які відповідають колекції, що складається  з усіх рядків або стовпців діапазону. Оскільки кожна колекція характеризується властивістю Count – кількість елементів у колекції, то визначити загальну кількість рядків, колонок у діапазоні, що є аргументом функції, не складно.

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

x = Block.Rows.Count

y = Block.Columns.Count

Щоб звернутися до чарунки, яка є верхнім лівим кутом блоку, потрібно зазначити ім’я діапазону та індекси елементів масиву Block(1, 1), чарунка, яка є правим нижнім кутом блоку, відповідає елементові масиву Block(x, y).

Для прикладу можна створити функцію, за допомогою якої менеджер на основі даних про реалізацію товарів у поточному періоді може швидко визначити розмір знижки, яка надається конкретному покупцеві. Тим покупцям, які протягом певного періоду придбали товарів більше або рівно ніж на 10 000 грн., надається знижка у розмірі 3%. Якщо покупець придбав товарів більше або рівно ніж на 5 000 грн., він може отримати знижку у 1,5%. Якщо покупець придбав товарів менше ніж на 5 000 грн., однак здійснив більше трьох операцій по закупівлі товару, він може розраховувати на знижку в 1%. Іншим покупцям знижка не надається. Для автоматизації визначення розміру знижки даному покупцеві можна створити таку функцію:

Function Zn(Покупець, УсіПокупці, СумиРеалізації)

  N = УсіПокупці.Rows.Count

s = 0

k = 0

For i = 1 To N

    If УсіПокупці(i, 1) = Покупець Then

    k = k + 1

    s = s + СумиРеалізації(i, 1).Value

End If

Next i

If s >= 10000 Then

    Zn = 3

Else

    If s >= 5000 Then

         Zn = 1.5

Else

        If k > 3 Then

            Zn = 1

Else

   Zn = 0

End If

End If

End If

End Function

Прокоментуємо функцію. Функція Zn містить три аргументи:

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

Оскільки блоки чарунок, які є аргументами функції, містять по одній чарунці у стовпцях і декілька чарунок у рядках, потрібно визначити лише кількість чарунок у рядку хоча б одного з блоків (блоки повинні бути пропорційного розміру). Для цієї мети використовується змінна N, якій привласнюється значення УсіПокупці.Rows.Count – загальна кількість рядків у масиві чарунок з ім’ям УсіПокупці.

Змінним s – підсумкова сума реалізації та k – кількість операцій привласнюється значення 0.

Далі виконується обробка значень усіх чарунок масивів. Індексація елементів масивів здійснюється від 1 до N. Усередині циклу якщо назва чергового елементу масиву УсіПокупці співпадає зі значенням аргументу функції Покупець, то на 1 збільшується загальна кількість операцій і накопичується значення у змінній  s – підсумкова сума реалізації. При розрахунку підсумку здійснюється звернення до чергового елементу масиву СумиРеалізації, а саме до значення властивості Value елементів – уміст чарунок електронної таблиці.

Після завершення роботи циклу в залежності від значень змінних s і k привласнюється нове значення імені функції Zn, це значення функція і повертатиме.

Під час роботи з електронною таблицею можна буде звернутися до майстра функцій, обрати функцію Zn з категорії Определенные пользователем, визначити, наприклад так, аргументи функції:

 

На листі робочої книги дані можуть виглядати таким чином:

Для наочності створено зведену таблицю, у якій містяться дані про загальну суму реалізації та кількість операцій по кожному клієнту. Для того, щоб не визначати розміри знижок вручну у чарунках E16, Е18, Е20 створено формули із застосуванням функції Zn. Зверніть увагу на те, що після створення формули з функцією у чарунці E16 перед копіюванням її потрібно відредагувати – змінити адреси чарунок у аргументах - діапазонах на абсолютні для того, щоб під час копіювання вони не змінювалися.

7.4 Автоматизація розрахунків на робочому листі

Мова Visual Basic for Application дає змогу для автоматизації розрахунків на листах робочих книг використовувати елементи управління – командні кнопки, перемикачі, прапорці та ін. Для створення  цих об’єктів слід вивести панель елементів за допомогою інструмента  Элементы управления на панелі інструментів Visual Basic або виконавши команду меню ВидПанели инструментов - Элементы управления. У результаті у вікні програми Microsoft Excel з’явиться панель елементів, яка схожа з панеллю елементів середовища Visual Basic 6.0:

За допомогою кнопок на панелі елементів можна створювати об’єкти різних класів. При роботі з елементами управління використовується режим конструктору для визначення властивостей об’єктів, створення процедур обробки подій, що пов’язані з певними об’єктами. Якщо режим конструктору виключено, елементи управління використовуються за призначенням (наприклад, натискання на командній кнопці призводить до виконання певних дій). Для переходу до режиму конструктору використовується інструмент  Режим конструктора на панелі елементів управління, наступне натискання на інструменті виключає режим конструктору.

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

Подвійне клацання лівою кнопкою миші на об’єкті дає змогу створити процедуру для обробки події за замовчуванням для  об’єктів даного класу. Наприклад, після подвійного клацання на командній кнопці можна почати створення процедури, яка буде обробляти подію Click - клацання лівою кнопкою миші на командній кнопці. За допомогою списку, що розчиняється, Procedure можна обрати іншу подію. Процедура обробки події буде створюватися у вікні редактору VBA, буде пов’язана з тим листом робочої книги, на якому розташовано елемент управління.

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

Можна працювати з об’єктом Range, якому відповідає конкретна чарунка або діапазон чарунок. Об’єкт Range характеризується властивістю Value. Властивість  Value – це вміст чарунки. Наприклад, для запису у чарунку D3 числа 4 можна подати команду:

Range("D3").Value = 4

За допомогою наступної команди в усі чарунки діапазону D3:E5 записується значення 0:

Range("D3:E5").Value = 0

До об’єкту Range можна застосувати метод Select, який призводить до виділення чарунок певного діапазону. Для виділення чарунок діапазону А2:А5 можна виконати команду:

Range("a3:a5").Select

Під час створення програм часто використовується властивість об’єктів  Application, Worksheet, Range, Selection Cells(i, j), яка повертає  об’єкт – певну чарунку листа робочої  книги. У круглих дужках визначається адреса чарунки, при чому і – номер рядка,  j – номер стовпця. Об’єкт Cells(i, j) характеризується властивостями:

  •  Value – уміст чарунки;
  •  NumberFormat – числовий формат;
  •  Formula – уміст чарунки, формула у звичайному вигляді;
  •  Font – шрифт символів;
  •  FormulaR1C1 – формула у форматі R1C1.

Можна навести приклади зміни властивостей об’єкту  Cells(i, j):

Cells(1, 1).Value = 23

У чарунку А1 записується число 23.

Cells(20, 3).Formula = "Разом:"

У чарунку С20 записується текст “Разом:”.

Cells(4, 2).NumberFormat = "0.00"

Для чарунки В4 визначається числовий формат з двома знаками після десяткової крапки.

Cells(5, 6).NumberFormat = "0.00%"

Для чарунки F5 визначається процентний формат.

Cells(3, 1).Formula = "=A1 + A2"

У чарунку А3 записується формула =A1 + A2.

Cells(3, 1).Font.Bold = True

Для чарунки А3 визначається напівжирний шрифт.

Cells(3, 1).Font.Size = 16

Для чарунки А3 визначається розмір шрифту 16 пунктів.

Cells(3, 1).Font.Color = QBColor(9)

Для чарунки А3 визначається синій колір символів.

Введення формули у форматі FormulaR1C1 дає можливість визначити як абсолютні так і відносні стосовно поточної чарунки адреси чарунок у формулі. При застосуванні абсолютних адрес чарунок можна визначати номери рядків (R – row) і номери стовпців (C – column). Так, наприклад, у рядку коду

Cells(5, 1).FormulaR1C1 = "=R1C1+R2C1"

у чарунку А5 вводиться формула =$A$1+$A$2.

Можна також формувати формулу з адресами чарунок, які задаються відносно поточної, активної чарунки. Відносні значення визначають зсув на певну кількість рядків, стовпчиків, значення зсуву задається завжди у квадратних дужках. Так у рідку коду

Cells(3, 2).FormulaR1C1 = "=R[-2]C+R[-1]C"

у чарунку В3 вводиться формула =В1+В2. Адреса чарунки В1 визначається так: чарунка на 2 рядка вище поточної чарунки В3 і того ж рядка.

Використання елементів управління на листах робочої можна розглянути на прикладі кнопки “Розрахунок сум”, за допомогою якої можна розрахувати суми по рядках і колонках для всіх чарунок виділеного діапазону. Тобто якщо виділити, наприклад, блок чарунок B2:C3, то у чарунку  D2 буде записано суму значень, які знаходяться в чарунках B2:C2, у чарунку D3 – суму значень чарунок B3:C3, у чарунку В4 - суму значень чарунок B2:В3 і т.д.

Для створення командної кнопки на робочому листі потрібно:

Вивести панель елементів за допомогою інструмента  Элементы управления на панелі інструментів Visual Basic або виконавши команду меню ВидПанели инструментов - Элементы управления.

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

Перейти до режиму конструктору, активізувати кнопку та вивести вікно властивостей Properties за допомогою інструменту  Свойства на панелі елементів або команди контекстного меню Свойства.

У вікні властивостей визначити властивості кнопки NamecmdSum і CaptionРозрахунок сум.

Виконати подвійне клацання лівою кнопкою миші на командній кнопці для створення процедури, яка буде обробляти подію за замовчуванням для об’єктів даного класу – подію Click (клацання лівою кнопкою миші на командній кнопці). У вікні коду ввести уміст процедури:

Дані в рядку коду

Коментар

Sub cmdSum _Click()

Заголовок процедури, яка виконуватиметься після натискання на кнопці “Розрахунок сум”.

n = Selection.Rows.Count

Змінній n привласнюється значення кількості рядків у виділеному діапазоні чарунок.

m = Selection.Columns.Count

Змінній m  привласнюється значення кількості стовпців у виділеному діапазоні чарунок.

' Підсумки по рядках

Коментар.

For i = 1 To n

Для i що змінюється від 1 до n виконуються дії (для всіх чарунок рядка i ).

s = 0

Змінній s привласнюється значення 0.

For j = 1 To m

Для j  що змінюється від 1 до m виконуються дії (для всіх чарунок стовпця j).

s = s + Selection.Cells(i, j).Value

У змінній s накопичується сума значень чарунок певного рядка.

Next j

Кінець циклу обчислення підсумкового значення по рядку.

Selection.Cells(i, m + 1).Value = s

У чарунці з адресою – певний рядок і колонка m + 1 (чарунка ліворуч від останньої чарунки виділеного діапазону) виводиться значення суми, що обчислено.

Next i

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

' Підсумки по стовпцях

Коментар.

For j = 1 To m + 1

Для j  що змінюється від 1 до m+1 виконуються дії (для всіх чарунок стовпця j). У циклі обробляються значення для m+1 колонок тому, що суми слід розрахувати і для чарунок, які є підсумками по рядках.

s = 0

Змінній s привласнюється значення 0.

For i = 1 To n

Для i що змінюється від 1 до n виконуються дії (для всіх чарунок рядка i ).

s = s + Selection.Cells(i, j).Value

У змінній s накопичується сума значень чарунок певного стовпчика.

Next i

Кінець циклу обчислення підсумкового значення по стовпчику.

Selection.Cells(n + 1, j).Value = s

У чарунці з адресою – рядок n + 1 і колонка j (чарунка нижче останньої чарунки виділеного діапазону) виводиться значення суми, що обчислено.

Next j

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

End Sub

Кінець процедури.

Після створення процедури можна активізувати робочий лист, на якому створено кнопку “Розрахунок сум”, вийти з режиму конструктору, виділити будь-який діапазон чарунок і натиснути на кнопці “Розрахунок сум” для перевірки правильності виконання розрахунків.

Можна також створити кнопку для розрахунку підсумкових значень по таблиці, в яку введено дані для аналізу реалізації товарів. Таблиця має таку структуру:

Після натиснення на кнопці “Розрахунок” буде здійснено обчислення суми і відсотка відхилень від плану реалізації по кожній товарній групі, незалежно від кількості рядків у таблиці нижче заповнених даних буде додано підсумковий рядок для розрахунку загальних значень прогнозу щодо реалізації, фактичної реалізації, а також підсумкові значення відхилень. Далі здійснюватиметься розрахунок питомої ваги фактичної реалізації по кожній товарній групі в загальному обсязі реалізації. У результаті виконання процедури у чарунки електронної таблиці будуть записані не результати розрахунків, а формули обчислення показників.

З кнопкою “Розрахунок”  слід пов’язати таку процедуру:

Дані в рядку коду

Коментар

Private Sub cmdR_Click()

Заголовок процедури, яка виконуватиметься після натискання на кнопці “Розрахунок”.

k = 0

Змінній k, яка використовується для підрахунку  заповнених рядків таблиці, привласнюється значення 0.

For i = 4 To 60

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

If Cells(i, 3).Value <> 0 Then

Якщо для рядка і фактичне значення реалізації не дорівнює 0, то ...

k = k + 1

Змінна k збільшується на 1.

Cells(i, 4).FormulaR1C1 = "=RC[-1]-RC[-2]"

У чарунку  Cells(i, 4) – D4, D5... для виведення суми відхилення фактичної реалізації від прогнозного значення записується формула =Cі-Bi (=C4-B4, =C5-B5...). Операнди формули визначаються так: чарунка того ж рядка, що і визначена (D4, D5...), і стовпця з номером –1 – стовпчик ліворуч мінус  чарунка того ж рядка і  стовпця з номером –2 – на 2 стовпчика ліворуч. 

Cells(i, 5).FormulaR1C1 = "=(RC[-2]-RC[-3])/RC[-3]*100"

у чарунку  Cells(i, 5) для виведення відсотку відхилення фактичної реалізації від прогнозного значення записується формула записується формула =(Cі-Bі)/Bі*100 (=(C4-B4)/B4*100...).

Cells(i, 5).NumberFormat = "0.00"

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

End If

Кінець оператору If.

Next i

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

Cells(k + 4, 1).Formula = "Разом:"

У чарунці з адресою рядок - k + 4, стовпчик 1 виводиться текст "Разом:".

Cells(k + 4, 2).FormulaR1C1 = "=Sum(R4C2:R[-1]C2)"

У чарунку для розрахунку підсумкового значення по прогнозних сумах реалізації вводиться формула =СУММ(B4:B(k+4-1)). Адреси чарунок діапазону:  R4C2 - $B$4, R[-1]C2 – чарунка попереднього рядка відносно чарунки (k + 4, 2) і другого стовпчика.

Cells(k + 4, 3).FormulaR1C1 = "=Sum(R4C3:R[-1]C3)"

У чарунку для розрахунку підсумкового значення по сумах фактичної реалізації вводиться формула =СУММ(С4:С(k+4-1)).

Cells(k + 4, 4).FormulaR1C1 = "=Sum(R4C4:R[-1]C4)"

У чарунку для розрахунку підсумкового значення по сумі відхилень вводиться формула ==СУММ(D4:D(k+4-1)).

Cells(k + 4, 5).FormulaR1C1 = "=(RC[-2]-RC[-3])/RC[-3]*100"

У чарунку для розрахунку підсумкового значення по відсотку відхилення вводиться формула =(C(k+4)-B(k+4))/B(k+4)*100.

Cells(k + 4, 5).NumberFormat = "0.00"

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

n = Trim(k + 4)

Змінній n привласнюється значення k + 4 у символьному форматі.

For i = 4 To k + 3

Для і від 4 до k+3 (для всіх інформаційних рядків таблиці) виконуються дії в циклі.

Cells(i, 6).FormulaR1C1 = "=RC[-3]/R" & n & "C3"

У чарунку чергового рядка поміщається формула =Ci/C(k+4).

Cells(i, 6).NumberFormat = "0.00%"

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

Next i

Кінець циклу.

End Sub

Кінець процедури.

Після створення процедури можна скористатися кнопкою “Розрахунок”. Таблиця – приклад після застосування командної кнопки буде виглядати так:

7.5 Робота з формами у середовищі VBA

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

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

Менеджерами підприємства можуть надаватися  знижки покупцям – 1% або 2% для постійних покупців. У залежності від наданої знижки розраховується ціна кожного товару зі знижкою, суми реалізації товарів, підсумкові значення по документу.

Для початку розрахунку користувач може натиснути на відповідному інструменті на панелі інструментів після чого з’явиться така форма:

Після вибору виду знижки і натискання на кнопці “Розрахунок” буде виконано відповідну процедуру для розрахунку підсумків по інформаційних рядках і документу в цілому. Після виконання процедури, яка пов’язана з командною кнопкою “Розрахунок” таблиця буде виглядати так:

Для реалізації поставленої задачі потрібно у вікні редактору VBA створити нову форму за допомогою команди меню InsertUserForm. У результаті виконання команди до дерева основних об’єктів проекту буде додано гілку Forms, до якої належить об’єкт UserForm1 – вікно нової форми користувача. Коли вікно форми активно за допомогою панелі елементів можна створювати об’єкти у формі та визначати їх властивості з використанням вікна властивостей Properties. Для розробки форми, за допомогою якої можна визначити розмір та здійснити розрахунок показників документу “Видаткова накладна”, потрібно створити об’єкти і визначити їх властивості за описом:

Об’єкт

Властивість

Найменування

Значення

Форма

UserForm1

Name

frmRoz

Caption

Розрахунок показників документу

BackColor

білий

Font

Times New Roman, кирилиця, звичайний, 11 пунктів

Командна кнопка

CommandButton

Name

cmdRozr

Caption

Розрахунок

Командна кнопка

CommandButton

Name

cmdV

Caption

Відміна

Група

Frame

Name

FraZn

Caption

Оберіть вид знижки для даного покупця

BackColor

білий

Перемикач

OptionButton

Name

opt1

Caption

знижка не надається

BackColor

білий

Перемикач

OptionButton

Name

opt2

Caption

знижка 1%

BackColor

білий

Перемикач

OptionButton

Name

opt3

Caption

знижка 2%

BackColor

білий

Після створення форми можна починати розробку процедур, які обробляють події – клацання лівою кнопкою миші на командних кнопках. Для цього потрібно виконати подвійне клацання лівою кнопкою миші на відповідній кнопці. Щоб створити процедуру, яку буде виконано якщо користувач натисне на кнопці “Відміна”, потрібно двічі клацнути на цій кнопці. У результаті розчиниться вікно коду з заголовком і завершальним рядком процедури:

Private Sub cmdV_Click()

End Sub

Всередині процедури за допомогою операторів мови VBA слід описати дії, до повинні виконуватися, якщо відбудеться подія Click з даним об’єктом cmdV. У даному випадку слід завершити роботу за допомогою оператору End. Процедура буде виглядати так:

Private Sub cmdV_Click()

End

End Sub

Аналогічним чином слід приступити до створення процедури, яка обробляє подію Click для командної кнопки “Розрахунок”. Процедуру потрібно створити за описом:

Рядок коду

Коментар

Private Sub cmdRozr_Click()

Заголовок процедури, що виконується щоразу після клацання лівою кнопкою миші на командній кнопці у формі cmdRozr (Розрахунок).

If opt1.Value = True Then

Якщо обрано перемикач opt1 (знижка не надається), то

Range("B6").Value = 0

у чарунку B6 записується число 0

Else

інакше

If opt2.Value = True Then

якщо обрано перемикач opt2 (знижка 1%), то

Range("B6").Value = 1

у чарунку B6 записується число 1

Else

інакше (обрано третій перемикач)

Range("B6").Value = 2

у чарунку B6 записується число 2.

End If

Кінець внутрішнього оператору If.

End If

Кінець зовнішнього оператору If.

k = 0

Змінній k привласнюється значення 0. Змінна k буде використовуватися як лічильник інформаційних рядків документу.

For i = 8 To 50

Для і, що змінюється від 8 (перший інформаційний рядок документа) до 50 (максимально можлива кількість рядків) виконуються дії.

If Cells(i, 4).Value <> 0 Then

Якщо вміст чарунки Cells(i, 4) - чарунки і-го рядка та 4-ої колонки не дорівнює 0 (у документі є черговий інформаційний рядок), то

Cells(i, 5).FormulaR1C1 = "=RC[-1]*(100-R6C2)/100"

У чарунку Cells(i, 5) – чарунку і-го рядка та 5-ої колонки поміщається формула розрахунку ціни зі знижкою =RC[-1]*(100-R6C2)/100.

Формулу можна прочитати так: =чарунка того ж рядка, що і чарунка з формулою, і колонки зі зсувом на –1 (колонки, що розташована ліворуч) * на (100 – чарунка R6C2 при абсолютній адресації це чарунка 6-го рядка та 2-го стовпця B6)/100.

Cells(i, 5).NumberFormat = "0.00"

Значення чарунки Cells(i, 5) перетворюється на числовий формат з двома знаками після десяткової крапки.

Cells(i, 6).FormulaR1C1 = "=RC[-3]*RC[-2]"

У чарунку Cells(i, 6) – чарунку і-го рядка та 5-ої колонки поміщається формула розрахунку суми без ПДВ і без знижки =RC[-3]*RC[-2].

Формулу можна прочитати так: =чарунка того ж рядка і колонки зі зсувом на –3 (кількість) * на чарунку того ж рядка і колонки зі зсувом на –2 (ціна без ПДВ).

Cells(i, 7).FormulaR1C1 = "=RC[-4]*RC[-2]"

У чарунку Cells(i, 7) – чарунку і-го рядка та 7-ої колонки поміщається формула розрахунку суми без ПДВ і зі знижкою =RC[-4]*RC[-2].

Формулу можна прочитати так: =чарунка того ж рядка і колонки зі зсувом на –4 (кількість) * на чарунку того ж рядка і колонки зі зсувом на –2 (ціна без ПДВ зі знижкою).

k = k + 1

Значення k – кількості інформаційних рядків у документі збільшується на 1.

End If

Кінець оператора If.

Next i

Змінна циклу збільшується на 1.

If k > 0 Then

Якщо k > 0, то виконуються наступні дії. У іншому випадку, коли у документі немає інформаційних рядків, процедура завершує свою роботу.

Cells(k + 8, 1).FormulaR1C1 = "Разом:"

У чарунку з адресою (рядок  k + 8, стовпчик 1) вводиться новий уміст "Разом:".

Cells(k + 8, 1).Font.Bold = True

Шрифт чарунки (k + 8, 1) перетворюється у напівжирний.

Cells(k + 8, 6).FormulaR1C1 = "=Sum(R8C6:R[-1]C)"

У чарунку з адресою (рядок  k + 8, стовпчик 6) вводиться формула розрахунку підсумку по сумі без ПДВ – сумування чарунок блоку R8C6 (рядок 8, колонка 6 – перша інформаційна чарунка даного показника) : чарунка R[-1]C, яка розташована на рядок вище від чарунки (k + 8, 6) і у тому ж стовпчику .

Cells(k + 8, 7).FormulaR1C1 = "=Sum(R8C7:R[-1]C)"

У чарунку (k + 8, 7) вводиться формула для розрахунку суми без ПДВ зі знижкою.

Cells(k + 9, 5).FormulaR1C1 = "Загальна сума знижки:"

У чарунку (k + 9, 5) вводиться текст "Загальна сума знижки:".

Cells(k + 9, 5).Font.Bold = True

Шрифт чарунки (k + 9, 5) перетворюється у напівжирний.

Cells(k + 9, 7).FormulaR1C1 = "=R[-1]C[-1]-R[-1]C"

У чарунку з адресою (рядок  k + 9, стовпчик 7) вводиться формула розрахунку загальної суми знижки

=R[-1]C[-1]-R[-1]C.

Cells(k + 10, 5).FormulaR1C1 = "ПДВ:"

У чарунку (k + 10, 5) вводиться текст "ПДВ:".

Cells(k + 10, 5).Font.Bold = True

Шрифт чарунки (k + 10, 5) перетворюється у напівжирний.

Cells(k + 10, 7).FormulaR1C1 = "=R[-2]C*0.2"

У чарунку з адресою (рядок  k + 10, стовпчик 7) вводиться формула розрахунку суми ПДВ

=R[-2]C*0.2.

Cells(k + 11, 5).FormulaR1C1 = "Усього з ПДВ:"

У чарунку (k + 11, 5) вводиться текст "Усього з ПДВ:".

Cells(k + 11, 5).Font.Bold = True

Шрифт чарунки (k + 11, 5) перетворюється у напівжирний.

Cells(k + 11, 7).FormulaR1C1 = "=R[-3]C+R[-1]C"

У чарунку (k + 11,  7) вводиться формула розрахунку суми реалізації з ПДВ =R[-3]C+R[-1]C.

Range(Cells(k + 8, 6), Cells(k + 11, 7)).Font.Bold = True

Шрифт діапазону чарунок з підсумковими значеннями  перетворюється на напівжирний.

Range(Cells(k + 8, 6), Cells(k + 11, 7)).Font.Italic = True

Шрифт діапазону чарунок з підсумковими значеннями  перетворюється у курсив.

End If

Кінець If.

End

Завершення виконання програми.

End Sub

Кінець процедури.

Після завершення створення форми і процедур, які з нею пов’язані, потрібно до проекту додати новий модуль командою меню InsertModule, у вікні модуля створити процедуру – макрос, який буде виконуватися після натискання на відповідній кнопці на панелі інструментів користувача. Макрос буде виконувати лише одну дію – активізацію форми frmRoz. Це можна здійснити за допомогою методу Show, який буде застосовуватися по відношенню до об’єкту frmRoz. Макрос буде виглядати так:

Sub VN()

frmRoz.Show

End Sub

Далі залишилося лише визначити зв’язок між макросом і відповідною кнопкою на панелі інструментів:

  1.  Команда меню ВидПанели инструментовНастройка або команда Настройка контекстного меню панелей інструментів.
  2.  Якщо панелі інструментів користувача не існує, на вкладці Панели инструментов скористатися кнопкою Создать і визначити ім’я панелі інструментів (наприклад, “Користувач”  або “Документи”).
  3.  На вкладці Команди у списку Категории обрати Макросы, перетягти  об’єкт Настраиваемая кнопка на відповідну панель інструментів.
  4.  Викликати контекстне меню кнопці на панелі інструментів користувача, виконати команду контекстного меню Назначить макрос, обрати макрос VN, натиснути на кнопці Ок.
  5.  У контекстному меню кнопки визначити її ім’я “Розрахунок видаткової накладної”.
  6.  Зачинити вікно діалогу команди Настройка.

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

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

  1.  Що є об’єктом Visual Basic for Application?
  2.  Чим відрізняється поняття “властивість” у Visual Basic for Application від аналогічного поняття у Visual Basic?
  3.  Які основні елементи можуть знаходитися у вікні редактору VBA? Як управляти їх виведенням?
  4.  Як створити нову функцію Microsoft Excel? Як нею скористатися?
  5.  Що є об’єктом Range?
  6.  Що означає властивість FormulaR1C1?
  7.  Як створити командну кнопку на робочому листі Microsoft Excel?
  8.  Як створити нову форму?

7.7 Практичні завдання

Завдання

Виконати завдання за індивідуальним варіантом. Звіт про роботу повинен вміщувати:

  •  блок-схему алгоритмічного процесу розв’язання задачі;
  •  роздруковану електронну таблицю у двох видах – з виведенням формул і з виведенням результатів розрахунків по формулах;
  •  роздрукований програмний код.

Варіант №1

Створити функції користувача засобами VBA, за допомогою яких на підставі даних таблиці «Відомість надходження товарів» можна розрахувати значення таких показників:

середньозважена ціна товару;

середня ціна товарів визначеного виробника;

середня ціна товарів визначеної товарної групи.

Варіант №2

Створити таблицю «Аналіз реалізації товарів», розрахунок підсумкових значень у якій по рядках і в цілому по таблиці виконується за допомогою командної кнопки «Розрахунок».  За допомогою кнопки «Очищення» можна видалити вміст інформаційних рядків таблиці і підсумковий рядок.

Варіант №3

Створити таблицю «Зведення про реалізацію товарів», розрахунок підсумкових значень у який по рядках і в цілому по таблиці виконується за допомогою командної кнопки «Розрахунок».  

Прибуток від реалізації товару визначається по формулі:

(ціна реалізації – покупна ціна) · кількість.

За допомогою кнопки «Очищення» можна видалити вміст інформаційних рядків таблиці і підсумковий рядок.

Варіант №4

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

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

Варіант №5

Створити документ «Видаткова накладна», надати користувачу можливість вибрати знижку, що надається покупцю – 2%, 5% чи ні знижки. Після уведення вихідних даних за допомогою кнопки «Розрахунок» виконати розрахунок торби реалізації по кожнім рядку документа, суми реалізації з урахуванням знижки, а також підсумкових значень по документі. Підсумкові значення повинні включати показники:

Усього – підсумкова сума по всіх товарах з урахуванням знижки;

ПДВ – 20% від суми «Усього»:

Разом до оплати – сума «Усього» + ПДВ.

Варіант №6

Створити документ «Розрахунок вартості активів у наступному періоді підприємства з урахуванням інфляції», увести дані про середній банківський відсоток, прогнози щодо різних варіантів інфляції, увести дані для розрахунку в таблицю. Після натискання на командних кнопках повинен виконуватися розрахунок з урахуванням відповідного відсотка інфляції. При розрахунку варто враховувати зменшення вартості активів на банківський відсоток (дисконтирована вартість).

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

Варіант №7

Створити документ «Прибуткова накладна», надати користувачу можливість вибрати вид податку на додаткову вартість (ПДВ) – 20% або операції виконуються без ПДВ. Після введення вхідних даних за допомогою кнопки «Розрахунок» виконати розрахунок ціни кожного товару з ПДВ, суми надходження (ціна * кількість), суми надходження з урахуванням ПДВ. Підсумкові значення повинні включати показники: Разом без ПДВ; Разом із ПДВ.

Варіант №8

Створити таблицю «Аналіз виконання договорів постачання», розрахунок підсумкових значень у який по рядках і в цілому по таблиці виконується за допомогою командної кнопки «Розрахунок».  За допомогою кнопки «Очищення» можна видалити вміст інформаційних рядків таблиці і підсумковий рядок.


Варіант №9

Створити документ «Розрахунок собівартості і ціни реалізації продукції», надати користувачу можливість обрати відсоток планового прибутку – 15%, 18% або 20%, ввести кількість одиниць продукції, що випускаються. Після введення даних про витрати, пов'язаних з виробництвом визначеної продукції, і їхньої вартості за допомогою кнопки «Розрахунок» виконати розрахунок загальної суми витрат на виробництво, собівартості одиниці продукції (витрати / кількість виробів), ціні одиниці продукції (собівартість, збільшена на плановий прибуток).

Варіант №10

Створити функції користувача засобами VBA, за допомогою яких на підставі даних таблиці «Відомість реалізації товарів» можна розрахувати значення таких показників:

загальна сума реалізації конкретного товару певному покупцю;

загальна сума реалізації товарів за визначену дату;

середньозважена ціна товарів визначеної товарної групи.

Варіант №11

Створити документ «Видаткова накладна», надати користувачу можливість визначити розмір знижки, що надається покупцю, за допомогою смуги прокручування. Після введення вхідних даних за допомогою кнопки «Розрахунок» виконати розрахунок суми реалізації по кожному рядку документа, суми реалізації з урахуванням знижки, а також підсумкових значень по документу. Підсумкові значення повинні включати показники:

Разом – підсумкова сума по всіх товарах без знижки;

Разом зі знижкою – сума по всіх товарах з урахуванням знижки;

Сума знижки.

Варіант №12

Створити таблицю «Аналіз виконання плану реалізації», розрахунок підсумкових значень у який по рядках і в цілому по таблиці виконується за допомогою командної кнопки «Розрахунок».  За допомогою кнопки «Очищення» можна видалити вміст інформаційних рядків таблиці і підсумковий рядок.

Варіант №13

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


Варіант №14

Створити функції користувача засобами VBA, за допомогою яких на підставі даних таблиці «Аналіз реалізації товарів» можна розрахувати значення таких показників:

загальна сума фактичної реалізації певного товару;

середня ціна певного товару;

загальна сума фактичної реалізації конкретному покупцю.

Варіант №15

Створити функції користувача засобами VBA, за допомогою яких на підставі даних таблиці «Відомість реалізації товарів» можна розрахувати значення таких показників:

середньозважена ціна товару;

середня ціна всіх товарів;

середня ціна товарів визначеної товарної групи;

загальна сума реалізації товарів за певний день.

7.8 Тест

Відповідь

Вміє

Не вміє

  1.  Чим є об’єкт Application?

  1.  сукупністю листів робочої книги MS Excel

  1.  додатком MS Excel

  1.  робочою книгою MS Excel

  1.  Властивості об’єктів VBA

  1.  визначають зовнішній вигляд об’єктів

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

  1.  повертають інші  об’єкти


  1.  Щоб розчинити вікно редактору VBA потрібно

  1.  скористатися інструментом Редактор Visual Basic на панелі інструментів Visual Basic

  1.  скористатися інструментом Редактор Visual Basic на панелі інструментів Стандартная

  1.  подати команду меню Сервис - Редактор Visual Basic

  1.  Які ствердження є правильними?

  1.  об’єкту Range відповідає певна чарунка або діапазон чарунок

  1.  об’єкту Range відповідають усі чарунки робочої книги

  1.  об’єкту Range відповідають усі виділені чарунки

  1.  Щоб створити нову функцію потрібно

  1.  виконати команду меню Insert – Module у вікні редактору VB

  1.  скористатися категорією функцій  Определенные пользователем

  1.  виконати команду меню Insert – Code у вікні редактору VB

  1.  Які ствердження стосовно рядку коду

Cells(1,1).FormulaR1C1 = "=R[2]C+R[1]C"

є правильними?

  1.  у чарунку А1 вводиться формула =А3+А2

  1.  у чарунку В2 вводиться формула =А3+А2

  1.  у чарунку А1 вводиться формула =С1+В1

  1.  Які операції виконуються за допомогою команди

Range("D3:E5").Value = 0?

  1.  в усі чарунки діапазону D3:E5 поточного листа записується значення 0

  1.  в усі чарунки діапазонів D3:E5 робочої книги записується значення 0

  1.  виділяється діапазон  чарунок D3:E5

  1.  Щоб скористатися командною кнопкою під час роботи з документом MS Excel потрібно

  1.  виконати подвійне клацання на командній кнопці

  1.  клацнути на командній кнопці

  1.  вийти з режиму конструктору за допомогою інструменту , клацнути на командній кнопці


  1.  Що визначає властивість FormulaR1C1 ?

  1.  уміст чарунки, формулу у звичайному вигляді

  1.  формулу у форматі R1C1

  1.  уміст чарунки

  1.  Як створити нову форму?

  1.  за допомогою палені елементів

  1.  шляхом виконання команди Edit - UserForm

  1.  шляхом виконання команди Insert - UserForm

Література

  1.  Дибкова Л.М. Інформатика та комп’ютерна техніка. Посіб. – К.: Видавничий центр “Академія”, 2002. – 318 с.
  2.  Інформатика: Комп’ютерна техніка. Комп’ютерні технології. Посіб. /За ред. О.І. Пушкаря – К.: Видавничий центр “Академія”, 2001. – 696 с.
  3.  Інформатика та комп’ютерна техніка: Навч. посіб./ Енгель П.С., Макарова М.В., Баришенська В.Г.– К.: НМЦ “Укоопосвіта”,2000.– 335 с.
  4.  Ляхович В.Ф. Основы информатики: Учеб. пособие. - Ростов н/Д: Феникс, 2000. – 608 с.
  5.  Натан Гуревич, Ори Гуревич Visual Basic 5: Освой самостоятельно : Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 1998. – 576 с.
  6.  Основы экономической информатики: Учеб. пособие/ А.Н. Морозевич, Н.Н. Говядинова, Б.А. Железко и др.; Под общ. ред. А.Н. Морозевича. – Мн.: БГЭУ, 1998. – 438 с.
  7.  Руденко В.Д., Марчук О.М., Патланжоглу М.О. Практичний курс інформатики / За ред. Мадзігона В.М. – К.: Фенікс, 1997. – 304 с.


Зміст

стор.

Вступ

3

1. Створення програм у середовищі Visual Basic 6.0.

Основні поняття - об'єкт, властивість, подія.

4

1.1 Візуальне створення програми

4

1.2 Створення вихідного коду

8

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

11

1.4 Практичні завдання

12

1.5 Тест

15

2. Основні оператори мови

17

2.1 Організація  розгалужених обчислювальних процесів

17

2.1.1 Умовний оператор If

17

2.1.2 Оператор варіанти Select Case

20

2.2 Організація циклічних обчислювальних процесів

22

2.2.1 Оператор циклу For . . . Next

22

2.2.2 Оператор циклу Do While . . . Loop

26

2.2.3 Оператор циклу Do. . . Loop While

27

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

29

2.4 Практичні завдання

29

2.5 Тест

34

3 Використання елементів управління в програмах. Робота з формами. Поняття методу

36

3.1 Елементи управління - лінійки прокручування, перемикачі,

прапорці, групи, списки, що розчиняються

36

3.2 Робота з формами. Поняття методу

37

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

45

3.4 Практичні завдання

45

3.5 Тест

54

4 Управління програмою за допомогою меню. Робота з масивами елементів управління, змінних

56

4.1 Управління програмою за допомогою меню.

56

4.2 Робота з масивами елементів управління, змінних

57

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

68

4.4 Практичні завдання

68

4.5 Тест

71

5 Розробка програм з використанням

підпрограм – процедур і функцій, вікон повідомлень

73

5.1 Підпрограми – процедури і функції

73

5.2 Вікна повідомлень

75

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

82

5.4 Практичні завдання

82

5.5 Тест

87

6 Робота з файлами

88

6.1 Файли довільного доступу

88

6.2 Файли послідовного доступу

91

6.3 Бінарні файли

92

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

98

5.5 Практичні завдання

99

7 Використання Visual Basic for Application у Microsoft Excel

101

7.1 Основні поняття

101

7.2 Редактор VBA

102

7.3 Створення функцій користувача

104

7.4 Автоматизація розрахунків на робочому листі

111

7.5 Робота з формами у середовищі VBA

117

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

123

7.7 Практичні завдання

123

7.8 Тест

132

Література

134

 Символ & проставляється перед буквою, яка може використовуватися  в сполученні з клавішею Alt +[символ латинського алфавіту] для виконання дій, що відповідають командній кнопці

 Переміщення повзунка  виконується перетягуванням при натиснутій лівій кнопці миші або за допомогою кнопок , ,  ,  

 Властивість визначає, що об’єкт буде в рамці

 Поле можно буде використовувати лише для виведення даних, ввести інформацію неможливо.


Початок

Введення су-ми  нарахова-ної зар. пл. S

Друкуван-ня  SV

Кінець

PP = S 0.13

S<= 150

EMBED Equation.3  

EMBED Equation.3  

SV = S – PP - S

так

ні

Початок

Введення суми внеску SPV

SR = SPV      i = 1

i <= P

EMBED Equation.3  

i = i + 1

Друкування суми на рахунку SR

ні

так

Введення банківського відсотку V

Введення  періоду P

Кінець

Початок

Кінець

Введення суми внеску SPV

SR = SPV      i = 1

i <= P

EMBED Equation.3  

i = i + 1

Друкування суми на рахунку SR

ні

так

Введення банківського відсотку V

Введення  періоду P

Початок

Введення початкових  даних: вид морозива, вага (V), вибір додатків

Обрано пломбір?

Друкуван-ня  C, K

Кінець

так

Додати збиті вершки?

Додати шоколад?

Додати горіхи?

Обрано вершкове?

Обрано молочне?

Обрано полу-нич.джем?

Обрано вишневий джем?

Обрано пома-ранчевий джем?

C=V*0.9/100           K=V

C=V             K=V*110/100

C=V*0.8/100    K=V*90/100

C=C+0.3           K=K+50

C=C+0.25           K=K+47

C=C+0.4            K=K+48

C=C+0.7             K=K+80

C=C+0.5           K=K+120

C=C+0.9           K=K+130

так

так

так

так

так

так

так

так

ні

ні

ні

ні

ні

ні

ні

ні

ні

Рисунок 3.2 - Блок-схема розвязання задачі

Вікно

Очистка

Таблиця

Підсумки

Вихід

Розрахунок

Сума

Підсумок

Середня ціна

Меню програми

Параметри

Колір

Символ

чорний

синій

червоний

Фон

білий

жовтий

Шрифт

звичайний

напівжирний

Рисунок 4.2 - Меню програми – приклада

Необовязкова частина програми!




1. РЕФЕРАТ дисертації на здобуття наукового ступеня кндидт бioлoгiчниx нyк Kиїв 2002 Диcepтцi
2. а возмущен чем- негодует по поводу чего- сочувствует кому и т
3. Тепловой расчет парогенератора
4.  Понятие причины и виды социальных конфликтов
5. Педагогика теориясын ~аншама жетік білгенімен педагогикалы~ ~депті~ ~ырсырын ме~гермейінше б~~ан оны~ ~о
6. Зоне когда драка руганья были среди русских гостей ресторана и китайцевгостей ресторана
7. Доклады- 1Природные ресурсы Земли I
8. Книги эпохи просвещения и формирование идеологии декабристов
9. ЛАБОРАТОРНАЯ РАБОТА 1 Цель работы- Ознакомление с основными понятиями СУБД ccess на примере учебной базы дан
10. Экономическая оценка инвестиций