Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие по информатике. Часть 3

.pdf
Скачиваний:
25
Добавлен:
31.05.2015
Размер:
1.49 Mб
Скачать

Сибирская государственная геодезическая академия

Учебное пособие «Информатика»

Часть 3

Новосибирск

2012

2

СОДЕРЖАНИЕ

Часть 1. Алгоритмы..........................................................................................

4

1

Свойства алгоритма ....................................................................................

4

2

Виды алгоритмов ........................................................................................

6

3

Технология разработки алгоритмов и программ.......................................

9

4

Контрольные вопросы ..............................................................................

16

Часть 2. Визуальное объектно-ориентированное проектирование..............

18

1

Язык программирования Borland Delphi .................................................

18

2

Определение функциональности приложения ........................................

24

3

Особенности объектно-ориентированного программирования .............

26

4

Методы ......................................................................................................

29

5

Язык Object Pascal.....................................................................................

29

5.1

 

Алфавит ..............................................................................................

29

5.2

 

Словарь языка.....................................................................................

30

5.3

Данные в Object Pascal .......................................................................

30

5.4

 

Структура программы ........................................................................

31

5.5

 

Переменные ........................................................................................

32

5.6

 

Типы данных ......................................................................................

33

5.7

 

Арифметические выражения .............................................................

37

5.8

 

Логические выражения ......................................................................

39

5.9

 

Строковые выражения .......................................................................

40

5.10

Подпрограммы (процедуры и функции)........................................

42

5.11 Описание процедур и функций ......................................................

43

5.12

Структура модуля языка программирования Object Pascal ..........

43

5.13

Операторы (инструкции) языка Object Pascal ...............................

45

5.14

Подпрограммы ................................................................................

50

5.15

Знакомство с компонентами ...........................................................

51

6

Работа в Delphi с массивами ....................................................................

55

7

Контрольные вопросы ..............................................................................

58

Часть 3. Visual Basic for Applications .............................................................

59

1

Основные понятия языка VBA.................................................................

59

2

Создание функций пользователя..............................................................

61

3

Встроенные типы данных ........................................................................

61

4

Переменные...............................................................................................

62

5

Массивы переменных ...............................................................................

62

6

Объявление констант ................................................................................

63

7

Операции языка VBA ...............................................................................

63

8

Встроенные функции VBA.......................................................................

64

9

Функции пользователя..............................................................................

64

10

 

Операторы языка VBA ..........................................................................

64

10.1

Оператор присваивания ..................................................................

64

10.2

Оператор комментариев .................................................................

65

10.3

Процедуры.......................................................................................

65

10.4

Операторы управления ...................................................................

67

 

 

3

 

10.5

Операторы повтора .........................................................................

70

11

Встроенные диалоговые окна ...............................................................

75

11.1

Окно ввода информации.................................................................

75

11.2

Встроенные диалоговые окна для обмена сообщениями .............

75

11.3

Диалоговые окна пользователей ....................................................

77

12

Контрольные вопросы ...........................................................................

79

Литература ......................................................................................................

80

4

ЧАСТЬ 1. АЛГОРИТМЫ

1 СВОЙСТВА АЛГОРИТМА

Ежедневно каждый из нас решает задачи различной сложности: стоит ли утром идти в школу, как быстрее добраться до школы в условиях недостатка времени и пр. Некоторые задачи решаются просто, так как они встречаются каждый день, другие задачи требуют длительных размышлений для нахождения решения. Причем зачастую решение найти не удается. Но в любом случае решение каждой задачи можно подразделить на простые этапы.

Например, Вас отправили вечером за хлебом. Решение данной задачи можно разбить на следующие шаги:

1.Пойти в магазин.

2.Если магазин уже закрыт (других магазинов рядом нет), то идти домой (конец задачи с отрицательным результатом).

3.Если магазин открыт, перейти к п.4.

4.Зайти в магазин.

5.Если есть хлеб, то перейти к п.6, иначе идти домой (конец задачи с отрицательным результатом).

6.Оплатить стоимость хлеба.

7.Получить хлеб.

8.Конец решения задачи с положительным результатом.

Приведенная последовательность шагов является алгоритмом решения задачи «Купить хлеб».

Для решения задачи надо знать, что дано и что следует получить, т.е. у задачи есть исходные данные и искомые результаты. Для получения результатов необходимо знать способ решения задачи, то есть располагать алгоритмом, в котором указано, какие действия и в каком порядке следует выполнить, чтобы решить задачу.

Алгоритм – это точная конечная система правил, определяющая содержание и порядок действий исполнителя над некоторыми объектами (исходными и промежуточными данными) для получения после конечного числа шагов искомого результата. [1]

Любой алгоритм обладает следующими свойствами.

1.Выполнение алгоритма разбивается на последовательность законченных действий. Каждое действие должно быть закончено исполнителем прежде, чем он приступит к исполнению следующего действия. Это свойство называется дискретностью. Произвести каждое отдельное действие исполнителю предписывает специальное указание в записи алгоритма, называемое командой.

2.Детерминированность – на каждом шаге однозначно определено преобразование объектов среды исполнителя, полученной на предыдущих шагах алгоритма. Если алгоритм многократно применяется к одному и тому же набору исходных данных, то на выходе он получает каждый раз один и тот же результат.

5

Понятие детерминированность объединяет в себе выполнение двух свойств

точности и понятности.

3.Точность – запись алгоритма должна быть такой, чтобы на каждом шаге его выполнения было известно, какую команду надо выполнять следующей.

4.Понятность – алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно, т.е. одно и то же предписание после исполнения должно давать один и тот же результат. Алгоритм всегда рассчитан на выполнение «не размышляющего» исполнителя.

5.Результативность – каждый шаг после своего завершения создает среду, в которой все объекты однозначно определены. Если это по каким-то причинам невозможно, алгоритм должен сообщать, что решение задачи невозможно. При точном исполнении команд алгоритма процесс должен завершиться за точное количество шагов, и при этом должен быть получен ответ на вопрос задачи.

6.Массовость – алгоритм работает правильно на некотором множестве исходных данных, которое называется областью применения алгоритма, т.е. алгоритм пригоден для решения любой задачи из некоторого класса задач. [2]

Алгоритм может быть описан одним из трех способов:

словесным (пример в начале раздела); графическим (виде специальной блоксхемы);

с помощью специальных языков программирования.

Блок-схема – распространенный тип схем, описывающий алгоритмы или процессы, изображая шаги в виде блоков различной формы, соединенных между собой стрелками. Основные элементы схем алгоритма представлены в таблице 1.

Таблица 1. Основные элементы блок-схем

Наименование

Обозначение

 

 

 

Функция

 

 

 

 

Элемент отображает вход из внешней среды

Терминатор

 

или

выход

из нее (наиболее частое

 

применение

начало и конец

программы).

(пуск-останов)

 

 

Внутри

 

фигуры

 

записывается

 

 

 

 

 

 

соответствующее действие.

 

 

 

 

Выполнение одной или нескольких операций,

 

 

обработка данных любого вида (изменение

Процесс

 

значения данных, формы

представления,

 

 

расположения). Внутри фигуры записывают

 

 

непосредственно сами операции, например,

 

 

операцию присваивания: k = 15*x + y;

 

 

Отображает

 

решение

или

функцию

 

 

переключательного типа с одним входом и

Решение

 

двумя или более альтернативными выходами,

 

из которых только один может быть выбран

 

 

 

 

после вычисления условий, определенных

 

 

внутри этого элемента. Если выходов два или

 

 

три,

то обычно каждый выход обозначается

6

 

 

линией, выходящей из

оставшихся

вершин

 

 

(боковых и нижней). Если выходов больше

 

 

трех, то их следует показывать одной линией,

 

 

выходящей из вершины (чаще нижней)

 

 

элемента, которая затем разветвляется.

 

 

Соответствующие

результаты

вычислений

 

 

могут записываться рядом с линиями,

 

 

отображающими эти пути. Примеры решения:

 

 

в общем случае − сравнение (три выхода: >, <,

 

 

=); в программировании − условные

 

 

операторы if (два выхода: true,

false) и case

 

 

(множество выходов).

 

 

 

 

 

Символ отображает выполнение процесса,

 

 

состоящего из одной или нескольких

Предопреде-

 

операций, который определен в другом месте

ленный

 

программы (в подпрограмме, модуле). Внутри

процесс

 

символа записывается название процесса и

 

 

передаваемые в него данные. Например, в

 

 

программировании − вызов процедуры или

 

 

функции

 

 

 

 

 

 

Преобразование данных в форму, пригодную

Данные

 

для обработки

(ввод)

или

отображения

 

результатов обработки

(вывод).

Данный

(ввод-вывод)

 

 

символ не определяет носителя данных (для

 

 

 

 

указания типа носителя данных используются

 

 

специфические символы).

 

 

Пример алгоритма, записанного в виде блоксхемы, представлен на рис. 1

Рис. 1. Блоксхема

2 ВИДЫ АЛГОРИТМОВ

Алгоритмы как логико-математические средства отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в

7

зависимости от цели, начальных условий задачи, путей ее решения, определение действий исполнителя подразделяются следующим образом [2]:

механические алгоритмы, или называемые детерминированными, жесткими (например, алгоритм работы двигателя), задают определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый результат, если выполняются те условия процесса, для которых разработан алгоритм.

гибкие алгоритмы:

o вероятностные (стохастические) алгоритмы дают программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата;

oэвристические алгоритмы - это алгоритмы, в которых достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.

o линейные алгоритмы - наборы команд, выполняемых последовательно во времени друг за другом;

oразветвляющиеся алгоритмыалгоритмы, содержащие хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов;

o циклические алгоритмы – алгоритмы, предусматривающие многократное повторение одного и того же действия (или действий) над исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов;

o вспомогательные алгоритмы (процедуры) - алгоритмы, ранее разработанные и целиком используемые при алгоритмизации конкретных задач. Рассмотрим подробнее три основных вида алгоритмов: линейный, разветвляющийся и циклический

Линейный алгоритм

Приведем пример записи алгоритма в виде блок-схемы, в виде программы на алгоритмическом языке и на языке Паскаль. В качестве примера рассмотрим решение задачи вычисления среднего арифметического из двух чисел, водимых с клавиатуры.

8

Разветвляющийся алгоритм

В качестве примера рассмотрим алгоритм нахождения максимального из двух чисел, введенных с клавиатуры.

Циклический алгоритм

Работу циклического алгоритма рассмотрим на примере нахождения суммы четных чисел, находящихся в диапазоне от 0 до n (n вводится с клавиатуры).

9

Как правило, при разработке программ используются одновременно все типы алгоритмов, причем в один циклическую структуру могут включаться так называемые вложенные циклы. В циклах, как правило, используются структуры ветвления. Поэтому современные программу представляют собой довольно сложные алгоритмические конструкции.

3 ТЕХНОЛОГИЯ РАЗРАБОТКИ АЛГОРИТМОВ И ПРОГРАММ

Разработка алгоритма является важным конструктивным компонентом программирования, не зависящий от особенностей синтаксиса языков программирования и специфики функционирования конкретных вычислительных машин.

При решении на ЭВМ некоторой задачи работа распадается на следующие основные этапы [1]:

1)математическая формулировка задачи – определение состава и характера исходных данных, результатов, записи условия задачи с помощью математических обозначений;

2)разработка методики решения задачи – установление зависимости всех искомых результатов от исходных данных, указание методов получения результатов, которые могут быть реализованы на ЭВМ;

10

3)разработка алгоритма решения задачи – четкая установленная последовательность действий, записанная в виде текстуального, графического или формального языка с помощью математических описаний;

4)программирование – запись решающего алгоритма на языке программирования, и последующей трансляции на машинный язык;

5)отладка программы – устранение в программе синтаксических, семантических и алгоритмических ошибок;

6)решение задачи на ЭВМ и анализ полученных результатов. Вышеописанные этапы решения задачи на ЭВМ не менялись вне

зависимости от смены поколений ЭВМ, а подходы к созданию алгоритмов и требования к ним существенно изменялись в ходе эволюции компьютеров.

В эпоху ЭВМ 1-го и 2-го поколений основным требованием к алгоритму были [1]:

минимальные требования в отношении оперативной памяти компьютера, т.е. программа должна была использовать наименьшее возможное число ячеек оперативной памяти компьютера;

минимальное время исполнения (минимальное число операций). При этом программы составлялись из команд, исполнявшихся процессором. Это:

1)операции присваивания;

2)простейшие арифметические операции;

3)операции сравнения чисел;

4)операторы безусловного и условного переходов;

5)операторы вызова подпрограмм (вспомогательных алгоритмов).

Такой подход в создании алгоритмов, в котором операции непосредственно выполняются компьютером, принято называть операционным (или операциональным). Основные недостатки алгоритмов, к которым приводил операциональный подход:

злоупотребление командой условного и безусловного переходов зачастую приводило к очень запутанной структуре программы;

вместе с разнообразными уловками, направленными на повышение эффективности программы (т.е. минимальных требований к оперативной памяти и минимального времени выполнения), это приводило к непонятности программ, делая программирование трудоемким, сложным и чрезвычайно дорогостоящим.

Операция присваивания состоит в том, что значение величины помещается в ячейку памяти компьютера. Эта ячейка может либо принадлежать оперативной памяти, либо находиться в арифметико-логическом устройстве, которое является частью процессора и выполняет основные операции. После операции присваивания указанное значение сохраняется в этой в ячейке памяти, куда оно было помещено. Оно может быть заменено другим значением в результате другого присваивания.

Ячейка памяти, где размещается значение, в программе обозначается идентификатором (именем). Например, x, y1, z_3.

Переменные могут быть разных типов - числовые (целые или действительные), литерные и логические. Значения различных типов