Структура программы в Turbo Pascal Язык программирования. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы - полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код (язык нулей и единиц), либо исполняется. Транслятор — средство для преобразования текстов из одного языка, понятного человеку, в другой язык, «понятный» компьютеру. Трансляторы бывают двух типов — интерпретаторы и компиляторы. Отличие между ними заключается в том, что интерпретатор последовательно анализирует и исполняет каждую строку программы, а компилятор проводит полный анализ написанной программы и формирует уже готовый к исполнению машинный код. Языки программирования - искусственные языки. От естественных они отличаются ограниченным числом "слов", значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Для написания текста программы можно использовать обычный текстовый редактор (например, Блокнот), а затем с помощью компилятора перевести её в машинный код, т.е. получить исполняемую программу. Но проще и удобнее пользоваться специальными интегрированными средами программирования. На заре компьютерной эры, в 50-е годы XX века, программы писались на машинном языке и представляли собой очень длинные последовательности нулей и единиц. Составление и отладка таких программ было чрезвычайно трудоемким делом. В 60—70-е годы для облегчения труда программистов начали создаваться языки программирования высокого уровня, формальные языки, кодирующие алгоритмы в привычном для человека виде (в виде предложений). Такие языки программирования строились на основе использования определенного алфавита и строгих правил построения предложений (синтаксиса). Наиболее широко распространенным типом языков программирования высокого уровня являются процедурные языки. В таких языках широко используются управляющие конструкции (операторы), которые позволяют 1 закодировать различные алгоритмические структуры (линейную, ветвление, цикл). Одним из первых процедурных языков программирования был известный всем Бейсик (Basic), созданный в 1964 году. В течение последующего времени Бейсик развивался, появлялись его различные версии (MSX-Basic, Бейсик-Агат, QBasic и др.). Другим широко распространенным языком программирования алгоритмического типа является Pascal. Первая версия языка Паскаль была разработана швейцарским ученым Никлаусом Виртом в 1968 году. Первоначально язык предназначался для целей обучения, поскольку он является достаточно детерминированным, т.е. все подчиняется определенным правилам, исключений из которых не так много. Основные характеристики: относительно небольшое количество базовых понятий, простой синтаксис, быстрый компилятор для перевода исходных текстов в машинный код. В 1992 г. фирма Borland International выпустила два пакета, основанных на языке Паскаль: Borland Pascal 7.0 и Turbo Pascal 7.0. Первый может работать в трех режимах - обычном и защищенном режимах MS DOS и в системе Windows. Для него необходимо порядка 30 Мбайт на жестком диске и около 2 Мбайт оперативной памяти. Турбо Паскаль 7.0 работает только в обычном режиме MS DOS и менее требователен к характеристикам компьютера. Поскольку основные компоненты, которые мы будем рассматривать в нашем курсе, совпадают в обоих продуктах, в дальнейшем будет использоваться название Турбо Паскаль. Пакет включает в себя алгоритмический язык программирования высокого уровня, встроенный редактор и среду, предназначенную для отладки и запуска программ. Кроме того, пакет содержит большой объем справочной информации (англоязычной). Как известно, языки программирования делятся на два типа: интерпретаторы и компиляторы. Турбо Паскаль относится к компиляторным языкам. Благодаря языкам программирования высокого уровня, программы которые мы будем составлять, будут больше напоминать инструкции, обращенные к человеку, нежели к машине. Однако следует иметь в виду, что в языках программирования не допускаются даже незначительные (с точки зрения человека) нарушения в правилах написания программ. Ведь даже маленькая неточность может вызвать невыполнимость программы или трудно уловимую ошибку. В языках программирования высокого уровня программа - это перечень действий. Исполнение этих действий определено в самом языке программирования, и их принято называть операторами. 2 Алфавит языка программирования Турбо Паскаль. Под алфавитом языка понимают совокупность допустимых символов. В языке Турбо Паскаль используются символы ASCII (американский стандартный код обмена информацией). Можно выделить четыре основные группы символов: символы, используемые в идентификаторах, разделители, специальные символы и неиспользуемые символы. Идентификатор - это имя любого объекта языка. Он может состоять из латинских букв (a...z), цифр (0...9) и знака подчеркивания и не должен начинаться с цифры. Прописные и строчные буквы в идентификаторах и зарезервированных словах считаются идентичными, они различаются лишь в строковых константах. Длина идентификатора не ограничена, но значимыми являются лишь первые 63 символа. Разделители используются для отделения друг от друга идентификаторов, чисел и зарезервированных слов. К разделителям относятся, например, пробел и комментарий. В любом месте программы, где разрешается один пробел, их можно вставить любое количество. Комментарии заключаются либо в фигурные скобки { комментарий 1 }, либо в символы (* комментарий 2 *) и могут занимать любое количество строк. К специальным знакам относятся знаки пунктуации (. () [] .. : ;), знаки операций и зарезервированные слова. Знаки операций могут быть как символьные (+, -, *, / и т.д.), так и буквенными (mod, div, not). Зарезервированные слова являются служебными и не могут быть переопределены пользователем, т.е. их нельзя использовать как имена пользовательских объектов. Неиспользуемые символы - это коды ASCII, которые используются только в комментариях и символьных строках, но не в языке. К ним относятся все русские буквы, а также символы %, &, ! и т.п. Структура программы. Любая программа на Паскале имеет определенную структуру: program имя_программы; uses Подключение модулей const 3 Раздел описания констант label Раздел описания меток type Раздел описания типов var Раздел описания переменнных begin Тело программы end. Начинается программа с заголовка. После заголовка на схеме представлены разделы описания констант, меток, типов, переменных, а также раздел, в котором подключаются используемые модули. Причем Турбо Паскаль вовсе не предписывает порядок в каком порядке должны идти эти разделы. Однако если в одном из разделов объявлен элемент программы, на который имеется ссылка в другом разделе, то описание, на которое имеется ссылка должно предшествовать ссылающему описанию. Например, если в разделе объявления переменных объявляется переменная того типа, который описывается в разделе описания типов, то сначала описывается тип, а затем переменная. type IntList = array[1..100] of Integer; var mylist : IntList; Обязательной частью является лишь тело программы, которое начинается словом begin, а заканчивается словом end с точкой. Операторы в Паскале разделяются точкой запятой. Вопросы: 4 Практическая часть. В качестве примера рассмотрим программу вычисления площади прямоугольника (блок-схему этого алгоритма мы записывали на прошлом занятии): program SquareRectangle; {вычисление площади прямоугольника} uses WinCrt; var a, b, s: real; begin write('Введите высоту: '); readln(a); write('Введите ширину: '); readln(b); s:=a*b; writeln('Площадь равна: ',s:5:2); end. Программа начинается со слова program. После служебного слова program записывается имя программы. В нашей программе именем является SquareRectangle. Имя программы записывается на английском языке и задается произвольно автором программы. В конце первой строки, после имени программы стоит ";" - точка с запятой. Этот знак указывает на то, что некоторая инструкция закончена и за ней будет записана следующая инструкция. Точка с запятой является обязательным разделительным знаком в языке Паскаль. 5 Далее идет блок подключения модуля WinCrt (для Borland Pascal for Windows). В следующем разделе описываются переменные. В программе используются 3 переменные (a, b, s), все они имеют тип real. Далее в программе следует служебное, зарезервированное, слово begin (начать), которым начинается раздел операторов. В этом разделе последовательно записываются команды, операторы, которые разделяются ";" - точкой с запятой. Они будут выполняться компьютером. Значения переменных в нашей программе вводятся с клавиатуры. Для ввода ширины и длины используется процедура ввода readln. Подробнее о стандартных процедурах ввода и вывода мы поговорим позднее. Запустим программу и проверим ее работу. Программа заканчивается служебным словом end, после которого стоит точка. Она является обязательной во всех паскалевских программах. Точка оповещает о конце текста программы. Запустите программу и изучите ее работу. Теперь исправьте программу для вычисления периметра квадрата. 6