Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Технологии программирования. Основы программирования на языке Pascal

Содержание:

ВВЕДЕНИЕ

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

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

Все языки программирования можно разделить на языки низкого уровня и языки высокого уровня. К языкам низкого уровня относят, например, Assembler, а к языкам высокого уровня например Pascal, С++, С#, Java и т.д.

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

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

- теория алгоритмов;

- компьютерная графика;

- системный анализ

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

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

Основными задачами данной работы является:

  1. Анализ литературы по избранной теме
  2. Анализ существующих языков программирования высокого уровня
  3. Описание основных понятий и конструкций языка Pascal
  4. Анализ существующих сред разработки с использованием языка Pascal

1. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ

1.1 Языки программирования высокого уровня

Язык программирования высокого уровня предназначен для быстрой, качественной и удобной разработки программного обеспечения. Основной чертой являются смысловые конструкции, которые описывают структуры данных, переменные, операции с ними на интуитивно понятном языке для человека, описание которых на низком уровне – очень сложное, громоздкое, длинное и не читабельное. [10]

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

Очень часто под языком низкого уровня имеют в виду и понимают язык программирования Assembler. [11]

Языки программирования высокого уровня применяются в независимых системах.

Языки высокого уровня разделяются на такие группы:

- процедурно-ориентированные языки - используют при написании процедур или алгоритмов (например, Basic, C, Pascal);

- проблемно-ориентированные языки – решают целый класс новых задач (язык Пролог – предназначен для логического программирования систем с использованием искусственного интеллекта);

- объектно-ориентированные языки – очень распространенные в наше время, такие языки являются развитием процедурно-ориентированных языков (например, Delphi, C++, Visual Basic, C#, Java, Python);

Основные этапы разработки программ на языках программирования высокого уровня:

  1. Анализ предметной области, а именно перед тем как приступать к разработке, необходимо четко рассмотреть проблему и задачу, которые нам предстоит решить. На данном этапе проводится простая формулировка задачи и проблемы, без рассмотрения путей ее решения. При этом сформулирована задача должна быть на доступно пользователю языке. [12]
  2. Выработка требований. Детальное описание возможных функций будущей программы и действий, которые она должна исполнять. Такие требования называются «спецификацией». Требования указываются для того, чтобы уменьшить необходимость в изменении системы в процессе разработки. Спецификация должна быть обязательно официальной, то есть документально оформленной. [14]
  3. Создание плана разработки. На данном этапе необходимо составить формальный план разработки с учетом определенной проблемы и поставленных требований. [12]
  4. Разработка и проектирование архитектуры. Архитектура программного обеспечения обычно включает в себя: общее описание всей системы, основные компоненты нашей программы, формат и средства хранения данных, вид и организация пользовательского интерфейса, проектирование средств безопасности нашего ПО, оценки производительности, возможности расширения и изменения. [12]
  5. Детальное проектирование на данном этапе проводиться низко-уровневое проектирование системы. Проводится проектирование классов и методов, способы реализации данных решений. При разработке небольших программ разработчики обычно сами проектируют программу, это выглядит как написание псевдокода или составление и рисование блок-схем. Пример блок-схемы показано на рис.1.

Рисунок 1 – Пример составленного алгоритма в виде блок-схемы

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

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

Например, в С/С++ код Ассемблера можно встроить с помощью директивы _asm. Ниже приведен листинг кода на С и интегрированного в него части кода на Ассемблере:

#include <stdio.h>
#include <windows.h>
#include <tchar.h>
void main()
{

  char s[20];

  int a, b, sum;

  CharToOem(_T(«Введите «),s);

  printf(«%s a: «, s);

  scanf(«%d»,&a);

  printf(«%s b: «,s);

  scanf(«%d»,&b);

  _asm

  {

    mov eax, a;

    mov ecx, 5

m: add eax, b

    loop m

    mov sum, eax

  }

  printf(«\n %d + 5*%d = %d», a, b, sum);

  getchar(); getchar();
}

1.2 Существующие языки программирования высокого уровня

Существуют такие языки программирования высокого уровня:

- Pascal/Delphi;

- Basic;

- C/C++;

- C#;

- Java;

- Swift;

- Go;

- PHP;

- Python;

- JavaScript;

- Kotlin;

- Ruby;

- Rust;

- и другие.

Необходимо детальнее рассмотреть некоторые из них.

C++. Был создан, как альтернатива или даже развитие языка С, и сразу же стал популярным. Одним из известных проектов на этом языке, можно назвать Google Chrome. Также такими являются проекты Adobe и Amazon. Этот язык программирования остается востребованным до сегодняшнего дня. Он имеет достаточно мощные инструменты разработки и может быть использован, с некоторой адаптацией, в различных сферах: игры, банки, связь, платежные система, микроконтроллерные системы и многое другое. [9]

С#. Разработанный компанией Microsoft. Этот язык программирования используется для разработки приложений на платформе С#. Это объектно-ориентированный язык, на нем разрабатывают приложения, основанные и работающие на платформе .NET Frameworks. И если данная область является вашей, то этот язык – лучший выбор в создании приложений для данной платформы. Также, этот язык – рекомендованный для использования при разработке игр на известном движке Unity. С использованием сторонних компонентов, например инструмента Xamarin, этот язык позволяет писать и под мобильный платформы Android и iOS.[9]

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

Python. Данный язык достаточно прост в понимании и использовании, на сегодняшний день его постепенно вводят в учебную программу. Очень весомой причиной для изучения Python являются – нейронные сети. Данный язык программирования имеет достаточное количество библиотек, ориентированных на нейронные сети. Также этот язык является достаточно компактным.

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

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

Javascript. Это скриптовый язык, который изначально был предназначен для работы в браузерах. Именно поэтому он имеем встроенные инструменты для работы с Document Object Model. Является самым основным языком для программирования front-end части веб-проектов. Последнее время, благодаря NodeJS, стал использоваться и как серверный язык для веб-разработки. [9]

Go. Язык 2009 года, когда уже во всю использовались многоядерные процессоры. Поэтому он учитывает многозадачность и работает с ней. Быстрое время запуска, использование памяти, только если это необходимо, и другие достоинства делают Go очень эффективным в решении многопоточных задач. [8]

Рисунок 2 – Процентное соотношение предложений по языкам на фриланс-бирже

Objective-C. Еще одна версия С, для того чтобы полностью обеспечить объектно-ориентированную реализацию С. Сейчас основное применение этого языка ориентируется на iOS и Mas OS, так же, как и Swift.

Swift. Это нативный язык для разработки приложений под iOS и Mas OS. Большую роль в становлении данного языка оказало влияние на него таких языков, как Python и Ruby.

Kotlin. Он стремительно развивается и обладает рядом преимуществ:

- совместимость с Java

- поддерживается Google

-лаконичность языка программирования

- с каждым днем растет общество разработчиков.

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

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

2. ЯЗЫК ПРОГРАММИРОВАНИЯ PASCAL

2.1 Описание, характеристика и особенности Pascal

Pascal – это имеющий широкое распространение язык программирования, который используется и по сегодняшний день для обучения программированию в школе и на первых курсах в университетах и колледжах. [1]

В 1968—1969 годах он язык был создан Никлаусом Виртомским на основываясь на разработки стандарта языка Алгол-68. В свою очередь язык получил свое название в честь французского математика, физика, литератора и философа Блеза Паскаля, который был создателем одной из первых в мире механических машин, складывающую два числа. Первая работа, публикация Вирта о данном языке была опубликована в 1970 году; демонстрируя этот язык, автор в качестве цели его создания сделал акцент на создании небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.

Особенностями Паскаля есть строгая типизация данных и наличие средств структурного программирования. Говорят, что - «Паскаль был одним из первых таких языков».

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

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

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

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

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

Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.

2.2. Основные конструкции и операторы на языке Pascal

Pascal в своей первоначальной форме является чисто процедурным языком и включает традиционный массив ALGOL-подобных управляющих структур с зарезервированными словами, такими как if, then, else, while, for и case в пределах одного оператора или begin-end. блок заявлений. Pascal также имеет конструкции структурирования данных, не включенные в исходные типы ALGOL 60, такие как записи, варианты, указатели, перечисления и наборы, а также процедуры / указатели. Такие конструкции были частично унаследованы или вдохновлены Simula 67, ALGOL 68, собственным ALGOL W Никлауса Вирта и предложениями C.A.R. Hoare.

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

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

Простые операторы. Простыми являются те операторы, которые не содержат в себе других операторов. [4]

К ним относятся:

- оператор присваивания;

- обращение к процедуре;

- оператор безусловного перехода GOTO;

- пустой оператор.

Оператор присваивания. С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа - выражение, значение которого вычисляется перед присваиванием. Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. [4] Тип выражения и тип переменной (или функции) должны быть совместимы

для присваивания (см. п. 9.3).

Пример:

X := Y;

Z := А + В;

Оператор безусловного перехода GOTO. Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO. [4]

Метки, используемые в Turbo Pascal, могут быть двух типов:

- целым числом в пределах от 0 до 9999;

- обычным идентификатором.

Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например:

label 1, 2, Metka;

Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием. Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы.

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

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

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

Структурированные операторы. Структурированными являются такие операторы, которые включают в себя другие операторы. [7]

К структурированным операторам относятся:

- составной оператор;

- условный оператор IF;

- условный оператор CASE;

- оператор цикла REPEAT;

- оператор цикла WHILE;

- оператор цикла FOR;

- оператор над записями WITH.

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

begin

<оператор 1>;

<оператор 2>;

. . .

<оператор N>

end;

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

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

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

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

Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.

Условный оператор IF. Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. [7]

Существует два варианта оператора:

if S then A

else В; {полная развилка}

и

if S then А; {укороченная развилка}

В этих операторах:

S - некоторое логическое выражение, истинность которого проверяется;

А - оператор, который выполняется, если выражение S истинно;

В - оператор, который выполняется, если выражение S ложно.

Так как условный оператор IF является единым предложением, ни перед then, ни перед else точку с запятой ставить нельзя. [5]

Примеры использования оператора:

if X < 0 then X := -Y;

if X < 1.5 then Z := X + Y else Z := 1.5;

Условный оператор CASE. С помощью этого оператора можно выбрать вариант из любого количества вариантов.

Структура этого оператора в Turbo Pascal:

case S of

Cl:<оператор1>;

C2:<оператор2>;

. . .

CN:<операторN>;

else <оператор>

end;

В этой структуре:

S - выражение порядкового типа, значение которого вычисляется;

Cl, С2, ..., CN - константы, с которыми сравнивается значение выражения S;

<оператор1>, <оператор2>, ..., <операторN> - операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;

<оператор> - оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант С1, ..., CN.

Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадет ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора IF перед словом else точку с запятой можно ставить. [6]

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

Пример:

case I of

0,2,4,6,8: WriteLn('Четная цифра');

1,3,5,7,9: WriteLn('Нечетная цифра');

10..100: WriteLn('Число от 10 до 100');

else

WriteLnC'Отрицательное число или больше 100')

end;

Оператор цикла REPEAT. Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения.[7]

Структура этого оператора:

repeat

<Оператор1>;

<Оператор2>;

. . .

<ОператорN>;

until S;

В этой структуре:

<Оператор1>; <Оператор2>; <ОператорN> - выполняемые операторы, составляющие тело цикла;

S - логическое выражение, истинность которого проверяется в конце каждой итерации.

Так как слова repeat и until являются своеобразными операторными скобками, точку с запятой перед словом until ставить не обязательно.

Оператор цикла WHILE. Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждой итерации (т е раньше, чем выполняется тело), тело цикла может не выполняться ни разу. [4]

Структура оператора цикла имеет вид:

while S do

<Оператор>;

В этой структуре:

S - логическое выражение, истинность которого проверяется в начале каждой итерации;

<Оператор> - выполняемый оператор цикла.

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

Существует два варианта оператора:

for <переменная цикла>:=<начальное значение> to <конечное значение> do <оператор>;

for <переменная цикла>:=<начальное значение> downto <конечное значение> do <оператор>;

В этих операторах:

<переменая цикла> - переменная порядкового типа;

<начальное значение> - выражение (порядкового типа), определяющее начальное значение переменной цикла;

<конечное значение> - выражение (порядкового типа), определяющее конечное значение переменной цикла (при этом значении тело цикла (т е <оператор>) выполняется последний раз);

<оператор> - выполняемый оператор.

<начальное значение> и <конечное значение> должны быть совместимы для присваивания с переменной цикла (см. п. 9.3).

Цикл действует таким образом:

- Сначала вычисляются и запоминаются начальное и конечное значения.

- Далее переменной цикла присваивается начальное значение.

- Затем значение переменной цикла сравнивается с конечным значением.

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

Выполнение очередной итерации включает в себя сначала выполнение <оператора>, а затем присваивание переменной цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).

Естественно, что, если в первом варианте <начальное значение> больше чем <конечное значение> или во втором варианте меньше чем <конечное значение>, оператор не выполняется ни разу.

После выхода из цикла <переменая цикла> становится неопределенной, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартнойпроцедуры Break.

Использование стандартных процедур Break и Continue в операторах циклов REPEAT, WHILE и FOR. В версии 7.0 в циклах REPEAT, WHILE и FOR можно использовать две стандартные процедуры - Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена. [7]

В таблице 1 приведены простые типы данных языка Pascal.

Таблица 1

Простые типы данных языка Pascal

Идентификатор

Длина (байт)

Диапазон значений

Операции

Целые типы

integer

2

-32768..32767

+, -, /, *, Div, Mod,
>=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div, Mod,
>=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, Div, Mod,
>=, <=, =, <>, <, >

shortint

1

-128..127

+, -, /, *, Div, Mod,
>=, <=, =, <>, <, >

longint

4

-2147483648..2147483647

+, -, /, *, Div, Mod,
>=, <=, =, <>, <, >

Вещественные типы

real

6

2,9x10-39 - 1,7x1038

+, -, /, *,
>=, <=, =, <>, <, >

single

4

1,5x10-45 - 3,4x1038

+, -, /, *,
>=, <=, =, <>, <, >

double

8

5x10-324 - 1,7x10308

+, -, /, *,
>=, <=, =, <>, <, >

extended

10

3,4x10-4932 - 1,1x104932

+, -, /, *,
>=, <=, =, <>, <, >

Логический тип

boolean

1

true, false

Not, And, Or, Xor,
>=, <=, =, <>, <, >

Символьный тип

char

1

все символы кода ASCII

+,
>=, <=, =, <>, <, >

3. СРЕДЫ РАЗРАБОТКИ ДЛЯ ЯЗЫКА PASCAL

3.1 Turbo Pascal

Turbo Pascal - это система разработки программного обеспечения, которая включает в себя компилятор и интегрированную среду разработки (IDE) для языка программирования Pascal, работающего на CP / M, CP / M-86 и DOS. Первоначально он был разработан Андерсом Хейлсбергом в Borland и отличался чрезвычайно быстрым временем компиляции. Turbo Pascal и более поздний, но похожий Turbo C сделали Borland лидером в разработке на базе ПК.

Для версий 6 и 7 (последняя) были выпущены как более дешевый Turbo Pascal, так и более дорогой Borland Pascal; Borland Pascal был более ориентирован на профессиональную разработку программного обеспечения, с большим количеством библиотек и стандартным исходным кодом библиотеки. Название Borland Pascal также используется более широко для диалекта Borland языка программирования Pascal, значительно отличающегося от стандартного Pascal.

Borland выпустила три старые версии Turbo Pascal бесплатно из-за их исторического интереса: оригинальный Turbo Pascal (теперь известный как 1.0) и версии 3.02 и 5.5 для DOS.

Достоинства

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

Недостатки

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

Результат пошуку зображень за запитом Turbo Pascal"

Рисунок 3 – Графический интерфейс среды разработки Turbo Pascal

3.2 Pascal ABC

PascalABC.NET - это язык программирования Pascal, который реализует классический Pascal, большинство функций языка Delphi, а также ряд собственных расширений. Он реализован на платформе .NET Framework и содержит все современные языковые функции: классы, перегрузка операторов, интерфейсы, обработка исключений, универсальные классы и подпрограммы, сборка мусора, лямбда-выражения, инструменты параллельного программирования (только OpenMP с 2016 года).

PascalABC.NET также является простой и мощной интегрированной средой разработки со встроенным отладчиком, системой IntelliSense, конструктором форм, шаблонами кода и автоматическим форматированием кода. Компилятор командной строки PascalABC.NET также доступен в Linux и MacOS (под Mono).

PascalABC.NET популярен в российских школах и университетах. В Южном федеральном университете он используется в качестве основного языка для обучения студентов по информационным технологиям по курсу «Основы программирования» и для обучения детей в одной из крупнейших компьютерных школ России.

Особенности языка, связанные с платформой .NET

  • Все типы — классы
  • Стандартный тип BigInteger
  • Стандартный тип Complex
  • Форматные строки
  • Многомерные динамические массивы
  • Интерфейсы .NET
  • Подключение пространств имен .NET в разделе uses
  • Обобщённые классы, интерфейсы, подпрограммы и процедурные переменные
  • Автоматическая сборка мусора для объектов
  • Атрибуты
  • Методы расширения
  • Поддержка неуправляемого кода через external
  • Типы type?, допускающие значение nil (синоним Nullable<T>)

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

  • Модуль растровой графики GraphWPF
  • Модуль растровой графики GraphABC (устаревший)
  • Модуль 3D графики и анимации Graph3D (на основе свободной библиотеки Helix Toolkit)
  • Модуль векторной графики WPFObjects
  • Модуль векторной графики ABCObjects (устаревший)
  • Модуль FormsABC для создания графических интерфейсов (на базе технологии Windows Forms)
  • Модуль NumLibABC (библиотека численных методов)
  • Модули исполнителей Робот и Чертёжник (школьная информатика)
  • Модуль электронного задачника Programming Taskbook (базовая версия)

Результат пошуку зображень за запитом Pascal ABC.NET"

Рисунок 4 – Графический интерфейс среды разработки Pascal ABC

3.3 Delphi

Среда предназначена для быстрой (RAD) разработки прикладного ПО для операционных систем Windows, Mac OS X, а также iOS и Android. Благодаря уникальной совокупности простоты языка и генерации машинного кода позволяет непосредственно, и, при желании, достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на C/C++.

Созданные программы независимы от стороннего ПО, как-то Microsoft .NET Framework или Java Virtual Machine. Выделение и освобождение памяти управляется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой — делает возможным создание сложных приложений с высокими требованиями к отзывчивости (работа в реальном времени).

В кросс-компиляторах для мобильных платформ предусмотрен автоматический подсчёт ссылок на объекты, облегчающий задачу управления их временем жизни. Ниже приведен примера интерфейса Delphi(рис.5).

Рисунок 5 – Интерфейс среды разработки Delphi

Delphi состоит из следующих основных составных частей:

  1. Дизайнер форм
  2. Окно редактора исходного кода
  3. Палитра компонентов
  4. Инспектор объектов
  5. Справочник

Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования.

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор).

Дизайнер Форм в Delphi интуитивно понятен и прост в использовании. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонентов.

Палитра Компонент (см. рис.5) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Палитра Компонент(рис.6) использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу).

Рисунок 6 – Палитра компонентов Delphi

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:

  • встроенный отладчик;
  • внешний отладчик (поставляется отдельно);
  • компилятор командной строки;
  • WinSight;
  • WinSpector;

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

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

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

WinSight и WinSpector интересны преимущественно для опытных программистов в Windows. Это не значит, что начинающий не должен их запускать и экспериментировать с ними по своему усмотрению. Но эти инструменты вторичны и используются для узких технических целей.

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

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

3.4 Lazarus

Lazarus — открытая среда разработки программного обеспечения на языке Object Pascal для компилятора Free Pascal (часто используется сокращение FPC — Free Pascal Compiler, бесплатно распространяемый компилятор языка программирования Pascal). Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.

Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows, Android. Начиная с Delphi XE2 в самом Delphi имеется возможность компиляции программ для Mac OS X, с версии XE4 — для iOS, с версии XE5 — для Android, с версии 10.2 Tokyo — для Linux (x64).

Основан на библиотеке визуальных компонентов Lazarus Component Library (LCL). В настоящее время практически полностью поддерживает виджеты Win32, GTK1, GTK2, Carbon, Qt. В разработке находятся виджеты WinCE.

  • Поддерживает преобразование проектов Delphi
  • Реализован основной набор элементов управления
  • Редактор форм и инспектор объектов максимально приближены к Delphi
  • Интерфейс отладки (используется внешний отладчик GDB)
  • Простой переход для Delphi программистов благодаря близости LCL к VCL
  • Полностью юникодный (UTF-8) интерфейс и редактор и поэтому отсутствие проблем с портированием кода, содержащего национальные символы
  • Мощный редактор, включающий систему подсказок, гипертекстовую навигацию по исходным текстам, автозавершение и рефакторинг
  • Форматирование исходного текста «из коробки», используя механизмы Jedi Code Format
  • Поддержка двух стилей ассемблера: Intel и AT&T (поддерживаются со стороны компилятора)
  • Поддержка множества типов синтаксиса Pascal: Object Pascal, Turbo Pascal, Mac Pascal, Delphi (поддерживаются со стороны компилятора)
  • Имеет собственный формат управления пакетами
  • Авто сборка самого себя (под новую библиотеку виджетов) нажатием одной кнопки
  • Поддерживаемые для компиляции ОС: Linux, Microsoft Windows (Win32, Win64), Mac OS X, FreeBSD, WinCE, OS/2

Lazarus IDE 9-26.png

Рисунок 7 – Графический интерфейс среды разработки Lazarus

ЗАКЛЮЧЕНИЕ

В данной курсовой работе на тему «Основы программирования на языке Pascal» было сделано следующее:

- рассмотрено понимание языков программирования, в частности высокого уровня;

- рассмотрено существующие языки программирования высокого уровня;

- наведено этапы разработки ПО;

- рассмотрено и описано характеристики и особенности языка программирования Pascal;

- наведено основные конструкции и операторы;

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

СПИСОК ЛИТЕРАТУРЫ

Источники на русском языке

1. Абрамов В. Г. Введение в язык паскаль / В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - М.: Наука, 2013. - 320 c.

2. Андреева Т. А. Программирование на языке Pascal / Т.А. Андреева - М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2013. - 240 c.

3. Грызлов В. И. Турбо Паскаль 7.0 / В.И. Грызлов Т.П. Грызлова - М.: ДМК, 2016. - 416 c.

4. Климова Л. М. Pascal 7.0. Практическое программирование. Решение типовых задач / Л.М. Климова - М.: КУДИЦ-Образ, 2014. - 528 c.

5. Кореневская О. В. Турбо Паскаль 7.0 / О.В. Кореневская - М.: НТ Пресс, 2014. - 144 c.

6. Перминов О.Н. Язык программирования Паскаль. Справочник / О.Н. Перминов - М.: Радио и связь, 2015. - 128 c.

7. Семашко Г. Л. Программирование на языке паскаль / Г.Л. Семашко, А.И. Салтыков. - М.: Главная редакция физико-математической литературы издательства "Наука", 2015. - 128 c.

Электронные ресурсы

8. Сравнение языков программирования относительно работы на фриланс-бирже [Электронный ресурс]. URL: https://www.pvsm.ru/java/118107

9. 10 лучших языков программирования для изучения. [Электронный ресурс]. URL: https://proglib.io/p/10-languages-2018/

10. Актуальность изучения современных языков программирования [Электронный ресурс]. URL: https://scienceproblems.ru/aktualnost-izuchenija-sovremennyh-jazykov.html

11. Классификация языков программирования высокого уровня [Электронный ресурс]. URL: https://life-prog.ru/view_shpargalki.php?id=2

12. Этапы разработки программы. [Электронный ресурс]. URL: http://kvodo.ru/etapy-razrabotki-programmy.html