Главная » Бесплатные рефераты » Бесплатные рефераты по информатике »
Тема: История развития технологии программирования
Раздел: Бесплатные рефераты по информатике
Тип: Курсовая работа | Размер: 415.27K | Скачано: 372 | Добавлен 15.01.11 в 22:45 | Рейтинг: 0 | Еще Курсовые работы
Вуз: ВЗФЭИ
Год и город: Москва 2010
Содержание
1. Теоретическая часть. История развития технологии программирования 3
Введение 3
1.1 Понятие технологии программирования. 4
1.2 Организация самых первых программ. 6
1.3 Структурное программирование. 8
1.4 Модульное программирование. 11
1.5 Методология объектно-ориентированного программирования. 12
Заключение 13
2. Практическая часть 14
2.1. Общая характеристика задачи 14
2.2. Описание алгоритма решения задачи 16
Список использованной литературы 21
Понятие «технология программирования» появилось в конце 1960-х гг. как название научной дисциплины, предметом которой являются способы проектирования и разработки программ, их отладки и тестирования, обеспечивающие необходимое качество и сроки создания программного обеспечения (ПО). Необходимость её появления была обусловлена высокой стоимостью создания ПО, а также срывами сроков и неудачами в реализации проектов сложных программных комплексов. После накопления практического опыта создания больших программных комплексов и выявления специфических особенностей процесса программирования появилась возможность разработать технологию программирования.
Технология программирования занята уточнением и детализацией требований к ПО; их проектированием, в том числе разделением программы на две части; собственно программированием, в том числе написанием текстов программ на языках программирования; отладкой и тестированием. [1, с. 104]
Прогресс в сфере вычислительной техники и информационных и коммуникационных технологий предопределил появление разнообразных знаковых систем для записи алгоритмов – языков программирования.
Язык программирования служит двум взаимосвязанным целям: предоставляет программисту аппарат для задания действий, которые должны быть выполнены компьютером, и формирует концепции, которыми пользуется программист, продумывая общий алгоритм. Первой цели идеально отвечает язык, который настолько «близок к ЭВМ», что если всеми основными машинными объектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй же цели идеально отвечает язык, который настолько близок к решаемой задачи, что концепции ее решения можно выражать прямо и коротко.
Первые языки программирования появились сравнительно недавно. Как и следовало ожидать, они (как и первые ЭВМ) были довольно примитивны и ориентированы на различные вычисления – как на чисто теоретические научные расчеты (прежде всего математические и физические), так и на прикладные задачи (в частности, в военной области). Программы, написанные на них, представляли собой линейные последовательности элементарных операций с регистрами, в которых хранились данные.
Следует отметить, что ранние языки программирования были оптимизированы под аппаратную архитектуру конкретного компьютера, для которого они предназначались. Это обеспечивало высокую эффективность вычислений, но не позволяло обеспечить стандартизацию: программа, работоспособная на одной вычислительной машине, не могла выполняться на другой.
Таким образом, ранние языки программирования существенно зависели от того, что принято называть «средой вычислений», и приблизительно соответствовали современным машинным кодам или языкам ассемблера.
Самые первые программы были организованы очень просто. Они состояли из собственно программы на машинном языке и обрабатываемых данных. Сложность программ ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение большого количества данных.
Создание сначала ассемблеров, а затем и языков высокого уровня сделало программы более обозримыми за счет снижения уровня детализации и, конечно же, позволило увеличить их сложность.
Появление в языках средств, позволяющих оперировать подпрограммами, существенно снизило трудоемкость разработки программ. Подпрограммы можно было сохранять и использовать в других программах. Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данных или их части.
Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Необходимость исключения таких ошибок привела к идее использования в подпрограммах локальных данных.
И вновь сложность разрабатываемого программного обеспечения стала ограничиваться способностью программиста отслеживать процессы обработки данных уже на новом уровне. К этому добавились проблемы согласования интерфейса при разработке проекта несколькими программистами. В результате возникла проблема создания технологии разработки сложных программных продуктов, снижающей вероятность появления ошибок. Такая технология была создана и получила название «структурное программирование».[4]
Структурное программирование представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения. В рамках этой технологии появился такой метод проектирования программ, как метод пошаговой детализации.
Технология структурного программирования закрепила сложившийся в то время процедурный, или алгоритмический, подход к программированию, при котором основное внимание концентрируется на определении последовательности действий. Были выделены три основные алгоритмические конструкции – следование, ветвление и цикл, достаточные для построения любого алгоритма.
Дальнейший рост сложности и объемов разрабатываемого программного обеспечения потребовал структурирования данных. Соответственно, в языках программирования появилась возможность определения пользовательских типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным основной программы для уменьшения количества возможных ошибок.
Появляется возможность использования локальных переменных в подпрограммах, однако проблема общей незащищенности области данных еще была решена не полностью. Кроме того, при достаточно больших размерах программы структурирование действий с помощью подпрограмм не уменьшает ее растущей сложности.
Разработчики крупных современных программных продуктов объединяются в группы. Поэтому возникла необходимость в методологии, позволяющей коллективу программистов эффективно использовать совместно разработанный программный код. Результатом стало появление и развитие технологии модульного программирования.[2,3].
Принципы структурного программирования были впервые реализованы в языке ALGOL. Первая версия ALGOL была выпущена в 1958 году (и называлась ALGOL-58). Вторая версия – через два года, в шестидесятом году. Затем – в 1968 году была выпущена усовершенствованная версия этого языка программирования высокого уровня. Заточена эта версия была под то, чтобы с легкостью можно было конвертировать обычные математические формулы в код на этом языке программирования.
ALGOL был популярен не только в странах Европы (именно там его и создали), но и в СССР. Он внес большое влияние на все последующие языки, в том числе – на язык программирования Pascal.[5]
Тем не менее, наибольшую популярность завоевал язык Pascal, созданный в 1970 г. Швейцарским ученым Н.Виртом. Pascal получил широчайшее распространение и может считаться образцовым языком программирования, наиболее популярным и сейчас (например, в версии Delphi фирмы Imprise).
Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули (библиотеки подпрограмм). Например, это могут быть модуль управления графическими ресурсами, модуль вывода данных на принтер и т.д.
Использование концепции модульного программирования существенно упрощает разработку программ несколькими программистами, каждый из которых разрабатывает свои модули. При этом внутренняя организация каждого модуля скрыта от остальных модулей и потому может изменяться независимо от них. Взаимодействие же модулей осуществляется через специально оговоренные интерфейсы модулей. Кроме того, созданные программные модули в дальнейшем могут использоваться в других разработках, что увеличивает производительность труда программистов.
Практика программирования показывает, что структурный подход в сочетании с модульным программированием позволяет создавать достаточно надежные программы, объем которых не превышает 100000 операторов. При большем же объеме программы сложность межмодульных интерфейсов обычно возрастает настолько, что предусмотреть взаимовлияние отдельных частей программы становится очень сложно. Кроме того, «узким местом» модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении всей готовой программы (поскольку из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно).
Стремление уменьшить количество взаимосвязей между отдельными частями программы и тем самым избавиться от вышеназванных недостатков привело к появлению объектно-ориентированного программирования.[4]
Объектно-ориентированное программирование (ООП), разработанное в середине 1970-х гг. Б.Керниганом и Д.Риччи и реализованное в объектно-ориентированных версиях языков C и Pascal, представляет собой отображение объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структурных данных. Если структурное программирование подразумевает наличие ряда встроенных структур данных (целых, вещественных и строковых переменных, массивов, записей), при помощи которых производится отображение свойств объектов реального мира, то при объектно-ориентированном подходе для объекта создается своя структура данных (класс), содержащая как свойства объекта (поля), так и процедуры для управления объектом (методы). Примеры объектно-ориентированных языков: Object Pascal, C++, Java.[2,3]
Методология ООП существенно отличается от всех других тем, что в ней используется новая модель-модель «активных» данных.
Однако громоздкость описания «активных» данных требует больших аппаратных ресурсов, а также ограничивает область применения данного подхода задачами со сложной предметной областью (так как его неэффективно применять для решения небольших задач).
При этом методология ООП не отличается от двух предыдущих методов к созданию программ, а основывается на них:
А) программа состоит из модулей, которые содержат описания классов и объектов («активных» данных);
Б) методы (алгоритмы) «активных» данных строятся на основе структурного подхода.[4].
Программирование — процесс и искусство создания компьютерных программ с помощью языков программирования. Программирование сочетает в себе элементы искусства, науки, математики и инженерии.
В узком смысле слова, программирование рассматривается как кодирование — реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования. В более широком смысле программирование — процесс создания программ, то есть разработка программного обеспечения.
Организация ОАО «Триумф» предоставляет некоторые виды кредитов как физическим, так и юридическим лицам под следующие процентные ставки (рис. 1). На фирме ведется журнал учета кредитов и их возврата (рис. 2). При этом за каждый просроченный день возврата начисляется штраф в размере 1% от суммы кредита.
1. Построить таблицы по приведенным ниже данным (рис. 1-2).
2. Организовать межтабличные связи для автоматического заполнения граф журнала регистрации кредитов (рис. 2): «Наименование кредита», «Сумма возврата по договору, тыс. руб.», «Штрафные санкции, тыс. руб.», «Общая сумма возврата, тыс. руб.».
3. Определить наиболее востребованный вид кредита:
1) подвести итоги в журнале регистрации кредитов;
2) построить соответствующую сводную таблицу.
4. Построить гистограмму по данным сводной таблицы.
Код вида кредита |
Наименование вида кредита |
Годовая ставка, % |
100 |
Бытовой |
25 |
200 |
Автомобильный |
18 |
300 |
Предпринимательский |
20 |
400 |
Жилищный |
21 |
500 |
На развитие |
15 |
Рис. 1. Список видов кредита и ставки по ним в ОАО «Триумф»
Дата выдачи |
Заемщик (наименование фирмы или ФИО) |
Код вида кредита |
Наименование кредита |
Сумма кредита, тыс. руб. |
Срок возврата по договору |
Реальная дата возврата кредита |
Сумма возврата по договору, тыс. руб. |
Штрафные санкции, тыс. руб. |
Общая сумма возврата, тыс. руб. |
21.11.05 |
Иванов И.И. |
200 |
|
200 |
21.12.06 |
22.12.06 |
|
|
|
22.11.05 |
Сидоров С.С. |
100 |
|
25 |
22.05.06 |
25.07.06 |
|
|
|
23.11.05 |
ИП Терех О.А. |
300 |
|
350 |
25.06.06 |
26.06.06 |
|
|
|
24.11.05 |
Селянов Г.Е. |
400 |
|
850 |
25.11.10 |
|
|
|
|
12.12.05 |
ЗАО «Днепр» |
500 |
|
1650 |
12.12.06 |
12.11.06 |
|
|
|
13.12.05 |
Петров Р.М. |
400 |
|
760 |
760 |
15.12.08 |
|
|
|
14.12.05 |
Вавилова В.П. |
200 |
|
140 |
140 |
15.12.06 |
15.01.07 |
|
|
15.12.05 |
ИП Бекас П.Н. |
300 |
|
540 |
540 |
15.12.07 |
|
|
|
Рис. 2. Журнал регистрации кредитов
Внимание!
Если вам нужна помощь в написании работы, то рекомендуем обратиться к профессионалам. Более 70 000 авторов готовы помочь вам прямо сейчас. Бесплатные корректировки и доработки. Узнайте стоимость своей работы
Понравилось? Нажмите на кнопочку ниже. Вам не сложно, а нам приятно).
Чтобы скачать бесплатно Курсовые работы на максимальной скорости, зарегистрируйтесь или авторизуйтесь на сайте.
Важно! Все представленные Курсовые работы для бесплатного скачивания предназначены для составления плана или основы собственных научных трудов.
Друзья! У вас есть уникальная возможность помочь таким же студентам как и вы! Если наш сайт помог вам найти нужную работу, то вы, безусловно, понимаете как добавленная вами работа может облегчить труд другим.
Если Курсовая работа, по Вашему мнению, плохого качества, или эту работу Вы уже встречали, сообщите об этом нам.
Добавить отзыв могут только зарегистрированные пользователи.