ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.03.2025

Просмотров: 1656

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Московский государственный социальный университет

Часть I

Лекция 1: Введение в программирование.

Лекция 2: Язык Паскаль и системы программирования на Паскале.

Лекции 3-4: Базисные конструкции языка.

Лекции 5-6: Простые операторы и программы с линейной структурой.

Лекция 7: Операторы с условиями.

Лекция 8: Методика разработки простых программ.

Лекция 9: Концепция типа данных.

Лекция 10: Структурный тип - Массив.

Лекция 11: Структурный тип - Строка.

Лекция 15: Структурный тип - Множество.

Лекция 16: Структурный тип - Запись.

Часть II

Лекции 17-19: Модули и их использование.

Interface

Interface

Implementation

Interface

Implementation

Лекция 20: Структурный тип - Файл.

Лекции 21-22: Основные задачи обработки файлов.

Interface

Implementation

Лекция 23: Динамическая память и указатели.

Лекции 24-25: Использование указателей для представления динамически структур данных.

Лекции 26-27: Объекты и объектно-ориентированное программирование.

Interface

Implementation

Оглавление

Часть I 3

Часть II 53

Неотъемлемым компонентом системы программирования является библиотека стандартных модулей TURBO.TPL, в которой сосредоточены все стандартные (встроенные) подпрограммы, а также средства текстового ввода-вывода, которые могут использоваться в программах на Турбо Паскале.

Система TURBO PASCAL 7.0 поддерживает модульную разработку программ на Турбо Паскале путем проектирования и отладки текстов программ и модулей. При этом редактор интегрированной среды поддерживает разработку хорошо структурированных программных текстов и построен по принципам синтаксически-ориентированного редактора (распознает и выделяет цветом и подсвечиванием ключевые слова, поддерживает структурирование программного текста). Компилятор содержит большой набор структурированных сообщений об ошибках стадии компиляции и выполнения.

Вместе с тем классическая идеология разработки программ, характерная для TURBO PASCAL 7.0, основную нагрузку возлагает на программиста и отличается достаточно высокой трудоёмкостью программирования, т.к. предполагает разработку программистом всего текста программы, включая функции интерфейса с пользователем. Использование имеющейся в Турбо Паскале библиотеки поддержки проектирования пользовательских интерфейсов - TURBO VISION, несомненно, является прогрессом в разработке прикладных программ на Турбо Паскале, однако повышает требования к квалификации программистов и не изменяет качественно процесс разработки.

Качественно новый стиль программирования даёт визуальное программирование, реализованное в системе DELPHI.


Лекции 3-4: Базисные конструкции языка.

1.Общая характеристика языка Pascal.

2. Алфавит языка, основные конструкции языка.

3. Структура программы.

4. Стандартные типы данных, операции, выражения.

1.Общая характеристика языка Паскаль.

Язык Паскаль в его современном воплощении (TURBO PASCAL 7.0, OBJECT PASCAL 9.0) -это весьма мощный язык, содержащий многие десятки различных и весьма полезных конструкций. Изучить все его возможности в таком кратком курсе, как наш, нереально.

Одним из фундаментальных свойств Паскаля является его сильная типизация. Это означает, что каждый элемент обрабатываемых данных жёстко связан с соответствующим типом данных, т.е. каждый элемент данных имеет один и только один тип, а каждая операция имеет фиксированные типы для своих операндов и результата. Типизация данных помогает контролировать (в том числе автоматически) многие ошибки в данных и операциях, оптимально распределять память, что упрощает создание высокоэффективных трансляторов. Не все языки программирования поддерживают сильную типизацию (например, Basic, C её игнорируют).

Замечание

Некоторые конструкции Турбо Паскаля отходят от принципа сильной типизации (нетипизированные указатели, файлы, открытые массивы и др.), однако это скорее исключение из общего правила. В основном данные сильно типизированные.

Для того чтобы использовать преимущества, которые даёт сильная типизация, необходимо в программе описывать все вводимые программистом имена обрабатываемых структур данных и других объектов до того, как они используются в процессах обработки. Для этого в структуре программы предусмотрен раздел описаний. Транслятор Паскаля устроен таким образом, что он не позволяет использовать данные, которые предварительно неописаны.

Другой важной стороной типизации является наличие в Паскале развитого механизма создания новых типов самим программистом, что также отличает Паскаль от многих других языков. Собственно этот механизм является сердцевиной Паскаля, обеспечивая чрезвычайную гибкость языка. Мы познакомимся с ним постепенно, начиная с конструирования простых типов и до конструирования объектов как расширения типа.


Помимо всего, что связано с типизацией, Паскаль также имеет хорошо структурированные средства для композиции и декомпозиции алгоритмических действий (операций и операторов). Всё это упрощает разработку программ на Паскале, делая её удобной и доступной для программирования практически любых задач.

Однако не следует обольщаться! Программирование на Паскале (как впрочем, и на любом другом языке) не даётся само собой! Для программирования необходимо овладеть основами языка и методики разработки программ. Необходимо научиться "читать" программы (понимая смысл написанного!), а затем и "писать" собственные (пусть вначале и несложные) программы. Не следует думать, что вы легко сможете постичь и то и другое сразу. Поэтому важно на первых этапах сосредоточиться на изучении основ языка, т.е. научиться "читать программы". Этот процесс естественен при изучении любого языка.

К изучению Паскаля следует относиться как к изучению нового для вас языка (аналогичного скажем английскому) и понять, что означают отдельные его слова, а затем и фразы (операторы и другие фрагменты) и как правильно их записывать. Если ассоциация с английским языком вызывает у вас волнения, то хочу успокоить. Паскаль много проще английского языка, и изучить его основы можно за относительно небольшой срок и с несравненно меньшими усилиями. В нём нет двусмысленных или расплывчатых конструкций, времён, склонений или спряжений. Паскаль, как язык программирования, - это язык записи действий (алгоритмов и структур данных). Каждой его конструкции приписывается однозначный смысл (часто независящий от "окружения"), а правила записи конструкций во многом сходны с императивами (командами, указаниями, инструкциями) естественного языка.

При чтении программ на Паскале ключевым принципом является принцип программного управления. Важно помнить, что за исключением описаний каждая законченная конструкция программы - это оператор, представляющий некоторое алгоритмическое действие. Операторы отделяются друг от друга точкой с запятой (в специальных случаях этот разделитель может опускаться) и выполняются в той последовательности, в которой они записаны (если сам оператор не изменяет эту последовательность).

Операторы обрабатывают данные, размещенные в памяти компьютера и идентифицируемые по именам. По сути, операторы и имена - это та модификация, которую претерпел программный принцип управления при переходе от машинного языка к языку программирования высокого уровня. Можно считать, что оператор - это аналог команды, а имя - аналог адреса памяти. Конечно, отличие имеется и в том, что состав возможных операций резко расширен по сравнению с машинным языком и приближен по форме к их выражению на естественном языке.


2. Алфавит языка, ключевые слова, идентификаторы.

Любой язык, в том числе и Паскаль, начинается со своего алфавита - "кирпичей", из которых строятся все конструкции языка.

Алфавитом Паскаля являются некоторые символы кодовой таблицы ASCII, которым в Паскале приписан определённый (и фиксированный смысл), а также некоторые цепочки символов. В алфавит входят все латинские (большие и малые) буквы, десятичные цифры, специальные символы и зарезервированные (ключевые) слова. К специальным символам относятся символы операций (+,-, *, /), бинарных отношений (=,>,<,), скобки (простые, квадратные, фигурные), разделительные символы (., :; ), кавычки (''), а также символы ^,@, $, #. Кроме того, к алфавиту относятся некоторые пары символов (рассматриваемые как неделимые): <> - символ неравенства, >= и <= - больше или равно (меньше или равно), := - символ присваивания.

Дополнительную группу символов алфавита составляют ключевые слова (зарезервированные слова). Их в Паскале несколько десятков и мы будем знакомиться с ними постепенно по мере изучения конструкций языка. Примерами ключевых слов (которые потребуются нам в ближайшее время) являются program, begin, end, var. Эти и некоторые другие последовательности символов ASCII зарезервированы в Паскале, им приписан фиксированный смысл (например, begin - открывающая операторная скобка) и использовать их в другом смысле нельзя. Мы будем выделять ключевые слова полужирным шрифтом.

Заметим, что русские буквы не являются элементами алфавита Паскаля, как и некоторые другие символы кодовой таблицы. Это не значит, что их нигде нельзя использовать, но их использование в программах на Паскале ограничено только определенными конструкциями, о которых мы ещё поговорим особо.

Из алфавита языка строятся все остальные языковые конструкции: имена, выражения, описания, операторы, с помощью которых представляется любая программа на Паскале, аналогично тому, как текст на естественном языке представляется из предложений, слов, связок.

Замечание

В Паскале не делается различие между большими и малыми латинскими буквами, они равнозначны и взаимозаменимы. Этим свойством следует пользоваться для написания читабельных текстов программ.


Паскаль - формальный язык, основная цель которого - представление алгоритма решаемой задачи. Поэтому аналогия с естественным языком (цели которого значительно шире), конечно, ограничена. Каждая конструкция Паскаля имеет свой точный смысл, и изучение конструкций Паскаля имеет две стороны: во-первых, это изучение синтаксиса конструкций (т.е. правил их записи), с другой стороны - изучение смысла конструкций.

Для описания синтаксиса мы будем использовать простые формальные средства - нотацию Бэкуса-Наура, а для описания семантики - пояснения на естественном языке.

Нотация Бэкуса-Наура (называемая также БНФ) описывает синтаксис конструкций языка через небольшое число примитивов:

Метаопределение - заключённое в угловые скобки название конструкции (название может рассматриваться как комментарий конструкции). Примеры: <буква>, <ключевое слово>, <литерал>, <комментарий>. При этом последовательность символов, не заключенная в угловые скобки, рассматривается буквально (т.е. только как последовательность написанных символов).

Равенство по определению будем обозначать сочетанием 3 символов ::=

Альтернативный выбор (союз "или") будем обозначать символом |

Необязательный выбор конструкции будем заключать в квадратные скобки [ ]

Повторяющуюся (нуль или более раз) конструкцию будем заключать в фигурные скобки { }.

Введённых примитивов вполне достаточно для синтаксического определения конструкций языка Паскаля, которые нам предстоит рассмотреть. Продемонстрируем введённые примитивы рядом примеров описания используемых далее конструкций языка Паскаль.

Синтаксическое определение понятия "цифра":

<цифра> ::= 0|1|2|3|4|5|6|7|8|9

Синтаксическое определение понятия "литерал ":

<литерал> ::= ' {< символ кодовой таблицы >} '

Синтаксическое определение понятия "комментарий":

{ < строка символов ASCII, не содержащая символов { и } > }

Одной из важных конструкций Паскаля является идентификатор (имя). Имя может обозначать переменную, функцию, тип данных или другие элементы программы. Понятие имени во многом аналогично его использованию в естественном языке и является одним из фундаментальных понятий языка.