Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Структура языка Турбо-Паскаль





Алфавит языка Турбо-Паскаль (набор используемых символов) включает буквы латинского алфавита: от 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. { Конец выполнения программы }

 

 







ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.