ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ
Пример 1
'Имя файла Input_Output_1.vbs
'Программа содержит процедуру ввода и процедуру вывода одномерного массива (вектора)
Option Explicit
Dim A(4) ' объявление одномерного массива А
Const k=4 ' k-индекс последнего элемента в векторе
'-------------------------------------------------------------------------------
Sub Input (A)
' процедура ввода элементов вектора с клавиатуры
' процедура с параметрами
' A-параметр, передаваемый по ссылке
' k-глобальная константа
Dim i ' параметр цикла
For i=0 to k
A(i)=CDbl(InputBox("Введите "&i&"-й элемент одномерного массива","Ввод “&_ “вектора A:",5))
Next
End Sub
'-------------------------------------------------------------------------------
Sub Output (A)
' процедура вывода на экран элементов вектора
' процедура с параметрами
' A-параметр, передаваемый по ссылке
' k-глобальная константа
Dim i ' параметр цикла
Dim s ' строковая переменная, в которой будет сохранён массив
For i=0 to k
s=s+CStr(A(i))+" "
Next
MsgBox "Вы ввели одномерный массив:"&vbCrLf&_
s,_
vbExclamation,_
"Вывод вектора A:"
End Sub
'-------------------------------------------------------------------------------
Input A ' вызов процедуры ввода элементов массива
Output A ' вызов процедуры вывода элементов массива
Пример 2
'Имя файла Input_Output_2.vbs
'Программа содержит процедуру ввода и процедуру вывода двумерного массива (матрицы)
Option Explicit
Dim A(4, 5) ' объявление двумерного массива А
Const m=4 ' m, n -индексы последнего элемента матрицы
Const n=5
'-------------------------------------------------------------------------------
Sub Input (A)
' процедура ввода элементов матрицы с клавиатуры
' процедура с параметрами
' A-параметр, передаваемый по ссылке
' m, n -глобальные константы
Dim i, j
For i=0 to m
For j=0 to n
A(i,j)=CDbl(InputBox("Введите элемент A("&i&","&j&")","Ввод матрицы A:",5))
Next
Next
End Sub
'-------------------------------------------------------------------------------
Sub Output (A)
' процедура вывода на экран элементов матрицы
' процедура с параметрами
' A-параметр, передаваемый по ссылке
' m, n -глобальные константы
Dim i, j
Dim s ' строковая переменная, в которой будет сохранён массив
For i=0 to m
For j=0 to n
s=s+CStr(A(i,j))+" "
Next
s=s&vbCrLf
Next
MsgBox "Вы ввели двухмерный массив:"&vbCrLf&_
s,_
vbExclamation,_
"Вывод матрицы A:"
End Sub
'-------------------------------------------------------------------------------
Input A ' вызов процедуры ввода элементов массива
Output A ' вызов процедуры вывода элементов массива
Пример 3
' Имя файла Min_Max.vbs
' Программа находит минимальный и максимальный элемент вектора
Option Explicit
Dim s, i
Dim A(4) ' объявление одномерного массива А
Const k=4 ' k-индекс последнего элемента в векторе
'-------------------------------------------------------------------------------
Sub Input_Rnd (A)
' процедура заполнения одномерного массива целыми
' числами от 0 до 20, выбранными случайным образом
Dim i
For i=0 to k
Randomize
A(i)=Fix(Rnd(1)*20)
Next
End Sub
'-------------------------------------------------------------------------------
Function Min (A)
Dim i
Min=A(0)
For i=1 to k
If A(i)<Min Then
Min=A(i)
End If
Next
End Function
'-------------------------------------------------------------------------------
Function Max (A)
Dim i
Max=A(0)
For i=1 to k
If A(i)>Max Then
Max=A(i)
End If
Next
End Function
'-------------------------------------------------------------------------------
Input_Rnd A ' вызов процедуры ввода элементов массива
' Вывод введённого вектора:
For i=0 to k
s=s+CStr(A(i))+" "
Next
MsgBox "Вектор, полученный случайным образом:"&vbCrLf&_
s&vbCrLf&_
"Минимальный элемент данного вектора: "&Min (A)&vbCrLf&_
"Максимальный элемент данного вектора: "&Max (A)&vbCrLf,_
vbExclamation,_
"Результат:"
Пример 4
'Имя файла Simple_Nombers.vbs
'Программа находит все простые числа в двумерном массиве (в матрице)
Option Explicit
Dim k, i, j, p, s
Dim A(4, 5) ' объявление двумерного массива А
Const m=4 ' m, n -индексы последнего элемента матрицы
Const n=5
'-------------------------------------------------------------------------------
Sub Input (A)
' Процедура ввода элементов матрицы с клавиатуры
' процедура с параметрами
' A-параметр, передаваемый по ссылке
' m, n -глобальные константы
For i=0 to m
For j=0 to n
A(i,j)=CDbl(InputBox("Введите элемент A("&i&","&j&")","Ввод матрицы A:",5))
Next
Next
End Sub
'-------------------------------------------------------------------------------
Function Simple (k)
' Функция возвращает True, если число k окажется простым, и false - в противном случае
Dim x
Simple=True
If k<>1 Then
For x=2 to Int(sqr(k))
If k mod x =0 Then
Simple=False
End If
Next
Else Simple=False
End If
End Function
'-------------------------------------------------------------------------------
Input A ' Вызов процедуры ввода элементов матрицы
' В цикле происходит проверка, является ли элемент матрицы простым числом
For i=0 to m
For j=0 to n
If Simple(A(i,j)) Then ' Вызов процедуры, которая проверяет, является ли A(i,j) ' простым числом
p=p&A(i,j)&" " ' если да, то число записывается в строку p
End If
Next
Next
' Выводим введённую матрицу и те элементы массива, которые являются простыми числами
For i=0 to m
For j=0 to n
s=s+CStr(A(i,j))+" "
Next
s=s&vbCrLf
Next
MsgBox "Вы ввели двухмерный массив:"&vbCrLf&_
s&vbCrLf&_
"Элементы массива, которые являются простыми числами: "&vbCrLf&_
p,_
vbExclamation,_
"Результат:"
Пример 5
'Имя файла Zero.vbs
'Программа определяет количество нулевых элементов двумерного массива (матрицы)
Option Explicit
Dim k, i, j, s
Dim A(4, 5) ' объявление двумерного массива А
Const m=4 ' m, n -индексы последнего элемента матрицы
Const n=5
Вводим матрицу
k=0
For i=0 to m
For j=0 to n
A(i,j)=CDbl(InputBox("Введите элемент A("&i&","&j&")","Ввод матрицы A:",5))
If A(i,j)=0 Then ' проверяем, нулевой ли элемент мы ввели
k=k+1 ' счётчик нулевых элементов
End If
Next
Next
' Выводим введённую матрицу и количество нулевых элементов
For i=0 to m
For j=0 to n
s=s+CStr(A(i,j))+" "
Next
s=s&vbCrLf
Next
MsgBox "Вы ввели двухмерный массив:"&vbCrLf&_
s&vbCrLf&_
"Количество нулевых элементов в данной матрице: "&k,_
vbExclamation,_
"Результат:"
Пример 6
' Имя файла Difference.vbs
' Программа находит разность между произведением и суммой элементов целочисленного
' одномерного массива, состоящего из 5-ти положительных элементов
Option Explicit
Dim i, s
Dim A(4) ' объявление одномерного массива А
Const k=4 ' k-индекс последнего элемента в векторе
'-------------------------------------------------------------------------------
Sub Input_Rnd (A)
' процедура заполнения одномерного массива целыми
' числами от 0 до 20, выбранными случайным образом
Dim i
For i=0 to k
Randomize
A(i)=Fix(Rnd(1)*20)
Next
End Sub
'-------------------------------------------------------------------------------
Function Summa (A)
Dim i, s
For i=0 to k
s=s+A(i)
Next
Summa=s
End Function
'-------------------------------------------------------------------------------
Function Multiplication (A)
Dim i, s
s=1
For i=0 to k
s=s*A(i)
Next
Multiplication=s
End Function
'-------------------------------------------------------------------------------
Function Difference (multiplication, summa)
Difference=multiplication-summa
End Function
'-------------------------------------------------------------------------------
Input_Rnd A ' вызов процедуры ввода элементов массива
' Вывод введённого вектора:
For i=0 to k
s=s+CStr(A(i))+" "
Next
MsgBox "Вектор, полученный случайным образом:"&vbCrLf&_
s&vbCrLf&_
"Произведение элементов вектора: "&Multiplication (A)&vbCrLf&_
"Сумма элементов вектора: "&Summa (A)&vbCrLf&_
"Разность между произведением и суммой элементов данного”&_ “вектора:"&vbcrLf&_
Difference(multiplication (A), summa (A)),_
vbExclamation,_
"Результат:"
Пример 7
' Имя файла Array of Arrays.vbs
' Дана нерегулярная матрица: 1 3 -4
' -2 5 5 7
' 6 3 -6
' 5 5 7 2 -8
' Задача: Найти в данной матрице все отрицательные элементы и распечатать их вместе с 'индексами.
Option Explicit
' Объявление матрицы как массива массивов
Dim Arr(3)
Arr(0)=Array(1, 3, -4)
Arr(1)=Array(-2, 5, 5, 7)
Arr(2)=Array(6, 3, -6)
Arr(3)=Array(5, 5, 7, 2, -8)
dim i, j, s
' В данном цикле организована проверка каждого элемента матрицы, является ли
' он отрицательным. если да, то данный элемент вместе со своими индексами сохраняется
' в строку s
For i=0 to 3
For j=0 to UBound(Arr(i)) ' Функция UBound возвращает индекс последнего элемента
' в i-той строке
If Arr(i)(j)<0 Then
s=s&"A("&i&", "&j&") = "&Arr(i)(j)&vbCrLf
End if
Next
Next
' Вывод исходной матрицы, а также найденных в ней отрицательных элементов, вместе
' с их индексами
MsgBox "Дана матрица A:"&vbCrLf&_
" 1 3 -4"&vbCrLf&_
"-2 5 5 7"&vbCrLf&_
" 6 3 -6"&vbCrLf&_
" 5 5 7 2 -8"&vbCrLf&_
"Отрицательные элементы данной матрицы:"&vbCrLf&_
s,_
vbExclamation, "Результат:"
Пример 8
' Имя файла Dynamic_Array.vbs
' Дана матрица A размерностью 4 на 3 и вектор B, состоящий из 4-х элементов.
' Сформировать новую матрицу A размерностью 4 на 4, которая бы содержала в себе
' матрицу A и вектор B, в качестве последнего столбца.
Option Explicit
Dim i, j
Dim B(3) ' объявление вектора B, состоящего из 4-х элементов
Dim A() ' объявление динамического массива А
'-------------------------------------------------------------------------------
Sub Input_Rnd_Arr (A)
' процедура заполнения двумерного массива целыми
' числами от 0 до 20, выбранными случайным образом
ReDim A (3, 2)
For i=0 to 3
For j=1 to 2
Randomize
A(i,j)=Fix(Rnd(1)*20)
Next
Next
End Sub
'-------------------------------------------------------------------------------
Sub Input_Rnd_Vec (B)
' процедура заполнения одномерного массива целыми
' числами от 0 до 20, выбранными случайным образом
For i=0 to 3
Randomize
B(i)=Fix(Rnd(1)*20)
Next
End Sub
'-------------------------------------------------------------------------------
Function Arr_to_Str (A)
' функция записи матрицы в строку s
Dim s
For i=0 to 3
For j=1 to 2
s=s&A(i,j)&" "
Next
s=s&vbCrLf
Next
Arr_to_Str=s
End Function
'-------------------------------------------------------------------------------
Function Vec_to_Str (B)
Dim s
' функция записи вектора в строку s
For i=0 to 3
s=s&B(i)&" "
Next
Vec_to_Str=s
End Function
'-------------------------------------------------------------------------------
Function New_Arr(A, B)
Dim s
' функция формирования новой матрицы A и запись её в строку s
ReDim Preserve A (3, 3)
A(0, 3)=B(0)
A(1, 3)=B(1)
A(2, 3)=B(2)
A(3, 3)=B(3)
For i=0 to 3
For j=1 to 3
s=s&A(i,j)&" "
Next
s=s&vbCrLf
Next
New_Arr=s
End Function
'-------------------------------------------------------------------------------
Input_Rnd_Arr A ' вызов процедуры ввода элементов матрицы A
Input_Rnd_Vec B ' вызов процедуры ввода элементов вектора B
MsgBox Vec_to_Str (B),,"Вектор B:"
MsgBox Arr_to_Str (A),,"Первоначальная матрица A:"
MsgBox New_Arr (A, B),,"Изменённая матрица A:"
Не нашли, что искали? Воспользуйтесь поиском:
|