520 likes | 759 Views
Turbo Pascal. СОСТАВ ЯЗЫКА. Обычный разговорный язык состоит из четырех основных элементов: символов, слов, c ловосочетаний предложений. Алгоритмический язык содержит подобные элементы : слова - элементарные конструкции, словосочетания - выражения, предложения - операторы. Оператор.
E N D
СОСТАВ ЯЗЫКА • Обычный разговорный язык состоит из четырех основных элементов: • символов, • слов, • cловосочетаний • предложений. • Алгоритмический язык содержит подобные элементы: • слова - элементарные конструкции, • словосочетания - выражения, • предложения - операторы.
Оператор • Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру. Выражения Элементарные конструкции Последовательность символов
ОПИСАНИЕ ЯЗЫКА • Описание символов заключается в перечислении допустимых символов языка. • Под описанием элементарных конструкций понимают правила их образования. • Описание выражений-это правила образования любых выражений, имеющих смысл в данном языке. • Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке.
СИНТАКСИС и СЕМАНТИКА • Синтаксические определения устанавливают правила построения элементов языка. • Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.
СИМВОЛЫ ЯЗЫКА • Буквы, цифры и специальные символы-составляют алфавит ТУРБО ПАСКАЛЬ: включает следующий набор основных символов: • Пробел и 26 латинских букв: A-Z, a-z • _ 0 1 2 3 4 5 6 7 8 9 • знаки операций:+ - * / = <> < > <= >= := @ • ограничители: . , ' ( ) [ ] (. .) { } (* *) .. : ; • спецификаторы: ^ # $ • служебные (зарезервированные) слова
Элементарные конструкции языка • имена, • числа • строки.
Имена • Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. • Имя - это последовательность букв и цифр, начинающаяся с буквы. В именах может использоваться символ _ подчеркивание. Имя может содержать произвольное количество символов, но значащими являются 63 символа. • Не разрешается использовать в качестве имен служебные слова и стандартные имена, которыми названы стандартные константы, типы, процедуры, функции и файлы. A b12 r1m SIGMA gamma I80_86
Числа • Числа в языке ПАСКАЛЬ обычно записываются в десятичной системе счисления. • Они могут быть целыми и действительными. • Положительный знак числа может быть опущен.Целые числа записываются в форме без десятичной точки: 217 -45 8954 +483 • Действительные числа записываются в форме с десятичной точкой или в экспоненциальной форме с использованием десятичного порядка, который изображается буквой Е: 28.6 0.65 -0.018 4.0 5Е12 -1.72Е9 73.1Е-16
Числа • ПАСКАЛЬ допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатеричной системе счисления: $7F $40 $ABC0
Строки • Строки в языке ПАСКАЛЬ - это последовательность символов, записанная между апострофами. Если в строке в качестве содержательного символа необходимо употребить сам апостроф, то следует записать два апострофа. 'СТРОКА' 'STRING' 'ПРОГРАММА' 'АД''ЮТАНТ' '1235'
Тип определяет: • возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу; • внутреннюю форму представления данных в ЭВМ; • операции и функции, которые могут выполняться над величинами,принадлежащими к данному типу.
Типы данных • В языке ПАСКАЛЬ существуют скалярные и структурированные типы данных. • К cкалярным типам относятсястандартные типы и типы, определяемые пользователем. • Стандартные типы включают целые (byte, word, shortint, integer, longint), действительные (real, single, double, extended, comp), символьные (char, string), логические (boolean) и адресный типы (pointer). • Типы, определяемые пользователем - перечислимый (leto, ocen, zima, vecna) и интервальный (0..9).
Типы данных • Структурированные типы имеют четыре разновидности: массивы (array [..] of type), множества (set of type), записи (record fields:type; end;) и файлы (text, file of type). • Кроме перечисленных, TURBO PASCAL включает еще два типа - процедурный и объектный (object fields; methods; end;)
Типы данных • В языке ПАСКАЛЬ введены понятия эквивалентности и совместимости типов. • Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий: • Т1 и Т2 представляют собой одно и то же имя типа; • тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств.
Типы данных • Типы являются совместимыми, если: • они эквивалентны; • являются оба либо целыми, либо действительными; • один тип - интервальный, другой - его базовый; • оба интервальные с общим базовым; • один тип - строковый, другой - символьный. • В ТУРБО ПАСКАЛЬ ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам.
Константа и переменная • Константа – это величина, значение которой не изменяется в ходе выполнения программы. • Переменной называется величина, значение которой изменяется в ходе выполнения программы. • Константы и переменные характеризуется типом данных, размером, именем (идентификатором) и областью видимости.
В настоящее время в профессиональном программировании принято записывать имена переменных с использованием так называемой венгерской нотации. • Венгерская нотация - это соглашение о наименованиях переменных и функций. Соглашение широко используется при программировании на языках PASCAL, C и в среде WINDOWS. rV, arVector[1..20], sName, iCount
Принципы венгерской нотации • Имена переменных и функций должны содержать префикс, описывающий их тип; • Имена переменных и функций записываются полными словами или словосочетаниями или их сокращениями, но так, чтобы по имени можно было понять назначение переменной или действие, выполняемое функцией. • Префиксы записываются малыми буквами, первая буква каждого слова - заглавная, префиксы и слова записываются либо слитно, либо через символ _ (подчеркивание).
Операция - это элементарное действие обработки данных. • Операции ЭВМ по типу объектов, к которым они применимы, делятся на арифметические, логические, отношения или сравнения, символьные, сдвига, преобразования типа данных и операции ввода / вывода. • Логические операции включают операции И (and), ИЛИ (or) и НЕ (not). • Операции отношения или сравнения включают операции сравнения на =, , >, , <, .
Выражение – это запись на языке программирования, задающая совокупность действий, которые необходимо выполнить в определенном порядке над значениями переменных и констант. • Для изменения стандартного порядка выполнения действий в выражениях используются скобки. • Результатом вычисления выражения является значение данных простого типа.
В зависимости от типа результата выражения делятся на арифметические, логические, символьные и строковые. • В арифметических выражениях могут использоваться операции сложения, вычитания, умножения и деления. Результатом вычисления арифметических выражений являются целые или вещественные числа. • В логических выражениях могут использоваться логические операции И, ИЛИ и НЕ. Логические выражения могут строиться также из арифметических и других видов выражений путем соединения их операциями сравнения.
Порядок вычисления • Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. 1. унарная операция not, унарный минус -, взятие адреса @ 2. операции типа умножения * / div mod and shl shr 3. операции типа сложения + - or xor 4. операции отношения = <> < > <= >= in
Стандартные функции • Ord(‘Z’)-Код символа (=90) • Chr(90)-Символ, указанного кода (=’Z’) • Odd(6)-Логическое значение истина, если число нечетное, или ложь, если число четное (=False) • Pred(34)-Предыдущий символ или число (=33) • Succ(33)-Следующий символ или число (=34)
Abs(-5)-Абсолютное значение числа (=5) • Sqr(2)-Квадрат числа (=4) • Sqrt(4)-Корень квадратный из числа (=2) • Sin(pi)-Синус числа (=0) • Cos(pi/2)-Косинус числа (=0) • Arctan(0) -Арктангенс числа (=0) • Exp(0) – Степень числа e (=1) • Ln(1) – Натуральный логарифм числа (=0) • Exp(n* ln (a)) Возведение a (a>0) в степень n
Int(3.45)-Целая часть (=3) • Frac(3.45)-Дробная часть (=0.45) • Round(3.45)-Целое число без округления (=3) • Trunc(2.5)-Целое число округленное до ближайшего целого числа (=3) • Random(2)-Случайным образом полученное целое число из диапазона [0..N-1] (=0 или =1) • Random-Вещественное число из диапазона от 0 до 1
Concat(‘Я’, ’ и ’, ’мы’)-Строка, объединяющая эти значения (=’Я и мы’) • Length(‘мама’)-Длина строки (=4) • Pos(‘м’,’мама’)-Позиция подстроки в строке (=1) • Copy(’мама’, 1, 2)-Копирует из строки, начиная с указанной позиции, заданное число символов (=‘ма’)
Inc (I)-Та же переменная, увеличенное на указанное число шагов или на 1, если не указан шаг (i:=i+1) • Dec (I,10)-Та же переменная, уменьшенное на указанное число шагов или на 1, если не указан шаг (i:=i-10) • Insert (‘!’, S, 1)-Вставляет подстроку в строку, начиная с указанной позиции (S:=‘!’+S) • Delete (S, 1, 2)-Удаляет из строки, начиная с указанной позиции, заданное число символов (если S:=’Ok!’, то после delete S:=’!’) • Str (5.6, S)-Преобразует число в строку (S:=’5.6’;) • Val (‘5.6’, K, code)-Преобразует строку в число (K:=5.6; code:=0;)
Операции ввода и вывода • Терминальное устройство - это устройство, с которым работает пользователь, обычно это экран (дисплей) и клавиатура. • Для ввода и вывода данных используются стандартные процедуры ввода и вывода Read и Write, оперирующие стандартными последовательными файлами INPUT и OUTPUT.
Процедура Read • Эти файлы разбиваются на строки переменной длины, отделяемые друг от друга признаком конца строки. Конец строки задается нажатием клавиши ENTER. • Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Процедура Write • Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода могут использоваться выражения и строки. • Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода.
Формат вывода целых чисел и строк • Элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. • Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций.
Формат вывода действительных чисел • Элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. • В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Оператор – это законченное предложение языка программирования, определяющее действие или последовательность действий по обработке данных. • Основные (базисные) операторы языка программирования подразделяются на операторы присваивания, управляющие операторы и операторы вызова процедур.
Оператор присваивания предписывает присваивание переменной значения вычисленного выражения переменная:= выражение; • Управляющие операторы предназначены для явного указания последовательностей действий в алгоритмах.
Управляющие операторы • Операторпоследовательность объявляет некоторую последовательность операторов в виде одного оператора. Это необходимо при использовании последовательностей операторов в других управляющих операторах: • Begin оператор1; оператор2; end;
Условный оператор предписывает выбор направления выполнения алгоритма в зависимости от некоторых условий: • Goto метка; • If лог. выражение then оператор1 else оператор2; • Case выражение of знач1:оператор1; знач2:оператор2 else оператор3 end; • Цикл предписывает многократное выполнение одной и той же последовательности действий.
Циклы • Цикл с параметром предписывает многократное выполнение одной и той же последовательности действий при значениях параметра в интервале от начального до конечного значений с заданным шагом. For параметр:=нач.значение to кон.значение do оператор; • Цикл с постусловием предписывает многократное выполнение одной и той же последовательности действий с проверкой истинности условия после тела цикла: Repeat оператор until лог.выражение; • Цикл с предусловием предписывает многократное выполнение одной и той же последовательности действий с проверкой истинности условия перед телом цикла: While лог.выражение do оператор;
Оператор вызова процедур предназначен для выполнения отдельно заданной последовательности операторов подпрограммы, осуществляющей последовательное построение величин, доступ к которым осуществляется по имени величины. • Программный модуль - это часть программы, содержащаяся в отдельном файле или библиотеке.
Структура программы • Описательная часть алгоритма (заголовок и раздел описаний) • Program{имя программы}; • Uses {список модулей}; • Label {список меток}; • Const {список констант}; • Type {список типов, заданных пользователем}; • Var {список переменных с описанием их типов}; • Procedure {описание процедуры}; • Function {описание функции};
Структура программы • Реализующая часть алгоритма (раздел операторов) • Begin {операторыязыка} • End.
Ключи компиляции • Они позволяют управлять режимом компиляции. Синтаксически ключи компиляции записываются как комментарии. Ключ компиляции содержит символ $ и букву-ключ с последующим знаком + (включить режим) или - (выключить режим).
Ключи компиляции • {$E+} - эмулировать математический сопроцессор; • {$F+} - формировать дальний тип вызова процедур и функций; • {$N+} - использовать математический сопроцессор; • {$R+} - проверять выход за границы диапазонов. • {$I имя файла} - включить в текст компилируемой программы названный файл.
Первая программа Program TRIANG; var A, B, C, S, P: Real; begin Read(A,B,C); WriteLn(A,B,C); P:=(A+B+C)/2; S:=Sqrt(P*(P-A)*(P-B)*(P-C)); WriteLn('S=',S:8:3) end.
Работа в среде ТУРБО ПАСКАЛЬ • Для выполнения программы на языке программирования Паскаль используют следующие этапы: • - с помощью текстового редактора набирают код программы • - с помощью программы - компилятора создают выполняемый код программы • - с помощью программы – отладчика проводят пошаговую реализацию программы и контроль данных. • Интегрированная среда Turbo Pascal работает как многооконный редактор, как среда по выполнению и отладки программ.
Для запуска среды используются следующие файлы, которые размещаются в каталоге Olimp\Pascal7\Bin\: • Turbo.exe • Turbo.tpl • Turbo.tph • Turbo.cfg • Turbo.dsk • Tpc.exe • Tpx.exe
Клавиши и команды • F10 - Выход в меню • File, New - Создание нового окна для редактирования • File, Save (F2) - Сохранение в файл • File, Open… (F3) - Открыть файл в текущее окно • File, Save as… - Сохранить под именем файла • File, Change dir… - Изменить текущий каталог • File, Exit (Alt+X) - Выход
Edit, Undo (Alt+BackSpace) - Отмена предыдущего действия • Edit, Cut (Shift+Delete) - Вырезать выделенный фрагмент • Edit, Copy (Ctrl+Insert) - Скопировать выделенный фрагмент • Edit, Paste (Shift+Insert) - Вставить выделенный фрагмент • Edit, Clear (Ctrl+Delete) - Очистить выделенный фрагмент
Window, Close (Alt+F3) - Закрыть активное окно • Window, Zoom (F5) - Развернуть окно • Window, Size/Move (Ctrl+F5) - Перейти в режим изменения размера и местоположения текущего окна • Window, Next (F6) - Перейти к следующему окну • Window, Previous (Shift+F6) - Перейти к предыдущему окну • Window, List … (Alt+0) - Перейти к списку открытых окон • Go to window (Alt+№ окна ) - Перейти в окно под заданным №