Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕма4 Лекции и Задания АиТ 2007 .doc
Скачиваний:
1
Добавлен:
21.08.2019
Размер:
6.58 Mб
Скачать

Встроенные

управляющие элементы HTML

Свойства

События

Методы

Button

Form, Enabled, Name, Value

OnClick

OnFocus

Click

Focus

CheckBoxCheckBox1

Form, Enabled, Name, Value, Checked DefaultChecked

OnClick

OnFocus

Click

Focus

Hidden

Name, Value

Password

Form, Enabled, Name Value, DefaultValue

OnFocus

OnBlur

Focus

Blur

Select

Radio

OptionButton1

Form, Enabled, Name, Value, Checked

OnClick

OnFocus

Click

Focus

Reset

Form, Enabled, Name, Value

OnClick

OnFocus

Click

Focus

Select

Name, Length, Sise, Selectedindex

OnFocus

OnBlur

OnChange

Focus

Blur

Submit

Form, Enabled, Name Value

OnClick

OnFocus

Click

Focus

Text

Form, Enabled

OnFocus

Focus

TextArea

Name, Value DefaultValue

OnBlur

OnChange

OnSelect

Blur

Select

Для элементов управления определены события и методы.

События:

OnClick - щелчок мыши по объекту

OnFocus - получение фокуса объектом

OnChange - изменение состояния объекта

OnBlur - потеря фокуса объектом.

Методы:

Click - соответствует щелчку мыши по объекту

Focus - соответствует получению фокуса объектом

Blur - соответствует потере фокуса объектом

Select - соответствует выбору объекта.

Рассмотрим использование приведенных объектов на странице и их свойства.

Объект Button (кнопка) - используется для создания командной кнопки на форме. Свойство NAME - строка, определяющая имя управляющего элемента. Свойство VALUE - строка, определяющая надпись на кнопке.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="BUTTON" [NAME="string"] [VALUE="string"]

[OnClick="subroutine"] [OnFocus="subroutine"]>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<body>

<FORM>

<INPUT TYPE="BUTTON" NAME="btnOne" VALUE="Push Me!">

</FORM>

</body>

Объект CheckBox (флажок) - используется для создания флажка в форме. С формой, содержащей CheckBox, серверу передается только информация о выбранных флажках. Свойство NAME - строка, определяющая имя управляющего элемента. Свойство VALUE - строка, определяющая состояние элемента. Свойство CHECKED - необязательный параметр, указывающий, что флажок установлен по умолчанию.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="CHECKBOX" [NAME="string"] [VALUE="string"] [CHECKED] [OnClick="subroutine"] [OnFocus="subroutine"]>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<INPUT TYPE="CHECKBOX" NAME="chkOne" VALUE="Checked" CHECKED>

</FORM>

Объект Hidden (скрытый) - используется для помещения на форму данных, невидимых для пользователя. Свойство NAME - строка, определяющая имя управляющего элемента Hidden. Свойство VALUE - строка, определяющая значение элемента.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="HIDDEN" [NAME=" string"] [VALUE="string"]>

Пример:

<FORM>

<INPUT TYPE="HIDDEN" NAME="txtOne" VALUE="SECRET_CODE">

</FORM>

Объект Password (пароль) - похож на объект Text, но здесь при вводе текста символы заменяются на звездочки.

Свойство NAME - строка, определяющая имя элемента. Свойство VALUE - строка, определяющая значение элемента по умолчанию. Свойство SIZE - целое число, определяющее длину элемента в символах. Свойство MAXLENGTH - целое число, определяющее максимальное число символов, которое можно ввести в элемент.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="PASSWORD" [NAME= "string"] [VALUES="string"] [SIZE="integer"] [MAXLENGTH="integer"] [OnFocus ="subroutine"] [OnBlur ="subroutine"] >

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<INPUT TYPE="PASSWORD" NAME="txtOne" VALUE="changeme" SIZE="8" MAXLENGTH="10">

</FORM>

Объект Radio называют кнопкой выбора и позволяет пользователю выбрать один из нескольких вариантов. Эти элементы могут быть сгруппированы путем установки атрибута NAME в одно и то же значение. Свойство NAME - строка, определяющая имя элемента. Свойство VALUE - строка, определяющая значение элемента при передаче на сервер (каждая кнопка выбора должна иметь уникальное значение). Свойство CHECKED - необязательный параметр, указывающий на активность кнопки по умолчанию. Заголовок определяет.надпись под объектами (общую функцию кнопок).

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="RADIO" [NAME="string"] [VALUE="string"] [CHECKED] [OnClick="subroutine"] [OnFocus="subroutine"]> [заголовок]

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<INPUT TYPE="RADIO" NAME="OPTIONS" VALUE="One" CHECKED>One

<INPUT TYPE="RADIO" NAME="OPTIONS" VALUE="Two">Two

<INPUT TYPE="RADIO" NAME="OPTIONS" VALUE="Three">Three

</FORM>

Объект Reset (сброс) обновляет все текстовые поля в текущей форме. Управляющий элемент Reset представляется броузером в виде кнопки с текстом (по умолчанию «Reset»). Свойство NAME - строка, определяющая имя элемента. Свойство VALUE - строка, определяющая надпись на кнопке.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="RESET" [NAME="string"] [VALUE="string"]

[OnClick="subroutine"] [OnFocus="subroutine"]>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<INPUT TYPE="TEXT">

<INPUT TYPE="RESET" VALUE="Reset Me">

</FORM>

Объект Select (выбор) используется для создания списка с возможностью выбора. Этот элемент похож на раскрывающийся список (ComboBox) в Visual Basic. Управляющий элемент Select создается тегами <SELECT></SELECT>. Ter <OPTION> используется для определения элементов списка.

Свойство SIZE - определяет количество элементов списка, выводимых на экран. Свойство MULTIPLE - позволяет выбрать одновременно несколько элементов. Свойство SELECTED - указывает, какой элемент списка выбран по умолчанию. Свойство Selectedindex -индекс выбранного элемента.

Синтаксис описания объекта на форме следующий:

<SELECT NAME=="string" [SIZE="integer"] [MULTIPLE]

[OnFocus="subroutine'] [OnBlur="subroutine"] [OnChange="subroutine"]>

<OPTION [SELECTED] VALUE=" string" > Текст

</SELECT>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<SELECT NAME="FirstLanguage" multiple>

<OPTION VALUE="1">Visua1 Basic

<OPTION SELECTED VALUE="2">VBScript

<OPTION VALUE="3">C++

</SELECT>

</FORM>

Объект Submit (передача) — это кнопка, используемая для передачи всех элементов формы обрабатывающему процессу на сервере. Данные пересылаются в виде ASCII-текста процессу, определенному атрибутом формы ACTION. Каждая форма, имеющая больше одного поля ввода, должна иметь управляющий элемент Submit. Как правило, он один, но в принципе можно определить несколько таких элементов.

Свойство NAME - - строка, определяющая имя элемента.. Свойство VALUE - строка, определяющая надпись на кнопке.

Синтаксис описания объекта на форме следующий:

<INPUT TYPE="SUBMIT" [NAME="string"] [VALUE="string"]

[OnClick="subroutine"] [OnFocus="subroutine"]>

Пример:

<FORM METOD="POST" ACTION="http://www.vb-bootoamp.com/test">

<INPUT TYPE="TEXT">

<INPUT TYPE="SUBMIT" VALUE="Submit Form">

</FORM>

Объект Text (окно ввода - вывода) используется для ввода и вывода текста. Похож на управляющий элемент TextBox в Visual Basic.

Свойство NAME - строка, определяющая имя элемента. Свойство VALUE – вводимая или выводимая строка. Свойство SIZE - определяет длину управляющего элемента в символах. Свойство MAXLENGTH - максимальное число символов в поле ввода.

Синтаксис описания объекта на форме сдедующий:

<INPUT TYPE="TEXT" [NAME="string"] [VALUE="string"] [SIZE="integer"][MAXLENGTH="integer"] [OnFocus="subroutine"] [OnBlur="subroutine"] [OnSelect="subroutine"] [OnChange="subroutine"]>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<INPUT TYPE="TEXT" NAME="Text1" VALUE="DefaultText"

SIZE="50" MAXLEТGTH="30">

</FORM>

Объект TextArea (область ввода) напоминает управляющий элемент Text, но позволяет вводить по несколько строк. Создается c помощью пары тегов <TEXTAREA></TEXTAREA>.

Свойство NAME - строка, определяющая имя элемента. Свойство VALUE – вводимые строки. Свойство ROWS - определяет высоту управляющего элемента в строках. Свойство COLS - определяет ширину управляющего элемента в символах.

Синтаксис описания объекта на форме следующий:

<TEXTAREA [NAME="string"] [ROWS="integer"]

[COLS="integer"] [OnFocus="subroutine"] [OnBlur="subroutine"]

[OnSelect="subroutine"] [OnChange="subroutine"]>

</TEXTAREA>

subroutine - имя процедуры обработки соответствующего события.

Пример:

<FORM>

<TEXTAREA NAME="txtWord" ROWS="20" COLS="10">

</TEXTAREA>

</FORM>

Задание 4 для самостоятельного выполнения

Введите тексты приведенных примеров в HTML - редактор (одна страница для каждого примера). Посмотрите, как выглядят элементы в окне Internet Explorer. Покажите работающие примеры преподавателю и сохраните их в своей личной папке.

При использовании свойств и методов размещенных на форме элементов управления (объектов) необходимо соблюдать определенные правила.

При загрузке Internet – страницы в компьютер программа – браузер (в нашем случае Internet Explorer) осуществляет представление этой страницы на экране монитора (HTML - код страницы Интерпретируется браузером, который формирует представление на экране), при этом скрипты интерпретикуются с помощью встроенного в IE – интерпреатора скриптовых языков.

При выполнении скриптов, web-странице ставится в соответствии программная модель, иерархической моделью объектов IE , которая показана на рис. 10.

Рис. 10.

В соответствии с этой моделью видно, что объект «Форма» (Form), которую мы определяем в скрипте, находится на предпоследнем сверху вниз уровне. Элементы управления, которые мы рассматриваем, находятся на самом нижнем уровне (Element). Для доступа к этим объектам и использования их свойств и методов необходимо в программе писать полный путь сверху вниз по иерархии к объекту.

Объекты управления (Element) организованны в виде коллекции. Коллекция — это способ группировки набора связанных объектов.. Коллекции широко используются для создания иерархической структуры объектов. Можно привести пример уже известной иерархической структуры объектов в Excel (рис. 11):

Рис. 11

Объект верхнего уровня порождает коллекцию объектов нижнего уровня, объект из этой коллекции порождает, в свою очередь, другую коллекцию объектов и т.д. до самого нижнего уровня. В иерархической структуре объектов в Excel объект Application порождает коллекцию книг (Workbooks), состоящую из отдельных книг (Workbook), каждая книга порождает коллекцию листов (Sheets), состоящую из отдельных листов (Sheet) и т.д. Обратите внимание, что коллекция и объект коллекции в иерархии обозначаются одинаковым именем, но для того, чтобы их различать, имя коллекции записывается во множественном числе (буква «s» на конце), а имя объекта коллекции в единственном.

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

Таким образом, как и массив, элементы коллекции имеют общее имя, но обращение к конкретному объекту коллекции производится или по индексу (как у массивов) или по ключу (имени отдельного элемента коллекции).

Коллекция Elements содержит ссылки (индексы) на любой управляющий элемент формы. Первый объект коллекции объектов формы имеет индекс 0, далее 1, 2,…..

Приведенные ниже примеры иллюстрируют правило использования свойств и методов объектов (в приводимых примерах имя формы - Form1):

Window.Document.Form1.elements(индекс).Свойство – в этом примере для объекта формы используется имя формы - Form1, объект нижнего уровня (элемент управления) выбирается из коллекции элементов (elements) по его индексу

Window.Document.forms(“Form1”).elements(индекс).Свойство - в этом примере для обращения к объекту форма используется имя коллекции форм (forms), в которой выбирается конкретная форма по ключу (имя Form1)

Window.Document.Form1.elements(индекс).Метод

Window.Document.Form1.elements(i*2+j).Value - используется свойство Value

Для упрощения текста программ (не писать каждый раз полный путь к объекту нижнего уровня) можно использовать специальный прием: сохранить ссылку на некоторый объект на соответствующем уровне иерархии, а уже к нему присоединять объекты следующего уровня. В примере показано, как это сделать:

Dim TheForm

Set TheForm = window.Document.forms(“Form1”).

Первый оператор (Dim TheForm) определяет переменную для хранения ссылки на обьект , название переменной TheForm.

Второй оператор сохраняет в эту переменную ссылку на конкретную форму с именем «Form1» из коллекции форм (forms) соответствующего уровня иерархии (объектной переменной формы TheForm через объект window.Document присваивается значение ссылки на объект формы (Form1)). В отличие от простой переменной в операторе присваивания для объектной переменной используется дополнительное ключевое слово Set.

Для дальнейшего обращения в программе к элементам данной формы достаточно написать:

TheForm.elements(“Text1”).Value – используется свойство Value объекта текстовое окно с именем Text1, входящего в коллекцию объектов формы (коллекция "elements») формы «Form1».

Такая запись является более компактной, и она далее будет использоваться в примерах программ.

14.6Пример проекта с использованием встроенных управляющих элементов.

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

Текст программы:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>New Page 1</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<body>

<script LANGUAGE="VBScript">

<!--

Option Explicit

Sub btnOne_onClick

Dim TheForm

Set TheForm = window.Document.forms("Form1")

TheForm.elements("Text3").Value = CSng(TheForm.elements("Text1").Value)+ CSng(TheForm.elements("Text2").Value)

End Sub

-->

</script>

<form NAME="Form1">

<p><input TYPE="TEXT" NAME="Text1" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="TEXT" NAME="Text2" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="BUTTON" NAME="btnOne" onclick=” btnOne_onClick ” VALUE="Вычислить сумму"></p>

<p><input TYPE="TEXT" NAME="Text3" VALUE SIZE="25" MAXLENGTH="25"></p>

</form>

</body>

</html>

При разработке проекта заданные встроенные управляющие элементы показаны на рисунке 12.

Работа проекта показана на рисунке 13.

Рис. 12.

Рис. 13.

Задание 5 для самостоятельного выполнения.

Используя созданные в задании 3 страницы для вычисления арифметического и логического выражений с использованием процедуры и функции, создайте одну Internet - страницу для вычисления арифметического и логического выражений.

Для ввода исходных данных и вывода результата вычислений используйте текстовые окна. Для запуска вычислений арифметического или логического выражений используйте две командные кнопки с соответствующей поясняющей информацией. Текстовые окна и командные кнопки для вычислений арифметического и логического выражений расположить на форме в две колонки.

Покажите работающую страницу преподавателю и сохраните в своей папке.

14.7Использование фреймов на Internet – странице

В окне Internet - браузера можно задавать зоны (фреймы) для расположения выводимых элементов, т.е. разделить окно браузера на различные области или панели.

Это делается с помощью тегов

<FRAME> - определяет один фрейм (не парный тег)

и

<FRAMESET> </FRAMESET> - определяет набор фреймов.

Содержимое каждого фрейма определяется соответствующим HTML – файлом, который задается для данного фрейма. Свойство фрейма SRC определяет HTML – файл, выводимый во фрейм. Свойство фрейма NAME="Строка" определяет имя фрейма. Свойство SCROLING имеет значения “Yes” или "NO" и определяет соответственно наличие или отсутствие во фрейме линейки прокрутки. Свойство NORESIZE определяет запрет изменения размера фрейма.

Структура фреймов в наборе фреймов (теги <FRAMESET> </FRAMESET>) определяется параметрами rows (горизонтальное расположение фреймов во множестве) и cols (вертикальное расположение фреймов во множестве), которые задаются в абсолютных значениях (пиксели) или в процентах.

Создадим отдельные HTML –файлы для вычисления суммы и разности вводимых чисел и HTML –файл заголовка.

файл заголовка (сохранен под именем zag.htm):

<head>

<title>Пример использования фреймов</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<body>

<p align="center">Пример использования фреймов </p>

</body>

</html>

HTML –файлы для вычисления суммы и разности вводимых чисел (сохранены под именами incl_obj2.htm и incl_obj3.htm).

Файл incl_obj2.htm:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>New Page 1</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<body>

<script LANGUAGE="VBScript">

<!--

Option Explicit

Sub btnOne_onClick

Dim TheForm

Set TheForm = window.Document.forms("Form1")

TheForm.elements("Text3").Value = CSng(TheForm.elements("Text1").Value)+ CSng(TheForm.elements("Text2").Value)

End Sub

-->

</script>

<form NAME="Form1">

<p><input TYPE="TEXT" NAME="Text1" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="TEXT" NAME="Text2" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="BUTTON" NAME="btnOne" VALUE="Вычислить сумму" onclick=” btnOne_onClick ”></p>

<p><input TYPE="TEXT" NAME="Text3" VALUE SIZE="25" MAXLENGTH="25"></p>

</form>

</body>

</html>

Файл incl_obj3.htm:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>New Page 1</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<body>

<script LANGUAGE="VBScript">

<!--

Option Explicit

Sub btnOne_onClick

Dim TheForm

Set TheForm = window.Document.forms("Form1")

TheForm.elements("Text3").Value = CSng(TheForm.elements("Text1").Value)+ CSng(TheForm.elements("Text2").Value)

End Sub

-->

</script>

<form NAME="Form1">

<p><input TYPE="TEXT" NAME="Text4" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="TEXT" NAME="Text5" VALUE SIZE="25" MAXLENGTH="25"></p>

<p><input TYPE="BUTTON" NAME="btnTwo" onclick=” btnOne_onClick ” VALUE="Вычислить разность"></p>

<p><input TYPE="TEXT" NAME="Text6" VALUE SIZE="25" MAXLENGTH="25"></p>

</form>

</body>

</html>

Файл для создания трех фреймов (в первый помещается заголовок, во второй вычисление суммы, в третий вычисление разности) содержит следующий текст:

<html>

<head>

<title>New Page 6</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<frameset rows="100,*">

<frame NAME="Заголовок" SCROLING="NO" SRC="zag.htm">

<frameset , rows="298,*">

<frameset , cols="60%,*">

<frame NAME="СУММА" SCROLING="YES" SRC="incl_obj2.htm">

<frame NAME="РАЗНОСТЬ" NORESIZE SCROLING="YES" SRC="incl_obj3.htm">

</frameset>

<frameset ,>

</frameset>

</frameset>

<noframes>

<body>

</body>

</noframes>

</frameset>

</html>

При запуске этого файла окно браузера имеет вид, показанный на рисунке 14.

Рис. 14.

Рассмотрим описание структуры приведенных фреймов и их параметры.

Строка <frameset rows="100,*"> определяет два горизонтальных фрейма, первый из которых имеет фиксированный размер в 100 пикселей, размер следующего фрейма не определен (параметр *).

Первым фреймом этого множества является фрейм заголовка, который и имеет заданный размер (строка <frame NAME="Заголовок" SCROLING="NO" SRC="zag.htm">).

Далее задается новое множество фреймов: два горизонтальных фрейма, первый из которых имеет фиксированный размер 298 пикселей, размер следующего фрейма не определен (строка <frameset , rows="298,*">).

В рамках первого фрейма заданного множества задается новое множество, расположенное вертикально. Первый фрейм занимает 60% по ширине, остальную часть занимает второй фрейм (строка <frameset , cols="60%,*">). Содержимое этих двух фреймов и их параметры задаются строками:

<frame NAME="СУММА" SCROLING="YES" SRC="incl_obj2.htm">

<frame NAME="РАЗНОСТЬ" NORESIZE SCROLING="YES" SRC="incl_obj3.htm">

Следующая строка </frameset> закрывает это множество фреймов.

Пара <frameset ,> </frameset> задает далее пустое множество фреймов.

Закрывающий тег </frameset> соответствует заданному ранее множеству вертикальных фреймов.

Теги <noframes> и </noframes> добавляются редактором HTML – страниц автоматически. Эти теги определяют обработку страницы браузерами, которые не поддерживают фреймы.

Закрывающий тег </frameset> соответствует заданному первому множеству горизонтальных фреймов.

Ниже приводится пример описания структуры фреймов, а вид страницы показан на рисунке 15.

<frameset rows="100,200,*">

<frameset , cols="40%,*">

<frame NAME="" SCROLING="YES">

<frame NAME="" SCROLING="YES">

</frameset>

<frameset , cols="30%,30%,*">

<frame NAME="" SCROLING="YES">

<frameset rows="30%,70%">

<frame NAME="" SCROLING="YES">

<frame NAME="" SCROLING="YES">

</frameset>

<frame NAME="" NORESIZE SCROLING="YES">

</frameset>

<frameset ,>

</frameset>

<noframes>

<body>

</body>

</noframes>

</frameset>

<frameset>

</frameset>

Рис. 15.

Задание 6 для самостоятельного выполнения

На основе выполненной в задании 5 страницы создайте страницу, содержащую фреймы для вычисления арифметического и логического выражений, фрейм заголовка и фрейм с личной фотографией, которая использовалась в статической Internet – странице. Структура фреймов определятся вариантом задания.

Покажите работающую страницу преподавателю и сохраните в своей папке.

Варианты задания для самостоятельного выполнения:

1.

Заголовок

Фотография

Логическое выражение

Арифметическое выражение

2.

Заголовок

Фотография

Арифметическое выражение

Логическое выражение

3.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

4.

Заголовок

Фотография

Логическое выражение

Арифметическое выражение

5.

Заголовок

Логическое выражение

Арифметическое выражение

Фотография

6.

Заголовок

Логическое выражение

Арифметическое выражение

Фотография

7.

Заголовок

Логическое выражение

Фотография

Арифметическое выражение

8.

Заголовок

Фотография

Арифметическое выражение

Логическое выражение

9.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

10.

Заголовок

Логическое выражение

Фотография

Арифметическое выражение

11.

Заголовок

Логическое выражение

Арифметическое выражение

Фотография

12.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

13.

Заголовок

Фотография

Арифметическое выражение

Логическое выражение

14.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

15.

Заголовок

Логическое выражение

Фотография

Арифметическое выражение

16.

Заголовок

Логическое выражение

Арифметическое выражение

Фотография

17.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

18.

Заголовок

Фотография

Логическое выражение

Арифметическое выражение

19.

Заголовок

Логическое выражение

Фотография

Арифметическое выражение

20.

Заголовок

Арифметическое выражение

Фотография

Логическое выражение

14.8Управляющая алгоритмическая конструкция Select Case

Управляющая алгоритмическая конструкция Select Case позволяет задать альтернативный набор выполняемых алгоритмов в зависимости от значения управляющей переменной и имеет следующий вид:

Select Case управляющая переменная

Case список значений 1

[операторы 1]

[Case список значений 2

[операторы 2]]

.

.

[Case Else[операторы n]]

End Select

Логика работы управляющей конструкции следующая: если управляющая переменная принимает значения из списка 1, то выполняются операторы 1, если управляющая переменная принимает значения из списка 2, то выполняются операторы 2 и т.д. Если управляющая переменная не принимает значения не из одного из списков, то выполняются операторы n.

Элемент RADIO

<INPUT ACCESSKEY = key

ALIGN = LEFT | CENTER | RIGHT

ALT = text

CHECKED

CLASS = classname

DISABLED

ID = value

LANG = language

LANGUAGE = JAVASCRIPT | JSCRIPT | VBSCRIPT | VBS

LOWSRC = url

MAXLENGTH = n

NAME = name

READONLY

SIZE = n

STYLE = css1-properties

TABINDEX =n

TITLE =text

TYPE = RADIO

VALUE = value

event = script

>

Простой пример иллюстрирует логику работы управляющей конструкции:

Vozrast = InputBox("Введите ваш возраст в виде цифры от 1 до 100")

Select Case Vozrast

Case 1, 21, 31, 41, 51, 61, 71, 81, 91

MsgBox "Вам" & Str(Vozrast) & " год"

Case 2 To 4, 22 To 24, 32 To 34, 42 To 44, 52 To 54, 62 To 64, 72 To 74, 82 To 84, 92 To 94

MsgBox "Вам " & Str(Vozrast) & " года"

Case 5 To 20, 25 To 30, 35 To 40, 45 To 50, 55 To 60, 65 To 70, 75 To 80, 85 To 90, 95 To 100

MsgBox "Вам " & Str(Vozrast) & " лет"

Case Else

MsgBox "Вы ввели неправильное число"

End Select

Пример проекта:

Исходная форма проекта показана на рисунке 16.

Рис. 16.

По выбранному в списке названию страны в текстовое окно выводится название столицы этой страны. В какое из окон выводится название столицы, управляется флажком.

Описание элементов на форме.

<form name="Form1">

<p><input type="text" size="25" maxlength="25" name="Text1"></p>

<p>

<select NAME="CaseSelect" size="1">

<option VALUE="1">Франция </option>

<option VALUE="2">Англия</option>

<option VALUE="3">Германия </option>

</select>     <input type="button" value="Выбор" name="btnOne">

</p>

<p><input type="checkbox" checked name="chkOne" value="ON"> Верхнее окно </p>

<p><input type="text" size="25" maxlength="25" name="Text2"></p>

</form>

Процедура обработки события «Щелчок мышью по кнопке»:

Sub btnOne_onClick

Dim TheForm

Set TheForm = Document.Form1

Select Case TheForm.CaseSelect.Selectedindex

‘TheForm.CaseSelect.Selectedindex - выбранный элемент списка

Case 0

If TheForm.chkOne.checked Then

TheForm.Text1.Value = "Париж"

TheForm.Text2.Value = " "

else

TheForm.Text2.Value = "Париж"

TheForm.Text1.Value = ""

End If

Case 1

……………………………………

…………………………………………

………………………………………….

Case 2

………………………………………

…………………………………………….

…………………………………………….

End Select

End Sub

Свойство Selectedindex списка содержит значение индекса выбранного элемента.

Задание 7 для самостоятельного выполнения

  1. Создать два списка соответствующих друг другу элементов (например, «Страна» -> «Столица» и «Столица» -> «Страна») соответственно варианту задания.

  2. Создать следующую форму проекта (рис. 17):

Рис. 17.

  1. Написать процедуру обработки события «Щелчок мышью по элементу списка» (вместо использования кнопки «Выбор» в исходной форме) для вывода в текстовое окно соответствующего для выбираемого в списке элемента.

Элементы в правой части формы должны выполняют аналогичные действия, но используют обратное соответствие элементов (в примере «Столица» -> «Страна»)

Варианты задания для самостоятельного выполнения:

Вариант

Задания

1

По введенному названию страны определить и вывести ее континент, список стран должен быть следующим: Германия. Куба. Бразилия. Китай. Индия, Австралия, Канада. Алжир.

2

Введенное значение, означающее длину в введенной единице измерения, заменить на величину этой же длины в метрах. Единицы измерения: дециметр, километр, метр, миллиметр, сантиметр.

3

Вывести значение введенного целого числа (от 1 до 10) римскими цифрами

4

Вывести название сезона года, на который приходится введенный месяц

5

По введенному названию страны вывести название столицы этой страны. Список стран: Австрия, Болгария, Греция, Италия, Норвегия, Франция, Англия.

Список столиц: Вена, София, Афины, Рим, Осло, Париж, Лондон.

6

По введенному русскому названию языка программирования вывести английское название того же языка. Русские названия: Ада. Бейсик, Модула2, Лисп. Паскаль, Пл/1, Фортран. Английские названия: Ada, Basic, Modula2, Lisp, Pascal, PL/I, Fortran.

7

По введенной цифре от 0 до 9 вывести название этой цифры.

8

По введенному русскому слову вывести соответствующее английское слово. Русские слова: Лыжи, Ботинки, Начинать, Читать, Программа. Английские слова: Ski, Boots, Begin, Read, Program.

9

Вывести название цвета брюк, гармонирующий с введенным цветом пиджака. Цвета: серый, черный, белый, коричневый, синий, красный, зеленый, кремовый.

10

По введенному названию товара вывести название фирмы -производителя. Названия товара: Лыжи, Ботинки, Очки, Палки, Крепления, Комбинизоны. Английские названия фирмы - производителя: Rossingol, Salomon, Uvex, Kerma, Marker, Dubin.

11

Вывести значение направления движения по введенным приказу (направления движения имеют значения; Север, Юг, Запад, Восток; приказ - вперед, вправо, назад, влево).

12

По введенной цифре от 10 до 15 вывести название этой цифры.

13

Вывести количество дней введенного названия месяца (год считать невысокостный).

14

По вводимым латинским буквам из заданного набора (А, В, С, D, Е) вывести соответствующие по расположению в алфавите русские буквы.

15

По вводимым русским буквам из заданного набора (А, Б, В, Г, Д) вывести соответствующие по расположению в алфавите латинские буквы.

16

По введенной цифре от 10 до 19 вывести название этой цифры.

17

Вывести значение введенного целого числа (от 1 до 10) римскими цифрами

18

Вывести значение направления движения по введенным приказу (направления движения имеют значения; Север, Юг, Запад, Восток; приказ - вперед, вправо, назад, влево).

19

По введенному названию страны определить и вывести ее континент, список стран должен быть следующим: Германия. Куба. Бразилия. Китай. Индия, Австралия, Канада. Алжир.

20

Введенное значение, означающее длину в введенной единице измерения, заменить на величину этой же длины в метрах. Единицы измерения: дециметр, километр, метр, миллиметр, сантиметр.

14.9Двумерные массивы и алгоритмы их обработки.

В дисциплине «Информатика» при изучении Visual Basic были рассмотрены одномерные массивы (соответствует последовательности или ряду данных), в которых каждый элемент определяется одним индексом. Современные языки программирования позволяют работать также с многомерными массивами (таблицы – 2х мерная, куб 3-х мерная и т д.), в которых элементы определяются несколькими индексами. Мы будем использовать двумерные массивы – каждый элемент определяется двумя индексами (соответствуют матрице – один индекс определяет номер строки, второй – столбца).

В Visual Basic Script все массивы должны быть определены оператором Dim. Двумерный массив с именем matrix, состоящий из трех элементов по одному измерению и двух элементов по другому измерению (матрица из трех строк и двух столбцов) определяется оператором:

Dim matrix(2,1)

В Visual Basic для определения массивов мы использовали, например, оператор Dim A (1 To 5) As Integer для определения целочисленного массива из пяти элементов (индексы элементов могут принимать значения от 1 до 5). В данном случае мы использовали явный способ задания диапазона значений индексов элементов массива от 1 до 5.

При неявном определении массива индексом первого элемента является 0. Оператор Dim A (5) определяет массив из 6 элементов (индексы 0, 1,2, 3, 4, 5).

В Visual Basic Script не допускается использование явного определения массивов. Таким образом, оператор Dim matrix(2,1) определяет двумерный массив, состоящий из трех элементов по одному измерению и двух элементов по другому измерению. Соответствующая такому массиву матрица из трех строк и двух столбцов показана на рисунке 18, в элементах матрицы указаны их индексы (первый индекс – номер строки, второй – номер столбца).

0,0

0,1

1,0

1,1

2,0

2,1

Рис. 18.

Оператор определения массива выделят ячейки (область) оперативной памяти для его размещения. Такие области всегда одномерны независимо от размерности массива. В разных языках программирования многомерные массивы упорядочиваются по-разному.

В Visual Basic и Visual Basic Script многомерные массивы упорядочиваются таким образом, что быстрее всего меняется левый индекс (для приведенной на рисунке матрицы это будет означать, что она упорядочивается по столбцам – сначала первый столбец, затем второй). Приведенный в примере массив matrix(2,1) в памяти будет храниться в следующей последовательности (рис. 19):

0,0

1,0

2,0

0,1

1,1

2,1

Рис. 19.

Для работы с многомерными массивами обычно применяются алгоритмы содержащие несколько циклов (один цикл по каждому измерению). Для суммирования значений всех элементов двумерного массива (суммируются все элементы матрицы) можно написать следующий фрагмент программы:

S

Цикл по i – внешний цикл, цикл по j – внутренний (вложенный).

Каждому оператору For соответствует свой оператор Next. Цикл по j вложен в цикл по i.

um = 0

For i = 0 to 2

For j = 0 to 1

Sum = Sum + matrix (i,j)

Next j

Next i

Оператор суммирования Sum = Sum + matrix (i,j) выполняется 6 раз. Внешний и вложенный циклы работают в следующей последовательности:

  • для первого значения параметра внешнего цикла i = 0 последовательно меняются значения параметра вложенного цикла (0,1), т.е. полностью выполняется внутренний цикл;

  • параметр внешнего цикла i принимает следующее значение i = 1 и опять последовательно меняются значения параметра вложенного цикла (0,1), опять полностью выполняется внутренний цикл;

  • и т.д.

Пример проекта.

Рис. 20.

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

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

<FORM name=Form1>

<P>

<INPUT type=Text maxLength=8 size=9>  <INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT type=Text maxLength=8 size=9>  <INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT type=Text maxLength=8 size=9>  <INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT name=option22 type=radio>По строкам.  <INPUT name=option22 type=radio>По столбцам

</P>

<P>

<INPUT name=btnOne type=button value="Вычислить ">

</P>

<P>Cумма по строкам</P>

<P> <INPUT type=Text maxLength=8 size=9>  

<INPUT type=Text maxLength=8 size=9>  

<INPUT type=Text maxLength=8 size=9></P>

<P>Cумма по столбцам</P>

<P> <INPUT type=Text maxLength=8 size=9>  

<INPUT type=Text maxLength=8 size=9>

</P>

</FORM>

Как было сказано выше, объект Form (форма) содержит объекты управления (Element), организованные в виде коллекции. Как и массив, элементы коллекции имеют общее имя, а обращение к конкретному объекту коллекции производится по индексу. Первый объект коллекции объектов формы имеет индекс 0, далее 1, 2,…..

Об использовании в скриптах свойств или методов элементов коллекции объектов управления также было сказано выше.

Объекты коллекции элементов управления упорядочиваются соответственно последовательности их описания в скрипте.

В приведенном фрагменте скрипта определения элементов на браузере заданы 14 элементов. Индексы элементов принадлежат диапазону от 0 до 13.

Элементы в скрипте определяются построчно (теги <p> и </p>), последовательно в каждой строке.

Первая строка содержит два текстовых окна (индексы в коллекции 0, 1).

Вторая строка содержит два текстовых окна (индексы в коллекции 2, 3).

Третья строка содержит два текстовых окна (индексы в коллекции 4, 5).

Четвертая строка содержит два переключателя (индексы в коллекции 6, 7).

Пятая строка содержит командную кнопку (индекс в коллекции 8).

Седьмая строка содержит три текстовых окна (индексы в коллекции 9, 10, 11).

Девятая строка содержит два текстовых окна (индексы в коллекции 12, 13).

В операторе Document.Form1.elements(i).Value в зависимости от значения индекса i будет использоваться свойство Value того или иного объекта формы.

Ниже приводится текст программы на VBScript для управляемого пользователем расчета сумм строк или столбцов матрицы (результатом каждого расчета является одномерный массив, элементы которого содержат суммы соответствующих строк или столбцов матрицы).

<SCRIPT language=VBScript>

<!--

Option Explicit

dim matrix(2,1)

dim vector_stroka (2)

dim vector_stolbec (1)

dim i,j

Sub btnOne_onClick

For i=0 to 2

For j =0 to 1

matrix (i,j) = Document.Form1.elements(i*2 +j).Value

' MsgBox matrix (i,j)

Next

Next

if Document.Form1.elements(6).Checked Then

'Если выбран переключатель "По строкам"

‘вычисление значений по строкам

For i=0 To 2

vector_stroka (i) =0

For j=0 To 1

vector_stroka (i) =vector_stroka (i)+matrix (i,j)

Next

'MsgBox vector_stroka (i)

Next

вывод результатов

For i=0 To 2

Document.Form1.elements(9 + i).Value=vector_stroka (i)

Next

Else

' Если выбран переключатель "По столбцам"

For j=0 To 1

vector_stolbec (j) =0

For i=0 To 2

vector_stolbec(j) =vector_stolbec (j)+ matrix (i,j)

Next

'MsgBox vector_stolbec (j)

Next

For j=0 To 1

Document.Form1.elements(12 +j).Value=vector_stolbec (j)

Next

End if

End Sub

-->

</SCRIPT>

Описание программы:

Операторы dim matrix (2,1), dim vector_stroka (2), dim vector_stolbec (1), dim i,j определяют:

  • двумерный массив matrix (2,1) (исходная матрица из трех строк и двух столбцов, индексы строк - 0,1,2, индексы столбцов - 0,1)

  • одномерный массив vector_stroka (2) (вектор сумм строк из трех элементов, индексы элементов 0,1,2 соответствуют индексам строк матрицы)

  • одномерный массив vector_stolbec (1) (вектор сумм столбцов из двух элементов, индексы элементов 0,1 соответствуют индексам столбцов матрицы)

  • переменные i,j, используемые в операторах цикла.

Формирование векторов производится в процедуре обработки события щелчка мыши по командной кнопке (процедура btnOne_onClick).

Операторы

For i = 0 to 2

For j = 0 to 1

matrix (i,j) = Document.Form1.elements(i*2 +j).Value

Next

Next

производят считывание значений заданных в текстовых окнах в соответствующие элементы двумерного массива ( матрицы). Текстовые окна (элементы коллекции) имеет линейное упорядочение с индексами от 0 до 5 (см. выше). Массив matrix является двумерным с индексами строк - 0,1,2 и индексами столбцов - 0,1 . Два цикла по I и j, параметры которых используются для вычисления индекса текстового окна в коллекции (i*2 +j), обеспечивают соответствие элементов двумерного массива и одномерной коллекции. Рисунки 21 и 22 иллюстрируют соответствие элементов двумерного массива и элементов одномерной коллекции.

0,0

0, 1

1,0

1,1

2,0

2,1

Рис. 21.

0

1

2

3

4

5

0,0

0,1

1,0

1,1

2,0

2,1

0*2+0=0

0*2+1=1

1*2+0=2

1*2+1=3

2*2+0=4

2*2+1=5

Рис. 22.

Условие Document.Form1.elements(6).Checked имеет значение True (истина), если выбран переключатель "По строкам". В противном случае условие имеет значение False. Условный оператор IF – THEN-ELSE-ENDIF (развилка с условием) с этим условием осуществляет переход на формирование того или иного вектора.

Операторы

For i=0 To 2

vector_stroka (i) =0

For j=0 To 1

vector_stroka (i) =vector_stroka (i)+matrix (i,j)

Next

Next

обеспечивают формирование вектора из сумм строк матрицы. Внешний цикл по i(индекс строки матрицы), внутренний (вложенный) цикл по j(индекс столбца матрицы). Индекс элемента формируемого вектора соответствует индексу строки матрицы. Для каждого нового элемента вектора во внешнем цикле начальное значение обнуляется (vector_stroka (i) = 0 – начальному значению суммы присваивается 0).

Операторы

For i=0 To 2

Document.Form1.elements(9 +i).Value=vector_stroka (i)

Next

обеспечивают заполнение текстовых окон под заголовком «Сумма по строкам» вычисленными значениями (индексы этих текстовых окон в коллекции 9, 10, 11).

Операторы

For j=0 To 1

vector_stolbec (j) =0

For i=0 To 2

vector_stolbec(j) =vector_stolbec (j)+matrix (i,j)

Next

'MsgBox vector_stolbec (j)

Next

обеспечивают формирование вектора из сумм столбцов матрицы. Внешний цикл по j (индекс столбца матрицы), внутренний (вложенный) цикл по i (индекс строки матрицы). Индекс элемента формируемого вектора соответствует индексу столбца матрицы. Для каждого нового элемента вектора во внешнем цикле начальное значение обнуляется (vector_stolbec (j) = 0 – начальному значению суммы присваивается 0).

Операторы

For j=0 To 1

Document.Form1.elements(12 +j).Value=vector_stolbec (j)

Next

обеспечивают заполнение текстовых окон под заголовком «Сумма по столбцам» вычисленными значениями (индексы этих текстовых окон в коллекции 12, 13).

Закомментированные операторы (например, 'MsgBox vector_stolbec (j))позволяют контролировать работу программы во время ее отладки).

Работа проекта показана на рисунке 23.

Рис. 23.

Задание 8 для самостоятельного выполнения.

Разработать и отладить проект на VBScript, обеспечивающий:

  • задание в браузере значений элементов исходной матрицы в соответственно расположенных текстовых окнах

  • выбор с помощью переключателей альтернативного способа формирования вектора из элементов матрицы

  • формирование векторов из элементов матрицы по альтернативным способам (запускается событием «щелчок мыши» по командной кнопке)

  • вывод на браузер альтернативно сформированных векторов в соответственно расположенные текстовые окна

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

Варианты задания

Вариант 1.

Расположение (сверху вниз по строкам):

  • Вектор 1

  • Вектор 2

  • Матрица

  • Командная кнопка

  • Переключатели

Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество нулевых элементов строк

  • Вектор 2 - количество нулевых элементов столбцов

Вариант 2.

Расположение (сверху вниз по строкам):

  • Переключатели

  • Вектор 1

  • Матрица

  • Вектор 2

  • Командная кнопка

Размерность матрицы: 4*3

Формируемые вектора:

  • Вектор 1 – количество нулевых элементов столбцов

  • Вектор 2 - количество нулевых элементов строк

Вариант 3.

Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Переключатели

  • Матрица

  • Вектор 1

  • Вектор 2

Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество нулевых элементов строк

  • Вектор 2 - количество нулевых элементов столбцов

Вариант 4.

Расположение (сверху вниз по строкам):

  • Вектор 1

  • Вектор 2

  • Матрица

  • Командная кнопка

  • Переключатели

Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество положительных элементов строк

  • Вектор 2 - количество отрицательных элементов столбцов

Вариант 5.

Расположение (сверху вниз по строкам):

  • Переключатели

  • Вектор 1

  • Матрица

Вектор 2

  • Командная кнопка

  • Размерность матрицы: 4*3

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - количество положительных элементов строк

Вариант 6.

Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Переключатели

  • Матрица

  • Вектор 1

  • Вектор 2

  • Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – сумма положительных элементов строк

  • Вектор 2 - количество отрицательных элементов столбцов

Вариант 7.

  • Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Вектор 1

  • Матрица Вектор 2

  • Переключатели

  • Размерность матрицы: 3*2

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - сумма положительных элементов строк

Вариант 8.

  • Расположение (сверху вниз по строкам):

  • Переключатели

  • Вектор 1

  • Матрица

  • Вектор 2

  • Командная кнопка

  • Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - количество положительных элементов строк

Вариант 9.

  • Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Переключатели

  • Матрица

  • Вектор 1

  • Вектор 2

Размерность матрицы: 5*6

  • Формируемые вектора:

  • Вектор 1 – сумма положительных элементов строк

  • Вектор 2 - количество отрицательных элементов столбцов

Вариант 10.

  • Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Вектор 1

  • Матрица Вектор 2

  • Переключатели

  • Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - сумма положительных элементов строк

Вариант 11.

  • Расположение (сверху вниз по строкам):

  • Вектор 1

  • Матрица

  • Вектор 2

  • Переключатели

  • Командная кнопка

  • Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – количество нулевых элементов столбцов

  • Вектор 2 - сумма положительных элементов строк

Вариант 12.

  • Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Вектор 1

  • Матрица Вектор 2

  • Переключатели

  • Размерность матрицы: 4*5

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - сумма положительных элементов строк

Вариант 13.

  • Расположение (сверху вниз по строкам):

  • Вектор 1

  • Матрица

  • Вектор 2

  • Переключатели

  • Командная кнопка

  • Размерность матрицы: 3*4

Формируемые вектора:

  • Вектор 1 – сумма положительных элементов строк

  • Вектор 2 - сумма отрицательных элементов столбцов

Вариант 14.

  • Расположение (сверху вниз по строкам):

  • Матрица

  • Вектор 1

  • Вектор 2

  • Командная кнопка

  • Переключатели

  • Размерность матрицы: 5*3

Формируемые вектора:

  • Вектор 1 – сумма положительных элементов строк

  • Вектор 2 - сумма отрицательных элементов столбцов

Вариант 15.

  • Расположение (сверху вниз по строкам):

  • Командная кнопка

  • Переключатели

  • Вектор 1

  • Матрица Вектор 2

  • Размерность матрицы: 5*3

Формируемые вектора:

  • Вектор 1 – количество отрицательных элементов столбцов

  • Вектор 2 - сумма положительных элементов строк

Вариант 16.

  • Расположение (сверху вниз по строкам):

  • Вектор 1

  • Матрица

  • Вектор 2

  • Переключатели

  • Командная кнопка

  • Размерность матрицы: 2*4

Формируемые вектора:

  • Вектор 1 – сумма положительных элементов строк

  • Вектор 2 - сумма отрицательных элементов столбцов

Примечание к вариантам 7, 10, 12, 15:

В этих вариантах формируемый вектор из сумм соответствующих строк матрицы находится справа от матрицы (рисунок 24).

Рис. 24

Индексы элементов коллекции в столбце: 2, 5, 8

В этом случае нужно внести следующие модификации в алгоритмы.

Ввод исходных значений элементов матрицы из текстовых окон:

For i=0 to 2

For j =0 to 2

If j < 2 Then

matrix (i,j) = Document.Form1.elements(i*3 +j).Value

' MsgBox matrix (i,j)

endif

Next

Next

Вывод значений сумм строк в соответствующие элементам формируемого вектора текстовые окна:

For i=0 To 2

Document.Form1.elements(3*(i+1)-1).Value=vector_stroka (i)

Next

14.10Использование на Internet - страницах компонентов ActiveX.

Наряду с использованием рассмотренных встроенных элементов управления на Internet - страницах имеется возможность использовать элементы ActiveX, которые являются настраиваемыми управляющими элементами многократного использования.

Эти элементы разрабатываются независимо, регистрируются в службах Internet и используются как при разработке Web – страниц, так и при ее просмотре в Internet. Элементы при просмотре загружаются на компьютер клиента, регистрируются в системе и выполняются. Использование только снабженных сертификатом элементов ActiveX обеспечивает их безопасное использование на компьютере клиента. В настоящее время имеются доступные библиотеки элементов ActiveX, средства для их разработки и использования.

в Internet, многие современные web-страницы содержат компоненты и приложения, загружаемые через Internet и выполняемые на компьютере пользователя. появляется вопрос: доверять ли им ?. Управляющие элементы ActiveX — это выполняемые компоненты, и в принципе любой из них вполне способен выполнить какие – либо неконтролируемые пользователем компьютера действия и могут уничтожить важную информацию хранящуюся на компьютере.

Поэтому при загрузке и регистрации на компьютере исполняемого кода Internet Explorer выводит предупреждение системы безопасности. Решение вопроса о безопасности установки и использования того или иного ActiveX компонента остается на страх и риск пользователя. В зависимости от настроек вашего браузера имеется даже возможность отказаться от загрузки компонента, если он не соответствует требованиям безопасности.

Для решения проблемы безопасности при использовании элементов ActiveX фирма Microsoft разработала методику, называемую подписью кода (code signing). Эта техника позволяет производителю программного обеспечения снабдить свое изделие электронной «подписью» (цифровым сертификатом). Браузер при первой загрузке компонента ActiveX сравнивает цифровую подпись компонента с образцом подписи производителя и проверяет аутентичность(достоверность).

Автор программы (компонента ActiveX) после разработки компонента должен обратиться к третьей фирме, называемой сертификатным уполномоченным (certificate authority), и получить цифровой сертификат. По окончании тестирования программного продукта этот цифровой сертификат используется для подписи, которая внедряется в программный код компонента. Конкретно в ключевой блок — структуру, содержащую информацию о коде, цифровой сертификат и удостоверение производителя программы.

Эта методика позволяет Браузеру проверять загружаемый код при условии, что тот подписан: из ключевого блока извлекается информация, Браузер проверяет сертификат и определяет, не была ли программа изменена и соответствует ли подпись компонента подписи компании производителя. При подтверждении безопасности код загружается. В противном случае появляется сообщение о потенциальной угрозе, и пользователь должен сам решать, стоит ли ему загружать «подозрительный» код.

Просматриваемая HTML – страница может содержать ссылки на управляющие элементы ActiveX. Получая HTML – страницу, содержащую ссылки на отсутствующие у клиента элементы ActiveX (не зарегистрированные на его компьютере), Internet Explorer загружает их через Internet, затем регистрирует полученные компоненты и показывает страницу. При этом элементы ActiveX после первой загрузки становятся доступными клиенту и в дальнейшем не требуют повторения этой операции.

Для размещения элементов ActiveX на Web - странице используется пара тегов HTML:

<OBJECT>

</OBJECT>

Данные теги определяют блок в HTML коде страницы для описания параметров размещаемого в документе ActiveX элемента.

Тег <Object> используют следующие атрибуты :

ALIGN (значения: LEFT, CENTER, RIGHT и т.д.) – определяет размещение объекта на странице;

BORDER – определяет ширину рамки вокруг видимой части объекта.

CLASSID – задает URL объекта или определяет идентификатор класса объекта. Служит для задания идентификатора класса, т.е. уникальной буквенно – цифровой записи, назначаемой каждому ActiveX и хранящейся в системном реестре клиентского компьютера.

CODEBASE - задает URL объекта

CODETYPE - задает Internet Media Type (тип данных в Интернет) кода, заданного атрибутом CLASSID. Поскольку эта информация доступна до передачи кода, то можно отказаться от получения кода, не поддерживаемого клиентской машиной типа.

DATA - задает URL, ссылающийся на данные объекта (например, графический файл).

DECLARE - сообщает, что объект не создается, а только объявляется.

HEIGHT - задает высоту рамки, ограничивающей видимую часть объекта. Этот атрибут заменяет свойство Height.

HSPACE - задает промежуток слева и справа от видимой области объекта.

ID - задает имя, под которым объект будет использоваться в коде. Атрибут ID похож на свойство Name управляющего элемента ОСХ.

NAME - дает способ определить, будет ли объект, помещенный в форму, участвовать в передаче данных на сервер. Если этот атрибут задан, то его свойство VALUE будет передаваться серверу во время каждой операции Submit.

SHAPES - указывает, что элемент объекта содержит связи заданного вида в видимой части объекта.

STANDBY - задает текстовую строку, выводимую в Браузере во время загрузки объекта или его данных.

TYPE - задает Internet Media Type для данных, определенных атрибутом DATA. Поскольку эта информация доступна до передачи, то можно отказаться от данных, принадлежащих к типу, не поддерживаемому на клиентском компьютере.

VSPACE - задает промежуток сверху и снизу от видимой области объекта.

WIDTH - задает высоту рамки, ограничивающей видимую часть объекта. Этот атрибут заменяет свойство Width.

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

Из всех перечисленных параметров необходимыми являются только два: CLASSID и ID. Они сообщают Браузеру, какой управляющий элемент ActiveX нужно загрузить в память компьютера и как он будет называться в программе.

Как и другие объекты, элементы ActiveX обладают свойствами, событиями и методами. можно получить доступ к свойствам, событиям и методам объекта, помещенного на HTML-страницу, используя синтаксис, принятый в Visual Basic Script.

Для задания значений свойств элементов при загрузке страницы используется тег <PARAM>.

Параметр NAME задает имя свойства, VALUE – значение свойства. REF обозначает, что значение атрибута VALUE — URL. OBJECT обозначает, что значение атрибута VALUE —URL объекта в том же документе. DATA обозначает, что значение атрибута VALUE передается непосредственно объекту в виде строки.

Для примера рассмотрим два элемента ActiveX: Метку и Таймер.

Метка (Label) аналогична используемой метке в Visual Basic, но может отображать текст внутри себя под заданным углом.

Таймер полностью аналогичен такому объекту в Visual Basic и предназначен для отсчета интервалов времени в миллисекундах (по истечении каждого интервала генерируется событие).

Основные свойства и методы:

Метка.

Свойства:

  • Caption: Текст на метке

  • Angle: Угол поворота по часовой стрелке в градусах

  • Alignment: Выравнивание текста в метке ( 0 - Aligned to left (horizontal) and to top (vertical), 1 - Centered (horizontal) and to top (vertical) и т.д.)

  • BackStyle: Фон (0 – Прозрачный, 1 - Непрозрачный)

  • FontName: Фонт

  • FontSize: Размер шрифта

  • FontItalic, FontBold, FontUnderline, FontStrikeout – тип шрифта

  • Mode: Способ представления текста (0 - Normal, 1 - Normal text with rotation и т.д.)

События: Click, DblClick и т.д.

Таймер.

Свойства:

  • Enabled: Доступность (True, False)

  • Interval: Интервал в миллисекундах.

Примечание: перед выполнением проектов необходимо зарегистрировать ActiveX компоненты на компьютере. (Регистрация производится открытием страницы HTML c указанным компонентом или программой RegSvr32.exe).

Пример проекта с использованием управляющих элементов ActiveX.

Поместим на страницу встроенные элементы (две командные кнопки и текстовое окно) и элемент ActiveX – Метку (рисунок. Эта метка может вращаться при изменении угла поворота (свойство – Angle).

Рис. 25.

При щелчке мыши по кнопке «Изменить текст», меняется текст метки (свойство – Caption) на вводимый в текстовое окно. При загрузке элемента этому свойству присваивается значение «Пример вращающейся кнопки» (начальное значение).

При щелчке мыши по кнопке «Вращать текст», метка поворачивается на заданное изменение (в тексте процедуры обработки события в примере – на 45 градусов). При загрузке элемента этому свойству присваивается значение 0 (текст располагается горизонтально).

Ниже приводится HTML –файл проекта (содержание тегов <OBJECT> </OBJECT> выделено заливкой):

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

<title> Пример использования элемента ActiveX </title>

</head>

<body>

<form NAME="LabelControl">

<p><input TYPE="TEXT" NAME="txtNewText" SIZE="25"> </p>

<p><input TYPE="BUTTON" NAME="cmdChangeIt" VALUE="Изменить текст"> </p>

<p><input TYPE="BUTTON" NAME="cmdRotate" VALUE="Вращать текст"> </p>

</form>

<p>

<object classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" HEIGHT="250"

id="lblActiveLbl" width="250" align="centre" hspace="50" vspace="50">

<param name="Angle" value="0">

<param name="Alignment" value="2">

<param name="BackStyle" value="0">

<param name="Caption" value="Пример вращающейся кнопки">

<param name="FontName" value="Courier New Cyr">

<param name="FontSize" value="10">

<param name="FontBold" value="1">

<param name="FrColor" value="0">

</object>

</p>

<script LANGUAGE="VBScript">

<!--

Sub cmdChangeIt_onClick

Dim TheForm

Set TheForm = Document.LabelControl

lblActiveLbl.Caption = TheForm.txtNewText.Value

End Sub

Sub cmdRotate_onClick

lblActiveLbl.Angle = lblActiveLbl.Angle + 45

End Sub

-->

</script>

</body>

</html>

Задание 9 для самостоятельного выполнения.

Создайте приведенный проект и посмотрите его работу.

Измените заданный угол поворота метки и расположение элемента ActiveX относительно управляющих элементов (расположить над ними);

Показать работу проекта преподавателю и сохранить в своей личной папке.

Задание 10 для самостоятельного выполнения.

Модернизировать проект задания 9, добавив к нему объект Таймер, который должен управлять вращением метки.

Определение объекта Таймер:

<OBJECT ID="timer1"

CLASSID="clsid:59CCB4A0-727D-11CF-AC36-00AA00A47DD2"

CODEBASE="ietimer.ocx#Version=4,70,0,1161"

TYPE="application/x-oleobject"

ALIGN=middle

<PARAM NAME="Interval" VALUE="200">

<PARAM NAME="Enabled" VALUE="True">

</OBJECT>

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

Sub Timer1_timer

…………………………………………

End Sub

Предусмотреть возможность изменения скорости вращения метки во время выполнения проекта изменением шага приращения угла поворота и изменением интервала отсчета времени объекта Timer.

показать работу проекта преподавателю и сохранить в своей личной папке.

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

показать работу проекта преподавателю и сохранить в своей личной папке.

14.11Литература.

К.Джамса, К.Коун. Программирование для INTERNET в среде WINDOWS. Питер. С. – Петербург, 1996.

С. Хиллер. VISUAL BASIC Sription Edition в действии. Питер. С. – Петербург, 1997.

Оглавление.

14 Создание активных Internet-страниц с помощью VBScript 264

14.1 Введение 264

14.2 Язык VBScript, правила использования языка VBScript на страницах HTML 264

14.3 Программирование арифметических и логических вычислений. 266

14.4 Использование процедур и функций 267

14.5 Использование элементов управления 271

14.6 Пример проекта с использованием встроенных управляющих элементов. 278

14.7 Использование фреймов на Internet – странице 279

14.8 Управляющая алгоритмическая конструкция Select Case 285

14.9 Двумерные массивы и алгоритмы их обработки. 290

14.10 Использование на Internet - страницах компонентов ActiveX. 300

14.11 Литература. 305

306