русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ценное замечание


Дата добавления: 2015-06-12; просмотров: 531; Нарушение авторских прав


Для того чтобы определить является ли переменная массивом можно использовать функцию IsArray(ArrName), возвращающую «Истина», тогда и только тогда когда ArrName – массив.

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 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:"

 



<== предыдущая лекция | следующая лекция ==>
Dim DynArray1 | ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.155 сек.