Язык программирования Паскаль. Введение.ppt
- Количество слайдов: 43
Язык программирования Паскаль Способы описания языка программирования. Введение в язык программирования Паскаль 1
Немного истории Паскаль был создан швейцарским ученым Никлаусом Виртом в 1970 году. Первоисточники 1) 2) Йенсен К. , Вирт Н. Паскаль. Руководство пользователя. М. : Финансы и статистика, 1989. Вирт Н. Систематическое программирования. Введение. М. : Мир, 1977. 2
Существует три стандарта языка l l l 1. Нерасширенный Паскаль (Unextended Pascal) был разработан в 1983 году и практически полностью совпадает с описанием языка по Вирту. 2. Расширенный Паскаль (Extended Pascal) содержит расширения, затрагивающие модульное программирование (отдельная компиляция модулей, импорт-экспорт подпрограмм, интерфейсная часть и реализация) и дополнен рядом процедур и функций (прямой доступ к файлам, работа со строками и др. ). 3. Объектный Паскаль (Object Pascal) принят в 1993 г. Он поддерживает классы, обладающие свойствами и методами, наследование классов, переопределение методов у потомков (полиморфизм) и другие атрибуты объектно-ориентированного программирования. Начиная со среды разработки Delphi 7. 0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. 3
Реализации языка l l l l Turbo Pascal Borland Pascal Free Pascal Lazarus -свободно распространяемая интегрированная Delphi-подобная среда разработки программного обеспечения для компилятора Free Pascal. Delphi Pascal ABC -интерпретатор языка программирования Паскаль с интегрированной оболочкой. Pascal ABC. NET свободно распространяемая система программирования, являющаяся развитием Pascal ABC. 4
Этапы разработки программного продукта l l l постановка задачи; анализ и проектирование; создание или редактирование текста программы; тестирование и отладка; внедрение и сопровождение. 5
Некоторые основополагающие понятия Алгоритм – это последовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу. Программа – это набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм. 6
Способы записи алгоритмов l l l На естественном языке, например, описание построения различных геометрических фигур. На формальных языках, например, на псевдокоде. Графический способ – язык блок-схем (универсальный). Блок-схема – графический способ записи алгоритма, состоит из отдельных фигур (блоков) для обозначения действий и стрелок, показывающих последовательность выполнения этих действий. 7
Фигура Определение Начало и конец алгоритма Начало Конец Простой процесс (присваивание, вычисление) Сложный процесс, который может реализовываться вспомогательным алгоритмом Условие (решение) Ввод данных Вво д Вывод данных Выво д 8
Пример записи алгоритма на языке блок-схем НАЧАЛО Ввод a, b, c D=b 2 -4 ac D 0 X 1= X 2= Вывод: Действительных корней нет Вывод: X 1, X 2 КОНЕЦ 9
Тестирование — это испытание, проверка правильности работы программы в целом, либо её составных частей. Отладка программы — это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере. Отладка и тестирование (англ. test — испытание) — это два четко различимых и непохожих друг на друга этапа: - при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования; - в процессе же тестирования проверяется работоспособность программы, не содержащей явных ошибок. Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину. 10
Состав языка (формальные языки): l l набор неделимых знаков, с помощью которых пишутся все тексты; лексемы – минимальная единица языка, имеющая самостоятельный смысл; выражение – задает правило вычисления некоторого значения оператор – задает законченное описание некоторого действия операторы выражение лексемы символы 11
Компиляция программы Компиляцию программы выполняет особая программа, называемая компилятором. Этапы компиляции: • • • лексический анализ синтаксический анализ семантический анализ генерация промежуточного кода оптимизация кода генерация результирующего машинного кода. 12
Лексический анализ Текст программы разбивается на отдельные составляющие – лексемы. При выделении лексем важную роль играет алфавит языка, а так же правила построения ее отдельных элементов: имен, комментариев, констант и т. д. 13
Синтаксический анализ l В ходе синтаксического анализа проверяется правильность записи операторов в соответствии с правилами языка. Ошибки, выявленные компилятором во время лексического и синтаксического анализа, называются синтаксическими ошибками. 14
Семантика языка программирования l l – это система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений языка. Не все семантические ошибки могут быть выявлены компилятором. Например, запись выражения в виде a/b*c не вызовет ошибки, хотя и является неправильной, исходя из приоритета выполнения операций. В ходе семантического анализа компилятор проверяет соответствие типов и допустимость операндов в операторах. 15
Алфавит языка Паскаль латинские буквы прописные и строчные (A. . Z, a. . z) l символы национальных алфавитов (например, русского) l цифры (0. . 9) l зарезервированные символы ; : , . + - * / < > = ^ ` ( ) [ ] { } $ # @ l зарезервированные сочетания символов : = >= <= <> . . (* *) l 16
Алфавит языка Паскаль (продолжение) ключевые (зарезервированные) слова and end implementation program type array file label record unit begin for mod repeat until case forward nil set uses const function not shl var div goto of shr while do if or string with downto in packed then xor else interface procedure to l 17
Правила построения основных видов лексем Имя любого программного объекта в программе на Паскале должно быть идентификатором. К программным объектам относят переменные, константы, типы, всю программу, процедуры и функции. Идентификатор – это последовательность латинских букв, цифр и знака подчеркивания ( _ ), начинающаяся с буквы или со знака подчеркивания. 18
Правила использования идентификаторов 1) 2) Большие и маленькие буквы во всем тексте программы не различаются, т. е. идентификаторы Otvet, otvet, OTVET и o. TVET будут с точки зрения компилятора эквивалентны. Идентификатор не может совпадать с ключевым словом. Именно поэтому ключевые слова еще называют зарезервированными словами, т. е. они заняты под нужды языка, и программист их использовать не может. 19
Задание Определите, какие из данных ниже последовательностей символов являются идентификаторами. l l l l A 1 packed 123 авп _fg r_304 1 de 20
Комментарии Комментарий с точки зрения Паскалькомпилятора – это последовательность символов, которая должна быть исключена из дальнейшей обработки текста программы. Способы оформления комментариев { } (* *) // (только для Delphi, Free Pascal, Pascal ABC) 21
Пример использования комментариев Var a: integer; (*Переменная а имеет целый тип*) Begin Readln(a); // Ввод значения переменной а a: =a+1; { Это на потом. . . a: =a*2; a: =a-a; } writeln(a) End. 22
Константы l l числовые (целые и вещественные) символьные логические строковые 23
Целочисленные константы l l могут использоваться цифры 0. . 9 и знаки +, – если знак перед числом не указан, то число считается положительным допустимы ведущие незначащие нули, при выводе числа они отбрасываются целое число, представленное в шестнадцатеричной системе счисления, записывается с использованием префикса $, при выводе такое число будет переведено в десятичную систему счисления. 24
Примеры констант целого типа в десятичной форме 34 – 825 +19 000056 00 l в шестнадцатеричной форме $10 –$FF $03 f (определите, как эти числа будут выглядеть при выводе). l 25
Константы вещественного типа l l l могут задаваться в форме с фиксированной точкой и с плавающей точкой. при записи вещественного числа в форме с фиксированной точкой в качестве разделителя целой и дробной части используется символ точка (. ). десятичная точка требует, по крайней мере, одну цифру слева от себя, т. е. запись. 9, например, недопустима. 26
Константы вещественного типа (продолжение) в форме с плавающей точкой сначала записывается мантисса числа (m), затем символ E (или e, поскольку большие и маленькие буквы Паскалем не различаются) и указывается порядок числа (p) l мантисса может быть целым числом или вещественным в форме с фиксированной точкой l порядок задается целым десятичным числом l формула, для преобразования числа из формы с плавающей точкой в форму с фиксированной точкой: m E p = m · 10 p. l 27
Примеры вещественных констант в форме с фиксированной точкой 3. 1415 0. 00000127 – 125. 0 0. 0 l в форме c плавающей точкой 0. 031415 E+00002 – 789 e– 4 – 1 e+01 (определите, каким числам они соответствуют) l вещественные константы, записанные с ошибкой (объясните, почему) 3, 14 . 001 – 5. 12 E 2 e 0. 2 l 28
Строковые константы l l l Строковая константа – это произвольная последовательность символов, заключенная c обеих сторон в апострофы (’). Если внутри строковой константы должен присутствовать символ апострофа, то он указывается дважды. Пустая строковая константа записывается в виде двух подряд идущих апострофов (’ ’). 29
Примеры констант строкового типа ’Добро пожаловать!’ ’Магнитофон ’ ’Вега ’ ’ продан. ’ (определите, что будет выведено) 30
Логические константы l l l Логическая константа может принимать только два значения True или False. При записи слов true и false регистр не имеет значения, как и при записи всего текста программы. При выводе логическая константа будет записана прописными буквами. 31
Символьные константы l l Символьная константа – это ровно один символ, ограниченный апострофами. Обращение к любому символу возможен через его номер в таблице кодировки, путем указания этого номера с предшествующим символом решетки (#). Так, записи ‘D’ и #68 дают ссылку на один и тот же символ, так как номер символа D в таблице кодировки равен 6810. 32
Задание Определите тип константы l l l l l TRUE ’TRUE’ f. Al. Se ’T’ #12 ’ 12 $12 3 е 3 33
Синтаксис языка программирования определяет правила построения составляющих программы (операторов, выражений, разделов описаний, и т. д. ), а так же всей программы в целом. Способы описания синтаксиса l синтаксические диаграммы Н. Вирта l формы Бэкуса-Наура 34
Синтаксические диаграммы Н. Вирта l l l Элементы алфавита языка будем заключать в круг или прямоугольник со скругленными углами Понятия, требующие дальнейшей расшифровки, будем заключать в прямоугольник Понятие, расшифровываемое диаграммой, будем писать в ее начале 35
Структура программы l l обязательным элементом программы является только тело программы телу программы может(-гут) предшествовать заголовок программы и(или) раздел описаний. 36
Заголовок программы Например: program Primer; 37
Тело программы Например: begin end. 38
Пустой оператор l l Синтаксис Паскаля требует, чтобы операторы внутри составного оператора разделялись знаком точка с запятой (; ). Не является ошибкой, если программист ставит точку запятой после каждого оператора. В этом случае «лишний» знак точка с запятой – тот, который стоит самым последним – будет трактоваться компилятором как пустой оператор. 39
Раздел описаний является одной из частей программы и располагается перед телом программы. Раздел описаний в свою очередь может состоять из следующих частей: 1) раздел подключаемых модулей uses. . . 2) раздел описания меток label. . . 3) раздел описания констант const. . . 4) раздел описания типов type. . . 5) раздел описания переменных; var. . . 6) раздел описания процедур и функций. procedure. . . или function. . . Раздел подключаемых модулей должен располагаться первым и может встречаться только один раз. Все остальные разделы описаний могут располагаться в любом порядке и встречаться по несколько раз. l 40
Структурное программирование — это программирование без goto (оператор безусловного перехода, с помощью которого можно переместиться в любую точку программы). Используются управляющие структуры: простое следование; альтернатива; повторение. Каждая управляющая структура имеет один вход и один выход. 41
Технология структурного программирования состоит из трех частей: нисходящая разработка алгоритма (Разработка программы ведётся пошагово, методом «сверху вниз» . ); структурное кодирование (Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: следование, ветвление, цикл. ); сквозной контроль (Как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие. Нередки случаи, когда новые входные данные вызывают "отказ" или получение неверных результатов работы программы, которая считалась полностью отлаженной. [1]). 42
Синтаксис раздела описания переменных Важно! При описании переменной происходит выделение памяти для ее хранения. Начальное значение переменной при описании не присваивается, т. е. в начале работы программы значения всех переменных являются неопределенными. 43
Язык программирования Паскаль. Введение.ppt