Пример оформления титульного листа МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Московский государственный машиностроительный университет (МАМИ) Расчетно-графическая работа №1 по дисциплине «Информатика» (второй семестр) Вариант № _________ (номер варианта РГР) Выполнил студент _________________ (ФИО студента) Группа __________________ (Номер группы) Проверил _________________ (ФИО преподавателя) Москва - 2013 Краткие теоретические сведения В конспект первой работы следует включить: правила записи констант и переменных на VBA; типы переменных VBA; старшинство арифметических операций; правила записи математических функций; базовые операторы ввода-вывода; задание для своего варианта расчетно-графической работы, текст программы на языке VBA, исходные данные для отладки программы и ожидаемый результат работы программы. Конспект может быть написан ручкой или напечатан на принтере Перерисовать полученный график с экрана, либо приложить скриншот полученного результата Варианты заданий РГР 1 Типы данных VBA Данные в зависимости от их свойств, области значений и операций с ними подразделяются на типы. Тип данных (data type) – указывает, что могут хранить данные: целое или вещественное число, строку, дату и т. д. Базовые типы данных VBA приведены в таблице. VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double и Currency. Численные типы данных используются для хранения чисел в различных форматах, в зависимости от конкретного типа. Тип переменной Boolean(логический) Размер памяти (байт) Диапазон 2 True (истина) или False (ложь) Integer (целое) 2 От -32 768 до 32 767 Long(длинное целое) 4 От -2 147 483 648 Single (число с плавающей точкой) 4 Date (дата) 8 до 2 147 483 647 По абсолютной величине от 1,401298·10-45 до 3,402823·10+38 От 1 января . до 31 декабря . Double (число с плавающей 8 точкой двойной точности) По абсолютной величине от 4,94065645841247·10 -324 до 1,79769313486232·10+308 String (строка 10 От 0 до 2х 109 + длина переменной длины) строки Variant (вариант) Зависит от переменной содержимого Константы VBA Константами называются объекты, значения которых не могут быть изменены в процессе выполнения программы. Константа имеет тип и значение. Если сама форма записи определяет константу, то она называется литеральной константой (literal constants), потому что литеральное значение записывается непосредственно в код программы. Константа, определяемая именем, называется именованной. Целая литеральная константа представляет собой последовательность цифр без десятичной точки. Отрицательное число начинается со знака минус. Плюс для положительного числа можно опустить. Примеры: 81 +2004 0 225 13. Вещественные константы представляются в ячейке памяти ЭВМ единообразно, в виде мантиссы и порядка и могут принимать одну из двух форм: - вещественная константа с фиксированной точкой; - вещественная константа двойной точности. Вещественная буквальная константа с фиксированной точкой включает знак числа, последовательность цифр и десятичную точку (обязательно), отделяющую целую часть числа от дробной части. Если мантисса заданной константы содержит меньше восьми цифр, то ей присваивается тип Single и для ее хранения отводится 4 байта памяти. Если в мантиссе константы больше семи цифр, то она хранится в 8-ми байтах памяти и ей присваивается тип Double. Пример: 2,75 записывается 2.75 (тип Single); 0,1 записывается 0.1 или .1 (тип Single); Вещественная литерная константа двойной точности должна заканчивается символом решетка («#») и для ее хранения отводится 8 байт памяти. Пример. Скорость света 299800000 м/сек = 2,998108, задается числом 2.998E8, а в программе сохраняется как 299800000#. Литеральные логические константы принимают одно из двух значений: истина или ложь. Истина записывается как TRUE ; ложь обозначается словом FALSE . Они занимают 2 байта памяти. Переменные VBA Переменные - это объекты программы, которые могут принимать различные значения в процессе выполнения программы. Кроме значения и типа переменные имеют уникальное имя. Тип переменных можно задать явно оператором DIM, либо переменная будет иметь тип Variant и необходимый тип переменная получит в процессе выполнения программы, когда ей присвоят какое либо значение. Синтаксис оператора DIM: DIM имя_переменной As тип_переменной Выражения в VBA Выражения образуются из операндов, знаков операций, (возможно) скобок и задают правило вычисления значения этого выражения. В зависимости от типа вычисляемого значения различают выражения символьные, логические и арифметические. Операндами – объектами, участвующими в операциях, – могут быть константы, переменные, функции. Символьные выражения VBA используют одну единственную операцию конкатенации (соединения) для символьных операндов, например, stroka1&stroka2 . В некоторых случаях знак операции конкатенации «&» может быть заменен символом плюс. Тип данных результата конкатенации строк – это всегда тип String. Иные действия над строками символов выполняются с помощью встроенных символьных функций. Логические выражения VBA используют логические операции для операндов, принимающих значения ложь и истина, например, устанавливают истинность высказывания 0<x<1, записываемого в виде 0<x AND x<1 Арифметические выражения VBA включают операнды числового типа, арифметические операции, (возможно) круглые скобки и задают формулу, вычисляемую по правилам VBA. Знаки операций выполнения действий приведены в таблице Знак операции Синтаксис Имя/Описание + N1 + N2 Сложение. Прибавляет N1 к N2 – N1 – N2 Вычитание. Вычитает N2 из N1 * N1 * N2 Умножение. Умножает N1 на N2 / N1 / N2 Деление. Делит N1 на N2 Целочисленное деление. У результата \ Nl \ N2 деления N1 на N2 отбрасывается дробная часть. Перед операцией N1 и N2 округляются до целого числа Деление по модулю. N1 делится на N2, Mod а результату присваивается N1 Mod N2 остаток операции деления. Перед операцией N1 и N2 округляются до целого ^ N1 ^ N2 Возведение в степень. Возводит N1 в степень N2 Встроенные функции VBA Встроенные функции позволяют использовать в выражениях элементарные математические функции, такие как sinx, cosx, lnx и др. Для этого указывается имя функции, затем в круглых скобках аргумент, представленный переменной или константой (арифметическим выражением в общем случае) Пример встроенных математических функции VBA приведен в таблице Название функции Математическая Запись на VBA запись показательная ex Exp(X) lnx Log(X) синус sinx Sin(X) косинус cosx Cos(X) тангенс tgx Tan(X) arctgx Atn(X) функция натуральный логорифм арктангенс квадратный корень абсолютное значение целая часть x Sqr(X) |x| Abs(X) Int(X) и [x] Fix(x) знак числа Sgn(X) случайное число Rnd(x) Для использования библиотечных функций Excel следует воспользоваться объектом Application с указанием имени необходимой функции. Помимо этого имена функций доступны через контекстное меню объекта Application.WorksheetFunction. Пример. Для вычисления арксинуса от 0,5 можно записать Application.Asin(0.5), ибо Application.WorksheetFunction.A sin(0.5). Отличия заключаются в том, что в первом случае имя функции надо знать, а во втором выбрать из контекстного меню, которое высвечивается на экране после ввода точки после объекта WorksheetFunction. Оператор присваивания Переменная величина получает конкретное значение в результате выполнения операции присваивания. Три основных свойства присваивания: - пока переменной не присвоено значение, она остается неопределенной; - значение, присвоенное переменной, сохраняется в ней вплоть до выполнения присваивания этой переменной нового значения; - новое значение, присвоенное переменной, заменяет ее предыдущее значение. В левой части оператора присваивания указывается имя переменной, правая часть представляет собой выражение. <имя переменной> = < выражение > < выражение > содержит константы, переменные, указатели функций, соединенные знаками арифметических операций Алгоритмы разветвляющейся структуры – это такие алгоритмы, в которых в зависимости от первоначальных условий или промежуточных результатов выполняются вычисления по одним либо другим формулам. Во всех алгоритмических языках программирования оператор разветвления кодируется как оператор If (ЕСЛИ). Этот оператор может иметь различный синтаксис, но реализует фрагмент блок-схемы, изображенный на рисунке 1.1. ЕСЛИ <Логическое выражение> ТО [действия алгоритма, если условие выполнено] ИНАЧЕ [действия алгоритма, если условие НЕ выполнено] КОНЕЦ оператора ЕСЛИ В алгебре Синтаксис Наименование/описан ие Меньше, чем. True, если < (меньше) El < Е2 El меньше, чем Е2, иначе – False Больше, чем. True, если > (больше) El > Е2 Е1 больше, чем Е2, иначе – False Равенство. True, если El = (равно) El = Е2 равно Е2, иначе – False Меньше, чем или равно. (меньше или равно) El <= Е2 True, если Е1 меньше или равно Е2, иначе – False Больше, чем или равно. (больше или равно) El >= Е2 True, если Е1 больше или равно Е2, иначе – False Не равно. True, если Е1 (не равно) El <> Е2 не равно Е2, если Е1 и Е2 одинаковы, то False Оператор Синтаксис Имя/Описание Конъюнкция. True, если оба And El And E2 выражения Е1 и Е2 имеют значение True, иначе – False Дизъюнкция. False, если оба Or El Or E2 выражения Е1 и Е2 имеют значение False, иначе –True Отрицание. True, если Е1 Not Not El имеет значение False; False, если El является True Исключение. True, если Е1 и Xor El Xor E2 Е2 имеют разные значения; если одинаковые, то результат False Эквивалентность. True, Eqv El Eqv E2 если Е1 имеет то же самое значение, что и Е2; иначе – False Импликация. False, когда Е1 Imp El Imp E2 является равным True и Е2 равно False; иначе True Оператор сравнения («If») является структурным оператором и имеет следующую форму записи. If Логическое_выражение ТНЕN ‘ [операторы блока ветви «ДА»] Else ' (иначе) [операторы блока ветви «НЕТ»] End If ' (конец оператора IF) Если значение логического выражения «истина», выполняются операторы блока ветви «ДА, а операторы блока ветви «НЕТ» игнорируются. Если значение логического выражения есть «ложь», то операторы блока ветви «ДА» игнорируются и выполняются операторы блока ветви «НЕТ». Конец группы операторов блока ветви «ДА» отмечается оператором Else, а конец группы операторов блока ветви «НЕТ» и всего блока If - оператором End If. После того, как выполнены операторы блока ветви «ДА», выполняется оператор, следующий за оператором End If Циклом называется часть программы, которая в процессе выполнения повторяется последовательно несколько раз. Повторяющиеся операторы принято называть телом цикла. Оператор цикла For служит для организации циклов с предусловием, параметр которого меняется по закону арифметической прогрессии либо выбирается из группы элементов. Оператор For имеет две разновидности - оператор For для организации циклов, в которых параметр цикла изменяется по закону арифметической прогрессии, и оператор For Each. Синтаксис оператора For для организации циклов, в которых параметр цикла изменяется по закону арифметической прогрессии: For α = αнач. To αкон. [Step Δα] тело цикла Next [α] Оператор цикла For Each Параметром цикла, образованного конструкцией такого вида оператора For, является элемент из некоторой группы данных, например, такой как коллекция объектов или массив. Синтаксис оператора: For Each имя_элемента In группа тело цикла Next [имя_элемента] использованием оператора цикла Do (делай) можно программировать и циклы с предусловием и циклы с постусловием, а также бесконечные циклы. Количество итераций в цикле конструкции Do зависит от заданного условия окончания цикла. Существует пять разновидностей данной циклической конструкции. Первые две разновидности используются для создания цикла с предусловием: C Do While условие Do Until условие тело цикла Loop тело цикла Loop При использовании следующих двух разновидностей циклической конструкции DO: Do Do тело цикла тело цикла Loop While условие Loop Until условие создается цикл с постусловием, в котором операторы тела цикла выполняются хотя бы один раз, вне зависимости от условия. Условие проверяется после первого выполнения тела цикла. Операторы тела цикла Do разновидности Loop While выполняются до тех пор, пока «условие», заданное в последней строке цикла, принимает значение «истина» (True), а в разновидности Loop Until – тело цикла выполняется до тех пор, пока условие не выполняется (имеет значение False). Неправильная запись условия в этих разновидностях цикла DO также может привести к «зацикливанию» программы. Пятая разновидность циклической конструкции DO имеет следующий синтаксис: Do тело цикла Loop и используется для создания «бесконечных» циклов. Такой цикл обречен на бесконечное повторение. Однако он не лишен смысла вместе с условием завершения, помещенным в тело такого цикла. Выход из цикла разновидности Do_Loop осуществляется командой Exit Do, записываемого, как правило, в условном операторе If: If условие Then Exit Do Для расчета графика функции двух переменных y=F(a,x) используются циклы, вложенные один в другой. Один из таких циклов называют внешним, а другой внутренним. Телом внешнего цикла является весь внутренний цикл. При записи рассчитанных значений функции следует учитывать тип диаграммы, с помощью которой будут отображаться кривые. Для диаграммы типа «График» представляется целесообразным разместить данные в виде таблицы: один столбец которой содержит значения аргумента xi, а соседние столбцы содержат координаты yi для заданных значений второго параметра. Если же предполагается выводить графики в виде диаграммы типа «Точечная», а для неоднозначных функций это единственный способ корректного их представления в Excel, то значения аргумента и функции должны располагаться в соседних столбцах. Причем, если на одну диаграмму выводятся точки нескольких кривых, то точки одной кривой от точек другой должны отделяться пустой строчкой.