Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование на языке VBS. Массивы Цель работыСодержание книги
Поиск на нашем сайте Освоение понятия массив алгоритмического языка Учебные вопросы 1. Описание массивов. 2. Динамический массив. 3. Работа с элементами массива. Краткое изложение учебного материала
Переменная, которая хранит единственное значение, называется ска- лярной. Переменная может использоваться и для хранения серии чисел, такая переменная является массивом.
1 Описание массивов
Скалярная переменная может использоваться без явного описания с использованием ключевых слов Dim, Public или Private, если в начале про- граммы не присутствует директива Option Explicit. Для описания массивов используются те же операторы, что и для пе- ременных, только после имени переменной в круглых скобках указывается количество индексов и их максимальное значение у элементов массива. Полный синтаксис этих описаний следующий:
где: Имя_м – имя массива; Индексы – имеет формат: индекс1 [, индекс2 ]... – максимальные значе- ния индексов, минимальное значение равно 0; массив мо- жет быть одномерный, двумерный и т. д. до 60. Пример: Dim X(99), Y(24,24), Z(99,99,99) где: X(99) – одномерный массив из 99 элементов; Y(24,24) – двухмерный массив размерностью 24×24 элемента; Z(99,99,99) – трехмерный массив размерностью 99×99×99. Разница между описаниями Dim, Public, Private существенна при ис- пользовании внутри программы подпрограмм и функций пользователя. В этом случае различается область действия переменных и массивов. Массив в языке VBS после его объявления имеет тип Variant, поэтому его элементам можно присваивать значения различных типов. Максималь- ный размер массива ограничен размером свободной виртуальной памяти операционной системы. 2 Динамический массив Массив может быть динамический (изменяемой размерности), при его описании в круглых скобках размерность не указывают: Dim имя_м ()[, имя_м ()]... Для инициализации динамического массива следует использовать оператор: ReDim [ Preserve ] имя_м ( индексы )[, имя_м ( индексы )]... Параметр Preserve используется, если выполняется повторная иници- ализация для изменения размера массива и необходимо сохранить значе- ния переменных, которые им уже были присвоены.
Пример: Dim X(), Y() ReDim X(10), Y(10) ... ReDim Preserve X(10, 10), Y(10, 10) Другой способ создания переменной типа Variant, содержащей одно- мерный массив, – с помощью функции Array: A = Array(10,20,30,40) Эта функция описывает массив и задает значения его элементам. В примере значения элементов массива будут следующими: A(0)=10, A(1)=20, A(2)=30 и A(3)=40. 3 Работа с элементами массива Пример программы с использованием массивов: Dim Y(99), Z(99,99,99) Y(0) = "Это 1-ый элемент массива Y - строка" Y(1) = 123.456 ' Тип второго элемента - число Y(99)= #12-30-2007# ' Тип 100-го элемента - дата Z(99,99,99)="Это элемент трехмерного массива Z "_ & "с индексом 99,99,99" MsgBox Y(0) & vbLf & "2-ой элемент массива Y - число: " _ & Y(1) & vbLf & "100-ый элемент массива Y - дата: " _ & Y(99) & vbLf & Z(99,99,99),,"Студент Иванов И. И."
Окно, которое показывает эта программа, показаны на рисунке 14.1. Рисунок 14.1 – Пример на использование массивов
Учебное задание 1) Опишите в программе два одномерных массива размерностью 3 и 5 элементов, присвойте значения элементам первого массива – нечетные числа, начиная с 21, второго – буквы русского алфавита, начиная с мяг- кого знака. Покажите все данные в окне сообщений. 2) Опишите в программе динамический массив. Выполните вначале его инициализацию для размерности 3 элемента и присвойте значения эле- ментам массива – любые числа. Покажите все данные в 1-м окне сооб- щений. Затем выполните повторную инициализацию для размерности 7 с сохранением значений определенных ранее элементов. Присвойте элементам с 4 по 7-й любые даты. Покажите все данные во 2-м окне со- общений. 3) Опишите в программе двухмерный массива размерностью 2 × 3 элемен- тов и присвойте значения каждому элементу массива – время в диапа- зоне от 7:00 до 19:00. Покажите данные в окне сообщений в виде мат- рицы, в которой номер строки – первый индекс, в строке изменяется второй индекс. 4) Задайте с помощью функции Array значения 5-ти элементам массива, представляющим собой геометрическую прогрессию. Покажите все данные в окне сообщений. 5) Создайте с помощью функции Array одномерный массив, состоящий из 6-ти чисел. Покажите данные в окне сообщений. С помощью функции ReDim переопредилите его размерность до двухмерного размерностью 3 × 2. Задайте значения всем его элементам и покажите их в окне сообще- ний в виде матрицы, в которой номер строки – первый индекс, в строке изменяется второй индекс. 6) Опишите в программе трехмерный массива размерностью 2 × 3 × 4 эле- ментов и присвойте числовые значения элементам массива. Покажите данные в окне сообщений с указанием элемента массива и его значение (например, A(0,0,0)=1 и т. д.). 7) Задайте элементам двумерного массива текстовые значения – каждому одно слово какого-либо четверостишия. Покажите элементы массива в окне сообщений в виде стихотворения. 8) Опишите в программе два одномерных массива X и Y размерностью 5 элементов, присвойте числовые значения элементам массивов. Покажи- те данные в окне сообщений в виде таблицы, в первой строке которой показаны имена массивов, в последующих – значения их элементов. 9) Опишите в программе одномерный массив из 7 элементов. Присвойте значения элементам – целые числа. Покажите элементы массива в окне сообщений в следующем порядке: 1, 7, 2, 6, 3, 5, 4. 10) Опишите в программе два одномерных массива размерностью 5 элементов, присвойте числовые значения элементам массивов. Покажи- те данные в окне сообщений: в первой строке элементы первого масси- ва от первого до 5-го, во второй строке – элементы второго массива от 5-го до первого. Лабораторная работа № 15. Программирование на языке VBS. Условные операторы IF и CASE Цель работы Освоение приемов организации разветвляющихся алгоритмов в про- грамме на алгоритмическом языке. Учебные вопросы 1. Строчный синтаксис оператора условного перехода. 2. Блочный синтаксис оператора условного перехода. 3. Оператор выбора Case. Краткое изложение учебного материала
В языке VBS он может использоваться в двух различных видах (строчный и блочный синтаксисы). 1 Строчный синтаксис оператора условного перехода If <условие> Then <операторы1> [Else <операторы2>] где: условие – логическое выражение, результатом вычисления которого может быть истина (True), ложь (False) или Null которое приравни- вается к False; операторы1 – один оператор или более (разделенных двоеточиями для строкового синтаксиса); выполняются, если условие истинно (True); операторы2 – выполняются, если условие не является истиной (False). В логических выражениях могут использоваться следующие основ- ные операторы сравнения и логические операции: = Равно And Логическое «И» <> Не равно Or Логическое «ИЛИ» < Меньше Xor Логическое исключение > Больше <= Меньше или равно (E1 Xor E2 возвращает True, если только E1 = True или только E2 = True, иначе – False) >= Больше или равно Eqv Логическое «эквивалентно» Is Сравнение объектов Imp Логическая импликация
E1 = True и E2 = False, иначе –True) Для простых условных операторов следует использовать строчный синтаксис. Два примера строчного синтаксиса: If A <= 0 Then A = A + 1: B = B + A Else B = B + A If X > 0 and X <= 1 Then Y = 1 else Y = 0 2 Блочный синтаксис оператора условного перехода Блочный синтаксис является более структурированным, имеет боль- шие возможности, легче читается и отлаживается. В одном операторе мо- жет быть выполнена проверка нескольких условий с заданием различных исполняемых фрагментов программы.
где: условие – логическое выражение, результатом вычисления которого может быть истина (True), ложь (False) или Null которое приравни- вается к False; операторы – один оператор или более (разделенных двоеточиями для строкового синтаксиса), которые выполняются, если условие истинно (True); условие-n – то же, что и условие; операторы-n – выполняются, если условие-n является истиной (True); else-операторы – один оператор или более, выполняющиеся, если предшествующие условия не были истинны. Когда выполняется блочный If, проверяется условие, и, если оно ис- тинно (True), выполняются операторы, следующие за Then. Если условие не является истинным (False), каждое условие-n, идущее за ElseIf (если они есть) проверяется. Когда истинное значение найдено, выполняются опера- торы-n, следующие за Then после истинного условия, после чего програм- ма выходит за End If (т. е. последующие ElseIf, если они есть, не проверяют- ся). Если истинных условий для ElseIf не найдено, выполняются else- операторы, следующие за Else. Пример блочного синтаксиса: FIO = "Лютикова Лилия Максимовна" a = InputBox("Задайте значение переменной a", "Пример IF. " & FIO) a = Eval(a) 'преобразование строки в число If a > 10 Then b = "a > 10" ElseIf a > 0 Then b = "a > 0" 'строка будет выполнена даже при а=1! ElseIf a = 1 Then b = "a = 1" 'эта строка никогда не будет выполняться! Else b = "Нет данных для заданного значения a" End If MsgBox "Результат выполнения IF для a = " & a & ": " & B,,FIO Примеры исполнения программы показаны на рисунке 15.1.
Рисунок 15.1 – Примеры работы программы с использованием блочного оператора IF 3 Оператор выбора Case
Синтаксис оператора выбора:
где: тест-выражение – любое числовое или строковое выражение; список_выр-n – список из одного или более выражений для соответ- ствующего Case; операторы-n – один оператор или несколько, выполняющихся, если тест-выражение имеет то же значение, что и значение одного из выражений списка-n; else-операторы-n – один оператор или несколько, выполняющихся, если тест-выражение не совпадает ни с одним из значений Case -структур. Пример использования структуры Case: FIO = "Иванов Иван иванович" X = InputBox("Задайте значение переменной a", _ "Пример Case. " & FIO) X = Eval(X) 'преобразование строки в число Select Case X Case -3, -2, -1 Y = "X из списка -1, -2, -3" Case 0 Y = "X равно 0" Case 1, 2, 3 Y = "X из списка 1, 2, 3" Case Else Y = " Нет данных " End Select MsgBox "Результат выполнения Case для X = " & X & _ ": " & Y, 4096, FIO
Учебное задание 1) Для Вашего варианта таблицы 15.1 задайте в окне ввода значение пере- менной X с учетом заданного подтипа данных. При вводе маленьких или больших чисел с использованием буквы e (например, -1e15) используйте преобразование подтипа строка в число с использованием функции Eval. При вводе даты и времени используйте функцию преобразования подтипа Cdate. При работе с датами учитывать, что их основные форматы #мм/дд/гггг# или #мм-дд-гг#. Вычислите переменную Y по одному из выражений в зависимости от значения X. Значения переменных X и Y покажите в окне сообщений. Для тех заданий, где варианты X охватывают не все возможные значе- ния этой переменной (например, номер месяца – целое число только от 1 до 12, а не любое другое целое число), предусмотреть вывод сообщения «Нет решения для заданного значения X» Выполнить данное задание с использованием: a) строчного синтаксиса оператора условного перехода, b)
2) С использованием оператора выбора Case выполнить задания 1-го пунк- та: для компьютеров с № 1 по № 5 – вариант 1.5, с № 6 по № 10 – вариант 1.6. Лабораторная работа № 16. Программирование на языке VBS. Операторы цикла Do и While Цель работы Освоение приемов организации циклов в программе на алгоритмиче- ском языке. Учебные вопросы 1. Цикл типа Do... Loop. 2. Цикл типа While... Wend. Краткое изложение учебного материала
Существует несколько видов оператора цикла:
Данная лабораторная работа посвящена первым двум. 1 Цикл типа Do... Loop Синтаксис оператора Do...Loop следующий (здесь и далее в фигурных скобках {} приведены два возможных варианта, разделенных вертикальной чертой |, один из которых необходимо исполь- зовать): 1) первый вариант – проверка условия в начале цикла
2) второй вариант – проверка условия в конце цикла
где: условие – логическое выражение, которое имеет значение истина (True) или ложь (False); значение условия Null то же, что и False; для While (англ. пока) выполнение цикла продолжается, пока условие истинно, для Until (англ. до) – выход из цикла, когда условие истинно; операторы – один или несколько операторов, выполнение которых повторяется, пока условие после while истинно (True) или усло- вие после Until ложно (False); Exit Do – может использоваться, как альтернативный выход из цикла (на следующую строку программы после Loop); любое количе- ство Exit Do может быть помещено внутри цикла. Обычно эта команда используется с вычисляемым логическим выражением оператора If...Then. Пример использования операторов циклов Do While...Loop и Do Until...Loop – вычисление числа p по формуле Беллара 1 ∞ (−1)𝑛 256 1 64 32 4 𝜋 = 26 � 𝑛=0 1024𝑛 � 10𝑛 + 1 + 10𝑛 + 9 − − 4 − 1 �
10𝑛 + 3 − 4𝑛 + 1 −
10𝑛 + 5 10𝑛 + 7 4𝑛 + 3 eps = 1e-3 'точность расчета суммы на стадии отладки n = 0 a = -1^n/1024^n*(256/(10*n+1)+1/(10*n+9)-64/(10*n+3)-_ 32/(4*n+1)-4/(10*n+5)-4/(10*n+7)-1/(4*n+3)) s = a t1 = Time Do While Abs(a) > eps ' цикл выполняется, пока |a| > eps ' или Do Until Abs(a) <= eps, что аналогично предыдущему n = n + 1 a = -1^n/1024^n*(256/(10*n+1)+1/(10*n+9)-64/(10*n+3)-_ 32/(4*n+1)-4/(10*n+5)-4/(10*n+7)-1/(4*n+3)) s = s + a Loop t2 = Time dt = FormatDateTime(t2-t1) pi = 3.1415926535897932384626433832795 ‘ копия из Калькулятора r_pi = 1/2^6*s ‘расчетное значение pi MsgBox "Eps = " & eps & vblf & " Ист. Pi = " & pi _ & vblf & " Расч. Pi = " & r_pi & vbLf & "n = " & n _ & vbLf & "dt = " & dt, 4096, " Иванов И. И." Результаты работы программы при eps = 1e-3 и при eps = 1e-15 пока- заны на рисунке 16.1.
Рисунок 16.1 – Результаты расчета числа Pi по формуле Беллара 2 Цикл типа While... Wend
Синтаксис оператора цикла While...Wend следующий: Выполнение операторов цикла повторяется, пока <условие> истинно (True). Пример использования оператора While...Wend для расчета значения y = arcctg(x) с использованием итерационного ряда: ¥ y = å n =0 (-1) n × x 2 n +1
eps = 1e-28 'x = 0.9 ' вариант для предварительного тестирования x = 0.999999 n = 0 a = -1^n*x^(2*n+1)/(2*n+1) s = a t1=Time While Abs(a) > eps n = n + 1 a = -1^n*x^(2*n+1)/(2*n+1) s = s + a Wend t2=Time dt = FormatDateTime(t2-t1) MsgBox " Истинное значение " & Atn(x) & vbLf & _ " Расчетное значение "& s & vbLf &_ " Продолжительность расчета " & dt & vbLf &_ " x = " & x &" n = " & n, 4096,_ "Y = arcctg(x). Иванов И. И." Результат выполнения этой программы показан на рисунке 5.2.
Рисунок 16.2. – Результаты расчета с циклом While... Wend
Учебное задание Вычислите число p по итерационной формуле с номером, соответ- ствующим номеру Вашего ПК, с абсолютной погрешностью вычисления от 10-5 до 10-16. Найдите величину погрешности, при которой в числе p по- стоянными остаются 7 знаков после запятой. Определите программно вре- мя расчета для каждого варианта, покажите в окне сообщений расчетные значения p, n и продолжительность расчета для различной погрешности. Напишите пять вариантов программы для цикла DO с проверкой условия в начале и в конце и для цикла WHILE. Расчет для максимальной точности выполнить для одного варианта, т. к. его продолжительность мо- жет составлять 15 – 30 мин.
Лабораторная работа № 17. Программирование на языке VBS. Операторы цикла For и For Each Цель работы Освоение особенностей использования цикла For... в программе на алгоритмическом языке. Учебные вопросы 1. Цикл типа For... Next. 2. Цикл типа For Each... Next. Краткое изложение учебного материала 1 Цикл типа For... Next Синтаксис оператора цикла For...Next следующий:
где: счетчик – числовая переменная, используемая как счетчик (параметр) цикла; может быть положительной или отрицательной величиной нач.знач. – начальное значение счетчика; кон.знач. – конечное значение счетчика; шаг – шаг изменения счетчика; на данную величину автоматически из- меняется счетчик после каждого выполнения операторов цикла; ес- ли шаг не указан, значит, он равен 1; операторы – выполняются повторно столько раз, сколько определено значениями, заданными для счетчика: один раз, много раз или ни одного; Exit For – может использоваться, как альтернативный выход из цикла; обычно используется с проверкой условия выхода в операторе If...Then; выход выполняется на строку программы, следующую за Next. Пример использования цикла For...Next (результат исполнения про- граммы показан на рисунке 17.1): n = 17 Redim x(n) Randomize For i = 1 to n ' генерация n случайных чисел x(i) = 10 - 20*Rnd 'в диапазоне от -10.000 до 9.999 Next s = 0 For i = 1 to n s = s + x(i) 'расчет суммы всех элементов массива x Next Ms =”” 'Ms - строка для показа всех элементов массива x For i = 1 to n ms = ms & x(i) & vblf Next ms = ms & ” Сумма всех x = ” & S MsgBox ms, 4096, " For... Next"
Рисунок 17.1 – For...Next Рисунок 17.2 – For...Exit For...Next Рисунок 17.3 – Цикл For Each Пример программы с альтернативным выходом (результат исполне- ния см. на рисунке 17.2): S = " X Y" & vbLF S = S & "---------------" & vbLF For X = 1 to 5 step 0.11 Y = FormatNumber(Tan(X),3) If Abs(Y) < 0.5 Then s = s & "---------------" & vbLf _ & "Выход из цикла" & vbLf & "при |Y| < 0.5" Exit For End If s = s & FormatNumber(X,3) & " " & Y & vblf Next MsgBox S,4096," For...Exit For...Next" 2 Цикл типа For Each... Next
Синтаксис оператора цикла For Each...Next следующий: где: элемент – переменная, которая используется для перебора всех элементов коллекции или массива; группа – имя коллекции объектов или массива. Пример программы с использованием оператора For Each для работы с массивом: N=19 ReDim x(n) Randomize For i = 0 to n ' генерация n+1 случайных чисел x(i) = 5 - 10*Rnd 'в диапазоне от -5.000 до 4.999 Next S = "" For Each iks in X S = S & iks & vblf Next MsgBox S, 4096," For Each... " В данной программе цикл For Each использует все значения массива X для формирования строки S (результат исполнения см. на рисунке 17.3).
Учебное задание
С использованием оператора цикла FOR и функции RND сгенериро- вать массивы из n действительных чисел, необходимые для вычисления по заданной ниже формуле. Для расчета по заданной формуле использовать оператор For Each. Программу выполнить несколько раз для различных значений n. Исходные данные и результаты показать в окне сообщений. Приложение 1. Горячие клавиши Windows 7 Операции с текстом и файлами
· Ctrl + A – Выделить всё. · Сtrl + С – Копировать. · Сtrl + Х – Вырезать. · Сtrl + V – Вставить. · Сtrl + Z – Отменить. · Ctrl + Y – Повторить действие. · Сtrl + B – Сделать жирным (только текст). · Shift +Delete – Удалить файл без перемещения в корзину. · CTRL+S – Сохранение текущего файла или документа (работает в боль- шинстве программ) · ALT+F4 – Закрытие текущего элемента или выход из активной программы · Ctrl + вращение колесика мыши – меняется размер текста или иконок в Проводнике и на Рабочем столе. · F5 – в Проводнике – обновить окно
Прочие операции
· Аlt + Табуляция – Переключение между окнами. · Shift + Ctrl + N – Создать новую папку. · Сtrl + Shift + Esc – Открытие диспетчера задач. · Аlt + F4 – Закрыть активное окно. · F11 – Развернуть окно на весь монитор (без заголовка окна и панели за- дач, работает для некоторых окон, в том числе для Проводника и Интер- нет браузеров) · F1 – Справка · F5 – Обновить окно. · Esc – Отмена текущего задания.
·
·
Литература 1) Грошев А. С. Информатика: Учебник для вузов – Архангельск, Арханг. гос. техн. ун-т, 2010. – 470 с.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2020-12-17; просмотров: 430; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.214 (0.012 с.) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||