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

Основы программирования на языке Pascal (Исследование предметной области)

Содержание:

ВВЕДЕНИЕ

Современный мир информационных технологий очень активно развивается. Одним из главных её строительных блоков является программирование.

Язык программирования — это набор правил для компьютера или вычислительного устройства с целью решения определенных задач. Термин «язык программирования» обычно относят к языкам высокого уровня, таким как BASIC, C, C ++, COBOL, Java, FORTRAN, Ada, Pascal.

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

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

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

Находящиеся выше, языки высокого уровня — это языки, называемые языками четвертого поколения.

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

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

Объектом исследования является изучение основ программирования, а предметом исследования изучение основ программирования языка Pascal.

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

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

  • раскрытие понятия «программирование»;
  • анализ парадигм программирования;
  • исследования истории появления языка Pascal;
  • изучение синтаксиса языка Pascal;
  • разработка программ на языке Pascal.

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

1. Исследование предметной области

1.1 Сущность программирования

Программирование — это процесс и искусство создания компьютерных программ с помощью языков программирования.

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

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

Наиболее очевидно то, что программирование имеет отношение к ремеслу. Технология – это кристаллизованное ремесло, а о технологии программирования говорится много и постоянно.

Изучение программирования нельзя начать, не ответив на вопросы: а что же такое язык программирования, алгоритм, программа, данные. [2, 7, 16]

Язык программирования — формальная знаковая система для описания программы работы компьютера в форме, пригодной для трансляции и исполнения на компьютере. Язык программирования – это, прежде всего, инструмент деятельности, и на него в первую очередь оказывает влияние класс решаемых на нем задач. Хотя бы один язык нужно знать досконально, чтобы представлять многообразие имеющихся средств и иметь возможность сравнивать с другими. Для будущих специалистов в области компьютерных технологий, безусловно, необходимо изучение языка С. Универсализм его не в том, что на нем можно написать все, а в том, что на нем можно написать все, на чем пишется все остальное, а именно: операционные системы, базы данных, трансляторы и т.п.

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

Специалисты, профессионально занимающиеся программированием, называются программистами. В первые годы существования ЭВМ для использования компьютера в любой области нужно было уметь программировать. В 1970-х - 80-х годах XX века начинает развиваться прикладное программное обеспечение. Бурное распространение прикладного ПО произошло с появлением персональных компьютеров. Стало совсем не обязательным уметь программировать для того, чтобы воспользоваться компьютером. Люди, работающие на компьютерах, разделились на пользователей и программистов. В настоящее время пользователей гораздо больше, чем программистов. [2, 7, 16]

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

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

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

Язык программирования — это фиксированная система обозначений для описания алгоритмов и структур данных.

Популярными языками программирования сегодня являются Pascal, C, C#, Java и др.

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

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

Существуют системы программирования на Паскале, Бейсике и других языках. [2, 7, 16]

Примером узкоспециализированного программирования является Web-программирование, ориентированное на создание Web-сайтов. Для этих целей, например, используются языки HTML, JavaScript. Языки Паскаль, Бейсик, Си относятся к числу универсальных языков программирования.

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

1.2 Парадигмы программирования

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

Одной из характеристик языка является его поддержка определенных парадигм программирования. Например, Smalltalk имеет прямую поддержку программирования объектно-ориентированным способом, поэтому его можно назвать объектно-ориентированным языком. Программы OCaml, Lisp, Scheme и JavaScript имеют тенденцию активно использовать функции, поэтому они называются «функциональными языками», несмотря на наличие переменных и многих императивных конструкций.

Здесь есть два очень важных замечания:

  1. Очень немногие языки реализуют парадигму на 100%. Если они это делают, они являются чистыми. Очень необычно иметь «чистый ООП» язык или «чистый функциональный» язык. У многих языков есть несколько ответвлений; например, в OCaml, можно программировать с функциями на 90% или более времени.
  2. Многие языки облегчат программирование в одной или нескольких парадигмах. В Scala можно легко программировать с точки зрения объектно-ориентированного, и одновременного функционального программирования. Если язык специально предназначен для программирования во многих парадигмах, то он называется многопарадигменным языком. Бывают языки, которые стали поддерживать многофункциональность случайно, то есть изначально они не были разработаны с этой целью. Создатели таких языков придерживаются точки зрения, гласящей, что ни одна парадигма не может быть одинаково эффективной для всех задач, и следует позволять разработчику выбрать лучший стиль программирования для решения каждой отдельной задачи.

Рассмотрим различные парадигмы программирования. [3, 8]

Управление потоком в императивном программировании является явным: команды показывают, как вычисление происходит, шаг за шагом.

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

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

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

  • императивная парадигма наиболее близко напоминает собственно машинный код, поэтому программист гораздо ближе к “железу”;
  • из-за такой близости императивная парадигма была единственной, достаточно эффективной для широкого использования до недавнего времени.

Преимущества императивного подхода:

  • эффективность;
  • близость к «железу»;
  • популярность;
  • знаком программистам.

Недостатки императивного подхода:

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

Логическая Парадигма применяет декларативный подход к решению проблем. Логическая парадигма программирования предусматривает использование математической логики для разработки программ. Проводятся различные логические утверждения о ситуации, устанавливаются все известные факты. Затем выполняются запросы. Роль компьютера — это сохранение данных и логический вывод. [15]

Логическая программа разделена на три раздела:

1. ряд определений/деклараций, определяющих проблемную область;

2. заявления соответствующих фактов;

3. постановка целей в форме запроса.

Возвращается любое выводимое решение для запроса. Определения и декларации строятся целиком из отношений. т.е. X является членом Y или X находится внутри между a и b, и т. д.

Преимущества логико-ориентированного программирования многообразны:

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

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

Функциональные языки создаются на основе функциональной парадигмы. Такие языки допускают функциональные решения проблем, позволяя программисту рассматривать функции как объекты первого класса (их можно рассматривать как данные, которые, как предполагается, имеют значение того, что они возвращают, поэтому они могут быть переданы другим функциям в качестве аргументов или возвращены от функций). [6, 9, 11]

Имеются следующие преимущества функционального программирования:

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

2. Отсутствие зависимости от операций присваивания. Эта независимость в отношении оценки делает функционально-ориентированные языки хорошими кандидатами для программирования параллельных компьютерных систем;

3. Отсутствие операций присваивания делает функционально-ориентированные программы гораздо более пригодными для математического доказательства и анализа, чем настольные программы, поскольку функциональные программы обладают ссылочной прозрачностью. [4, 10, 13]

К недостаткам можно отнести следующие:

1. Возможно, менее эффективно.

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

Объектно-ориентированное программирование (ООП) — это парадигма, в которой объекты реального мира рассматриваются как отдельные сущности, имеющие собственное состояние, которое модифицируется только встроенными процедурами, называемыми методами.

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

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

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

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

Возможность использования наследования является самой отличительной особенностью парадигмы ООП. Наследование дает ООП главное преимущество над другими парадигмами программирования — относительно простое повторное использование кода и расширение без необходимости изменения существующего исходного кода. [7]

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

Инкапсуляция — в объектно-ориентированном программировании - сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. В идеале, состояние объекта инкапсулируется и получает доступ только к методам этого объекта. Таким образом, инкапсуляция и скрытие информации являются неотъемлемыми преимуществами ООП. [12, 14]

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

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

1.3 Процедурное программирование

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

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

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

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

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

Из-за способности указывать простой интерфейс, быть автономным и повторно использоваться, процедуры являются удобным средством для создания фрагментов кода, написанных разными людьми или различными группами, в том числе через библиотеки программирования. [4, 11]

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

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

Проблема, очевидная в процедурном программировании, заключается в том, что, если редактирование требуется программе, разработчик должен отредактировать каждую строку кода. Например, если в начале программы переменная была установлена равной значению 1. Если другие подпроцедуры программы полагаются на эту переменную равным 1 для правильной работы, их также необходимо будет отредактировать. Поскольку для кода может потребоваться все больше изменений, становится все труднее находить и редактировать все связанные элементы в программе. [3, 9]

В данной главе были раскрыты такие понятия как объектно-ориентированное программирование, процедурно-ориентированное программирование и рассмотрены другие парадигмы программирования.

2. Особенности языка Pascal

2.1 История появления языка Pascal

Паскаль, Pascal — высокоуровневый язык программирования общего назначения (3GL). Один из наиболее известных языков программирования, используется для обучения программированию в старших классах и на первых курсах вузов, является базой для ряда других языков, таких как Ада, Модула-2, Delphi, однако, уже устарел для использования в промышленном программировании. [4]

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

В 1978 году в Калифорнийском университете в Сан-Диего была разработана система UCSD p-System, включавшая порт компилятора Вирта с языка Паскаль в переносимый p-код, редактор исходных кодов, файловую систему и прочее, а также реализовывавшая значительное число расширений языка Паскаль, такие как модули, строки символов переменной длины, директивы трансляции, обработка ошибок ввода-вывода, обращение к файлам по именам и другое. Впоследствии основные реализации языка Паскаль основывались на этом диалекте. [1]

В 1983 году появилась первая версия интегрированной среды разработки Turbo Pascal фирмы Borland, основывавшаяся на одноимённой реализации Паскаля.

В 1989 году объектное расширение языка было добавлено в Turbo Pascal версии 5.5.

Последняя версия (7.0) была переименована в Borland Pascal.

Объектные средства были позаимствованы из Object Pascal от Apple, языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны.

Почти в то же самое время, что и Borland, Microsoft выпустил свою версию объектно-ориентированного языка Паскаль. Эта версия Паскаля не получила широкого распространения.

Дальнейшее развитие реализации Паскаля от Borland породило вариант Object Pascal от Borland, впоследствии, в ходе развития среды программирования Delphi, получивший одноимённое название. [8]

Важным шагом в развитии языка является появление свободных реализаций языка Паскаль Free Pascal и GNU Pascal, которые не только вобрали в себя черты множества других диалектов языка, но и обеспечили чрезвычайно широкую переносимость написанных на нём программ (например GNU Pascal поддерживает более 20 различных платформ, под более чем 10 различными операционными системами, Free Pascal обеспечивает специальные режимы совместимости с различными распространёнными диалектами языка, такими как Turbo Pascal (полная совместимость), Delphi и другими).

Начиная с Delphi 2003, создана реализация языка для платформы Net, хотя разработчики продолжают использовать Delphi более ранних версий.

О коммерческих разработках на Free Pascal, GNU Pascal и TMT Pascal на данный момент известно мало.

Кроме того, в Южном федеральном университете разрабатывается язык и система программирования PascalABC.NET, ориентированная на обучение современному программированию. Язык системы — это Object Pascal для платформы Microsoft .NET, который содержит все основные элементы современных языков программирования: модули, классы, перегрузку операций, интерфейсы, исключения, обобщённые классы, сборку мусора, а также некоторые средства параллельного программирования.

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

Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом в статье "Почему Паскаль не является моим любимым языком программирования?" (эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.

Однако многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. К 1980-м годам Паскаль стал основой для многочисленных учебных программ, в отдельных случаях на его основе были созданы специализированные обучающие языки программирования, так, в начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники Андрей Ершов разработал алголо-паскалеподобный «учебный алгоритмический язык». [12]

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

Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из-за отсутствия других успешных коммерческих реализаций.

После начала использования Паскаля в 1970 году и появления реализаций, расходящихся не только в дополнениях, но и в синтаксисе, был поднят вопрос о стандартизации языка. Стандарт языка был разработан Никлаусом Виртом в 1974 году совместно с Кетлин Йенсен (Kathleen Jensen). В дальнейшем, были приняты международный стандарт от ISO и американский от ANSI. На данный момент, выделяют три принципиально разных стандарта: Unextended Pascal (исходный), Extended Pascal (расширенный), Object-Oriented Extensions to Pascal (объектно-ориентированное расширение Паскаля).

Одним из главных дополнительных свойств объектно-ориентированного расширения Extended Pascal стала модульность и средства, облегчающие раздельную компиляцию.

Стандартизация языка была запаздывающей по отношению к реальному появлению в языке тех или иных возможностей. Коммерческие реализации расширяли стандартный Паскаль; так было сделано в UCSD Pascal, модификации Object Pascal фирмой Apple, Turbo Pascal от Borland (незначительно модифицированная версия Apple) и его ответвлений. Ни одна из распространённых коммерческих реализаций Паскаля не соответствует в точности ни одному из официальных стандартов языка. [3]

Паскаль, в его первоначальном виде, представляет собою чисто процедурный язык и включает в себя множество алголоподобных структур и конструкций с зарезервированными словами наподобие if, then, else, while, for, и т. д. Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций, которые отсутствуют в изначальном Алголе-60, такие как определение типов, записи, указатели, перечисления, и множества. Эти конструкции были частично унаследованы или инспирированы от языков Симула-67, Алгол-68, созданного Никлаусом Виртом AlgolW (англ.) русск. и предложены Хоаром.

В современных диалектах (Free Pascal) доступны такие операции, как перегрузка операторов и функций.

2.2 Синтаксис языка Pascal

Pascal работает на различных платформах, таких как Windows, Mac OS и различных версиях UNIX/Linux.

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

Паскаль — это язык на основе Алгола и включает в себя множество конструкций Алгола. Алгол 60 является подмножеством Паскаля. Паскаль предлагает несколько типов данных и структуры программирования. Легко понять и поддерживать программы Pascal. [1]

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

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

Особенности языка Pascal. Паскаль имеет следующие функции:

Паскаль — строго типизированный язык;

  • он предлагает обширную проверку ошибок;
  • он предлагает несколько типов данных, таких как массивы, записи, файлы и наборы;
  • он предлагает различные структуры программирования;
  • он поддерживает структурированное программирование через функции и процедуры; [7]
  • он поддерживает объектно-ориентированное программирование.

Ниже приведен простой код паскаль (листинг 1), который будет печатать слова «Hello, World!».

Листинг 1 — Простая программа на Pascal

program HelloWorld;

uses crt;

begin

writeln('Hello, World!');

readkey;

end.

Определение переменной помещается в блок, начинающийся с ключевого слова var , с последующим определением переменных следующим образом: «var A_Variable, B_Variable ... : Variable_Type;»

Переменные Pascal объявляются вне тела кода функции, что означает, что они не объявлены в парах начала и конца, но они объявляются после определения процедуры/функции и перед ключевым словом begin. Для глобальных переменных они определяются после заголовка программы. [8]

В Паскале процедура состоит из команд, которые должны быть выполнены, без возвращаемого значения, а функция — это процедура с возвращаемым значением. Определение функции/процедур будет таким, как показано в листинге 2.

Листинг 2 — Определение процедур

Function Func_Name(params...) : Return_Value;

Procedure Proc_Name(params...);

Многострочные комментарии заключены в фигурные скобки и звездочки как {* ... *}. Паскаль допускает однострочный комментарий, заключенный в фигурные скобки {...} (листинг 3).

Листинг 3 — Комментарии

{* Это многострочный

комментарий *}

{ Это однострочный комментарий }

Объявление типа используется для объявления типа данных идентификатора. Синтаксис объявления типа: type-identifier-1, type-identfier-2 = type-specifier;

Например, следующее объявление определяет переменные days и age как integer type, yes и true как Boolean type, name и city как тип строки, сборы и расходы как реальный тип (листинг 4). [5]

Листинг 4 — Определение переменных

type

days, age = integer;

yes, true = boolean;

name, city = string;

fees, expenses = real;

Основные переменные в Паскаль показаны ниже:

  1. Символ. Обычно один байт. Это целочисленный тип.
  2. Целое число. Самый естественный размер целого для машины.
  3. Числа с плавающей запятой. Значение с плавающей запятой с одиночной точностью.
  4. Логический. Задает истинные или ложные логические значения. Это также целочисленный тип.
  5. Перечислимый. Определяет пользовательский список.
  6. Поддиапазон. Представляет переменные, значения которых лежат в пределах диапазона.
  7. Строка. Сохраняет массив символов.

Язык программирования Pascal также позволяет определять различные другие типы переменных, таких как «Указатель», «Массив», «Записи», «Наборы и файлы» и т. д. [5]

Все переменные должны быть объявлены до их использования в программе Pascal. За всеми объявлениями переменных следует ключевое слово var . Объявление определяет список переменных, за которым следует двоеточие (:) и тип. Синтаксис объявления переменной показан на листинге 5.

Листинг 5 — Определение переменных

var

variable_list : type;

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

Листинг 6 — Объявления переменных

var

age, weekdays : integer;

taxrate, net_income: real;

choice, isready: boolean;

initials, grade: char;

name, surname : string;

Pascal позволяет объявить собственный тип. Этот тип может быть идентифицирован по имени или идентификатору. Он может использоваться для определения переменных этого типа (листинг 7).

Листинг 7 — Объявление типов

type

days, age = integer;

yes, true = boolean;

name, city = string;

fees, expenses = real;

Константа — это объект, который остается неизменным во время выполнения программы. Паскаль позволяет объявлять только константы следующих типов:

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

Синтаксис для объявления констант показан на листинге 8. [5]

Листинг 8 — Объявление констант

const

identifier = constant_value;

Необходимо соблюдать форматирование в выводе программы. Переменная c должна быть отформатирована с общим числом цифр 7 и 2 цифрами после десятичного знака. Pascal допускает такое форматирование вывода с числовыми переменными.

2.3 Разработка программ на языке Pascal

Программа Pascal в основном состоит из следующих частей:

  • название программы;
  • использование команды;
  • объявление типа;
  • постоянные декларации;
  • объявления переменных;
  • объявление функций;
  • запросы процедур;
  • основной программный блок;
  • выражения и выражения в каждом блоке;
  • комментарии.

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

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

Приведем примеры программ на Pascal (листинг 12, 13 и 14).

Листинг 12 — Функция проверки числа на четность

function Even(x: integer): boolean;

begin

Result := x mod 2 = 0

end;

begin

writeln(Even(3));

writeln(Even(4));

writeln(Even(7));

end.

Листинг 13 — Функция определения простоты числа

function IsSimple(N: integer): boolean;

begin

Result := True;

for var i:=2 to round(sqrt(N)) do

if N mod i = 0 then

begin

Result := False;

exit;

end;

end;

begin

writeln(IsSimple(13));

writeln(IsSimple(4));

writeln(IsSimple(7));

end.

Листинг 14 — Функция вычисления n-того числа Фибоначчи

function Fib(N: integer): integer;

begin

if (N=1) or (n=2) then

Result := 1

else

begin

var a := 1;

var b := 1;

for var i:=3 to N do

begin

Result := a + b;

a := b;

b := Result;

end;

end;

end;

begin

writeln(Fib(5));

writeln(Fib(6));

writeln(Fib(7));

end.

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

ЗАКЛЮЧЕНИЕ

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

Были приведены примеры разработки программ на этом языке. Также были изучены различные парадигмы программирования.

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

Была изучена различного рода литература, которая приведена в конце данной работы.

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

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

Разработчику все равно нужно будет указать, кто использует программу и что им нужно получить, но код не используется повторно в том же виде, как в объектно-ориентированное программировании. Благодаря кодированию таким образом процесс разработки намного проще, но также требует больше времени.

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

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

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

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

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

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

  1. Алиев, Ю.А. Практикум по алгоритмизации и программированию на языке Паскаль/ Ю.А. Алиев. – В. – Питер: 2007. – 527с
  2. Алексеев, Е.Р. Турбо Паскаль 7.0/ Е.Р. Алексеев, О.В. Чесноков а.- М.: НТ Пресс, 2007.– 83с.
  3. Аронов, В.В. TurboPascal/В.В. Аронов. – БХВ - Петербург, 2004 . – 156с.
  4. Артемов, И. Л. Fortran: основы программирования. – М.: Диалог-МИФИ, 2007. – 304с.
  5. Вирт Н. Построение компиляторов. — ДМК Пресс, 2013. — 188 с.
  6. Владстон Феррейра Фило Теоретический минимум по Computer Science. Все что нужно программисту и разработчику. — Питер, 2018. — 224 с.
  7. Мартин Р. Чистый код: создание, анализ и рефакторинг. — Питер, 2018. — 464 с.
  8. Нахавандипур В. Приемы программирования. — Питер, 2014. — 1000 с.
  9. Орлов С. А. Теория и практика языков программирования. — Питер, 2017. — 688 с.
  10. Программирование на фортране. Справочник. - М.: Статистика, 2013. - 176 c.
  11. Павловская, Т. А. Паскаль. Программирование на языке Турбо Паскаль / Т.А. Павловская. - СПб. – Петербург: 2007. – 317с.
  12. Пярнпуу, А.А. Программирование на АЛГОЛе и фортране / А.А. Пярнпуу. - М.: Наука, 1978. - 335 c.
  13. Michael Coughlan Beginning COBOL for Programmers. — Apress, 2014. — 588 p.
  14. Паскаль [Электронный ресурс]. - Типы данных. – Режим доступа: http://www.pascal.ru Дата обращения (16.03.2019)
  15. Информатика [Электронный ресурс]. Что такое программирование. – Режим доступа: http://www.5byte.ru/9/0012.php Дата обращения (16.03.2019)
  16. 3GL - Языки третьего поколения и методы программирования [Электронный ресурс]. Язык программирования Паскаль. – Режим доступа: http://bourabai.kz/alg/pascal/index.html Дата обращения (16.03.2019)