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

Рис. 20.

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

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

<FORM name=Form1>

<P>

<INPUT type=Text maxLength=8 size=9>&nbsp;&nbsp;<INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT type=Text maxLength=8 size=9>&nbsp;&nbsp;<INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT type=Text maxLength=8 size=9>&nbsp;&nbsp;<INPUT type=Text maxLength=8 size=9>

</P>

<P>

<INPUT name=option22 type=radio>По строкам.&nbsp;&nbsp;<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>&nbsp;&nbsp;

<INPUT type=Text maxLength=8 size=9>&nbsp;&nbsp;

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

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

<P> <INPUT type=Text maxLength=8 size=9>&nbsp;&nbsp;

<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,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








Дата добавления: 2015-08-11; просмотров: 512;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.111 сек.