Модульное и объектно-ориентированное программирование

Автор работы: Пользователь скрыл имя, 12 Декабря 2011 в 17:09, курсовая работа

Краткое описание

Целью данной работы является рассмотрение принципов модульного и объектно-ориентированного программирования. Для достижения поставленной цели необходимо решить следующие задачи:
Рассмотреть эволюцию языков программирования
Изучить принципы модульного и объектно-ориентированного программирования
Сравнить эти технологии
Сделать вывод о возможности использования данных исследования в работе бухгалтера.

Содержание

Введение 3
1.Модульное и объектно-ориентированное программирование 4
1.1. Основные понятия 4
1.2. Классификация языков программирования 5
1.3. Модульное программирование 8
1.3. Объектно-ориентированное программирование 10
Заключение 14
2. Практическая часть 15
2.1.Общая характеристика задачи 15
2.2. Описание алгоритма решения задачи 16
Список литературы 18

Вложенные файлы: 1 файл

4723.doc

— 175.00 Кб (Скачать файл)

Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.

1.2.4.Автокоды

Есть  также языки, включающие в себя все  возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.

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

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

Обе указанных  системы используют трансляторы  с ЯСК и набор макрокоманд, которые также являются операторами автокода.

Развитые  автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. Более полная информация о языке Ассемблера см. ниже.

1.2.5. Макрос

Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых  действий ЭВМ на более сжатую форму  - называется Макрос (средство замены).

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

Макрос одинаково может работать, как с программами, так и с данными.

1.2.6. Машинно-независимые языки

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

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

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

1.2.7.  Проблемно – ориентированные языки

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

Проблемных  языков очень много, например:

Фортран, Алгол – языки, созданные для решения математических задач;

Simula, Слэнг - для моделирования;

Лисп, Снобол – для работы со списочными структурами.

Об этих языках я расскажу дальше.

1.2.8. Универсальные языки

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

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

1.2.9. Диалоговые языки

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

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

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

Одним из примеров диалоговых языков является Бэйсик.

Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.

1.2.10. Непроцедурные языки

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

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

Табличные методы легко осваиваются специалистами  любых профессий.

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

Классификационная схема языков программирования

 
 
 
 
 
 
 
 

1.3. Модульное  программирование 

      Модульное программирование – это организация  программы как совокупности небольших  независимых блоков, называемых модулями, структура и поведение которых  подчиняется определенным правилам[4,С. 24]. Модуль – это автономно компилируемая программная единица,  включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры, функции) и, возможно, некоторые исполняемые операторы инициирующей части[4, С. 26]. Использование модулей – прекрасный инструмент для разработки библиотек прикладных программ  и мощное средство модульного программирования.

Модульное программирование предназначено для  разработки больших программ.

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

     Концепцию модульного программирования можно  сформулировать в виде нескольких понятий  и положений:

  • Функциональная декомпозиция задачи - разбиение большой задачи на ряд более мелких, функционально самостоятельных подзадач - модулей. Модули связаны между собой только по входным и выходным данным.
  • Модуль - основа концепции модульного программирования. Каждый модуль в функциональной декомпозиции представляет собой "черный ящик" с  одним входом и одним выходом. Модульный подход позволяет безболезненно производить модернизацию программы в процессе ее эксплуатации и облегчает ее сопровождение. Дополнительно модульный подход позволяет разрабатывать части программ одного проекта на разных языках программирования, после чего с помощью компоновочных средств объединять их в единый загрузочный модуль.

      Как правило, каждый модуль содержит паспорт, в котором указаны все основные его характеристики: язык программирования, объем, входные и выходные переменные, их формат, ограничения на них, точки входа, параметры настройки и т.д. Объем модуля обычно не превышает 1000 команд ЭВМ или операторов языка программирования. В противном случае модуль становится громоздким и трудным к восприятию и использованию.

  • Реализуемые решения должны быть простыми и ясными. Если назначение модуля непонятно, то это говорит о том, что декомпозиция начальной или промежуточной задачи была проведена недостаточно качественно. В этом случае необходимо еще раз проанализировать задачу и, возможно, провести дополнительное разбиение на подзадачи. При наличии сложных мест в проекте их нужно подробнее документировать с помощью продуманной системы комментариев. Этот процесс нужно продолжать до тех пор, пока вы действительно не добьетесь ясного понимания назначения всех модулей задачи и их оптимального сочетания.
  • Назначение всех переменных модуля должно быть описано с помощью комментариев по мере их определения. [2,с.61]
 

    1.4.Объектно-ориентированное программирование (ООП) 

      Объектно-ориентированное  программирование является в настоящее время наиболее популярной технологией программирования. Объектно-ориентированными языками программирования являются Visual Basic, Visual Basic for Application (VBA), Delphi и др. Идея ООП заключается в стремлении связать данные  с обрабатывающими эти данные процедурами в единое целое - объект. ООП основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм.

    Основные  идеи объектно-ориентированного подхода  опираются на следующие положения:

    - Программа представляет собой  модель некоторого реального  процесса, части реального мира.

    - Модель реального мира или  его части может быть описана  как совокупность взаимодействующих  между собой объектов.

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

    - Взаимодействие между объектами  осуществляется посылкой специальных  сообщений от одного объекта  к другому. Сообщение, полученное  объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта. [1, стр.83]

Информация о работе Модульное и объектно-ориентированное программирование