Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_2011__2_МГРИ-РГГРУ.pdf
Скачиваний:
213
Добавлен:
29.03.2016
Размер:
4.01 Mб
Скачать

ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ

В парадигме функционального программирования краеугольный камень — это функция. Процесс вычисления трактуется как вычисление значений функций. Наиболее известными языками функционального программирования являются: 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