Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩИЙ_файл_ПОСОБИЕ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
22.69 Mб
Скачать

На друк

Запис результатів сортування в текстовий файл

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

'Запис відсортованих масивів у текстовий файл

Private Sub CmdЗапис_Click()

Dim i As Integer

StrSoob = InputBox("Уведіть ім'я текстового файлу для запису" _ "даних із вказівкою шляху до нього", "Масив", _ "D:\Масиви\Товар1.txt")

Open StrSoob For Output As #1

For i = 1 To 6

Write #1, StrNaim(i), CurZina(i), IntKilkist(i)

Next i

Close #1

MsgBox "Запис у текстовий файл " & StrSoob & " завершена"

End Sub

Рис. 5.71. Процедура запису результатів сортування

В текстовий файл

Реалізація проекту.

1. Відкрити додаток VB, запустивши на виконання програму vb6.exe, якщо проект буде створюватися в програмному середовищі Visual Basic, або відкрити документ, створений у програмному середовищі MS Excel, і сукупністю клавіш <Alt+F11> викликати програмне середовище Visual Basic for Applications.

2. Встановити основні властивості форми (Name – FrmМасиви, Caption – Масиви).

3. Для відображення найменувань товарів на формі розмістити елемент управління Список (ListBox) і встановити його властивості відповідно до табл. 6.2. Для відображення ціни кожного товару на формі сконструювати масив текстових полів у такій послідовності:

а) розмістити на формі текстове поле й установити його основні властивості. Зокрема, властивості Name присвоїти TxtЦіна;

б) скопіювати цей елемент управління в буфер обміну;

в) вставити цей елемент управління з буфера обміну на форму, відповівши "Да" на запит системи про необхідність створення масиву елементів управління;

г) буксируванням установити цей елемент у потрібне місце форми;

д) аналогічно створити інші елементи масиву.

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

4. Вище масивів елементів управління послідовно розмістити написи (Label), установити їх основні властивості. Зокрема, властивості Caption присвоїти відповідно "Найменування", "Ціна", "Кількість" і "Вартість".

5. Для відображення сумарної вартості всіх товарів розмістити на формі відповідний напис і текстове поле й настроїти їх властивості.

6. Для запуску процедур рішення задач, визначених постановкою завдання, розмістити на формі потрібну кількість кнопок (CommandButtоn) і настроїти їх основні властивості.

7. Подвійним клацанням по вільній області форми викликати вікно програмного коду процедури (Code), у якому відобразиться початковий текст процедури Private Sub Form_Load().

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

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

9. Виконати контрольний запуск процедури на виконання й перевірити коректність роботи з текстовим файлом і правильність відображення вхідних даних у масивах.

10. Подвійним клацанням на кнопці Розрахунок вартості викликати текст процедури Private Sub CmdВартість_Click(), заповнити її тіло відповідно до алгоритму (див. рис.5.60) і перевірити її працездатність шляхом контрольного запуску на виконання.

11. Аналогічно конструюються процедури рішення задач відповідно завданням.

Аналіз проекту

У програмному коді проекту для захисту від помилок у застосуванні змінних установлюється режим їх обов'язкового оголошення оператором Option Explicit. Якщо при розробці процедури користувач зневажив цією вимогою, то при її виконанні система зупинить обчислювальний процес і видасть повідомлення про помилку "Змінна не визначена" (рис. 5.72).

Рис. 5.72. Повідомлення про помилку компіляції

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

Всі масиви даних і елементів управління мають розмірність, рівну 6. Для універсальності проекту було б доцільним як розмірність масивів застосувати змінну (наприклад n), значення якої може визначатися при запуску проекту на виконання через функцію InputBox().

Для забезпечення нумерації індексів елементів масивів даних усього проекту не з 0, як робиться системою за замовчуванням, а з 1 – у розділі загальних описів застосований оператор Option Base 1.

Змінні, що використовуються в проекті як параметри (лічильників) в операторі For (це i, j, k та ін.), доцільно оголошувати як локальні (а не глобальні) змінні в кожній процедурі, тому що їх значення повинні залежати тільки від ситуації, що склалось в даній процедурі, і не залежати від ситуацій в інших.

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

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

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

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

Виконання проекту й аналіз отриманих результатів

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

Рис. 5.73. Результат введення вхідних даних

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

Рис. 5.74. Результат розрахунку вартості кожного товару

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

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

Рис. 5.75. Повідомлення про середню ціну товарів

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

Рис. 5.76. Повідомлення про знайдений товар

І нарешті, обчислюється величина відхилення й видається повідомлення про неї (рис. 5.77).

Рис. 5.77. Повідомлення про відхилення від середньої ціни

При клацанні по кнопці Сортування всі масиви впорядковуються за алфавітом найменувань товарів, і про результати сортування видається повідомлення на новій формі, для якої використовується оператор Print (рис. 5.78).

Рис. 5.78. Друк результатів сортування

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

Рис. 5.79. Вікно введення ім'я файлу й шляху до нього

Після завершення запису відомостей у файл система видає повідомлення про це (рис. 5.80).

Рис. 5.80. Вікно повідомлення про завершення запису

Остання процедура дозволяє зберегти в текстовому файлі Товарсортування.txt відомості про відсортовані товари після завершення роботи програмного середовища VB.