6. 4 задачи для самостоятельного решения
Пример 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: "
6. 4 ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|