- •ГЕОФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
- •ПРАКТИКУМ ПО КУРСУ
- •УЧЕБНОЕ ПОСОБИЕ
- •ВВЕДЕНИЕ
- •ЗАДАНИЕ 1
- •ЗАДАНИЕ 2
- •ЗАДАНИЕ 3
- •ЗАДАНИЕ 4
- •ЗАДАНИЕ 5
- •ЗАДАНИЕ 6
- •СПРАВОЧНИК Управление данными
- •ЗАДАНИЕ 7
- •СПРАВОЧНИК Финансовые функции
- •ЗАДАНИЕ 8
- •ЗАДАНИЕ 9
- •ЗАДАНИЕ 1
- •ЗАДАНИЕ 2
- •ЗАДАНИЕ 3
- •ЗАДАНИЕ 4
- •ЗАДАНИЕ 5
- •ЗАДАНИЕ 6
- •СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ACCESS
- •ЗАДАНИЕ 2
- •ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
- •ЭЛЕКТРОННЫЕ ТАБЛИЦЫ
- •АЛГОРИТМ. СВОЙСТВА АЛГОРИТМОВ.
- •ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ
- •ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
- •СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- •ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ
- •ЯЗЫКИ ПРОГРАММИРОВАНИЯ. КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ.
- •КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВНИЯ
- •ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ Visual Basic for Application (VBA)
- •ТИПЫ АЛГОРИТМОВ И ИХ РЕАЛИЗАЦИЯ НА VBA
- •АЛГЕБРА ЛОГИКИ. ЛОГИЧЕСКИЕ ФУНКЦИИ. БАЗОВЫЕ ЛОГИЧЕСКИЕ ОПЕРАЦИИ.
- •ОСНОВНЫЕ ЗАКОНЫ АЛГЕБРЫ ЛОГИКИ. ПРЕОБРАЗОВАНИЕ ЛОГИЧЕСКИХ ФУНКЦИИ.
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА КОМПЬЮТЕРА - СУММАТОР
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА КОМПЬЮТЕРА - ТРИГГЕР
- •СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД). НАЗНАЧЕНИЕ И ОСНОВНЫЕ ВОЗМОЖНОСТИ.
- •ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ.
- •СПИСОК ЛИТЕРАТУРЫ
ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ
В парадигме функционального программирования краеугольный камень — это функция. Процесс вычисления трактуется как вычисление значений функций. Наиболее известными языками функционального программирования являются: XQuery, Haskell (назван в честь Хаскелла Карри), LISP (Джон МакКарти). Lisp - одно из главных инструментальных средств систем искусственного интеллекта.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ. КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ.
Программа - это набор машинных команд, которые следует выполнить компьютеру для реализации того или иного алгоритма. Иными словами, программа - это форма представления алгоритма для исполнения его машиной.
Первым программистам приходилось писать команды в «машинных кодах», т.е. именно так, как их воспринимает машина. Такой способ составления программ был очень трудоемким, сопровождался большим количеством ошибок и имел множество других недостатков.
Сегодня практически все программы создаются с помощью языков программирования. Языки программирования - искусственные языки. От естественных они отличаются ограниченным набором «слов», значение которых понятно транслятору, и строгими правилами записи команд (операторов). Совокупность подобных требований составляет синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдаѐт сообщение о синтаксической ошибке, а правильно написанное, но не отвечающее алгоритму использование команд языка приводит к семантическим ошибкам (логическим или ошибкам выполнения).
Команды на языке программирования называют операторами или инструкциями. Последовательность таких команд-операторов, реализующих тот или иной алгоритм, называют программой на исходном языке или просто исходным текстом. Это напоминает нам, что, кроме исходного текста, конкретная программа может иметь еще и машинный код, который непосредственно исполняется на машине. Исходные тексты помещают в текстовые файлы.
Существует два типа программ-посредников, работающих с исходными тек-
стами: программа-компилятор и программа-интерпретатор.
Программа-компилятор (от слова compile - составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исход-
91
ного текста. Раньше программы-компиляторы называли просто и точно - трансляторами (переводчиками).
Исполняемый файл – это файл, который может быть обработан или выполнен компьютером без предварительной трансляции. Обычно исполняемый файл получается в результате компиляции и компоновки объектных модулей и содержит машинные команды и/или команды операционной системы. Компиляция в программировании – преобразование программы, представленной на одном из языков программирования, в коды на машин- но-ориентированном языке, которые принимаются и исполняются непосредственно процессором. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. Программа уже переведена в машинные инструкции, однако еще не полностью готова к выполнению. В объектном файле имеются ссылки на различные системные функции.
Компоновщик – модуль системы программирования или самостоятельная программа, которая собирает результирующую программу из объектных модулей и стандартных библиотечных модулей. Этот процесс называется компоновкой, и как раз его результат и есть исполняемый файл.
Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т.е. файл на машинном языке не создается). Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно, стремятся заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу.
Изучив один язык программирования (например, BASIC), можно освоить главное - идеологию программирования. При необходимости можно легко перейти на другой язык, однако для продуктивной работы в нем придется довести до автоматизма навыки правильного написания команд, освоить множество функций, соглашений, умолчаний и других тонкостей, характерных именно для этого языка.
92
Тестовые задания. |
|
|
|
|
|
Задание 1 |
|
|
|
|
|
При работе с программами сущест- |
Создание исполняемого файла из ис- |
||||
вуют этапы: |
ходного текста программы предпола- |
||||
а) компиляции |
гает выполнение этапов… |
||||
б) компоновки |
1. |
а, б |
|
||
в) интерпретации |
2. |
в, г |
|
||
г) исполнения программы. |
3. |
б, в |
|
||
|
|
4. |
а, в |
|
|
Задание 2 |
|
|
|
|
|
Режим интерпретации можно использовать... |
|
|
|
||
|
|
|
|||
1 |
при отладке программ на языке высокого уровня |
|
|
||
2 |
для изменения синтаксиса языка программирования |
|
|||
3 |
для изменения семантики языка программирования |
|
|||
4 |
для компоновки программ на языке высокого уровня |
|
КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВНИЯ
Общепринятой и строгой классификации языков программирования не существует. Поэтому представим классификацию наиболее распространенных в настоящее время языков:
1.языки «низкого» уровня программирования с доступом на уровень компьютерного «железа» Ассемблер;
2.универсальные языки высокого уровня BASIC (VB, VBA), FORTRAN;
3.языки c включением возможностей «низкого» уровня программирования
Pascal (BorlandPascal, ObjectPascal, BorandDelphy), С(C++, C#);
4.объектно-ориентированные SmallTalk, ObjectPascal, C++, VB.Net
5.командные языки JavaScript, VBScript,
6.командные языки манипулирования баз данных dBase, Foxbase, Clipper;
7.объектно-ориентированные языки четвертого поколения (4GL).
Каждая команда на языке ассемблера чаще всего представляет собой одну машинную команду, записанную символическим кодом. Язык ассемблера позволяет создавать наиболее эффективные программы, однако очень трудоемок и требует высокой квалификации программиста. Программирование на этом языке часто называют программированием на низком уровне (хотя программы получаются высокого качества).
Каждой команде на языке высокого уровня обычно соответствует либо несколько машинных команд, либо целая подпрограмма в машинном коде. К языкам высокого уровня (их часто называют алгоритмическими) относятся
FORTRAN (formula translator), BASIC (beginner's all purpose symbolic instruction code), COBOL (Common Business-Oriented Language), C, Pascal, Prolog (programming in logic) и многие другие. Раньше предполагалось, что тот или иной язык
93
уместно использовать в той предметной области, для которой он изобретался (например, FORTRAN - для математических расчетов, COBOL - для коммерческих расчетов, С - для системного программирования и т. д.). Однако бурное развитие информационных технологий привело к сглаживанию возможностей языков, и теперь многие из них могут считаться универсальными.
Например, интересна эволюция языка программирования BASIC. Он был задуман как универсальный язык для начинающих (по аналогии с BASIC ENGLISH - подмножеством английского языка, выделенным для обучения иностранцев). Первые версии этого языка содержали небольшое количество самых необходимых команд и предусматривали только режим интерпретации. Современные версии языка BASIC, например,Visual Basic, могут использоваться в построении информационных систем, основанных на так называемой технологии «клиент-сервер».
Фирма Microsoft использует Visual Basic для расширения функций своих программных продуктов. В Microsoft Office предусмотрен универсальный язык
Visual Basic for Applications (VBA - Visual Basic для приложений). С помощью
VBA можно создавать собственные программные модули, собственные интерфейсы для офисных приложений Word, Excel, Access.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ Visual Basic for Application (VBA)
ИМЯ И ЗНАЧЕНИЕ ПЕРЕМЕННОЙ
В математике переменные - это данные, которые меняют свои значения. В программировании переменная - это область в оперативной памяти компьютера, куда во время работы программы можно занести и хранить в закодированном виде некоторое значение (целое или действительное число либо символьный текст), которым при необходимости можно пользоваться и которое можно изменять.
Каждая единица информации хранится в ячейках памяти компьютера, имеющих свои адреса. На практике заранее неизвестно, в каких конкретно ячейках памяти во время работы программы будут записаны еѐ данные, поэтому в языках программирования введено понятие переменной, позволяющее не привязываться к конкретным адресам, а обращаться к содержимому памяти с помощью идентификатора или имени, как правило, последовательности, содержащей английские буквы, цифры, символы подчѐркивания и начинающейся не с цифры. Например, x, a1, Text_1
Имя каждой переменной (идентификатор) уникально и не может меняться в процессе выполнения программы. Количество символов в имени не может быть более 255.
94
Языки программирования позволяют работать с простыми переменными и индексированными (элементами массива). В каждом языке программирования есть набор операторов, позволяющих давать переменным значения, то есть заносить их в ячейки, названные именем переменной. Переменная может получить свое значение, если, например, его ввести с клавиатуры. Значение переменной можно присвоить - занести в ее ячейку специально существующей для этого командой, которая так и называется - оператором присваивания.
ТИПЫ ДАННЫХ
Значение переменной, занесенное и хранимое в ячейке с ее именем, может быть различным по типу числом (целым или действительным) либо символьным текстом. В соответствии со значением переменные называются целыми, действительными, символьными. Очевидно, что операции, которые можно произвести с числами, нельзя осуществить с символьным текстом. Объем памяти для хранения разных по типу значений тоже потребуется различный. Это ясно уже потому, что при хранении целого числа занимать место под нулевую дробную часть было бы нерационально. Поэтому в языках программирования предусмотрены операторы, объявляющие тип переменной с указанным именем.
При несоответствии типов данных осуществляемым операциям выполнение программы будет прервано с выдачей сообщения об ошибке из-за несоответствия типов, если встретится команда, где будут одновременно присутствовать имена переменных символьного типа, вещественного и/или целого.
На работе программы и получаемом результате никак не отразится занесение целого числа в ячейку, предназначенную, в соответствии с именем переменной, для значений вещественного типа. В этом случае автоматически будет образована нулевая дробная часть, а участвовать целые и действительные числа могут в одинаковых операциях (что соответствует известному включению области целых чисел в область действительных).
Если же действительное число станет значением переменной целого типа, то из-за отсутствия места для хранения дробной части последняя просто будет отброшена (произойдет преобразование типа значения), что в этом случае равносильно потере точности расчета. Это может оказаться незамеченным при получении результата, так как такое несоответствие типов значения и переменной не вызывает прерывания в работе программы.
Тип переменной определяется заданным простым или составным типом данных, которые могут быть назначены в блоке описания программы.
95
Типы данных в системе VBA
Тип пере- |
Возможные значения |
|
Объѐм памяти |
|
менной |
|
|||
|
|
|
||
Byte |
Целые числа от 0 до 255 |
1 |
байт |
|
Integer |
Целые числа от -32768 до 32767 |
2 |
байта |
|
Long |
Целые числа двойной длины |
4 |
байта |
|
Single |
Десятичные числа одинарной точности |
4 |
байта |
|
от 1,401298Е-35 до 3,40228223Е38 |
||||
|
|
|
||
|
Десятичные числа двойной точности |
|
|
|
Double |
от 1,94065645841247 Е-324 |
8 |
байтов |
|
|
до 1,79769313486232 Е+308 |
|
|
|
Boolean |
Логическое значение True и False |
2 |
байта |
|
String |
Строка символов |
1 |
байт на символ |
|
Currency |
Число в денежном формате |
8 |
байтов |
|
Date |
от 1 января 100 года |
8 |
байтов |
|
до 31 декабря 9999 года |
||||
|
|
|
||
Object |
Ссылки переменной |
4 |
байта |
|
Variant |
Любые значения |
>=16 байтов |
ОБЪЯВЛЕНИЕ ТИПА ПЕРЕМЕННОЙ В ПРОГРАММЕ
Объявление типа переменной означает команду установить границы значений переменной, которые определяются еѐ типом.
Dim ИмяПеременной as Тип
Например: |
|
|
Dim A as Integer |
- переменная А целого типа. |
|
A = -12345 |
|
|
Dim B as Single |
- переменная В вещественного типа. |
|
B = 12345.6789 |
|
|
Dim C as String |
- переменная С строка текста. |
|
C = ―Исходные данные‖ |
|
|
Dim X(10) as Integer |
-одномерный массив X целого типа. |
|
X(1) = 1 |
|
|
X(2) = -1 |
|
|
Dim L as Boolean |
- переменная L логического типа. |
|
L = True |
|
|
96
Тестовое задание 1.
Задан одномерный
массив X1, X2, …,XN . |
|
|
|
1. |
индекс последнего отрицательного элемента |
||
Фрагмент алгоритма |
2. |
минимальный элемент массива |
|
определяет… |
|||
3. |
количество отрицательных элементов |
||
|
|||
|
4. |
индекс первого отрицательного элемента |
ОПЕРАТОР ПРИСВАИВАНИЯ
Для присвоения переменной некоторого значения используется оператор присваивания. При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства, получает значение, равное значению выражения справа от знака равенства.
ИмяПеременной = Выражение a = 5
b = a + 4.5 b = b + a x(1) = b
Cells(1, 1) = Cells(1, 1) + 1
Арифметические выражения и функции.
Арифметическое выражение – это последовательность чисел, констант, переменных, функций, заключѐнных в круглые скобки, которые соединены между собой знаками арифметических операций.
Порядок действий такой же, как в математике, при необходимости используют скобки.
Выражение может содержать функции. Функция – это правило, которое ставит в соответствие значению аргумента из области его допустимых значений ровно одно значение самой функции. Существуют встроенные функции
97