Файл: Основы программирования на языке Pascal (Исследование предметной области).pdf
Добавлен: 30.03.2023
Просмотров: 262
Скачиваний: 2
Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является 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;
Основные переменные в Паскаль показаны ниже:
- Символ. Обычно один байт. Это целочисленный тип.
- Целое число. Самый естественный размер целого для машины.
- Числа с плавающей запятой. Значение с плавающей запятой с одиночной точностью.
- Логический. Задает истинные или ложные логические значения. Это также целочисленный тип.
- Перечислимый. Определяет пользовательский список.
- Поддиапазон. Представляет переменные, значения которых лежат в пределах диапазона.
- Строка. Сохраняет массив символов.
Язык программирования 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.
Были приведены примеры разработки программ на этом языке. Также были изучены различные парадигмы программирования.
Поставленные задачи были решены, в частности, было раскрыто понятие «объектно-ориентированного программирования», рассмотрен процедурный подход.
Была изучена различного рода литература, которая приведена в конце данной работы.
При разработке с процедурным программированием разработчик может использовать совершенно иной подход к разработке приложений. Процедурное программирование использует более высокий подход к написанию приложения, а разработчик, который использует объектно-ориентированный подход для создания приложений, подумывает о планировании программы с повторно используемыми классами, разработчик, который использует процедурное программирование, может планировать программу без идеи утилизации кода.
Планирование по-прежнему связано с процедурным программированием, но оно требует гораздо более буквального подхода. В случае системы оценки вместо того, чтобы думать о том, какие классы или объекты нужно использовать с функциями и методами, программист может подумать о том, как программа должна выполняться по мере выполнения кода.
Разработчику все равно нужно будет указать, кто использует программу и что им нужно получить, но код не используется повторно в том же виде, как в объектно-ориентированное программировании. Благодаря кодированию таким образом процесс разработки намного проще, но также требует больше времени.
Например, разработчик процедурного программирования, который строит систему оценки, может сначала создать форму, в которой пользователь может зарегистрироваться для доступа к системе. Затем данные, которые будут записаны в форме, должны быть проверены каким-то методом, а затем сохранены в какой-либо базе данных. После того, как пользователь отправил форму и данные были проверены, пользователю необходимо будет подтвердить подтверждение о статусе их регистрации.
Весь этот процесс в процедурном программировании будет закодирован непосредственно в приложении и будет полезен только для процесса регистрации пользователя. Другие процессы, такие как вход в систему и выход из системы, будут отдельными процессами, которые необходимо закодировать в приложении.
В отличие от объектно-ориентированного программирования, где объекты и классы могут быть указаны во всей программе, проблемы, решаемые в процедурном программировании, должны быть индивидуально рассмотрены по мере выполнения программы.
Таким образом, мы рассмотрели основные особенности процедурных языков программирования. Можно сделать выводы, что процедурный подход является актуальным в нынешнем мире разработки программного обеспечения, и в целом имеет свои плюсы, которые делают его наилучшим выбором при решении ряда задач.