Структура языка Турбо-Паскаль
Алфавит языкаТурбо-Паскаль ( набор используемых символов ) включает буквы латинского алфавита: от 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.{ Конец выполнения программы }
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|