Разработка приложения, реализующего метод Флойда

Методология и технология разработки программного продукта. Решение задачи поиска кратчайших путей между всеми парами пунктов назначения, используя алгоритм Флойда. Разработка интерфейса программы, с использованием среды Delphi Borland Developer Studio.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.07.2014
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Общая часть

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

1.2 Жизненный цикл прикладной программы

1.3 Методология и технология разработки ПП

1.4 Тестирование программных средств

1.5 Описание прикладной задачи

2. Специальная часть

2.1 Цели разработки

2.2 Расчет математической модели

2.3 Описание программы

2.3.1 О программе

2.3.2 Алгоритм работы программы

2.3.3 Входные данные

2.3.4 Выходные данные

2.4 Тестирование программы

2.5 Руководство пользователя

Заключение

Литература

Введение

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

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

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

А теперь? Компьютер есть в каждом третьем доме и настолько любим и привычен, что считается едва ли не членом семьи. Что такое компьютер, знает сейчас каждый (во всяком случае, слышали о компьютерах и видели их все). Но из-за своей обыденности и сравнительной доступности компьютер не стал менее удивительным! Он вобрал в себя все достижения современной цивилизации и постепенно превращается в универсальное устройство, способное с успехом выполнять множество функций.

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

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

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

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

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

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

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

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

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

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

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

1. Общая часть

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

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

- аппаратная часть компьютеров и сетей ЭВМ.

· операционная система (ОС) - это совокупность программ, предназначенных для управления устройствами аппаратной части компьютера и обеспечения взаимодействии пользователя с компьютером;

· драйверы устройств - это программы, предназначенные для управления устройствами компьютера;

· оболочки ОС предназначены для обеспечения "диалога" пользователя с ОС;

· служебные или сервисные программы (от англ. to serve - обслуживать) - это установленные дополнительно программы, предназначенные для:

· диагностики работоспособности компьютера;

· защиты от вирусов;

· обслуживания дисков;

· архивации данных и т.д.

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

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

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

· общее программное обеспечение, образуемое базовым ПО отдельных ЭВМ, входящих в состав сети;

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

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

-технология разработки программ;

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

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

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

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

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

· повышение производительности труда программистов при написании и контроле программ;

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

· создание программ коллективом разработчиков;

· окончание создания программ в заданный срок.

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

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

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

Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространенных библиотек мультиплатформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++.

Операционная система. Состав и назначение.

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

Однопрограммный режим.

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

Многозадачный режим.

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

Назначение операционной системы.

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

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

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

Системы программирования.

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

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

На данный момент существует десятки систем программирования:

· Microsoft Visual Basic.

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

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

Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 - VB3. Окончательное признание как полноценного средства программирования для Windows - при выходе версии 5 - VB5. Версию VB6, входящую в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. Visual Basic .NET не позволяет программировать по-старому, ибо, по сути, является совершенно другим языком, таким же, как и любой другой язык программирования для платформы.NET. Индивидуальность языка, так же как и его преимущества (простота, скромность создания программ, лёгкость использования готовых компонент) при использовании в среде.NET не имеют такого значения, как раньше - всё сосредоточено на возможностях самой системы.NET, на её библиотеке классов. Поэтому сегодня нужно говорить о классическом Visual Basic, его диалектах Visual Basic for Applications (VBA) и Visual Basic Scripting Edition (VBScript) и о языке для платформы (4, 467) .NET - Visual Basic .NET.

Основные разновидности Visual Basic:

1. Классический Visual Basic (версии 5-6).Этот язык очень сильно привязан к своей среде разработки и к операционной системе Windows, являясь исключительно инструментом написания Windows-приложений. Привязка к среде заключается в том, что существует большое количество средств, предназначенных для помощи и удобства программирования: встроенный отладчик, просмотр переменных и структур данных на лету, окно отладки, всплывающая подсказка при наборе текста программы (Intellisense). Все эти преимущества делают бесполезным и даже невозможным использование Visual Basic вне среды разработки, например в обычном текстовом редакторе.

2. Visual Basic for Applications (VBA) Это средство программирования, практически ничем не отличающееся от классического Visual Basic, которое предназначено для написания макросов и других прикладных программ для конкретных приложений.

3. Visual Basic Scripting Edition (VBScript).Скриптовый язык, являющийся несколько усечённой версией обычного Visual Basic. Используется в основном для автоматизации администрирования систем Windows, а также для создания страниц ASP и сценариев для Internet Explorer.

· Turbo Pascal.

Turbo Pascal - Интегрированная среда разработки программного обеспечения для платформ DOS и Windows 3.x и язык программирования в этой среде, диалект языка Паскаль от фирмы Borland.

Товарный знак Borland Pascal был зарезервирован для дорогих вариантов поставки (с бомльшим количеством библиотек и исходным кодом стандартной библиотеки), оригинальная дешёвая и широко известная версия продавалась как Turbo Pascal. Название Borland Pascal также используется в более широком смысле - как неофициальное название версии языка Паскаль от фирмы Borland. (1, 4). Turbo Pascal - это среда разработки для языка программирования Паскаль. Используемый в Turbo Pascal диалект базировался на более раннем UCSD Pascal, получившем распространение, в первую очередь, на компьютерах серии Apple.

II Компилирующая компонента Turbo Pascal была основана на компиляторе Blue Label Pascal, первоначально созданном в 1981 году Андерсом Хейлсбергом для операционной системы NasSys микрокомпьютера Nascom. Позднее он был переписан как Compass Pascal для операционной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна из версий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, но её разработка прекратилась примерно в 1992 году (5, 134).

В 1982 году Филипп Кан приобрёл компилятор у Андерса Хейлсберга и перебрался из Парижа в Калифорнию, где основал компанию Borland.

Когда в 1983 году появилась первая версия Turbo Pascal, такой тип среды разработки был относительно новым. Во время дебюта на американском рынке, Turbo Pascal продавался по цене в 49,99 долл. Помимо привлекательной цены, встроенный компилятор Паскаля также был очень высокого качества. Приставка "Turbo" намекала как на скорость компиляции, так и на скорость производимого им исполняемого кода. Turbo Pascal создавал машинный код за один проход, без шага компоновки.

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

За первые два года было продано не менее 300 тысяч копий компилятора, что превзошло объём продаж всех прочих языков для микрокомпьютеров.

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

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

Помимо всего этого, имелось средство профилирования. Книги, включённые в поставку Borland Pascal, давали детальное описание языка ассемблера Intel вплоть до указания количества тактовых циклов, необходимых для выполнения каждой инструкции. В общем и целом, система давала превосходные возможности для оптимизации кода; пользователю не требовалось пользоваться чем-либо кроме среды разработки. Всё было сделано так идеально, что даже школьник мог этим пользоваться. Эти качества позволили версии Паскаля от Borland стать стандартом языка Паскаль де-факто.

С начала 1990-х TP/BP используется в университетах для изучения фундаментальных концепций программирования.

Вероятно, разработка Microsoft Pascal была прекращена из-за конкуренции с высоким качеством и небольшой ценой Turbo Pascal. Другая версия гласит, что Borland заключил соглашение с Microsoft на прекращение разработки Turbo BASIC (среды разработки для BASIC, ответвившейся от Turbo Pascal), если Microsoft прекратит разработку Microsoft Pascal. Некоторое время Microsoft выпускал QuickPascal, который был почти 100%-совместим с Turbo Pascal.

В течение нескольких лет Borland улучшал не только среду разработки, но и язык. В версии 5.5 в него были введены передовые возможности объектно-ориентированного программирования. Последней выпущенной версией была версия 7. Borland Pascal 7 включал в себя среду разработки и компиляторы для создания программ под DOS, под DOS с расширителем DOS и Windows 3.x, в то время как Turbo Pascal 7 мог создавать только обычные DOS-программы.

С 1995 года в Borland прекратили разработку Turbo Pascal и предложили в качестве замены среду разработки Delphi. Новая версия языка подверглась изменению (в особенности ООП), и языку вернулось изначальное название, закреплённое разработчиками Apple Object Pascal. Старая объектная модель Turbo Pascal и соответствующий синтаксис поддерживался как устаревший, использование обеих объектных моделей одновременно в одной и той же программе не поддерживается.

Достоинства Turbo Pascal:

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

1) Контекстная справочная система, по которой можно изучать язык без обращения к сторонним источникам.

2) Высокая скорость компиляции, высокая скорость выполнения откомпилированных программ.

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

Недостатки:

1) Компилятор рассчитан на реальный режим DOS, применение которого сходит на нет. Однако в последних версиях компилятора и среды введена поддержка защищённого режима вместе с соответствующим отладчиком (TD).

2) В модуле CRT имеется ошибка (некорректный подсчёт количества циклов для функции delay, не рассчитанный на быстрые процессоры, процессоры с переменной частотой и многозадачные среды), из-за которой при запуске программы на компьютерах с тактовой частотой более 200 MHz сразу происходило аварийное завершение с сообщением "Runtime error 200 at…". Существуют разные варианты исправления модуля CRT. В варианте Клауса Хартнегга ошибка 200 не возникает, но длительность Delay на быстрых компьютерах меньше желаемой, и эта проблема по незнанию иногда тоже считается недостатком Turbo Pascal.

· C++ Builder.

C++ Builder - программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке C++. C++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но, к сожалению, обратное утверждение не верно.

C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса и пр.

C++ Builder первоначально создавалась только для платформы Microsoft Windows. Поздние версии, содержащие Кроссплатформенную компонентную библиотеку Borland, основанную на Qt, поддерживают и Windows и Linux. (8, 991).

В 2003 Borland выпустила C++ BuilderX (CBX), написанный при помощи той же инфраструктуры, что и JBuilder, который при этом был мало похож на C++ Builder или Delphi. Этот продукт предназначался для разработки больших программ для крупных предприятий, но коммерческого успеха не достиг. В конце 2004 года Borland объявила, что продолжит развитие классического C++ Builder и объединит его со средой разработки Delphi, прекратив, таким образом, разработку C++ BuilderX.

Спустя примерно год после этого объявления, Borland выпустила Borland Developer Studio 2006, который включал в себя Borland C++ Builder 2006, предлагавший улучшенное управление конфигурацией и отладкой. Borland Developer Studio 2006 - единственный полноценный комплект, содержащий Delphi, C++Builder и C#Builder.

В 2007 CodeGear выпустила C++ Builder 2007, в котором реализовала полную поддержку API Microsoft Windows Vista, увеличила полноту соответствия стандарту ANSI C++, увеличила скорость компиляции и сборки до 500 %, включила поддержку MSBuild, архитектур баз данных DBX4 и "VCL для Web", поддеживающий AJAX. Поддержка API Microsoft Windows Vista включила в себя приложения, изначально оформленные в стиле Vista, и естественную поддержку VCL для Aero и Vista Desktop. CodeGear RAD Studio 2007 содержит C++ Builder 2007 и Delphi. Также в 2007 CodeGear "воскресила" марку "Turbo" и выпустила две "Turbo" версии C++ Builder: Turbo C++ Professional и Turbo C++ Explorer (бесплатный), основанных на Borland C++ Builder 2006.

В конце 2008 года компания CodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и С++ Builder 2009.

Следующая версия, CodeGear C++Builder (кодовое имя "Commodore"), будет обладать поддержкой x86-64 и возможностью создавать нативный x86-64 код.

Таблица 1 - Краткие сведения о версиях продукта

Год

Версия

1997

1

1998

3

1999

4

2000

5

2002

6

2003

X

2005

2006

2007

2007

Сентябрь 2008

2009

25 августа 2009

2010

· Symantec Cafй.

Язык Java является принципиально новым языком программирования, созданным компанией Sun Microsystems для создания многоплатформных приложений (applications и applets) для страниц "всемирной паутины" сети Internet. Язык Java может быть назван упрощенным вариантом C++, без усложненных конструкций и дополнительных возможностей. Java предлагает широкие возможности объектно-ориентированного программирования и повторного использования кода.

Symantec Cafe является первой интегрированной средой визуальной разработки для создания приложений (applications и applets) для страниц "всемирной паутины" сети Internet (3, 265).

Symantec Cafe интегрирует комплект разработчика Java Development Kit компании Sun Microsystems в популярную многооконную среду визуальной разработки, созданную компанией Symantec для создания приложений для Windows 95 и Windows NT. Symantec Cafe предлагает полнофункциональную систему управления проектами, а также мощные инструменты редактирования и просмотра кода, что обеспечивает резкое увеличение эффективности разработки приложений на языке Java для сети Internet. Приложения, созданные с помощью Symantec Cafe могут затем встраиваться в документы HTML и выполняться на различных платформах при использовании Java-соместимых программ просмотра, таких как Netscape Navigator.

Symantec Cafe позволяет разрабатывать приложения на языке Java, которые могут затем встраиваться в страницы всемирной паутины для обеспечения более высокой функциональности, чем существующие HTML-страницы. Java-компилятор генерирует байткод, который может затем встраиваться в HTML-определения страниц всемирной паутины. Наиболее популярные программы просмотра в сети Internet, такие Netscape Navigator, включают встроенный интерпретатор Java-байткода, позволяющий выполнять Java-приложения на компьютере пользователя во время просмотра страницы Internet, содержащей это Java-приложение.

Это дает возможность включать в Internet страницу программное обеспечение, что предлагать пользователю гораздо более богатые возможности, по сравнению с просто текстом или статической графикой. Например, существует возможность включить новый тип данных и назначить соответствующий ей Java-байткод, предназначенный специально для обработки этого типа информации на клиентской машине. Кроме того, в этом случае Java-приложение запускается на клиентской машине, что позволяет снижать загрузку web-сервера. В результате достигается более высокая функциональность и производительность при просмотре сетей Internet. Cafe позволяет разрабатывать любые виды многоплатформенных приложений (applets and applications). Сокращенное приложение (applets) представляет собой ограниченная версия полнофункционального Java-приложения (applications), предназначенного для работы с web-документами. Например, сокращенное приложение не имеет доступа к файлам на клиентском компьютере. Такой подход предназначен, с одной стороны, для обеспечения целостности созданных Java-приложений при загрузке их из Internet, а с другой - для того, чтобы избежать случайной потери информации на клиентской машине вследствие работы загруженного из Internet приложения. Полнофункциональные Java-приложения более похожи на стандартные программы, за исключением того, что они многоплатформенны и могут запускаться под Windows, Macintosh и Unix. Основные возможности Symantec Cafй: Cafe выполняет "на лету" грамматический разбор Java-код и создает репозиторий информации о Java-приложениях и Java-библиотеках классов. Это позволяет пользователю наглядно иерархию классов Java-приложения, лучше понять стандартные классы Java и классы Java-приложений. Class Editor позволяет просматривать исходный текст на языке Java, а также просматривать/редактирования методы, данные и классы. Class Editor позволяет разработчику работать с объектно-ориентированными частями Java-программы в противоположность работы с исходными текстами.

1. ProjectExpress, "Wizard"-подобный инструмент, позволяющий быстро создавать проекты вокруг набора Java-программ и использовать преимущества Cafe с минимальными затратами.

2. AppExpress, "Wizard"-подобный инструмент, помогающий начать работу разработчикам, не знакомым с языком Java. AppExpress автоматически

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

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

5. Cafe включает полностью интегрированный комплект разработчика Java Development Kit (JDK) компании Sun, с графической поддержкой опций и параметров Java-компилятора, интерпретатора и отладчика. Кроме того, Cafe поддерживает управление вложенными проектами, а также возможность построения Java-приложений, как сокращенных, так и полнофункциональных, непосредственно из среды разработчика.

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

Для создания Java приложения необходимо запустить AppExpress из меню "Tools", указать тип приложения в поле "Java Applet", определить каталог для создания приложения и нажать кнопку "Finish". Это все, что необходимо сделать. Проект приложения на языке Java автоматически загрузится средой Cafe.

Чтобы построить и запустить Java-приложение, нужно выбрать команду "Run" из меню "Project". Cafe попросит подтвердить необходимость построения проекта. Выберите "Yes" и Java приложение будет построено. Созданное приложение доступно для расширения и модификации.

Cafe имеет удобный "Wizard"-подобный инструмент ProjectExpress, позволяющий легко создавать новые проекты. Cafe позволяет просто и быстро импортировать уже существующий Java-код или проект в Cafe с минимальными затратами. Используя ProjectExpress, можно определить тип проекта Java или С/C++, затем добавить указание на файлы с исходным текстом и проект автоматически будет создан и загружен в Cafe.

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

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

Входящая в Cafe программа просмотра классов Class Editor позволяет быстро проектировать и перемещаться по исходному коду Java-приложения за счет мощных встроенных инструментов навигации. Class Editor позволяет отказаться от работы с индивидуальными индивидуальными классами Java и работать напрямую с определениями и членами классов Java.

Class Editor позволяет быстро перемещаться к любому участку кода Java приложения. Достаточно ввести или указать нужное имя класса и/или члена, и в соответствующем окне появится его исходный код. Этот же метод действует при определении принадлежности того или иного класса или метода. Class Editor позволяет также быстро создавать новые классы и добавлять Новые члены классов.

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

· Php (Personal Home Page).

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

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

История развития.

PHP прошёл долгий путь за последние несколько лет, становясь одним из наиболее популярных языков web-разработки.

Истоки PHP лежат в старом продукте, имевшем название PHP/FI. PHP/FI был создан Расмусом Лердорфом в 1995 году и представлял собой набор Perl-скриптов для ведения статистики посещений его резюме. Развитие web еще только начиналось, никаких специальных средств для решения этих задач не было, и к автору хлынул поток сообщений с вопросами. Лердорф начал бесплатно раздавать свой инструментарий, названный "Personal Homepages Tools" (PHP) - ("Инструменты для персональных домашних страниц"). Очень скоро потребовалась большая функциональность и Расмус пишет новую, намного более обширную версию на C, работающую с базами данных и позволяющую пользователям разрабатывать простейшие web-приложения.

Расмус Лердорф решил выложить исходный код PHP/FI на всеобщее обозрение, исправление ошибок и дополнение.

PHP/FI (Personal Home Page / Forms Interpreter - Персональная Домашняя страница / Интерпретатор Форм) включал в себя базовую функциональность сегодняшнего PHP. Он имел переменные в стиле Perl, автоматическую интерпретацию форм и возможность встраиваться в html-код. Собственно синтаксис языка имел много общего с Perl, хотя и был намного проще и ограниченнее.

В 1997 выходит PHP/FI 2.0. Вторая версия C-имплементации обозначила группу пользователей: несколько тысяч людей по всему миру, с примерно 50,000 доменами, что составляло около 1% всего числа доменов Интернета. Несмотря на то, что разработкой занималось уже несколько людей, PHP/FI 2.0 все еще оставался крупным проектом одного человека.

Официально PHP/FI 2.0 вышел только в ноябре 1997 года, после проведения большей части своей жизни в бета-версиях. Вскоре после выхода его заменили альфа-версии PHP 3.0.

PHP3.

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) переписали код с начала: разработчики сочли PHP/FI 2.0 не пригодным для разработки приложения электронной коммерции, над которым они работали для проекта Университета. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зив решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена.

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

Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI. Язык был назван просто 'PHP' - аббревиатура, содержащая рекурсивный акроним: 'PHP: Hypertext Preprocessor' (PHP: Препроцессор Гипертекста).

Первая статья о PHP была опубликована в чешском варианте 'Computerworld' весной 1998 и освещала PHP 3.0. Как и в случае с книгами, эта была первая в серии статья из множества посвященных PHP и опубликованных в различных известных журналах.

К концу 1998, PHP использовался десятками тысяч пользователей. Сотни тысяч web-сайтов сообщали о том, что они работают с использованием языка. В то время PHP 3.0 был установлен приблизительно на 10% серверах Интернета!

PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

PHP4.

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали не эффективно.

Новый движок, названный 'Zend Engine' (от имен создателей: Zeev и Andi), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принесший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел еще несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

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

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

PHP5.

Недавно вышла новая, пятая версия PHP (PHP5). PHP5 использует новую версию "движка" Zend - Zend Engine 2.

В PHP5 объектная модель была значительно переработана. При этом было добавлено много новых возможностей, благодаря которым PHP5 получил некоторые черты таких объектно-ориентированных языков, как C++ и Java.

Изменения коснулись производительности встроенных стандартных функций PHP. По некоторым оценкам, скорость работы стандартных функций в PHP5 увеличилась на 40% и более.

Появились новые директивы файла настройки php. ini. Претерпела изменения и поддержка потоков. Были добавлены новые функции, а также функции графической библиотеки GD.

Поддержка XML в версии PHP5 стала полной, поддерживаются новые расширения DOM и XML.

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

Архитектура x86.

Ассемблеры для DOS.

Наиболее известными ассемблерами для операционной системы DOS являлись Borland Turbo Assembler (TASM) и Microsoft Macro Assembler (MASM). Также в своё время был популярен простой ассемблер A86.

Изначально они поддерживали лишь 16-битные команды (до появления процессора Intel 80386). Более поздние версии TASM и MASM поддерживают и 32-битные команды, а также все команды, введённые в более современных процессорах, и системы команд, специфических для конкретной архитектуры (такие как, например, MMX, SSE, 3DNow! и т. д.).

Microsoft Windows.

При появлении операционной системы Microsoft Windows появилось расширение TASM, именуемое TASM32, позволившее создавать программы для выполнения в среде Windows. Последняя известная версия Tasm - 5.3, поддерживающая инструкциии MMX, на данный момент включена в Turbo C++ Explorer. Но официально развитие программы полностью остановлено.

Microsoft поддерживает свой продукт под названием Microsoft Macro Assembler. Она продолжает развиваться и по сей день, последние версии включены в наборы DDK. Но версия программы, направленная на создание программ для DOS, не развивается. Кроме того, Стивен Хатчессон создал пакет для программирования на MASM под названием "MASM32".

GNU и GNU/Linux.

В состав операционной системы GNU входит компилятор gcc, включающий в себя ассемблер gas (GNU Assembler), использующий AT&T синтаксис, в отличие от большинства других популярных ассемблеров, которые используют Intel-синтаксис.

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

YASM это переписанная с нуля версия NASM под лицензией BSD (с некоторыми исключенями).

FASM (Flat Assembler) - молодой ассемблер под модифицированной для запрета перелицензирования (включая под GNU GPL) BSD?лицензией. Есть версии для KolibriOS, GNU/Linux, MS-DOS и Microsoft Windows, использует Intel-синтаксис и поддерживает инструкции AMD64.

Архитектуры RISC.

MCS-51 .

AVR .

На данный момент существуют 2 компилятора производства Atmel (AVRStudio 3 и AVRStudio4). Вторая версия - попытка исправить не очень удачную первую. Так же ассемблер есть в составе WinAVR.

ARM

AVR32

MSP430

PowerPC

Ассемблирование и компилирование.

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

Язык ассемблера.

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

Содержание языка.

Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов. Также язык ассемблера обеспечивает базовые программные абстракции: связывание частей программы и данныx через метки с символьными именами (при ассемблировании[1] для каждой метки высчитывается адрес, после чего каждое вхождение метки заменяется на этот адрес) и директивы[2].

Директивы ассемблера позволяют включать в программу блоки данных (описанные явно или считанные из файла); повторить определённый фрагмент указанное число раз; компилировать фрагмент по условию; задавать адрес исполнения фрагмента, отличный от адреса расположения в памяти [уточнить!]; менять значения меток в процессе компиляции; использовать макроопределения с параметрами и др.

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

Достоинства:

1) Минимальное количество избыточного кода, т.е. использование меньшего количества команд и обращений в память, позволяет увеличить скорость и уменьшить размер программы.

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

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

4) Последние технологии безопасности, внедряемые в операционные системы, не позволяют делать самомодифицирующегося кода, так как исключают одновременную возможность исполнения инструкций и запись в одном и том же участке памяти (технология W^X в BSD-системах, DEP в Windows).

Недостатки:

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

2) Меньшее количество доступных библиотек, их малая совместимость между собой.

3) Непереносимость на другие платформы (кроме двоично совместимых).

Применение.

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

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


Подобные документы

  • Блок-схема алгоритма Флойда. Разработка его псевдокода в программе Microsoft Visual Studio. Программа реализации алгоритмов Беллмана-Форда. Анализ трудоемкости роста функции. Протокол тестирования правильности работы программы по алгоритму Флойда.

    курсовая работа [653,5 K], добавлен 18.02.2013

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

    контрольная работа [1,4 M], добавлен 04.07.2011

  • Среда разработки Borland Developer Studio, возможности использования в практике дополнительного обучения. Технологии создания электронных учебно-методических комплексов. Системные требования и установка программы, логическая структура и интерфейс.

    дипломная работа [1,8 M], добавлен 23.04.2015

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

    контрольная работа [691,8 K], добавлен 08.09.2010

  • Корректность определения кратчайших путей в графе и рёбра отрицательной длины. Анализ алгоритмов Дейкстры, Беллмана-Форда, Флойда-Уоршелла. Вычисление кратчайших расстояний между всеми парами вершин графа. Топологическая сортировка ориентированного графа.

    презентация [449,3 K], добавлен 19.10.2014

  • Анализ алгоритмов нахождения кратчайших маршрутов в графе без отрицательных циклов: Дейкстры, Беллмана-Форда и Флойда-Уоршалла. Разработка интерфейса программы на языке C++. Доказательство "правильности" работы алгоритма с помощью математической индукции.

    курсовая работа [1,5 M], добавлен 26.07.2013

  • Разработка программного продукта, предназначенного для поиска туров, транспорта, мест проживания и расчета стоимости тура, а так же для работ с клиентской базой туристической фирмы. Тестирование программного продукта в среде Borland Developer Studio 2006.

    курсовая работа [2,5 M], добавлен 08.11.2012

  • Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.

    курсовая работа [660,4 K], добавлен 08.03.2015

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

    отчет по практике [700,5 K], добавлен 24.11.2014

  • Эффективные средства разработки программного обеспечения. Технология визуального проектирования и событийного программирования. Конструирование диалоговых окон и функций обработки событий. Словесный алгоритм и процедуры программы Borland Delphi 7 Studio.

    дипломная работа [660,2 K], добавлен 21.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.