YourLib.net
Твоя библиотека
Главная arrow Информатика (Под общ. ред. А.Н. Данчула) arrow 4.9.4. Разработка программы для ввода параметров уравнения
4.9.4. Разработка программы для ввода параметров уравнения

4.9.4. Разработка программы для ввода параметров уравнения

   Разработаем проект без использования командных кнопок управления для сокращения объемов программирования и чтобы пользователю будущего приложения можно было предложить жесткий алгоритм выполняемых действий. Поэтому после вызова первой формы приложения надо обеспечить выполнение события для ввода исходных данных. Рассмотрим по порядку создание такой программы.
   Так как придется использовать значения переменных при работе с несколькими объектами, то действия этих переменных должны распространяться на все объекты формы, т. е. надо позаботиться об их объявлении в процедуре (Proc: declarations), при этом объект надо выбрать как general (основной). Так как требуется сохранять вводимые значения коэффициентов при работе с объектами формы, то необходимо записать одну строку в виде:

Dim sa, sb, sc As Single,

где под переменными sa, sb, sc подразумеваются текущие значения введенных коэффициентов уравнения. Составим программные коды для выполнения действий, необходимых при загрузке первой по порядку формы, у которой заголовок имеет значение Caption: «ВВОД ДАННЫХ». На рис. 4.36 изображено окно редактора программ для первой формы — объекта Form, которой присвоено имя DANNYE.
   В предложенной программе появилась новая локальная переменная і для обозначения индекса массива вводимых строк коэффициентов уравнения, а объекту Label присваивается значение «Кол-во шагов», так как в дальнейшем мы будем использовать это же окно для отображения порядкового номера вводимого варианта коэффициентов уравнения.

Рис. 4.36. Программные коды для установления начальных параметров 

Рис. 4.36. Программные коды для установления начальных параметров

   Для ввода количества шагов, т. е. количества рассматриваемых вариантов, используется текстовое окно с именем Th, для которого целесообразнее всего выбрать событийную процедуру, реагирующую на нажатие клавиш на клавиатуре. В предыдущем примере были рассмотрены различные варианты ввода информации с клавиатуры, ее контроля и обработки. Лучше всего воспользоваться уже имеющимся опытом и скопировать в качестве заготовки одну из готовых процедур. Но надо учесть, что потом придется немного поработать, чтобы привести в соответствие имена переменных и названия используемых объектов. Для этой цели как раз и пригодятся таблицы, где предлагалось записывать имена объектов, переменных и их назначение. Окончательный вариант разработанной процедуры ввода количества рассматриваемых вариантов представлен на рис. 4.37.

Рис. 4.37. Процедура ввода количества рассматриваемых вариантов 

Рис. 4.37. Процедура ввода количества рассматриваемых вариантов

   Для ввода коэффициента п используется событийная процедура KeyPress, отвечающая за нажатие на клавишу.
   Вводимые символы представляются в промежуточном буфере в Ascii-кодах (см. Приложение), поэтому процедура сразу воспринимает данные в переменную с именем KeyAscii и показывает, что коды считаются целыми числами (выражение в скобках). На эту переменную распространяются действия только в пределах этой процедуры. На рис. 4.37 показана программа для заполнения окна, предназначенного для ввода коэффициента, только цифрами.
   В операторе If производится контроль нажатия на клавишу Enter, ее Ascii-код равен 13. Эту клавишу нажимают после ввода числовых данных, но можно забыть ввести значение коэффициента и сразу нажать клавишу Enter. Для контроля за неверными действиями используется проверка в операторе Select Case по указанным ниже Ascii-кодам.
   В данном случае доступными для оператора Select Case являются только спецсимволы и цифры, так как число шагов можно задавать только целым числом. В случае успешного ввода заданного числа п курсор на экране переместится в окно для ввода коэффициента а.
   Событийные процедуры ввода коэффициентов а и b ничем друг от друга не отличаются, поэтому на рис. 4.38 представлено

Рис. 4.38. Событийная процедура ввода коэффициента а 

Рис. 4.38. Событийная процедура ввода коэффициента а

в виде образца окно редактора программ с событийной процедурой нажатия клавиш при вводе коэффициента а.
   Следует отметить, что список значений ключа, указанных в операторе Select Case: 0, 8, 45, 46, 48,..., 57, соответствует Ascii- кодам: служебный, табуляция (клавиша Tab), децимальная точка, минус и цифры от 0 до 9.
   При обработке на форме окна для ввода коэффициента b будет осуществляться почти такая же процедура, какая показана на рис. 4.38, только надо не забыть заменить переменную sa на sb и соответственно все атрибуты окна «а» на атрибуты окна «Ь».
   По внешнему виду окно для ввода коэффициента с ничем не отличается от двух предыдущих, но надо помнить, что по окончании ввода должно происходить событие, которое позволяет накапливать введенные строки и предлагать пользователю принимать окончательное решение. Логику такого процесса легко проследить по блок-схеме алгоритма, которая представлена на рис. 4.39.
   Из блок-схемы видно, что суть процесса ввода значений коэффициента с не меняется, поэтому в качестве заготовки можно

Рис. 4.39. Блок-схема алгоритма анализа ввода коэффициентов уравнения 

Рис. 4.39. Блок-схема алгоритма анализа ввода коэффициентов уравнения

использовать программу, аналогичную тем, которые используются для ввода коэффициентов а и Ь. Разница заключается в том, что необходимо в нужное место сделать вставки, которые позволят анализировать количество введенных вариантов, а затем записать (сохранить) исходные данные в массивы и предоставить возможность пользователю вносить изменения, если это необходимо, в текущую запись.
   Рассмотрим подробнее реализацию поставленных условий на примере событийной процедуры ввода численного значения коэффициента с. На рис. 4.40 представлено окно редактора программ с первой частью событийной процедуры TC_KeyPress.
   Первые четыре оператора полностью повторяют предыдущий вариант, но затем следуют операторы, предназначенные для управления существующими элементами, а именно меткой (Label) с именем Ln и текстовым окном (Text) с именем Tn. Они использованы для вывода сообщений: в первом — «Введен шаг», а во втором окне — порядкового номера варианта с коэффициентами а, b и с.
   Чтобы обратить на это внимание пользователя, указанные элементы меняют свой цвет. В данном случае константа &HFFFF& соответствует изменению свойств метки и текстового поля BackColor на желтый цвет.

Рис. 4.40. Ввод численного значения коэффициента с и анализ введенной строки

Рис. 4.40. Ввод численного значения коэффициента с и анализ введенной строки

   Функция MsgBox позволяет создавать на экране диалоговое окно с двумя управляющими кнопками: ДА и НЕТ, и в зависимости от выбора одной из них дальнейший путь разветвляется. Когда мы используем функцию, то всегда имеется возвращаемое значение, в данном случае при нажатии на кнопку ДА переменной z присваивается целое число, равное б, и управление будет передано в окно ввода коэффициента а (там появится указатель курсора). Пользователь сможет внести исправления в текущее окно данных и переходить от одного окна к другому, нажимая на клавишу Enter. В случае отказа от изменения значений текущих данных они будут сохранены в массиве. На рис. 4.41 представлено продолжение событийной процедуры обработки введенного коэффициента.
   Вторая часть программы начинается с передачи введенных коэффициентов в массив. Для этой цели используется структура оператора ReDim (Remove Dimention — перемещать назначение), который в сочетании с ключевым словом Preserve (сохранять) позволит дописывать в массив все новые и новые данные (в случае отсутствия ключевого слова массив будет создаваться заново). На рис. 4.41 мы показали, что цикл повторения ввода

Рис. 4.41. Вторая часть программы обработки введенных данных 

Рис. 4.41. Вторая часть программы обработки введенных данных

Рис. 4.42. Пример ввода коэффициентов уравнения с сообщением о конце ввода 

Рис. 4.42. Пример ввода коэффициентов уравнения с сообщением о конце ввода

строк с коэффициентами будет осуществляться до тех пор, пока не будут введены все варианты.
   В программе этот анализ производится сравнением номера текущего варианта (і) и числа (n) — заданного количества рассматриваемых вариантов (шагов). Когда пользователь введет все строки, то на экране появится сообщение: «Все данные введены», чтобы зафиксировать внимание пользователя приложения на факте окончания процесса ввода, для чего используется оператор MsgBox. Закрытие и удаление с экрана первой формы обеспечивает оператор Unload, а вызов на экран новой формы с именем REZ осуществляется с помощью метода Show (значение 1 указывает, что другая форма должна быть отражена на экране дисплея). Соответственно прекращение дальнейшей работы с программным приложением данной формы инициируется оператором End.
   Концовка рассмотренной событийной процедуры (после оператора End) отличается от использовавшихся ранее лишь тем, что сначала очищаются все текстовые окна, предназначенные для ввода коэффициентов, т. е. им присваивается характеристика пусто, чему соответствует знак двойных кавычек ("").
   На рис. 4.42 показано окно первой формы DANNYE с коэффициентами последнего введенного варианта и сообщением об окончании ввода. При нажатии на кнопку OK осуществится переход ко второй форме.

 
< Пред.   След. >