Навигация: Главная :: Программирование :: VBscript :: От QuickBasic до VBscript - один шаг Автор: Тихомиров Алексей
Реклама:
Trade Links - обмен ссылками
Развлекательные сайты:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Друзья:
Справочник языка:
  1. Некоторые правила
  2. От QuickBasic до VBscript - один шаг
  3. Cравнение VBScript и JavaScript
  4. Вызов сценария
  5. Основные типы данных
  6. Справочная информация
  7. Заключение

От QuickBasic до VBscript - один шаг

Начнем изучение не стандартным подходом. Обычно сначала все пишут программу, выводящую на экран строку "ПРИВЕТ ПИПЛЫ :)" Мы же попробуем перевести обычную "Бейсиковскую" программу - на VBscript, чтобы показать - как между ними много общего.

Поставим задачу, написать программу, которая бы случайным образом загадывала число от 1 до 100, и предлагала Вам его угадать. При неправильном предположении, программа должна выводить сообщение о том, больше загаданное число или меньше. Ведется подсчет попыток. В случае победы выводится поздравление.

Программа на обычном Бейсике:

10 CLS : RANDOMIZE
20 a = INT ( RND(1)*100+1 ) : p = 1
30 PRINT "Загадано число от 1 до 100, угадайте его:)"
40 PRINT "Ваш вариант";
50 INPUT v

60 IF a > v THEN PRINT "Загаданное число больше" :

      p = p + 1 : GOTO 40

70 IF a < END 90 за?;p;?ходов? победили Вы ?Ура! PRINT THEN a="v" IF 80 40 GOTO : 1 + p="p" меньше? число ?Загаданное>

Как видите, такая программа пошла бы даже на БК0010:) Я даже оставил ненавистные операторы GOTO (интересно, об них еще помнят?). Для тех кто не понимает, опишу алгоритм:

10 очистка экрана и включение генератора случайных чисел.
20 переменной "a" присваивается целое случайное значение
  от 1 до 100, счетчику числа попыток присваивается 
  значение=1.
30, 40 выводится сообщение.
50 ввод Вашего варианта "v".
60 если загаданное число больше Вашего варианта, то
   выводится сообщение, на единицу увеличивается счетчик
   попыток и программа отправляется на строку 40.
70 если загаданное число меньше Вашего варианта, то 
   выводится сообщение, на единицу увеличивается счетчик
   попыток и программа отправляется на строку 40.
80 Если числа совпадут то выводится поздравление, кстати,
   по идее, проверку этого условия можно и опустить.
90 THE END

Код типичной страницы со скрипт программой будет выглядеть примерно так:

<html>
<head>
<title>Угадай число</title>
</head>
<body bgcolor="white" text="black">
< ... html код формы взаимодействия с VB программой ... >
<script language="VBscript">

... код программы ...

</script>
</body>
</html>

Итак, напишем программу реализующую заданные условия с помощью VBscript

Нажмите на кнопку "Загадать число" и угадайте его:)




Ваш вариант:

		 


КОД ПРОГРАММЫ:

<FORM NAME=ugadai>
<INPUT TYPE="button" NAME="begin"
VALUE="Загадать число"><BR><BR>
Ваш вариант:<BR>
<INPUT TYPE="text" NAME="chislo">
<BR>
<INPUT TYPE="button" NAME="but"
VALUE="Enter">
</FORM>

<!--******************* угадай число ************************-->
<script language="vbscript"><!--
dim a		' определяем переменные
dim p
dim v

sub begin_onclick 	' процедура срабатывающая при нажатии
			  (событие onclick)
			' кнопки с именем begin
 randomize		' включение генератора случайных чисел
 a=int(rnd(1)*100+1)	' присваивание переменной (a) случайного
			  значения
 p = 1			' обнуление счетчика
 alert "число загадано" ' вывод сообщения в отдельном окне 
end sub			' конец процедуры

sub but_onclick		' процедура срабатывающая при нажатии
			 (событие onclick) кнопки с именем but

 v = document.ugadai.chislo.value 

' переменной (v) присваивается значение 
' содержащееся в поле ввода формы
' путь: документ (просто эта html страница).форма с именем ugadai.
' объект- поле для ввода с именем chislo. свойство value

 v=cint(v)	' поскольку поле для ввода содержит текстовую
		' информацию, то переменную (v) надо преобра-
 		' зовать в целочисленный тип (функция cint)

 if a > v then
   alert "загаданное число больше, попробуйте еще"
   p = p + 1
 end if

 if a < v then
   alert "загаданное число меньше, попробуйте еще"
   p = p + 1
 end if 
   
 if a = v then		  
   document.write"<center>Победа за "&p&" ходов.</center>"
 end if
		' оператор document.write выводит содержащуюся
		' в кавычках информацию в новое окно броузера
		' как html код.
				
end sub
--></script>

Если вдуматься и внимательно изучить приведенный код, то думается многое станет ясным. Ответим на некоторые вопросы, которые могут возникнуть по ходу осмысления программы:
1. Что бы произошло, если бы мы в начале скрипта не объявили переменные? Тогда бы значение переменной "a" заданной в процедуре "sub begin_onclick" не было "видно" в других процедурах (например "sub but_onclick" ). Это упущение приведет или к ошибке, или к тому, что значению "a" не будет ничего присвоено. Можно также воспользоваться оператором "public a" вместо "dim a" тогда значение "a" станет видным во всех открытых на данный момент документах, это актуально при фреймовой структуре. Если написать "dim a(100)" то будет задан массив из сотни переменных "a", в точности как в обычном Бейсике. Во многих случаях переменные можно и не объявлять, если тело программы находится в одной процедуре.
2. Что такое эти процедуры? Процедура это общее название функций или подпрограмм. Имеет синтаксис:
sub name_событие ....... end sub.
name - это имя процедуры, например мы написали, что кнопка "загадать число" называется "chislo", значит подпрограмма sub chislo_onclick выполнится при нажатии на эту кнопку.
событие - то, что может "случиться" в окне броузера. Например "onclick" означает, что процедура выполнится, при нажатии на кнопку, предварительно заданную в форме (как в нашем случае). Существует несколько видов событий. Из самых распространенных можно отметить: window_onload - запускается при полной загрузке документа:

<Script language="VBscript"><!--
Sub window_onload
Alert "Добро пожаловать на мою домашнюю страницу!"
end sub
--></Script>

При загрузке документа появится окошко с данной надписью и кнопкой ОК

Событие onmouseover - возникает при наведении указателя мыши на гипер ссылку.

Наведите на эту ссылку указатель мыши

Пример:

<a href="http://wanderfly.da.ru/" name="link">
Наведите на эту ссылку указатель мыши</a>
<script language="vbscript"><!--
sub link_onmouseover
alert "ссылка"
end sub
--></script>

Разумеется, данный пример Вы можете использовать только как шутку на ссылку "xxx", потому что нажать на нее невозможно:) Но если поменять alert "ссылка" на status="Моя домашняя страница", то это сообщение появится в строке статуса.

Каков полный синтаксис операторов указывающих как "добраться" до данных в поле ввода?

x = top.имя_фрейма.document.имя_формы.имя_объекта_text_box.value
Таким образом, можно добраться до любых данных в окне броузера, даже если они расположены в другом фрейме.

Подведем первые итоги. VBscript перенял от обычного Бейсика большинство операторов и функций (математических, преобразования данных и т.д.). Отличие выражается в специфических операторах ввода-вывода информации из окна броузера и возможных событиях, которые могут "случиться" при взаимодействии пользователя и страницы.

Обмен банерами:

Если захотите можете разместить мой банер не вашем сайте



Если хотите обменятся ссылками или банерами пишите

Счетчики и рейтинги:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2007-2010г. © Все о сайте

Все права защищены. Полное или частичное копирование запрещено. Ну а если скопировали ссылка на сайт обязательна.

Сайт создан в системе uCoz