Выбрать главу

Для примера создадим форму, в которой будет производиться подсчет количества теплоты, выделяемой в проводнике при протекании в нем тока.

Согласно соответствующим формулам, Q(количество теплоты в джоулях) = U2 (напряжение в вольтах)*t(время в секундах)/R(сопротивление в омах), при этом R = p(удельное сопротивление материала проводника в омах на метр)*l(длина проводника в метрах)/s(площадь поперечного сечения проводника в квадратных сантиметрах). Таким образом, формула для расчета количества теплоты выглядит так (она также известна под именем закона Джоуля-Ленца):

Q = (U2*t*s)/(l*р).

Ее мы и запрограммируем в форме.

Q = U2ts/lp

Рис. 6.2. Закон Джоуля-Ленца.

ЭКСКУРС В ФИЗИКУ

В школьном курсе физики более часто используется формула

Q = I2*R*t = (I2*p*l*t)/s (обозначения такие же: Q — количество теплоты в джоулях, I — сила тока в амперах, t — время в секундах, р — удельное сопротивление материала проводника в омах на метр, l — длина проводника в метрах, s — площадь поперечного сечения проводника в квадратных сантиметрах). Однако в реальности мы значительно чаще имеем дело с электрическими системами, в которых измерению и контролируемому изменению поддается именно напряжение, а не сила тока.

Не удивляйтесь, что согласно данной формуле выделение тепла окажется максимальным при большой толщине проводника и его малой длине, хотя, казалось бы, должно быть наоборот. Дело в том, что при большой толщине проводника и его малой длине (и тем самым малом сопротивлении) в условиях постоянного напряжения резко увеличивается сила тока в цепи, которая и разогревает этот самый проводник. Эксперимент, подтверждающий правильность данной формулы, может проделать каждый: если электрическую лампочку встряхнуть так, чтобы ее нить пересеклась сама с собой (тем самым уменьшится длина нити, через которую проходит ток), то нить будет светиться гораздо ярче и греть сильнее. Если уменьшать длину проводника до минимума (в условиях того же постоянного напряжения), то тепловыделение возрастет настолько, что разрушит проводник, расплавив его — возникнет ситуация короткого замыкания. Поэтому при применении вышеуказанной формулы для расчета нагревательного элемента следует учитывать рост силы тока при уменьшении длины проводника или увеличении его диаметра и сопоставлять величину этой силы с возможностями электрической цепи (обычно они ограничены свойствами предохранителя, выражаемыми в просторечии словами типа "пробка на 20 ампер").

Формула, рассматриваемая в данной главе, может быть использована, к примеру, при оценке способности подаваемого на линию напряжения в течение определенного времени приводить к очистке ото льда обледеневшего провода путем его разогревания, — ситуация, встречающаяся зимой на линиях электропередач. В том случае, если выделяемого тепла недостаточно для растапливания льда, налипшего по всей длине провода, следует увеличивать напряжение на проводе, что и делается на ЛЭП (штатные потребители при этом отключаются).

Сначала создадим саму форму и разработаем ее дизайн. Как нетрудно сообразить, в ней должно быть пять полей для ввода значений — напряжение, время, диаметр проводника, его длина и удельное сопротивление материала, из которого он сделан, одно поле для вывода значения — количества теплоты, и кнопка выхода из программы. Но мы добавим еще кнопку — "Вставить значение в документ": пусть при нажатии этой кнопки подсчитанная информация будет вставлена в текст активного документа. Не мешало бы еще также поместить на форме текст о назначении данной программы и краткую инструкцию по ее использованию, а также сделать у формы приличный заголовок (свойство "Caption" элемента "UserForm").

Для помещения на форму элемента управления достаточно перетащить его с "Панели элементов" на форму.

Вот что может у вас получиться — рис. 6.3.

Рис. 6.3. Форма нашей программы.

Поля ввода параметров имеют имена "TextBox1"… "TextBox5" соответственно (такие имена по умолчанию задаются автоматически при создании полей), поле отображения результата имеет имя "TextBox6", кнопки имеют имена "CornmandButton1" и "CommandButton2" сверху вниз соответственно. В элементы "TextBox1"…"TextBox5" пользователь будет вводить текст. Желательно установить свойство Locked элемента "TextBox6" как "True" (рис. 6.4), чтобы не допустить случайного ввода пользователем в него текста — к сбою это не приведет, но вызовет неудобство для пользователя, так как при подсчете результата этот текст придется удалить.

Рис. 6.4. Установка свойства Locked элемента "TextBox6" как "True".

Разработка дизайна программы — ответственный момент, но не менее важным является обдумывание принципов работы программы. Помните, что исправление ошибки на стадии проектировки программы в несколько раз легче ее исправления на стадии реализации, в десятки раз легче, чем на стадии распространения, и в сотни раз легче, чем на стадии внедрения. Можно сделать, например, так: пользователь вводит все значения, нажимает кнопку "Подсчитать" (надо будет добавить на форму…), и ему в окне результата он выдается. Но в этом случае пользователь вынужден выполнять лишнее действие — нажатие на кнопку. Кроме того, так как обязательно надо продумать систему защиты от неправильных действий пользователя (например, нельзя допускать ввод нулевых или нечисловых значений в поля "TextBox4" и "TextBox5"), то при использовании данного способа подсчета придется либо выдавать при неправильном вводе сообщение об этом, либо, что представляется более красивым, ставить в эти поля значения по умолчанию, как только пользователь сделает неправильный ввод и уберет курсор с поля ввода. Но… все же, как неудобно! Нажимать лишний раз кнопку, постоянно следить за тем, стоят ли в полях ввода именно нужные значения, а не значения по умолчанию (ведь можно при вводе и случайно задеть соседнюю клавишу), да и при программировании проблем будет предостаточно, — изволь предусмотреть все случаи, на каждый написать программу обработки именно этого случая… Не слишком ли много проблем? А может быть, надо просто получше подумать о проектировании программы?