Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование на языке VBS. Массивы Цель работы↑ ⇐ ПредыдущаяСтр 8 из 8 Содержание книги
Поиск на нашем сайте
Освоение понятия массив алгоритмического языка Учебные вопросы 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 Рисунок 15.2 – Примеры работы программы с использованием структуры Case
Учебное задание 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 (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 мин.
1) 2)
3) 4)
5) 6)
7)
8)
9)
10) Лабораторная работа № 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 – Отмена текущего задания.
· – Открытие меню «Пуск» · + F1 – Вызов справки Windows · + B – Перенести курсор в область уведомлений. · + D – Показать рабочий стол (свернуть все окна). · + Е – Открыть окно Мой компьютер. · + F – Открыть окно поиска. · + G – Показать гаджеты поверх окон. · + L – Заблокировать компьютер. · + M – Свернуть все окна. · + P – Диалог управления проектором. · + R – Открыть окно Выполнить.... · + T – По очереди переводим фокус последовательно по иконкам Панели задач. · + U – Окно Центр специальных возможностей. · + X – Окно Центр мобильности (ноутбуки и нетбуки). · + Табуляция – Вызов Flip 3D. · + Пробел – Просмотр рабочего стола (Aero Peak, сделать все окна про- зрачными). · + Стрелка - Управление расположением активного окна (Вверх - макси- мизировать, вниз - свернуть, влево - прикрепить к левому краю, вправо - прикрепить к правому краю). · + Pause - Свойства системы. · + Home - Свернуть все окна, кроме активного (тоже самое, что и Aero Shake (потрясти окно)). · + Shift + Вверх - Развернуть по максимальному окно по вертикали. · Shift + + Влево/вправо - Перенаправить окно на соседний монитор. · + Номер иконки на Панели задач - Выделить это окно, а остальные сде- лать прозрачными (Aero Peak).
Литература 1) Грошев А. С. Информатика: Учебник для вузов – Архангельск, Арханг. гос. техн. ун-т, 2010. – 470 с.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-17; просмотров: 381; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.249.191 (0.01 с.) |