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

Оператор безусловного перехода имеет следующий вид: goto, здесь goto — зарезервированное слово: — метка.

Метка — это произвольный идентификатор, позволяющий име­новать некоторый оператор программы и таким образом ссылаться на него.

Можно теоретически показать, что достаточно if- и while-операторов, чтобы записать любую необходимую управляющую структуру. Однако есть несколько вполне определенных ситуаций, где лучше использовать оператор goto.

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

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

Лекция 4. Встроенные типы, инструкции и операторы (Программирование на C++, часть 1)

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

В современных языках Object Pascal, Ada, C++ и Eiffel есть спе­циальные языковые конструкции, так называемые исключения, ко­торые непосредственно решают и эту проблему.

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

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

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

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

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

здесь имя процедуры (правильный идентификатор); — список формальных параметров.

Список формальных параметров необязателен и может отсутст­вовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например procedure MyProc (a: Real; b: Integer; с: Char);

Структура программы. Управляющие последовательности. Курс по разработке на Си и Си++. Урок 2

function MyFunc (a, b: Real): Real;

Операторы тела подпрограммы рассматривают список фор­мальных параметров как своеобразное расширение раздела описа­ний: все переменные из этого списка могут использоваться в лю­бых выражениях внутри подпрограммы. Так осуществляется на­стройка алгоритма подпрограммы на конкретную задачу. Работа с процедурами и функциями отличаются в следующем:

  1. в заголовке функции помимо описания формальных пара­метров обязательно указывается тип возвращаемого ею результата;
  2. для возврата функцией значения в точку вызова среди ее операторов должен быть хотя бы один, в котором имени функции или переменной Result присваивается значение результата;
  3. вызов процедуры выполняется отдельным оператором;
  4. вызов функции может выполняться там, где допускается ста­вить выражение, например, в правой части оператора присваивания.
Читайте также:
Инструкция к программе супермаг

Источник: studfile.net

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

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

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

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

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

здесь имя процедуры (правильный идентификатор); — список формальных параметров.

Список формальных параметров необязателен и может отсутст­вовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например procedure MyProc (a: Real; b: Integer; с: Char);

function MyFunc (a, b: Real): Real;

Операторы тела подпрограммы рассматривают список фор­мальных параметров как своеобразное расширение раздела описа­ний: все переменные из этого списка могут использоваться в лю­бых выражениях внутри подпрограммы. Так осуществляется на­стройка алгоритма подпрограммы на конкретную задачу. Работа с процедурами и функциями отличаются в следующем:

1) в заголовке функции помимо описания формальных пара­метров обязательно указывается тип возвращаемого ею результата;

2) для возврата функцией значения в точку вызова среди ее операторов должен быть хотя бы один, в котором имени функции или переменной Result присваивается значение результата;

3) вызов процедуры выполняется отдельным оператором;

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

Источник: studopedia.su

Технологии программирования 48 стр.

Технологии программирования

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

Технология ActiveX этой фирмы построена на основе компонент СОМ. Программисты на Visual Basic, C++, Delphi и Java могут воспользоваться управляющими элементами ActiveX для ускорения разработки своих приложений и страниц Web. Конечно, каждому приложению по-прежнему будут нужны и некоторые специализированные компоненты, но для построения простых приложений можно обойтись стандартными.

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

Читайте также:
Как сделать программу victoria загрузочной флешки

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

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

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

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

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

Ограничение 1. Компонента должна скрывать используемый язык программирования. Компоненты могут быть разработаны с помощью практически любого процедурного языка, включая Ada, С, Java, Modula-3, Oberon и Pascal. Любой язык, в том числе Smalltalk и Visual Basic, можно приспособить к использованию компонент СОМ. Любой клиент должен иметь возможность использовать компоненту независимо от языков программирования, на которых написаны тот и другой.

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

Ограничение 3. Компоненты СОМ можно модернизировать, не нарушая работы старых клиентов. СОМ предоставляет стандартный способ реализации разных версий компонент. Новые версии компонент должны работать как с новыми клиентами, так и старыми.

Ограничение 4. Компоненты СОМ являются перемещаемыми по сети, причем перемещаемость по сети должна быть прозрачной. Компонента на удаленной системе рассматривается так же, как компонента на локальном компьютере. Необходимо, чтобы компонента и использующая ее программа могли выполняться внутри одного процесса, в разных процессах или на разных машинах. Клиент должен рассматривать удаленную компоненту так же, как локальную. Если бы с удаленными компонентами надо было бы работать иначе, чем с локальными, то потребовалось бы перекомпиляция клиента всякий раз, когда локальная компонента перемещается в другое место сети.

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

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

Читайте также:
Как пользоваться программой reg organizer видео

Технологии программирования

Рис. 6.2. Поэтапное получение новых приложений

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

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

• Программная система может состоять из отдельных, разработанных разными организациями выполняемых программ; из программ, обменивающихся данными через порты; из отдельных резидентных программ.

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

• Разработка программ из компонент — так называемых приложений компонентной архитектуры — происходит совершенно иначе. С появлением технологии разработки развивающихся и рассредоточенных (многомашинных) комплексов программ, основанной на модели компонентных объектов (СОМ), единого целого больше нет: программы состоят из отдельных компонент. Компонента поставляется пользователю как двоичный код, скомпилированный, скомпонованный и готовый к использованию. Доступ к этому коду осуществляется через точно документированный интерфейс. Во время выполнения компоненты подключаются к другим компонентам, формируя программу.

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

1. Что такое архитектура программ?

2. Являются ли синонимами понятия «структура» и «архитектура»?

3. В чем заключается процесс разработки архитектуры программы?

4. Как реализуется архитектура системы из отдельных программ?

5. Что такое резидентная программа?

6. Как осуществляется обмен данными через порты?

7. Перечислите принципы подхода к проектированию архитектуры системы с позиции уровней абстракции Дейкстры.

8. Почему из обычной программы создать распределенную программу легче, если она состоит из компонент?

9. Перечислите ряд ограничений, которые накладываются на компоненты.

10. Посредством чего предусматривается взаимозаменяемость компонент?

Глава 7
ТЕХНОЛОГИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

7.1. ПОНЯТИЕ СТРУКТУРЫ ПРОГРАММЫ

Структура программы — искусственно выделенные программистом взаимодействующие части программы. Использование рациональной структуры устраняет проблему сложности разработки; делает программу понятной людям; повышает надежность работы программы при сокращении срока ее тестирования и сроков разработки вообще.

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

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

Источник: sharlib.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru