Алгоритм преобразования данных

Способ хранения данных

В задании было указано на необходимость создания, хранения и последующего просмотра протокола работы. Протокол работы можно хранить на жестком или на гибком диске. Обеспечим возможность различных вариантов хранения протокола и на жестком и на гибком диске. Поэтому в табл. 3.2 необходимо добавить три строчки с данными LogDisk, LogPath и LogFile, соответствующими имени диска, пути к файлу протокола и имени файла протокола. Все три величины имеют тип string, видимость – public, организацию – "переменные".

Для хранения протокола можно выбрать как файл последовательного доступа, так и файл прямого доступа. В данном случае это совершенно безразлично, но для работы с файлом прямого доступа потребуется создать сложный тип данных. Выбираем файл последовательного доступа с многокомпонентной записью данных в последовательности a,b. Корень х уравнения можно было бы также записать в файл, что упростило бы процесс чтения протокола, но знание метода решения уравнения позволяет предвидеть необходимость записи при а=0 сообщений "не определен" или "не существует".

Метод решения уравнения А*х+В=0 предельно прост:

= -В/А при А¹0

х не определен при А=0 и В=0

не существует при А=0 и В¹0.

Анализ алгоритма решения уравнения показывает, что для его полной реализации должна быть введена промежуточная переменная типа string или вычисляющая ее функция, в которую записывается символьный эквивалент значения х или текст соответствующего сообщения. С учетом соображений, высказанных в 3.6.3 и в данном подразделе, табл. 3.2 можно придать вид
табл. 3.3.

Таблица 3.3

Уточненное описание наборов данных

Имя Тип Способ организации Видимость Назначение
Входные данные
A Single Переменная Public Коэффициент а
B Single Переменная Public Коэффициент b
Выходные данные
X Single Переменная Public Корень уравнения
Промежуточные данные
TBA.Text String Свойство Text Box Public Ввод коэффициента а
TBB.Text String Свойство Text Box Public Ввод коэффициента b
LBX.Caption String Свойство Label Public Отображение корня х
MessX String Функция Public Сообщение о корне х
  LogDisk LogPath LogFile   String String String   переменная переменная переменная   Public Public Public Данные протокола: Имя диска Путь Имя файла

Алгоритм преобразования данных показан на Р-графе (рис. 3.1) и в
табл. 3.4. На рис. 3.1 жирным шрифтом показаны обозначения формул (иногда совпадающие с самими формулами), курсивом – имена состояний процесса, а нормальным шрифтом – условия, разрешающие выполнение соответствующих действий. В качестве имен состояний процесса выбраны слова "Вход" (начало процесса), "Выход" (завершение процесса) и номера состояний. Ввиду простоты задачи описание состояний не делается. Если возникнет необходимость в этой операции, то описание состояний можно сделать в таблице, в которой для каждого имени состояния указать имена данных, значения которых определенны.


Вход 1 а¹0 2 3 Выход

o о o o о

TBA.Text>a x= - b/a x →MessX LB.Caption=MessX

TBB.Text>b a=0 4 b¹0

 

MessX="не существует"

b=0

MessX="не определен"

функция MessX

Рис. 3.1. Р-граф алгоритма преобразования данных

 

Таблица 3.4

Таблица формул к алгоритму преобразования данных

Имена данных Обозначения формул Вид формул
TBA.Text Нет Ввод с клавиатуры
TBB.Text Нет Ввод с клавиатуры
a TBA.Text>a a=val(TBA.Text) при вводе с клавиату-ры, иначе читается из файла
b TBB.Text>b b=val(TBB.Text) при вводе с клавиату-ры, иначе читается из файла
x x= -b/a x= -b/a при а≠0, иначе не определяется
MessX x →MessX MessX="не существует" MessX="не определено" MessX=str(x) при а≠0, MessX="не существует" при а=0 и b≠0 MessX="не определено" при а=0 и b=0
LB.Caption LB.Caption=MessX LB.Caption=MessX
LogDisk LogDisk Из списка дисков
LogPath LogPath Из списка каталогов диска
LogFile LogFile Из списка файлов или с клавиатуры