Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Воронежский государственный технический университет»
Кафедра информатики и графики
Основные понятия алгоритмического языка Паскаль
Учебное пособие
для самостоятельной работы по дисциплине «Информатика»
для студентов 2-го курса всех направлений подготовки
Воронеж 2017
УДК 004.9.(07)
ББК 32,81 я 73
К 647
Рецензенты:
кафедра информационных систем
Воронежского государственного университета;
С.И.Поляков, к.т.н., доцент Воронежского государственного
лесотехнического университета им. Г.Ф. Морозова
Кононов, А.Д.
Основы программирования на языке Паскаль. Основные понятия К 647 алгоритмического языка Паскаль: учебное пособие для самостоя- тельной работы по дисциплине «Информатика» студентов 2-го курса всех направлений подготовки / сост.: А.Д. Кононов, А.А. Кононов; ВГТУ. – Воронеж, 2017. – 53 с.
ISBN 978-5-7731-0504-6
Учебное пособие содержит базовые элементы, понятия, определения и правила построения основных конструкций языка программирования Паскаль. Его целью является приобретение и закрепление навыков программирования при работе с базовыми элементами популярного алгоритмического языка.
Предназначено для студентов всех направлений подготовки при изучении дисциплины «Информатика», выполнении контрольных заданий и лабораторных работ, самостоятельной работы студентов всех форм обучения.
Ил. 3. Табл. 8. Библиогр.: 7 назв.
УДК 004.9.(07)
ББК 32,81 я 73
Печатается по решению учебно-методического совета ВГТУ
ISBN 978-5-7731-0504-6 © Кононов А.Д., Кононов А.А.
© ВГТУ, 2017
Предметом рассмотрения учебного пособия «Основы программирования на языке Паскаль» является алгоритмический язык высокого уровня, созданный в конце 60-х годов профессором Н. Виртом (Цюрихская высшая техническая школа, Швейцария). Язык получил свое название в честь французского математика и философа Блеза Паскаля. Созданный специально для обучения программированию язык оказался чрезвычайно удачным и сразу привлек внимание специалистов. В короткое время язык Паскаль приобрел широкую популярность во всем мире, и в настоящее время он реализован практически на всех вычислительных машинах от микроЭВМ до суперЭВМ. Разработчики компиляторов и систем программирования на базе языка Паскаль используют международный стандарт ISO 7185, принятый еще в 1982 году, что способствует разработке в максимальной степени переносимого программного обеспечения. Язык Паскаль эффективен как при решении небольших задач численного анализа, так и при разработке программных средств – компиляторов, баз данных и т.п. Он позволяет писать весьма сложные программы, для которых другие языки не совсем пригодны.
Созданный как язык обучения программированию и записи алгоритмов Паскаль стал первым языком, с которым знакомится большинство будущих программистов в мире. Он оказался настолько удачным, что до сих пор играет особую роль и в практическом программировании, и в его изучении. В нем реализованы принципы структурного программирования и полного описания данных, повышающие устойчивость программного кода, позволяющие найти и устранить большинство ошибок ещё на стадии трансляции программы.
Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей. Существует много версий языка Паскаль, различие которых между собой весьма велико. Базовая версия языка, созданная Н. Виртом, в более поздних версиях существенно расширена и дополнена, что позволило из языка обучения получить эффективный инструмент для профессиональных разработчиков программного обеспечения.
Язык Turbo Pascal – это диалект языка Паскаль, предназначенный для персональных компьютеров IBM PC. Он включает в себя как язык программирования, так и интегрированную среду, которая служит для написания, отладки и запуска программ. Появление новых версий (4.0, 5.0, 5.5, 6.0, 7.0, Borland Pascal, Pascal ABC…) системы Турбо Паскаль шло по пути строгой преемственности основных языковых конструкций, что подтверждается, в частности, их совместимостью «сверху вниз», то есть любая программа, написанная на «младшей» версии языка, останется работоспособной и при переходе к «старшей» версии (преемственность версий). Приведенные далее тексты программ и примеры соответствуют практически всем версиям Паскаля.
К основным достоинствам языка Паскаль следует отнести: гибкость и надежность, простота и ясность конструкций, легкость реализации на большинстве современных ЭВМ, возможность достаточно полного контроля правильности программы как на этапе компиляции, так и во время выполнения, возможность удовлетворения требованиям структурного программирования, возможность использования для программирования задач различных профилей, наличие набора структурных типов данных: массивов, записей с вариантами, множеств, файлов, возможность построения новых типов данных.
Некоторые недостатки языка Паскаль – отсутствие динамических массивов, раздельной компиляции модулей, операции возведения в степень, средств работы с файлами прямого доступа. Считается, что это сделано автором сознательно с целью достижения компромисса в языковых средствах и конструкциях, что позволило языку остаться достаточно простым в обучении и эффективным в реализации.
Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ, имеющих фундаментальное значение в современном программировании. Идеи и принципы, заложенные в языке, были использованы при создании других языков программирования, таких как АДА и МОДУЛА–2, а также в качестве методической основы для обучения программированию.
Учебное пособие предназначено для студентов всех направлений подготовки, которым необходимо освоить технику программирования на алгоритмическом языке Паскаль в соответствии с учебными программами. Предварительных знаний по программированию при работе с учебным пособием не требуется. Можно использовать учебное пособие как справочник по основным понятиям и определениям языка Паскаль.
Студентам рекомендуется тщательно изучить содержание начальных разделов, разобрать предлагаемые примеры, что позволит проконтролировать правильность усвоения теоретического материала и пробрести «ядро знаний». Далее в соответствии с заданием, предложенным преподавателем, необходимо составить и отладить программу на алгоритмическом языке Паскаль, и представить отчет, содержащий формулировку задания, текст программы, результат решения и его анализ.
На предыдущем этапе обучения мы уже познакомились с одним из основных понятий нашего курса – понятием алгоритма, рассмотрели его свойства и способы записи. Составленный алгоритм решения задачи следует перевести на язык, понятный электронно-вычислительной машине (ЭВМ). Эти языки называются языками программирования. Запись алгоритма на таком языке называется программой, а процесс перевода алгоритма на указанный язык – программированием. Как и в большинстве стран мира в качестве обучающего мы с вами будем использовать язык программирования Паскаль.
Дадим вначале более строгие понятия и определения.
Под программой понимают описание, воспринимаемое ЭВМ и достаточное для решения определенной задачи. Иначе говоря, программа – это упорядоченный список команд, необходимых для решения некоторой задачи.
Для создания программ используют те или иные системы программирования.
Под системой программирования понимают совокупность языка программирования и виртуальной машины, обеспечивающей выполнение на реальной машине программ, составленных на этом языке.
Языком программирования называют систему обозначений, служащую в целях точного описания алгоритмов для ЭВМ или, по крайней мере, достаточную для автоматического нахождения такого алгоритма. Эти языки являются искусственными языками со строго определенным синтаксисом.
Виртуальная машина – это программный комплекс, эмулирующий работу реальной машины с определенным входным языком на ЭВМ с другим машинным языком, а иными словами, реализующий входной язык программирования.
Языки программирования – это формальные языки, специально созданные для общения человека с компьютером.
Языками высокого уровня (ЯВУ) называют языки программирования, универсальные по отношению к архитектуре компьютеров и использующие обозначения, близкие к принятым в математике и других областях деятельности человека. Программы на ЯВУ содержат служебные слова естественного (английского) языка, состоят из легко читаемых и воспринимаемых команд, что отличает их от языков низкого уровня (машинных и машинно-ориенти-рованных).
Машинно-ориентированные языки содержат примитивные команды, соответствующие особенностям архитектуры данного компьютера и записываемые машинными кодами, обычно в шестнадцатеричной форме. Обычно команда на машинном языке описывает простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции. Команда содержит код операции и адреса ячеек памяти, с содержимым которых выполняется закодированное действие.
Написание программ на машинно-ориентированных языках требует больших временных затрат и высокой квалификации программистов, но созданные ими программы занимают меньше места в памяти и работают быстрее. С помощью этих языков удобнее разрабатывать программы регулярного применения и высокой оперативности, такие как системные утилиты, антивирусные программы, драйверы (программы для управления устройствами компьютера), программы в оборонной отрасли, блокировки аварийных ситуаций и другие.
Языки программирования высокого уровня имеют следующие достоинства:
– алфавит языка значительно шире машинного, что обеспечивает выразительность, наглядность и понятность текста программы;
– набор операций, допустимых для использования, не зависит от набора машинных команд, а выбирается из соображений удобства записи алгоритмов решения задач определенного класса;
– конструкции команд (операторов) отражают привычные для нас приемы обработки данных;
– для универсализации программ используется аппарат переменных и действий;
– поддерживается широкий набор типов данных.
ЯВУ являются машинно-независимыми и требуют использования соответствующих программ – переводчиков (трансляторов) для перевода программы на язык того компьютера, на котором она будет исполняться.
Такая техника реализации языка программирования позволяет сделать его удобным для использования человеком. Виртуальная машина содержит транслятор и/или интерпретатор и может включать библиотеки стандартных подпрограмм, отладчик, компоновщик и другие сервисные средства.
Так появившийся в 1992 году пакет Турбо Паскаль 7.0 использовал новейшие на тот период достижения в программировании. Он может быть применен на любой машине. Эта версия снабжена большим количеством стандартных библиотек.
Интегрированная система Турбо Паскаль (и ее современные модификации Borland Pascal, Pascal ABC…) состоит из языка программирования и среды программирования. В эту систему входят необходимые части языка Паскаль:
- текстовый редактор;
- компилятор;
- компоновщик;
- загрузчик.
Каждый язык программирования, как и любой «естественный» язык (русский, английский и т. д.), имеет алфавит, словарный запас, грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, применяемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка из символов алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных.
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например операторы, идентификаторы, переменные, функции, процедуры, модули и т.д.
Конструкции – это всевозможные элементы программы, записанные по правилам языка Паскаль.
Алфавит представляет собой набор букв, цифр, специальных символов и ключевых (служебных, зарезервированных) слов, с помощью которых записываются конструкции языка.
Все элементы языка Паскаль состоят из идентификаторов, разделителей и символов, входящих в алфавит:
арабские цифры от 0 до 9;
буквы латинского алфавита от A до Z и от a до z (разницы между прописными и строчными буквами нет, то есть Паскаль не чувствителен к регистру). Символ подчеркивания в Турбо Паскале считается буквой;
3) специальные символы + - * / = < > . , ; : ( ) [ ] { } ^ @ # $ ´ (приложение 1).
Некоторые цепочки символов, такие как <= , := , >= , .. , (* , *) считаются неделимыми элементами и в состав этих элементов пробелы входить не могут.
К базовым элементам относятся также служебные слова (приложение 2). Они имеют строго определенное значение и не могут быть использованы в качестве имен объектов программы. Их значения не могут быть переопределены.
Никакие другие символы в языке Паскаль использовать нельзя. В частности, буквы русского алфавита не применяются в языке Паскаль, но они могут быть использованы в комментариях (пояснениях) и символьных строках программы.
Идентификаторы (имена) служат для обозначения различных объектов и конструкций программы (констант, переменных, меток, типов, процедур, модулей, функций и т.д.). Имена отличаются от служебных слов тем, что выбираются (назначаются) самим программистом.
Длина идентификатора может быть любой, но значащими считаются первые 63 символа.
Идентификатор состоит из букв латинского алфавита, цифр и символа подчеркивания; никакие другие символы в идентификаторах недопустимы.
Идентификатор не может начинаться с цифры.
Идентификатор не должен совпадать ни с одним из зарезервированных слов.
Примеры недопустимых имен:
3P, TYPE, LEVEL.4, PG – 3.
Разделители – используются для отделения друг от друга имен, чисел, служебных слов. В качестве разделителя в программе используются символ пробела, любой управляющий символ (например, Enter), комментарий.
Комментарий содержит любую последовательность символов, в том числе и пояснительный текст на русском языке, заключенный в скобки вида {...}, либо в круглые скобки со звездочкой (*…*). Комментарий может быть записан в любом месте программы, где по смыслу мог быть пробел, и занимает любое число строк, например, комментарий, указывающий разработчика, может выглядеть так
{программу составил студент Петров В.И.}