Вестник МГТУ, 2023, Т. 26, № 1.
Вестник МГТУ. 2023. Т. 26, № 1. С. 45-56. DOI : https://doi.org/10 .21443/1560-9278-2023-26-1-45-56 Анализ компьютерной программы для стандартов ГОСТР ИСО 7730-2009 и ISO 7730:2005 и формирование предложений по ее совершенствованию BASIC не является строго стандартизированным языком, являясь группой схожих языков. Программы, написанные для одного интерпретатора BASIC, сложно реализуются на иных интерпретаторах. В тексте же стандартов ГОСТ Р ИСО 7730-2009 и ISO 7730:2005 отсутствуют указания, в каком интерпретаторе следует запускать программу, однако выбор конкретного интерпретатора необходим для проверки ее работоспособности. Для работы с компьютерной программой, содержащейся в ГОСТ Р ИСО 7730-2009 и ISO 7730:2005, авторами был выбран онлайн-интерпретатор https://yohan.es/swbasic1 . Выбор данного интерпретатора обусловлен тем, что в нем поддерживается ручная нумерация строк (рудимент, который в современных программах BASIC отсутствует). Ручная нумерация строк позволила максимально приблизить текст программы к первоисточнику из приложения D стандартов ГОСТ Р ИСО 7730-2009 и ISO 7730:2005. Анализ приведенной в стандартах ГОСТ Р ИСО 7730-2009 и ISO 7730:2005 компьютерной программы на языке BASIC показал наличие целого ряда ошибок, препятствующих работе этой программы. Например, в строке 200 используется символ, недопустимый для любых языков программирования, включая BASIC, что подробно будет обсуждено ниже, а в строке 140 количество открывающих скобок не совпадает с количеством закрывающих. Аналогичная ситуация наблюдается с многочисленными строками программы. При этом использовать формулы, приведенные в обсужденном выше разделе 4, для вычисления показателя PMV без приложения D, содержащего программу для расчета значения PMV по этим формулам, достаточно сложно, так как часть вычислений, как оговаривается в стандарте, должна быть произведена "с помощью последовательных итераций", конкретный вид которых определяется в компьютерной программе и число которых сложно установить заблаговременно (до окончания вычислений). Далее необходимо провести идентификацию ошибок и восстановление компьютерной программы построчно, опираясь на формулы и указания основного текста стандарта. В программе (прежде всего в строках 10-40) пропущен оператор комментария REM. В строках 50-100, 120-130 пропущен символ, отделяющий строковое сообщение от имени переменной (в большинстве программ BASIC этот символ - запятая); можно предположить существование диалекта, в котором имя переменной не отделяется никакими символами. В строке 110 вместо INPUT должен быть PRINT. В строках 80-90 использован недопустимый символ градуса. В строке 140 правее знака присваивания количество открывающих скобок не равно количеству закрывающих. Формула (исходя из ее физического смысла) предназначена для вычисления давления насыщенного водяного пара при температуре Т. Эту стандартную формулу мы исправили в соответствии с ее известным физическим смыслом. Выбранный нами интерпретатор не поддерживает оператора декларирования функций DEF, поэтому перевод относительной влажности в давление пара выполнен непосредственно в строке 150. Также выбранный интерпретатор не поддерживает функцию EXP () (возведение числа е в степень), поэтому в строке 145 присвоено значение числа е соответствующей переменной, а для вычисления экспоненты в теле программы используется операция возведения в степень. В строках 160-180 использован недопустимый символ "два в верхнем индексе". В строке 200 использован недопустимый символ "меньше или равно". В переводе ошибочный символ заменен на допустимый в BASIC, но синтаксически неверный символ "u". Строка 200 дает еще один показательный пример опечатки. Часть выражения в присваивании ветки THEN была отформатирована добавлением пробелов на уровне комментариев. Это говорит о том, что текст программы просто воспроизведен в стандарте без какого-либо осмысления, только переведены комментарии и вывод на экран командами PRINT и INPUT. В выбранном онлайн-интерпретаторе невозможно добавить комментарий к строчке, содержащей команду ветвления, поэтому комментарий перенесен на строку 201. В строках 240 и 500 перевода неточно воспроизведен смысл оригинальных комментариев. В комментариях к программе описывают, что именно делает тот или иной участок кода. Реже описывают, как участок кода работает. Кроме того, комментарии к программе никогда не пишутся в повелительном наклонении. В исправленной нами программе комментарии в строках 240 и 500 откорректированы, но в целом данное замечание не является обязательным к исполнению, так как комментарии не влияют на работу программы. В строках 250-340 выполняются предварительные вычисления для заявленного в тексте стандарта итерационного расчета значений tct и hc, а сам цикл выполняется в строках 350-410 программы. 1Simple Basic Interpreter. URL: https://yohan.es/swbasic . 49
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz