Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Структура языка Турбо-ПаскальСтр 1 из 27Следующая ⇒
Алфавит языка Турбо-Паскаль ( набор используемых символов ) включает буквы латинского алфавита: от a до z и от A до Z, арабские цифры: от 0 до 9, специальные символы: _ + - * / =, .: ; < > ( ) [ ] { } ^ @ $ #, пробел “_” и управляющие символы с кодами от #0 до #31. Используются также служебные (зарезервированные) слова, например: absolute, and, array, begin, case, const, constructor, destructor, div, do, downto, else, end, external, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, vertual, while, with, xor и другие.
При написании программы применяются: константы - данные, значения которых не изменяются в программе; переменные - данные, могущие изменяться при выполнении программы; выражения - константы, переменные и обращения к функциям, соединенные знаками операций; операторы - специальные символы и слова, выполняющие действия; функции, процедуры и модули - отдельные программные блоки, имеющие имена и подключаемые к основной программе.
Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания " _ ". Имена начинаются с буквы или знака подчеркивания " _ " и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами. Различие прописных и строчных букв в идентификаторах компилятором Турбо-Паскаля не учитывается. Идентификаторы отделяются друг от друга пробелами и специальными знаками. Примеры записи идентификаторов: Alfa, C, X_max, Y_min, Sin, Cos, _10_A. Специальные знаки: Примеры: : = - присвоение значения ( x: = 0. 1; c: = Cos(x); d: = c; ), = - описание значений констант, ( Const n= 1; m= 200; ), назначение типа ( Type M = array [N.. M] of integer; ), ; - конец оператора ( b: = 5; goto M1; begin end; ), : - описание типа переменой, ( Var b, c, d: real; i, j, k: integer; ), задание меток операторов ( M1: c: =sin(x); ), , - перечисление идентификаторов при описании ( Uses CRT, DOS; ), .. - задание интервала, диапазона ( a: array [1.. 100] of real; ), () - группировка арифметических выражений ( y: = b/(c+d); ), аргументов функций, процедур и т. п. ( y: =Sin(x); ), [] - границы массива, обозначение элемента массива ( a[1]: =22; ), {} - комментарии ( {комментарии транслятором не обрабатываются} ), ' - обозначение символьных и строковых констант ( с: ='! '; S: ='Cи'; ), # - обозначение символа с указанием номера кода ASCII ( c: =#33; ), $ - обозначение шестнадцатеричных констант ( i: =$FF; ), @ - обозначение адреса переменной ( yx: =@x; ) { yx - адрес ячейки в ОЗУ со значением переменной " x" }, ^ - обозначение типа ссылка, ( Var yx: ^real; ), а также значения переменной типа ссылка ( yx^: = 0. 1; ), + - / * - знаки математических операций, = < > > < < = > = - знаки операций сравнения.
Типы переменных
Типы переменных, используемых в Турбо-Паскале, приводятся в таблице. Некоторые типы объединены в группы: структурированные, простые типы.
Структурированные типы Простые типы Строковый тип
Массивы Вещественные Указатели и ссылки Записи Порядковые Процедурные Множества Целый тип типы Логический тип Файловые типы Символьный тип Объекты Перечислимый тип Тип-диапазон Используются стандартные имена типов, либо имя типа задается в разделе описания программы, например: TYPE A = array [ 1.. 1000 ] of real; Тип переменной объявляется после служебного слова VAR, например:
VAR a1, a2: A; { массивы из 1000 элементов вещественных чисел типа " A" }
Если не использовать служебное слово TYPE, то можно записать:
VAR a1, a2: array [ 1.. 1000 ] of real;
Рассмотрим подробнее описание некоторых стандартных типов и допустимые диапазоны изменения значений переменных.
Вещественные типы Примеры описания: Наименование размер кол. диапазон VAR c, d, e: real; типа ( байт ) цифр значений d1, d2: double; Single 4 7..8 10 (-45..+38) Примеры присвоения значения: Real 6 11..12 10 (-39..+38) с: = -125. 6; e: = 10; Double 8 15..16 10 (-324..+308) d: = 1. e02; {или} d: = 100.; Extended 10 19..20 10 (-4951..+4932) d1: = 1.2e-257; { 1.2*10-257} Comp 8 19..20 -263 +1..+263 -1 Comp - число без дробной части и без точки. Примечание: типы Single, Double, Extended работают при подключении сопроцессора, в том числе при эмуляции сопроцессора. Для этого в меню Options, Compiler установить Numeric processing: [X] 8087/80287, а также [X] Emulation, либо в начале программы установить режим компиляции {$N+}.
Порядковые типы имеют конечное число возможных значений.
Целые типы
Наименование размер диапазон Примеры описания: типа ( байт ) значений VAR i, j, k: byte; h, m, n: integer; Byte 1 0..255 l1, l2, l3: longint; Shortint 1 -121..+127 Word 2 0..65535 Примеры присвоения значения: Integer 2 -32761..+32767 i: = 222; j: = 10; m: = -23000; Longint 4 -2147483641.. l1: = 280000; +2147483647 h: = $A7; (шестнадцатеричный формат числа 10*16+7)
Логический тип Переменные логического типа могут принимать значения: False (ложно) или True (верно).
Примеры описания: VAR b1, b2, b3, b4: boolean; Примеры присвоения значения: b1: = True; b2: = False; b3: = not b1; {или} b3: = False; b4: = b1; Символьный тип
Переменные символьного типа могут принимать значения одного из символов с кодами от #0 до #255, т. е. допускаются буквы русского алфавита и символы псевдографики. Символы с кодами от #0 до #31 (управляющие) в тексте воспринимаются как пробел, а в операторах вывода как символ или команда.
Примеры описания: VAR с, ch, e: char;
Примеры присвоения значения: c: = '! '; c: = #33; { символ "! " задается значением кода } ch: = #13; { код клавиши Enter } e: = #27; { код клавиши Esc } Примеры вывода: Write(с); { выводится символ " ! " } Write(ch); { команда перевода курсора на новую строчку } Write(е); { выводится специальный символ, соответствующий коду #27 }
Строковый тип Переменная строкового типа задается набором символов, заключенных в кавычки. Примеры описания: VAR s: string[25]; s1: string; { длина переменной s может изменяться от 1 до 25 символов } { длина переменной s1 не указывается, наибольшее число символов равно 255 }
Примеры присвоения значения: s: = 'Привет'; s1: = 'Hello';
Массив
Массив - упорядоченные данные одного типа, состоящие из переменных (элементов массива). Элементы массива имеют свой порядковый номер (индекс) и значение. Значение присваивается отдельно каждому элементу массива, либо сразу всем элементам массива (копирование одного массива в другой в случае массивов одинакового типа). Массив может быть многомерным (без ограничения), но занимать не более 65520 байт. Примеры описания:
VAR M1: array[1..200] of integer; A1: array[100..200] of real; ch1: array['A'..'Z'] of char; ch2: array[0..255] of char;
{ М1, A1 - одномерные массивы целых и вещественных чисел } { сh1, ch2 - одномерные массивы символов } Примеры присвоения значения:
M1[1]: =5; M1[2]: =8; M1[3]: = M1[1]; M1[100]: =32; A1[101]: =0.2; A1[102]: =2.31; ch1['B']: ='C'; ch2[1]: ='! '
Тип-диапазон и перечислимый тип задаются программистом. Примеры описания: TYPE Date_M= 1..31; Rush_b= 'А..Я'; Lat_b= 'A..Z'; {тип диапазон} Otmetka= (2, 3, 4, 5); Ball= (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); {перечислимый тип}
VAR t1, t2: Date_M; c1: Ruch_b; s1: Lat_b; a1, a2: Otmetka; b: Ball; Примеры присвоения значения: t1: = 10; c1: = 'Л'; s1: = 'F'; a1: =5; b: = 8;
Файлы
Файл - именованная область внешней памяти ЭВМ, содержащая различные данные. Длина файла ограничена доступной дисковой памятью. Файлы могут быть текстовые, типизированные и нетипизированные. Рассмотрим описание текстовых файлов, хранящих информацию в виде строк переменной длины с последовательным доступом к данным.
Примеры описания: VAR f1, f2: text;
Примеры присвоения значения: Assign( f1, 'file1. in' ); Assign( f2, 'C: \ PASCAL\ WORK\ file2. out' ); Оператор Assign присваивает файловой переменной имя файла на диске. Файл file1. in содержится в текущем каталоге. Для файла file2. out указывается дорожка DOS.
Записи
Записи - вводимый программистом тип, определяемый как структура данных разного типа, содержащая названия полей с указанием их типов, расположенных между служебными словами Record и End.
Примеры описания: Type Sity = Record Name_G: String[20]; { название города } Numb_G: LongInt; { число жителей } Stol_G: Boolean; { Столица (Да, Нет) } Shir, Dol: Real { Координаты: широта, долгота } End; Var St1, St2, St3: Sity; { Переменные типа запись } Примеры присвоения значения:
St1. Name_G: = 'Уфа'; St1. Numb_G: =1200000; {Отдельным полям переменной St1 } St2. Name_G: = 'Москва'; St2. Numb_G: =8200000; St3: = St1; { Всем полям переменной St3 } Переменные типа запись могут обозначаться с помощью оператора присоединения: WITH " имя переменной" DO " оператор";
Например: With St1 do Begin Name_G: = 'Уфа'; Stol_g: = True; Readln(Shir, Dol); z: = Numb_G - St2. Numb_G; Writeln(Name_G: 5, Numb_G: 10) end; Практическое задание N 1. 1
1) Создайте три файла с именами f1. pas, f2. pas, File_1. pas. Запишите в первый файл структуру программы, приведенную ниже. Скопируйте текст файла f1. pas в окно с файлом f2. pas. В файле f2. pas исключите разделы с процедурами и функциями. В файл File_1. pas скопируйте разделы с процедурами и функциями из файла f1. pas. В файле f1. pas уберите подключение файла File_1. pas. Откомпилируйте файлы f1. pas и f2. pas.
Структура программы
Структура программы на языке Турбо-Паскаль имеет вид:
Program NAME; { Заголовок программы - не обязательный оператор } { NAME - имя программы } { Раздел описания } {$N+} { Режим компиляции для расчетов с подключением сопроцессора }
Uses CRT, DOS, GRAPH; { Подключение библиотек CRT, DOS, GRAPH }
Label L1, L2, L3; { Список используемых в программе меток L1, L2, L3 }
Const C=10; { Задание значений констант, используемых в программе } B=0. 15; Y=True; { С- целое число, В- вещественное число } F='Фамилия'; { Y- Логическая константа, F- Символьная строка }
Type M= array[1.. 100] of integer; {Описание типов введенных программистом }
Var { Описание переменных } m1, m2: M; { m1, m2 - массивы целых чисел (типа М) } a1: array [ 1.. 100 ] of real; { а1 - массив вещественных чисел } ch: array [ 1.. 200 ] of char; { ch - массив символов } ch1, ch2: char; { ch1, ch2 - символьные переменные } s: string[79]; { s - строка до 79 символов } a, d, x: real; { a, d, x - вещественные переменные } yes, no: boolean; { yes, no - переменные логического типа } f1, f2: text; { переменные для описания текстовых файлов } { ---------------------------------------------------------------- } Procedure NAME_1(Parm1: Real; Var Parm2: Real); { Заголовок процедуры } { NME_1 - имя процедуры, Parm1, Parm2 - параметры } { Раздел описания } BEGIN { Раздел выполнения } END; { ---------------------------------------------------------------- } Function FUN_1(Parm3, Parm4: Real): Real; { Заголовок функции } { FUN_1 - имя функции, Parm3, Parm4 - параметры } { Раздел описания } BEGIN { Раздел выполнения } END; { ---------------------------------------------------------------- } { $I File_1. pas } { Подключение файла File_1. pas с дополнительными функциями и процедурами } { ---------------------------------------------------------------- } BEGIN { Начало выполнения программы } { Раздел выполнения } END. { Конец выполнения программы } |
Последнее изменение этой страницы: 2017-03-17; Просмотров: 370; Нарушение авторского права страницы