Реферат Курсовая Конспект
Немного о БЕЙСИКе - раздел Компьютеры, Фундаментальная и компьютерная алгебра В Математике Имеют Дело С Такими Объектами Как Числа Разной П...
|
В математике имеют дело с такими объектами как числа разной природы (натуральные, целые, рациональные, действительные, комплексные), многочлены одной и нескольких переменных, матрицы, рациональные функции, геометрические линии, фигуры и тела и т.д. К ним применяются различные операции и отображения; это правила «переработки» объектов одного типа в объекты другого (или того же самого) типа. Между алгебраическими объектами устанавливаются различного рода отношения (равно, больше, принадлежит, лежит, делит, перпендикулярно, параллельно и т.п.). В памяти компьютера, как объекты, так и операции и отношения записываются в виде бинарной строки вида
0011101110000111101100101011101101101101100000111000111000101010111100001111000010101111111000000101010111001110101010101010 0010Поле памяти |
Процессор |
Компьютер |
Основной наш инструмент решения задач – язык программирования Бейсик, а точнее Visual Basic for Application (кратко: VBA). В качестве “Application” почти всегда будем пользоваться электронными таблицами Excel. Я рассчитываю на то, что вы знакомы с Excel на уровне пользователя; умеете открывать программу, записывать в ячейки числовые и строковые данные, копировать и перемещать различные области листов Excel и все это сохранять. Сохранять файлы Exel нам придется, выбрав опции
Сохранит как/Книга Excel с поддержкой макросов
для того, что бы VBA был подключен к соответствующему файлу. Запустить VBA можно щелкнут на «Разработчик/Visual Basic». Нам нужны будут два окна VBA.
1) Окно “Module”, где пишутся коды программ (если оно отсутствует, то в VBA надо использовать опции Insert/Module).
2) Окно Immediate. В нем можно проводить простые и непосредственные вычисления. Например, набрав в этом окне
? sqr(9)*2^(-1)*exp(0)
и нажав “Enter”, мы получим строкой ниже результат 1,5. Окно Immediate нам понадобиться и для распечатки результатов работы программы. Если в программе записать код
Debug.Print “значение=”;5 (1)
то при запуске программы в окне Immediate появиться
значение= 5 (2)
Если же в (1) знак “;” заменить на запятую, то в (2) после равенства появиться большой пробел – строковое выражение “значение=” и число 5 будут отпечатаны в режиме табуляции. Отмечу одну полезную опцию
Debug.Print Newline
означающую переход на новую строку при распечатке результатов. Однако чаще всего мы будем пользоваться ячейками Excel для записи результатов работы программы, а также для присвоения конкретных значений переменным. Разберем пример (см. файл Немного Бейсика.xlsm)
Sub Деление_с_остатком() |
Const n As Byte = 5 |
Dim m As Integer |
Cells(2, 1) = "Делитель равен ": Cells(2, 3) = n |
m = Cells(3, 3) |
Cells(5, 1) = "Неполное частное от деления m на " & n & "=":Cells(5, 5)=mn |
Cells(6, 1) = "Остаток от деления m на " & n & " равен": Cells(6, 5)=m Mod n |
End Sub |
Первая трока открывает программу с названием «Деление_с_остатком». В скобках пишутся входные данные программы; у нас сейчас их нет. Вторая строка объявляет константу n типа Byte, под которую в памяти компьютера отводится 8 бит (=1 байт) и в эти восемь бит будет записано число 5 в двоичной системе: 00000101. Итак, тип Byte предназначен для записи и обработки целых чисел от 0 до 255 включительно. Заметим, что в теле программы константе запрещено присваивать какие-либо значения, т.е. она может встречаться только по правую сторону знака равенства. В третьей строке объявляется переменная m типа Integer. В общем, оператор вида
Dim идентификатор as тип переменной
выделяет область памяти с заранее оговоренной для данного типа объемом и структурой, а идентификатор есть ссылка и имя этого кусочка памяти.
Типу Integer отводится два байта для записи целого числа в пределах от до . Один бит отводится под запись знака числа: если этот бит равен 0, то число неотрицательно, а если равен 1, то оно отрицательно. Запишем выделенные два байта в виде
Здесь первый бит указывает на знак числа. Если sgn=0, то (2) кодирует число , пределы изменения которого от 0 до . Если же sgn=1, то (2) кодирует отрицательное число
Чертой сверху обозначена унарная операция отрицания, в VBA она имеет имя not:
Итак, строка из шестнадцати единиц кодирует число , а (1,0,0,…,0) кодирует . Следовательно, . Для работы с целыми числами имеется также тип Long, переменным которого выделяется четыре байта с тем же самым принципом кодирования чисел, что и для типа Integer. Следовательно, пределы изменения переменной типа Long -- от до .
В четвертой строке программы мы записываем в активный лист Excel значение делителя. Еще раз подчеркнем, если активным листом был «Лист 2», то данные запишутся именно во второй лист. Двоеточие между операторами -- удобный способ записи нескольких операторов в одной строке. В пятой строке переменной m присваивается значение, содержащееся в ячейке (3,3) (третья строка и третий столбец С). Если в этой ячейке ничего нет, то присваивается 0, если стоит вещественное число типа или то присваивается ближайшее целое, т.е. 6 или 0 в данном случае (этому соответствует функция round(x) в VBA). Если же в ячейке С3 записать целое число за рамками отрезка , то возникла бы ситуация ошибки №6 Overflow, о которой вас немедленно, во время работы программы, известит компилятор VBA. Кстати, перед запуском программы полезно запустить опцию Debug/Compile Project. Произойдет проверка на правильность записи программы. Однако ошибку времени исполнения программы, по типу той, что отмечена выше, никакая компиляторная проверка в начале отследить не может.
В шестой и седьмой строках происходит запись результатов деления с остатком.
Немного теории: любое натуральное число m можно поделить на натуральное число n с остатком так, что
Целые числа q (неполное частное) и r (остаток) определяются в (4) однозначно и им в VBA соответствуют функции
Воспользовавшись окном «Immediate» в VBA проверим работу этих функций:
?53 → 1, ? 5(-3) → -1, ?(-5)(-3) → 1, ?(-5)3 → -1
?5 mod 3 → 2; ? 5 mod -3 → 2; ? -5 mod 3 → -2; ? -5 mod -3 → -2
Мы и видим, что операция нечетна по обоим аргументам, в то время как нечетна по первому и четна по второму аргументу. Кроме того, подстановка нуля вместо делителя выдаст ожидаемую ошибку №11 “Division by zero”.
Отмечу также операцию соединения строк
“по”&”бе”&”да”→ “победа”
Вместо знака & можно пользоваться обычным знаком +.
– Конец работы –
Эта тема принадлежит разделу:
Введение... Курс Фундаментальная и компьютерная алгебра предназначен для студентов специальностей Математика Прикладная...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Немного о БЕЙСИКе
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов