реферат, рефераты скачать Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
реферат, рефераты скачать
реферат, рефераты скачать
МЕНЮ|
реферат, рефераты скачать
поиск
Интерполяционный полином Лагранжа

Интерполяционный полином Лагранжа

Министерство образования РФ

Филиал Владивостокского Государственного Университета Экономики и

Сервиса в г. Артеме

Кафедра информационно-математических дисциплин

КУРСОВАЯ РАБОТА

по дисциплине «Высокоуровневые методы обработки информации и

программирования».

Студент

гр. ИПИ-02-01 Хмель Ксения Александровна

Руководитель

преподаватель Кан Николай Эрикович

Артем 2003

Содержание

|Аннотация |1 |

|Введение |2 |

|Глава 1: | |

|1. Эволюция технологии программирования |3 |

|2. Различия функционального и объектно-ориентированного подходов к |7 |

|программированию | |

|3. Объектно-ориентированный подход |12 |

|4. Оценка сложности программных систем |18 |

|Глава 2: | |

|1. Интегрированная среда разработки Delphi |24 |

|2. Характеристики модулей программного средства: | |

|2.1. Связность внутри модулей |26 |

|2.2. Сцепление между модулями |26 |

|Заключение |27 |

|Приложение 1. Исходный код программного средства |28 |

|Приложение 2. Блок-схема программного средства |35 |

|Приложение 3. Блок-схема алгоритма вычисления (третий модуль) |42 |

|Приложение 4. Тесты – наборы проверочных данных |45 |

|Список использованных источников |47 |

Аннотация

Целью данной курсовой работы, посвященной изучению высокоуровневых

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

. систематизация и углубление теоретических и практических знаний по

специальности «Прикладная информатика в экономике»;

. углубление навыков программирования на языках высокого уровня;

. обобщение опыта применения объектно-ориентированного подхода к

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

. применение полученных знаний при создании программного продукта,

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

По сравнению с традиционным функциональным подходом, вместо

последовательных этапов цикла жизни программы решение задачи в объектно-

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

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

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

одного языка.

При создании программного продукта используются высокоуровневые методы

обработки информации и программирования, умение программировать на языках

высокого уровня, в частности, на языке Pascal, на основе которого создана

интегрированная среда разработки Delphi7.

В первой главе рассматриваются объектно-ориентированный подход к

реализации задачи программирования. Вторая глава является проектной, в ней

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

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

даны исходный текст программы и блок-схема. Курсовая работа выполнена на

листах.

Результатом выполнения курсовой работы является создание программного

средства, которое по введенному значению аргумента выводит значение

функции, для этого использована формула интерполяционного полинома

Лагранжа.

Введение

Преимущество написания программного продукта на языке высокого уровня

Pascal заключается в том, что язык позволяет четко реализовать идеи

структурного программирования и структурной организации данных, этот язык

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

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

помощи некоторой процедуры – определенной последовательности действий.

Основными средствами, применяемыми в этом языке (как и в других процедурных

языках) являются величины, присваивания, циклы, процедуры. При построении

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

какой последовательности будут производиться при ее выполнении. В отличие

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

математические, чем алгоритмические мышления.

При разработке программного средства используется объектно-

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

инженерно-конструкторской технологией, концентрирующей внимание на процессе

решения задачи. Объектно-ориентированный подход предполагает, что при

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

объектов и построены их описания, затем созданы экземпляры необходимых

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

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

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

вычислительной математики. В основе решения задачи лежит вычисление

значение функции с помощью интерполяционного полинома Лагранжа. Основные

направления выполнения программы:

1. создать модули, предлагающие поэтапное выполнение поставленной

задачи;

2. создать модули, выполняющие вычисление правильно, быстро и корректно;

3. разработать интерфейс программы, совместимый с Windows-интерфейсом.

Глава 1

1. Эволюция технологии программирования

На ранних этапах развития программирования, когда программы писались в

виде последовательностей машинных команд, какая-либо технология

программирования отсутствовала. Первые шаги в разработке технологии

состояли в представлении программы в виде последовательности операторов.

Написанию последовательности машинных команд предшествовало составление

операторной схемы, отражающей последовательность операторов и переходы

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

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

С увеличением размеров программ стали выделять их обособленные части и

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

библиотеки, из которых подпрограммы можно было включать в рабочие программы

и затем вызывать из рабочих программ. Это положило начало процедурному

программированию – большая программа представлялась совокупностью процедур-

подпрограмм. Одна из подпрограмм являлась главной и с нее начиналось

выполнение программы.

В 1958 году были разработаны первые языки программирования, Фортран и

Алгол-58. Программа на Фортране состояла из главной программы и некоторого

количества процедур – подпрограмм и функций. Программа на Алголе-58 и его

последующей версии Алголе-60 представляла собой единое целое, но имела

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

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

процедур и последующее их объединение в рабочую программу, первые

компиляторы для Алгола предполагали, что транслируется сразу вся программа,

раздельная трансляция процедур не обеспечивалась.

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

разделения ее на отдельные процедуры. При разработке отдельной процедуры о

других процедурах требовалось знать только их назначение и способ вызова.

Появилась возможность перерабатывать отдельные процедуры, не затрагивая

остальной части программы, сокращая при этом затраты труда и машинного

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

Следующим шагом в углублении структурирования программ стало так

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

отдельные процедуры рассматривались как последовательности канонических

структур: линейных участков, циклов и разветвлений. Появилась возможность

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

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

целью повышения структурности программы были выдвинуты требования к большей

независимости подпрограмм, подпрограммы должны связываться с вызывающими их

программами только путем передачи им аргументов, использование в

подпрограммах переменных, принадлежащих другим процедурам или главной

программе, стало считаться нежелательным.

Процедурное и структурное программирование затронули прежде всего

процесс описания алгоритма как последовательности шагов, ведущих от

варьируемых исходных данных к искомому результату. Для решения специальных

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

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

моделирование и т.д.

При разработке трансляторов все больше внимания стало уделяться

обнаружению ошибок в исходных текстах программ, обеспечивая этим сокращение

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

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

привело к необходимости повышения надежности всего программного

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

стало повышения уровня типизации данных. Теория типов данных исходит из

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

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

значений данного и набор операций, допустимых над этим данным. Данное

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

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

зависимости от степени выполнения перечисленных требований можно говорить

об уровне типизации того или иного языка программирования. Стремление

повысить уровень типизации языка программирования привело к появлению языка

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

разрешены некоторые неявные преобразования типов, например, целого в

вещественное. Применение строго типизированного языка при написании

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

ошибки использования данных и этим повысить надежность программы. Вместе с

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

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

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

Си, в большей степени ориентированный на системное программирование и

относящийся к слабо типизированным языкам.

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

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

канонические структуры: операторы присваивания, циклы и разветвления. Во

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

(целые и вещественные арифметические типы, символьный и, возможно,

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

числе массивов и структур (записей). Для арифметических данных разрешены

обычные арифметические операции, для агрегатов данных обычно предусмотрена

только операция присваивания и возможность обращения к элементам агрегата.

Вместе с тем при разработке программы для решения конкретной прикладной

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

к описанию задачи. Например, если решение задачи требует выполнения

операций над комплексными числами или квадратными матрицами, желательно,

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

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

умножения и обращения данных типа квадратной матрицы. Решение этой проблемы

возможно несколькими путями:

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

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

подмножества этого языка. Такой язык иногда называют языком-

оболочкой. На роль языка-оболочки претендовал язык ПЛ/1, оказавшийся

настолько сложным, что так и не удалось построить его

формализованное описание. Отсутствие формализованного описания,

однако, не помешало широкому применению ПЛ/1 как в Западной Европе,

так и в СССР.

. Построением расширяемого языка, содержащего небольшое ядро и

допускающего расширение, дополняющее язык типами данных и

операторами, отражающими концептуальную сущность конкретного класса

задач. Такой язык называют языком-ядром. Как язык-ядро были

разработаны языки Симула и Алгол-68, не получившие широкого

распространения, но оказавшие большое влияние на разработку других

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

Дальнейшим развитием второго пути явился объектно-ориентированный

подход к программированию.

2. Различия функционального и объектно-ориентированного подходов

программирования

Есть два принципиально отличающихся подхода к технологии

программирования: инженерно-конструкторский и математический. Первый

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

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

решения задачи. Второй подход основан на математическом доказательстве

правильности программы и автоматическом (или полуавтоматическом) получении

готовой программы по заданным спецификациям.

Объектно-ориентированный подход к технологии программирования –

инженерно-конструкторский, в котором внимание концентрируется на самом

процессе решения задачи. В данной статье авторами обобщается опыт

использования объектно-ориентированной технологии при разработке среды

объектно-ориентированного программирования и некоторых прикладных программ,

работающих в этой среде.

Оценим преимущества и недостатки наиболее распространенной инженерной

технологии – функциональной. Существует три главные проблемы

функционального подхода:

1. Слабая формализация связей между этапами. Специализация этапов

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

языках с разной степенью формализации. Слабая формализация уменьшает

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

требованиям заказчика.

2. Отсутствие гибкости. Поэтапная последовательная схема жестко связана

с нисходящим способом создания программы. Однако практика

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

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

внесения изменений в предыдущие этапы. Такие возвраты связаны с

большими затратами, поскольку вовлекают этапы с разными интерфейсами

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

3. Плохое использование результатов предыдущих разработок. Нисходящее

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

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

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.