- •Таганрог, 2013
- •Цели и задачи лабораторной работы
- •Виды сценарных языков
- •Основные принципы
- •Директивы, команды и операторы сценарного языка Visual Basic Script
- •Арифметические операторы
- •/Начало кода/
- •/Начало кода/
- •/Начало кода/
- •/Конец кода/
- •Циклический оператор «Do-Loop»
- •/Начало кода/
- •Арифметические функции
- •Функции даты и времени
- •Ввод/Вывод
- •Пример выполнения
- •/Начало кода/
Пример выполнения
Постановка задачи:
Рассмотрим пример реализации HTML страницы, которая запросив у пользователя высоту и ширину стены, а также стоимость одного кирпича вернет сообщение с количеством кирпичей, необходимых на ее постройку и стоимость этого количества кирпичей.
Математическая модель:
Предположим, что используется стандартный кирпич с габаритами 250Х120Х65 мм, а размеры стены будут задаваться в сантиметрах.
Т.к. учитываться будут только высота кирпича(65мм) и ширина кирпича(250мм) именно они и будут участвовать в расчете.
Необходимо учитывать также, что между кирпичами будет присутствовать слой цемента толщиной 10мм.
Исходя из вышеописанных данных, можно сформулировать следующую предварительную формулу:
(Высота_стены/Высота_кирпича)Х(Ширина_стены/Ширина_кирпича)
Однако мы обозначили условие задания размеров стены в сантиметрах, а кирпича- в миллиметрах, а значит формула примет вид:
((Высота_стеныХ10)/Высота_кирпича)Х((Ширина_стеныХ10)/Ширина_кирпича)
Осталось добавить цементный шов толщиной в 10мм и рабочая формула примет вид:
((Высота_стеныХ10)/(Высота_кирпича+10))Х((Ширина_стеныХ10)/(Ширина_кирпича+10))
Программная реализация:
Для программной реализации данной задачи необходимо в первую очередь создать HTML страницу(Раздел 2.1.2 II способ):
Запустить текстовый редактор(для этого достаточно либо перейти по пути: «Пуск→Все программы→Стандартные→Блокнот», либо выполнить клавиатурную комбинацию WIN+R и прописав команду «Notepad» в открывшемся диалоговом окне нажать на клавишу Enter)
Замечание: Для написания сценариев подойдет любой текстовый редактор, позволяющий сохранить текстовый файл с параметрами.
Ввести исходный код страницы
Сохранить полученный файл на ПЗУ компьютера с расширением *.html (в нашем случае достаточно, либо перейти по пути: «Файл→Сохранить», либо выполнить клавиатурную комбинацию Ctrl+S и в пункте «Тип файла» выбрать параметр «Все файлы» все, что останется указать любое имя и дополнить его конструкцией: «*.html»)
Замечание: В данном случае, как и для всех операционных систем в целом символ звездочка (*), указывает на любое количество любых символов и заменяется соответственно на любое имя.
Замечание: Сценарный код необходимо вносить в пару тегов <Script></Script>, с параметром Language и значением, соответствующим используемому сценарному языку.
В полученный текстовый документ вводим следующий код:
/Начало кода/
<HTML>
<Head>
<Tittle>Расчет стоимости стены</Tittle>
<Script Language="VBScript">
Sub B1_OnClick
H=F1.T1.Value
If Not IsNumeric(H) Then
MsgBox("Проверьте введенные данные")
Else
W=F1.T2.Value
If Not IsNumeric(W) Then
MsgBox("Проверьте введенные данные")
Else
C=F1.T3.Value
If Not IsNumeric(C) Then
MsgBox("Проверьте введенные данные")
Else
K=((CDbl(H)*10)/(65+10)*(CDbl(W)*10)/(250+10))
S=K*C
MsgBox("Количество кирпичей: " & K & VbCrLf & "Стоимость кирпичей: " &S)
End If
End If
End If
End Sub
</Script>
</Head>
<Body>
<Form Name="F1">
<Input Name="T1" Type="Text">Высота стены<br>
<Input Name="T2" Type="Text">Ширина стены<br>
<Input Name="T3" Type="Text">Стоимость одного кирпича<br>
<Input Name="B1" Type="Button" Value="Расчитать">
</Form>
</Body>
</HTML>
/Конец кода/
Разберемся построчно, не касаясь основной структуры документа:
<Script Language="VBScript"> - Обозначение начала сценария, причем атрибут Language указывает на то, что использоваться могут разные языки, но значение данного атрибута должно быть соответствующим языку.
Sub B1_OnClick – Событие щелчка по кнопке с именем В1.
H=F1.T1.Value – Внесение в переменную с именем Н содержимого текстового поля (Value) с именем Т1, находящегося на форме с именем F1(Имя_формы.Имя_элемента.Значение).
If Not IsNumeric(H) Then – Если значение в переменной Н не цифровое.
MsgBox("Проверьте введенные данные") – Вывести сообщение с указанными данными.
Else – В противном случае.
K=((CDbl(H)*10)/(65+10)*(CDbl(W)*10)/(250+10)) – Выполнение расчета по выведенной ранее формуле с последующим внесением результатов расчета в переменную К.
CDbl(H) и CDbl(W) – Преобразуют указанные в скобках переменные к типу данных с десятичной частью т.к. из диалогового окна InputBox всегда приходит значение в текстовом виде и при выполнении дальнейших операций с такими переменными могут возникнуть проблемы(нельзя складывать 28(число) и арбуз(текст)).
S=K*C – Расчет стоимости высчитанного количества кирпичей.
MsgBox("Количество кирпичей: " & K & VbCrLf & "Стоимость кирпичей: " & S)– Вывод сообщения с результатами расчетов, причем с помощью символа конкатенации обычный текст(в кавычках) совмещается в одном сообщении с содержимым переменных(KиS).
VbCrLf – Директива, указывающая на перенос строки в одном сообщении.
<Form Name="F1"> - Начало HTML формы с именем F1.
<Input Name="T1" Type="Text"> - Вставка текстового поля с именем Т1.
<br> - Инструкция переноса строки, во избежание слипания элементов формы.
<Input Name="B1" Type="Button" Value="Расчитать"> - Вставка кнопки с именем В1 и заголовком Рассчитать.
Осталось лишь сохранить результаты (см. выше) и открыть в Internet браузере (Щелкнуть по сохраненному файлу правой кнопкой мыши и наведя курсор на пункт «Открыть с помощью» щелкнуть левой кнопкой мыши по пункту «Internet Explorer»):
Готовый вариант должен выглядеть так:
Замечание: При первом запуске страницы операционная система может запросить разрешение на выполнение активного содержимого:
но ведь мы ничего преступного не прописывали в исходном коде так? А значит разрешаем:
При выполнении расчета последовательно проверяется содержимое текстовых полей и при не соответствии ожидаемым данным выводится сообщение:
Последний снимок экрана может ввести в заблуждение о работоспособности сценария, но все верно. Дело в том, что в последнем случае в качестве разделителя целой и десятичной части была использована точка, а это недопустимо, возможно использование лишь запятой иначе ваше десятичное число станет текстом.
Проверяем работу сценария:
Однако мы получаем результаты с погрешностью. Модифицируем формулу:
K=((CDbl(H)*10)/(65+10)*(CDbl(W)*10)/(250+10))
Приводя ее к виду:
K=Round(((CDbl(H)*10)/(65+10)*(CDbl(W)*10)/(250+10)),0)
Для этого открываем исходный файл с помощью программы «Блокнот», а не Internet Explorer. И получаем результаты с округлением до нуля знаков после запятой:
Задания к исполнению
Провести расчет нормы накопления ТБО(Твердых Бытовых Отходов) из расчета 0,05 тонн на человека в год за 1 год, за 1 месяц и за 1 день, запросив у пользователя количество человек.
Произвести преобразование температуры из показателя в Fo в Co по формуле: Co=( Fo-32)*0,5
Произвести преобразование температуры из показателя в Co в Fo по формуле: Fo=( Co*1,8)+32
Произвести преобразование температуры из показателя в Co в Ko по формуле: Ko=Co+273,15
Произвести преобразование температуры из показателя в Ko в Co по формуле: Co=Ko-273,15
Произвести преобразование температуры из показателя в Fo в Ko по формуле: Ko=( Fo+459,67)*0,5
Произвести преобразование температуры из показателя в Ko в Fo по формуле: Fo=( Ko*1,8)-459,67
Произвести расчет указанных значений, запросив у пользователя два числа и знак операции, который и будет определять операцию между числами.
Запросить у пользователя фамилию, имя и отчество и преобразовать в фамилию и инициалы.
Запросить у пользователя число в диапазоне 0-10, а затем сгенерировать случайное число в том же диапазоне и при совпадении чисел соответствующее сообщение ровно, как и при не совпадении оных.
Рассчитать ежемесячные выплаты по кредиту за указанный период исходя из суммы займа с учетом процентной ставки в 15%.
Запросить у пользователя количество учеников в группе и рассчитать стоимость часа преподавателя по формуле: Количество_учеников*10руб.+19,5%
Запросить у пользователя фамилию, имя и отчество. По последней букве отчества определить и вывести на экран пол указанного человека (подсказка: женские отчества заканчиваются на букву а).
Запросить у пользователя текст и заменить все гласные буквы в нем случайными числами.
Запросить у пользователя число месяц и год рождения в разных текстовых полях, а затем объединить в единую дату в формате: ДДД/ММ/ГГГГ.
Получить от пользователя текст, буквы которого находятся в разных регистрах, и преобразовать его к нижнему регистру. Результат вывести на экран.
Запросить у пользователя фамилию, имя, отчество и e-mail адрес. Вывести номер пользователя в виде шести разрядного числа, первое число - количество символов в фамилии пользователя, второе - в имени, третье – в отчестве, четвертое – в e-mail адресе, а два оставшихся – случайные числа.
Запросить у пользователя e-mail адрес и вывести на экран информацию о том, каким по счету является символ @ в данной строке.
Получить от пользователя его почтовый адрес в одном текстовом поле и вывести на экран лишь наименование улицы.
При первом щелчке по кнопке генерировать случайное число (вывести его в первое текстовое поле) и попросить пользователя ввести слово длинной в указанное количество символов(во второе текстовое поле), а при втором щелчке посчитать количество символов в веденном слове и сообщить пользователю о результатах(подсказка: щелчки можно не считать, достаточно организовать ветвление с проверкой на равенство второго текстового поля пустоте(“”)).
Запросить у пользователя строку, что заменить в строке и на что заменить. Произвести замену и вывести результат на экран.
Запросить у пользователя команду и вывести информацию в соответствии с командой (если команда содержит слово «время», то вывести текущее время, если команда содержит слово «дата» или «день», то вывести текущую дату).
Запросить у пользователя ответ на любой(заранее заготовленный) вопрос и вывести результаты анализа его ответа.
Рассчитать подоходный налог(13%) на указанную заработную плату пользователя и вывести результат на экран.
Рассчитать налог на добавленную стоимость (НДС)(18%) по указанной пользователем цене товара.
Самойлов Алексей Николаевич
Зебельян Любовь Сергеевна
Лебедев Владимир Борисович
Методические указания к лабораторной работе
«Автоматизация предварительного анализа и обработки данных средствами Visual Basic Script»
по курсу «Интернет-Интранет технологии»
Ответственный за выпуск Зебельян Л.С.
Редактор КочергинаТ.Ф.
Корректор Чиканенко Л.В.
ЛР № 020565 от 23.06.1997 Подписано к печати 11.06.2013
Формат 60x841/16.
Печать офсетная. Бумага офсетная
Усл.п.л. - 2,8 Уч.- изд.л. – 3
Заказ № 131 Тираж 50 экз.
Издательство Технологического института
Южного федерального университета
ГСП 17А, Таганрог, 28, Некрасовский, 44
Типография Технологического института
Южного федерального университета
ГСП 17А, Таганрог, 28, Энгельса, 1