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

Инф VBA

.pdf
Скачиваний:
31
Добавлен:
29.03.2016
Размер:
1.88 Mб
Скачать

40

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

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

К декларативному (непроцедурному) программированию относятся

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

Она задает данные и соотношения между ними. После этого системе задают вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос.

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты. В языках программирования понятие объекта реализовано как совокупность свойств, методов их обработки и событий, на которые данный объект может реагировать. Более подробно об объектно-

ориентированном программировании будет рассказано позже.

Сценарные или скриптовые языки (scripting language) — это высокоуровневые языки программирования для компьютерных сетей. Они служат для написания сценариев (программ, имеющая дело с готовыми программными компонентами).

Контрольные вопросы к главе 4

1.Первым языком программирования высокого уровня, созданным для научно-технических расчетов, считается язык…

41

A.COBOL

B.BASIC

C.LISP

D.FORTRAN

E.JAVA

2.Структурным языком программирования является…

A.PHP

B.BASIC

C.С++

D.PROLOG

E.DELPHI

3.Языком логического программирования является…

A.C++

B.PASCAL

C.PROLOG

D.LISP

4.Язык программирования АДА, который, в частности, был использован при разработке комплекса пилотажно-навигационного оборудования для российского самолета-амфибии Бе-200, был создан в ______ году.

A.1979

B.1947

C.2001

D.2000

E.1995

5.Язык BASIC был создан для…

A.выполнения научно-технических расчетов

B.выполнения экономических расчетов

C.компиляции других программ

D.работы с текстами

42

E.обучения программированию

6.Для создания Web-приложений не используется язык…

A.PHP

B.JAVA SCRIPT

C.PERL

D.ALGOL

7.Внутреннее представление данных в памяти компьютера определяется…

A.случайным образом

B.системой счисления

C.типом данных

D.типом транслятора

E.средой программирования

8.Выражению соответствует следующее арифметическое выражение на языке программирования (операция возведения в степень обозначена символом «^»)…

A.

B.

C.

D.

9.Значение переменной y получается в результате выполнения оператора присваивания y=a/b*c. Если a = 30, b = 3 и c = 5, то значение переменной y

будет равно…

A.y=50

B.y=2

C.y=21

43

D.y=15

E.y=450

10.Функция RANDOM(x) возвращает случайное целое число в диапазоне от 0

до (x-1). В переменную y требуется поместить случайное целое число в диапазоне от 10 до 25 включительно. Это сделает оператор…

A.y:=RANDOM(10)+8

B.y:=RANDOM(16)+10

C.y:=RANDOM(25)+10

D.y:=RANDOM(10)+6

E.y:=RANDOM(20)+5

44

ГЛАВА 5 Понятие о структурном программировании. Модульный

принцип программирования. Подпрограммы. Принципы проектирования

программ "сверху-вниз" и "снизу-вверх"

Структурное программирование – методология разработки программного

обеспечения, в основе которой лежит представление программы в виде

иерархической структуры блоков.

Принципы структурного программирования

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

2)Принцип формальности. предполагает строгий методический подход к программированию, придает творческому процессу определенную строгость и дисциплину

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

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

Методология структурного программирования

1)В соответствии с методологией структурного программирования любая программа представляет собой структуру, построенную из трех типов базовых конструкций:

линейная конструкция – однократное последовательное выполнение операций;

ветвление – действия могут производиться по одному из нескольких направлений (ветвей), в зависимости от значения какого-то логического условия;

45

цикл – многократное исполнение одной и той же операции до тех пор,

пока выполняется условие работы цикла.

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

В структурном программировании недопустим оператор передачи управления в любую точку программы или оператор безусловного перехода (Go

To).

2) Одним из основных подходов структурного программирования является принцип «разделяй и властвуй», который определяет способ решения трудных задач через разделение их на множество мелких, легко решаемых.

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

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

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

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

46

программировании существует два вида подпрограмм: процедуры и функции.

Процедура – это подпрограмма, выполняющая определенную последовательность действий. Функция – это подпрограмма, которая оперирует определенными данными и всегда возвращает некоторое результирующее значение.

4) Одним из важнейших технологических приемов структурного программирования является декомпозиция решаемой задачи на подзадачи.

Подзадача – это более простая с точки зрения программирования часть исходной задачи. Алгоритмы решения таких подзадач называются вспомогательными алгоритмами. В связи с этим возможны два пути в построении алгоритма: «сверху-вниз» и «снизу-вверх». Распространены две методики (стратегии) разработки программ: программирование "сверху вниз" и

программирование "снизу вверх". Программирование "сверху вниз", или

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

Программирование "снизу вверх", или восходящее программирование

это методика разработки программ, начинающаяся с разработки подпрограмм

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

47

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

Модули.

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

Модуль это подпрограмма, но оформленная в соответствии с особыми

правилами:

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

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

3.Модуль может вызывать другие модули по их именам.

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

5.Модуль кодируется только стандартными структурами и тщательно комментируется.

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

48

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

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

должна вестись по разработанному заранее плану и начинаться с верхних модулей схемы иерархии. Недостающие модули нижних уровней заменяются

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

Концепция структурного программирования предполагает разбиение программы на отдельные модули согласно принципу утаивания информации.

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

Идентификатором называется строка символов, используемая для идентификации или именованная объекта (константы, типа, переменной,

процедуры, функции).

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

Область видимости идентификаторов определяется местом их объявления.

Если идентификаторы допускается использовать только в рамках одной процедуры или функции, то такие идентификаторы называются локальными.

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

49

Правила определения области видимости для идентификаторов:

1)действуют все идентификаторы, определенные внутри подпрограммы;

2)действуют все идентификаторы окружающего контекста, если их имена отличаются от имен, объявленных внутри подпрограммы;

3)локальные идентификаторы подпрограммы во внешнем окружении не действуют никогда;

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

Контрольные вопросы к главе 5

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

A.визуального

B.структурного

C.логического

D.графического

E.космического

2)В структурном программировании по отношению к подпрограммам верным является утверждением:

A.списки формальных и фактических параметров могут не совпадать по количеству элементов и их типу

B.подпрограмма должна быть вызвана не более 1 раза

C.подпрограмма может не иметь имени

D.подпрограмма может не иметь параметров

3)Имеется задача: «Вычислить площадь поверхности шара, зная его диаметр».

Какую структуру необходимо использовать при решении данной задачи?

A.ветвления