Файл: Основы программирования на языке Pascal. Особенности языка Паскаль как программирования.pdf
Добавлен: 29.06.2023
Просмотров: 65
Скачиваний: 4
^ используется для именования динамических переменных;
{} ограничение комментариев в программе;
[ ] заключают в себе индексы элементов массивов;
_ символ подчеркивания используется также как любая буква, например, в идентификаторах - вместо пробела;
# обозначение символа по его коду;
$ обозначение директивы компилятора, обозначение шестнадцатеричного числа.
Возникает вопрос, а как же быть с русскими буквами и другими знаками, имеющимися на клавиатуре? Некоторые версии Паскаля допускают их использование в программе, но стандарт языка этого не подразумевает. Поэтому включать эти символы в программу можно только в качестве строковых констант или внутри комментария, то есть там, где транслятор при компиляции их игнорирует. При использовании этих знаков в качестве данных, они равноправны со всеми символами, которые может хранить в памяти и обрабатывать компьютер.
2.2 Структура программы на Паскале
По определению стандартного Паскаля – основные элементы программы – заголовок программы заголовка и тело программы (блок), за которым следует точка — признак конца программы. В свою очередь, блок состоит из описания и операторов.
Раздел операторов присутствует в любой программе и он - основной. Предшествующие разделы чисто описательны и не в обязательном порядке имеются в каждой программе.
В Турбо Паскале, в отличие от стандарта, возможно следующее:
- заголовки программы могут отсуствовать;
- разделы Const, Type, Var, Label могут иметь любую последовательность и встречаться в разделе описаний не один раз.
Рассмотрим примеры программ. Как было сказано выше - Паскаль разрабатывался Н. Виртом как учебный язык. Главный его принцип — поддержание структурной методики программирования. Тот же принцип заложен в основу псевдокода, который называют Алгоритмическим языком (АЯ). По сути своей, разница между АЯ и Паскалем заключается в то, что АЯ — русскоязычный, Паскаль — англоязычный; синтаксис Паскаля определен строго и однозначно в отличие от сравнительно свободного синтаксиса АЯ.
Запись программы на Паскале похожа на английский перевод алгоритма, записанного на Алгоритмическом языке. Сравните алгоритм деления простых дробей, записанный на АЯ, с соответствующей программой на Паскале[1, с. 76].
Здесь использовано следующее равенство:
Даже не заглядывая в учебник по Паскалю, в данной программе можно все понять. Для этого достаточно знать английский язык.
Заголовок программы начинается со слова Program (программа), за которым следует произвольное имя, придуманное программистом (division — деление). Раздел описания переменных начинается со слова Var (variables — переменные), за которым следует список переменных. Тип указывается после двоеточия словом Integer — целый. Начало и конец раздела операторов программы отмечаются словами Begin (начало) и End (конец). В конце программы обязательно ставится точка.
Ввод исходных данных с клавиатуры производится с помощью процедуры ReadLn (read line — читать строку). На клавиатуре набирают четыре числа, отделяемые друг от друга пробелами, которые отражаются строкой на экране дисплея. После набора чисел нажимают на клавишу ввода.
Операторы присваивания в Паскале записываются так же, как в АЯ. Знак умножения — * (звездочка).
Вывод результатов на экран дисплея производится с помощью процедуры WriteLn (write line — писать в строку). В рассмотренном примере два целых числа т и п выведутся в строчку, курсор на экране перейдет в начало следующей свободной строки и работа программы завершится.
Необходимо строгое соблюдение правил правописания (синтаксиса) программы. В частности, в Паскале однозначно определено назначение знаков пунктуации. Точка с запятой (;) ставится в конце заголовка программы, в конце раздела описания переменных, после каждого оператора. Перед словом End точку с запятой можно не ставить. Запятая (,) является разделителем элементов во всевозможных списках: списке переменных в разделе описания, списке вводимых и выводимых величин.
Строгий синтаксис в языке программирования необходим прежде всего для транслятора. Транслятор — это программа, которая исполняется формально. Если, допустим, разделителем в списке переменных должна быть запятая, то любой другой знак будет восприниматься как ошибка. Если точка с запятой является разделителем операторов, то транслятор в качестве оператора воспринимает всю часть текста программы от одной точки с запятой до другой. Если вы забыли поставить этот знак между какими-то двумя операторами, то транслятор будет принимать их за один, что неизбежно приведет к ошибке.
Основное назначение синтаксических правил — придать однозначный смысл языковым конструкциям. Если какая-то конструкция может трактоваться двусмысленно, значит, в ней обязательно содержится ошибка. Лучше не полагаться на интуицию, а выучить правила языка.
В дальнейшем мы строго опишем синтаксические правила Паскаля, а пока для получения первоначального представления о языке обратимся еще к нескольким примерам программирования несложных алгоритмов.
«Оттранслируем» алгоритм вычисления факториала натурального числа (N!) на Паскале.
Из этого примера, во-первых, видно, как записывается на Паскале оператор цикла с предусловием (цикл-пока):
While <условие выполнения> Do <тело цикла>
(While — пока, Do — делать). Если тело цикла содержит последовательность операторов, то говорят, что оно образует составной оператор, в начале и в конце которого надо писать Begin и End
Служебные слова Begin и End часто называют операторными скобками[7, с.90], которые объединяют несколько операторов в один составной. Если же тело цикла — один оператор (не составной), то операторных скобок не требуется. Тогда транслятор считает, что тело цикла заканчивается на ближайшем знаке «;».
Во-вторых, из примера видно, что в Паскале нет специальных слов для обозначения начала цикла (нц) и конца цикла (кц). На все случаи есть универсальные слова Begin и End.
Рассмотрим еще один пример программы — решение квадратного уравнения.
В этой программе по сравнению с предыдущими появилось много новых элементов. Имя вещественного типа в Паскале — real.
Цикл с постусловием (цикл-до) программируется оператором
Repeat <тело цикла> Until <условие окончания>
(здесь Repeat — повторять, Until — до). Тело цикла может быть как одиночным, так и составным оператором, однако употребления Begin и End не требуется, поскольку сами слова Repeat и Until выполняют роль операторных скобок.
Знак не равно в Паскале пишется так: <>, знак больше или равно: >=.
В формулах вычисления корней используется стандартная функция квадратного корня (), которая в Паскале записывается так: sqrt (x)[2, с.106]. Последовательность выполнения операций в выражении определяется при помощи скобок, а также старшинством операций. Здесь старшинство операций такое же, как старшинство и в алгебре. Операции с одинаковым старшинством выполняют в соответствии с в порядком их записи (слева направо).
Ветвление в Паскале программируется при помощи условного оператора, который имеет следующую форму:
If <условие> Then <оператор 1> Else «oператор 2>
(здесь If — если, Then — то, Else — иначе). Операторы 1 и 2 могут быть как простыми, так и составными. Составной оператор следует заключать в операторные скобки Begin и End.
Так же, как и в Алгоритмическом языке, возможно использование неполной формы условного оператора:
if <условие> then <оператор>
Отличительная особенность данной программы – это использование в тексте комментариев. Комментарий — это любая последовательность символов, заключенных в фигурные скобки {...}. Также имеется возможность использовать следующие ограничители комментариев (*...*). Комментарий не определяет никаких действий программы и является лишь пояснительным текстом. Он может быть в любом месте программы, где можно поставить пробел.
Программист создает комментарии в основном не для компьютера, а для себя. Текст программы при помощи комментария приобретает большую ясность. Программы, содержащие достаточное количество комментариев, называют самодокументированными. Во многих аналогичных программах объем комментариев обычно превышает объем вычислительных операторов.
Удачное владение и применение комментариев — признак хорошего стиля программирования.
Чтобы выполнить программу на ЭВМ, ее нужно ввести в память, оттранслировать и исполнить. Для того чтобы проделать всю эту работу, на компьютере должны быть специальные средства программного обеспечения. На ПК они составляют систему Турбо Паскаль.
2.3 Нынешнее положение Паскаля
Язык программирования Паскаль, разработанный в 1970-х гг. Никлаусом Виртом в целях обучения программированию, подвергся за прошедшее время достаточно большого количества изменений в лучшую сторону. Все это благодаря фирме Borland International, которая длительный период производила линейку Turbo Pascal. Одно из основных усовершенствований, которая она внесла, — это дополнение языка разнообразными и мощными средствами ввода-вывода. Другое связано с языком Модула-2 (автором которого также стал Н. Вирт): компания Borland отказалась от распространения компилятора этого языка, и вместо него она спокойно использовала модульный принцип построения в Турбо-системе. Также, в Паскаль были добавлены средства непосредственного доступа к портам и ячейкам памяти, а чуть позже - добавлена возможность включать в текст программы фрагменты, написанные на ассемблере. Все это превратило Паскаль из средства обучения в достаточно мощный универсальный язык.
Сейчас признанными лидерами в области профессионального программирования стали Си-подобные языки. В течение долгого периода Паскаль был, пожалуй, почти единственной альтернативой им в качестве универсального языка. Однако когда труд большинства профессиональных программистов стал практически сводиться лишь к манипуляциям с вызовами более или менее стандартного API-инструментария (Application Programming Interface — интерфейс прикладного программирования), остро встал вопрос выбора единственного языка программирования, на котором (и для которого) будет писаться этот API. Вследствие различных причин — как объективных, так и субъективных — выбор пал на Си/Си++. Во-первых, Си, как и Паскаль, оказался одним из первых языков высокого уровня (ЯВУ), разрешившим проблему «курицы и яйца»: его компилятор был написан на нем же. Во-вторых, компиляторы для Си делать, пожалуй, легче, чем для любого другого языка (что, собственно, и было одной из целей его разработки), поэтому именно их выпуск экономически наиболее целесообразен. Впрочем, не обошлось и без субъективных факторов: значительную долю сегодняшнего API производит фирма Microsoft, уже давно разграничившая с фирмой Borland «сферы влияния» в этой области. Сейчас Borland не выпускает компиляторы для Бейсика и Фортрана, а Microsoft – для Паскаля, и, естественно, не ориентирует свои API на те языки, компиляторы которых сама не выпускает.
Поэтому лидерство Си в области профессионального программирования обусловлено в основном тем, что только на нем можно использовать новый API-интерфейс сразу же после его выхода, тогда как программистам, работающим на других языках, приходится либо ждать, когда появятся нужные интерфейсные модули, либо самостоятельно их писать.
Однако в области создания СУБД Паскаль до сих пор входит в число лидеров, поскольку продолжается разработка инструментального ПО для работы с объектными версиями этого языка (Delphi). Кроме того, Паскаль и его диалекты зачастую применяются в качестве «внутреннего» языка СУБД.
На сегодняшний день практически все продажи продуктов программирования направлены на многозадачные ОС (Windows, UNIX и пр.); при этом активно применяют API-инструментарий, плюс визуальные средства программирования.
С одной стороны это достаточно удобно, но если посмотреть со стороны рациональности в обучении, тут возникает вопрос, потому что не легко учиться разрабатывать и/или воплощать алгоритм.
Также надо помнить, что каждый начинающий пользователь сталкивается в работе с достаточном большим объемом информации, которую прежде всего необходимо запомнить, изучить, прежде чем приступать к собственно самому программированию. Да и, честно говоря, постоянное обновление API затрудняет работу и преподавателя, и ученика.
Текстовый интерфейс командной строки, принятый в DOS, позволяет, не особенно заботясь о вводе-выводе, уделить центральное внимание разработке и реализации самого алгоритма. Те же, кто уже успел разобраться с ПК, могут осваивать основы компьютерной графики, не изменяя платформы.
Медицинские рецепты принято выписывать на латыни. От всех живых языков она отличается тем, что уже не изменяется. К тому же медики, на каком бы языке они ни говорили, имеют в латыни общий язык. Также и про DOS. Его API достаточно лаконичен и уже давно не претерпевает никаких изменений. Все ОС (на платформе Intel) предоставляют возможность с программами DOS, а вот программа, написанная, допустим, для Linux, в Windows уже не запустится.
Познакомимся поближе с Паскалем для DOS. В образовании и по сей день широко применима последняя 7-я версия Паскаля, выпущенная компанией Borland, созданная более 8 лет назад. Со своим основным предназначением компилятор Паскаля справляется, но часто даже школьники, которым удалось постигнуть начальные азы программирования, встречают барьеры. Основная проблема компилятора - его16-разрядность. Ограничение в 64 Кбайт на все статические данные представляется достаточно жестким при типичных на сегодняшний день 32-128 Мбайт оперативной памяти. Так же и графические режимы: максимальное разрешение, с которым возможно работать Turbo/Borland Pascal, требует лишь 150-Кбайт видеопамяти, в то время как появляются видеоадаптеры, несущие уже 64 Мбайт.