Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы ИИТ / !VBS_i_HTML.doc
Скачиваний:
35
Добавлен:
01.06.2015
Размер:
861.7 Кб
Скачать
  1. Пример выполнения

Постановка задачи:

Рассмотрим пример реализации 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. И получаем результаты с округлением до нуля знаков после запятой:

  1. Задания к исполнению

  1. Провести расчет нормы накопления ТБО(Твердых Бытовых Отходов) из расчета 0,05 тонн на человека в год за 1 год, за 1 месяц и за 1 день, запросив у пользователя количество человек.

  2. Произвести преобразование температуры из показателя в Fo в Co по формуле: Co=( Fo-32)*0,5

  3. Произвести преобразование температуры из показателя в Co в Fo по формуле: Fo=( Co*1,8)+32

  4. Произвести преобразование температуры из показателя в Co в Ko по формуле: Ko=Co+273,15

  5. Произвести преобразование температуры из показателя в Ko в Co по формуле: Co=Ko-273,15

  6. Произвести преобразование температуры из показателя в Fo в Ko по формуле: Ko=( Fo+459,67)*0,5

  7. Произвести преобразование температуры из показателя в Ko в Fo по формуле: Fo=( Ko*1,8)-459,67

  8. Произвести расчет указанных значений, запросив у пользователя два числа и знак операции, который и будет определять операцию между числами.

  9. Запросить у пользователя фамилию, имя и отчество и преобразовать в фамилию и инициалы.

  10. Запросить у пользователя число в диапазоне 0-10, а затем сгенерировать случайное число в том же диапазоне и при совпадении чисел соответствующее сообщение ровно, как и при не совпадении оных.

  11. Рассчитать ежемесячные выплаты по кредиту за указанный период исходя из суммы займа с учетом процентной ставки в 15%.

  12. Запросить у пользователя количество учеников в группе и рассчитать стоимость часа преподавателя по формуле: Количество_учеников*10руб.+19,5%

  13. Запросить у пользователя фамилию, имя и отчество. По последней букве отчества определить и вывести на экран пол указанного человека (подсказка: женские отчества заканчиваются на букву а).

  14. Запросить у пользователя текст и заменить все гласные буквы в нем случайными числами.

  15. Запросить у пользователя число месяц и год рождения в разных текстовых полях, а затем объединить в единую дату в формате: ДДД/ММ/ГГГГ.

  16. Получить от пользователя текст, буквы которого находятся в разных регистрах, и преобразовать его к нижнему регистру. Результат вывести на экран.

  17. Запросить у пользователя фамилию, имя, отчество и e-mail адрес. Вывести номер пользователя в виде шести разрядного числа, первое число - количество символов в фамилии пользователя, второе - в имени, третье – в отчестве, четвертое – в e-mail адресе, а два оставшихся – случайные числа.

  18. Запросить у пользователя e-mail адрес и вывести на экран информацию о том, каким по счету является символ @ в данной строке.

  19. Получить от пользователя его почтовый адрес в одном текстовом поле и вывести на экран лишь наименование улицы.

  20. При первом щелчке по кнопке генерировать случайное число (вывести его в первое текстовое поле) и попросить пользователя ввести слово длинной в указанное количество символов(во второе текстовое поле), а при втором щелчке посчитать количество символов в веденном слове и сообщить пользователю о результатах(подсказка: щелчки можно не считать, достаточно организовать ветвление с проверкой на равенство второго текстового поля пустоте(“”)).

  21. Запросить у пользователя строку, что заменить в строке и на что заменить. Произвести замену и вывести результат на экран.

  22. Запросить у пользователя команду и вывести информацию в соответствии с командой (если команда содержит слово «время», то вывести текущее время, если команда содержит слово «дата» или «день», то вывести текущую дату).

  23. Запросить у пользователя ответ на любой(заранее заготовленный) вопрос и вывести результаты анализа его ответа.

  24. Рассчитать подоходный налог(13%) на указанную заработную плату пользователя и вывести результат на экран.

  25. Рассчитать налог на добавленную стоимость (НДС)(18%) по указанной пользователем цене товара.

Самойлов Алексей Николаевич

Зебельян Любовь Сергеевна

Лебедев Владимир Борисович

Методические указания к лабораторной работе

«Автоматизация предварительного анализа и обработки данных средствами Visual Basic Script»

по курсу «Интернет-Интранет технологии»

Ответственный за выпуск Зебельян Л.С.

Редактор КочергинаТ.Ф.

Корректор Чиканенко Л.В.

ЛР № 020565 от 23.06.1997 Подписано к печати 11.06.2013

Формат 60x841/16.

Печать офсетная. Бумага офсетная

Усл.п.л. - 2,8 Уч.- изд.л. – 3

Заказ № 131 Тираж 50 экз.

Издательство Технологического института

Южного федерального университета

ГСП 17А, Таганрог, 28, Некрасовский, 44

Типография Технологического института

Южного федерального университета

ГСП 17А, Таганрог, 28, Энгельса, 1

0