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

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

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

Целью данной курсовой работы является разработка программ на языках С, Pasсal и в среде Delphi для описания процессов развития динамики популяции. Данные процессы описываются моделью Ферхюльда, представляющей собой дифференциальное уравнение первого порядка. Решение данного уравнения будем искать с помощью метода Эйлера. В ходе курсового проектирования будет проведен обзор теоретических вопросов, разработан алгоритмы решения поставленной задачи.

Содержание работы

Введение 3
1 Аналитический обзор 4
1.1 Определение популяции 4
1.2 Модель Ферхюльста (рождаемость и смертность с учетом роста численности) 5
1.3. Решение дифференциальных уравнений 6
1.4 Метод Эйлера. 7
1.5 Улучшенный метод Эйлера 9
2Язык Pascal 11
3 Язык С 14
4Среда быстрой разработки Delphi 15
5 Алгоритм решения задачи 17
6 Тестирование программ 18
6.1. Тестирование на языке С 18
6.2 Тестирование на языке Pascal 19
6.3 Тестирование приложения в Delphi 19
7 Листинг программ на языке С 22
8 Листинг программ на языке Pascal 24
9 Листинг программы в Delphi 26
Выводы 30
Список использованной литературы 31

Содержимое работы - 1 файл

Записка.doc

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

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

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

       1. В определении этого языка  имеется некоторое противоречие  между идеологией самого языка  и его реализацией. Например, конструкция  forward нужна только для того, чтобы  компиляция могла выполняться  в один проход, - это следствие  представлений о том, что таким образом достигается максимальная эффективность компиляции. Но это не всегда верно. Например, компилятор PL/C для языка PL/I совершал три прохода и вместе с тем являлся одним из самых эффективных среди наиболее распространенных компиляторов своего времени . Кроме того, в настоящее время при использовании недорогих быстродействующих компьютеров скорость компиляции не имеет большого значения.

       2. Возможно, самой главной слабостью  языка Pascal является то, что массивы  рассматриваются как отдельные типы, а не как агрегация различных объектов одного типа. Это приводит к тому, что, например, array [1. .10] of Integer и аггау[1. .20] of integer представляют собой/разные типы данных. В результате алгоритмы обработки массивов усложняются, поскольку массивы различных размеров невозможно передать общей подпрограмме (например, подпрограмме перемножения матриц). Строки реализованы как массивы символов, что также затрудняет их обработку в случае строк различной длины.

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

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

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

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

  • 3  Язык С
  •        Язык - Си (C) появился в 1969г. Он родился в  «Белл телефон лабораторис» (Bell Telefon Laboratoris) (научно-исследовательской фирме, принадлежащей корпорации «Американ  телефон энд телеграф» (American Telephone and Telegraph), AT&T, и расположенной в Мюррей-хилл, шт. Нью-Джерси) в атмосфере, которую один из участников разработки определил как «благотворное пренебрежение».

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

           Название  «Си» (C) появилось так же случайно, как и сам язык. Он оказался преемником ранее созданного языка для внутреннего  использования, получившего название Би (B) (B, C - вторая и третья буквы латинского алфавита).

           Отчасти язык Би основывался на созданном  в Кембриджском университете языке  БКПЛ (BCPL, от Basic Combined Programming Language - базовый  комбинированный язык программирования), который в свою очередь был  потомком Алгола-60.

           Язык  Си разработал в 1972 г. Денис Ритчи (Dennis Ritchie), 31-летний специалист по системному программированию, который, получив  степень бакалавра по прикладной математике в Гарвардском университете, поступил в 1968 г. на службу в «Белл  телефон лабораторис».

           Ритчи надеялся, что его новый язык пригодится для программирования новой операционной системы «Юникс» (UNIX), работа над  которой тоже не входила в официальные  планы компании. 
     
    Автор «Юникса» Кен Томпсон (Kenneth Thompson) считался среди коллег лучшим программистом в мире. Операционная система - это совокупность программ, выполняющих такие важные задачи, как прием, сохранение и выдача информации, и обеспечивающих взаимодействие аппаратуры компьютера с прикладными программами.

           Ради  повышения скорости работы операционных систем они традиционно писались на языке низкого уровня - ассемблере, но язык Си настолько хорошо зарекомендовал себя, что в конечном счете на нем было написано более 90% всего кода центральной программы (ядра) системы «Юникс».

           Как только система «Юникс» получила признание, язык Си обрел популярность как так называемый язык среднего уровня, в котором удобство, краткость  и мобильность языков высокого уровня сочетаются с возможностью непосредственного  доступа к аппаратуре, что традиционно обеспечивалось ассемблером.

           Язык C включает основные конструкции потока управления, требуемые для хорошо структурированных программ: группирование  операторов, принятие решений (if), циклы  с проверкой завершения в начале (while, for) или в конце (do) и выбор одного из множества возможных вариантов (switch).

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

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

           Язык C зарекомендовал себя как исключительно  эффективный и выразительный  язык для широкого разнообразия применений программирования.

    1. Среда быстрой разработки Delphi

           Delphi - среда разработки, которая использует язык программирования Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal - по сути является наследником языка Pascal с объектно-ориентированными расширениями.

           Изначально  среда разработки была предназначена  исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ GNU/Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET. При этом высказывались предположения, что эти два факта взаимосвязаны.

           Реализация среды разработки Delphi проектом Free Pascal позволяет использовать его для создания приложений для таких платформ, как Mac OS X, Windows CE и Linux.

           Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Дельфи от С++ является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Турбо Паскаля, располагаться в стеке могут) — все объекты попадают в динамически выделяемую область (кучу).

           Де-факто Object Pascal, а затем и язык Delphi являются функциональными наращиваниями Turbo Pascal. Об этом говорят обозначения версий компилятора. Так, в Delphi 7 компилятор имеет номер версии 15.0 (Последняя версия Borland Pascal / Turbo Pascal обозначалась 7.0, в Delphi 1 компилятор имеет версию 8.0, в Delphi 2 — 9.0, и т. д. Номер версии 11.0 носит компилятор Pascal, входивший в состав среды C++Builder).

           Delphi – это RAD (Rapid Application Development), среда  быстрой разработки приложений. Delphi включает в себя помимо  средств для работы с языком Object Pascal ряд дополнительных средств, помогающих максимально ускорить и упростить создание программ. К таким средствам относятся: визуальный редактор форм, при помощи которого быстро и без лишних усилий создается полноценно выглядящая программа, а так же другие составные части визуальной среды разработки программ.

           Delphi является  средой разработки приложений  и включает развитые средства  для написания и отладки кода: специализированный текстовый редактор, оптимизирующий компилятор и  отладчик. Основой Delphi является IDE  (Integrated Development Environment), интегрированная среда разработки, объединяющая в себе редактор кода и средства визуальной разработки, а также связывающая  с компилятором, средствами разработки баз данных и другими составными частями Delphi.

           Разумеется, Delphi – не единственная среда быстрой  разработки приложений. Существуют и  другие RAD, столь же удобные для  визуальной разработки программ, например, Visual Basic. Но BASIC известен как не самый  мощный и удобный язык программирования, кроме того, программы на нем отличаются сравнительно невысоким быстродействием.

           В результате мы получаем практически  идеальный продукт для быстрой  разработки программ: с одной стороны  простота и удобство, сравнимые с Visual Basic, а с другой – мощь, скорость и гибкость, характерные для C++.

  • 5 Алгоритм решения задачи
  •  

     
     
     
     
     
     

  • 6 Тестирование программ
  • 6.1. Тестирование на  языке С
  • Задача 1 

    Рисунок 3 – Задача 1 

    Задача 2 

    Рисунок 4 – Задача 2 
     

    Задача 3 

    Рисунок 5 – Задача 3

  • 6.2 Тестирование на языке Pascal
  • Задача 1  

    Рисунок 6 – Задача 1

    Задача 2  
     

    Рисунок 7 – Задача 2

    Задача 3

     

    Рисунок 8 – Задача 3

    Информация о работе Технолгия разработки програмных продуктов