Предисловие

Основные понятия
История Pascal

С чего начать?

Структура программы
Блок-схемы
"Шапка" программы

Заголовок
Константы
Переменные
Модули
Crt
Graph
System
Printer

"Тело" программы
CRT

Процедуры

Delay
NoSound
Sound
TextBackground
TextColor
Window

Функции

KeyPressed
ReadKey

GRAPH

Процедуры

Arc
Bar
Circle
ClearDevice
CloseGraph
Ellipse
FloodFill
GetImage
InitGraph
Line
LineTo
MoveTo
OutText
OutTextXY
PutImage
PutPixel
SetBkColor
SetColor
SetFillPattern
SetFillStyle
SetLineStyle
SetTextStyle

Функции

GetBkColor
GetColor
GetPixel





 

Переменные

Переменными называются параметры программы, значения которых могут изменяться в процессе ее выполнения.
Все используемые в программе переменные должны быть определены с указанием их типов. Переменные определяются:
  • в разделе объявления переменных программы;
  • в разделе объявления переменных подпрограммы;
  • в разделе объявления переменных модуля;
  • в заголовке подпрограммы.
Раздел объявления переменных начинается зарезервированным словом var, за которым следуют объявления конкретных переменных. Каждое объявление состоит из имени переменной (имен, перечисленных через запятую, если переменные одного типа), двоеточия и типа. Каждое объявление завершается точкой с запятой:

var <список переменных 1>: <тип 1>;
<список переменных 2>: <тип 2>;
...
<список переменных N>: <тип N>;

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

Пример.
Объявление переменных
type
Operation = (Plus, Minus, Mult, Divide);
var
X, Y, Z: Real;
{Предопределенный тип}
I, J, K: Integer;
{Предопределенный тип}
Operator: Operation;
{Ранее определенный тип}
Digit: 0..9;
{Объявление нового типа}

Переменные, объявленные не в подпрограмме, называются глобальными, так как они доступны во всех частях программы, в том числе и в подпрограммах, и размещаются в сегменте данных размером 65520 байт.
Переменные, объявленные в подпрограмме, называются локальными, так как доступны только этой подпрограмме, и размещаются в стековом сегменте. По умолчанию стековый сегмент имеет размер 16384 байта, однако, с помощью директивы компилятора {$М} его можно изменять от 1024 до 65520 байт.
Глобальные переменные постоянно находятся в памяти, локальные размещаются в стеке лишь на время выполнения подпрограммы, затем область стека освобождается.
Переменные используются практически в любых программах, и они были почти во всех предыдущих примерах.
В Тurbo Раsсаl можно использовать абсолютные переменные, располагаемые в определенной области памяти.
Абсолютные переменные снабжаются директивой absolute и указанием на место размещения этой переменной. При этом возможны два варианта:
  • указание абсолютного адреса в оперативной памяти, задавая через двоеточие адрес сегмента и смещение;
  • "привязка" переменной к адресу начала другой перменной.
Пример.
Использование абсолютных переменных
var
Str: string [32];
{Строка}
StrLen: Byte absolute Str;
{Привязка к началу строки}
CrtMode: Byte absolute $0040: $0049;
{Указание абсолютного адреса}

Абсолютные переменные можно использовать, в частности, для преобразования типов данных, когда к переменной одного типа "привязывается" переменная другого типа.
Пример.
Программа, выводящая символы и их АSCII-коды
Напишем программу, выводящую символы и коды в кодировке АSCII. И сам символ, и его АSCII -код имеют размер 1 байт. Чтобы вывести все символы, организуем вывод в соответствии с их кодами от 32 до 255. Для вывода и кода и символа введем две переменные - типа Byte и Сhаr, причем "привяжем" начало одной переменной к началу другой. В этом случае одну и ту же информацию можно будет без каких-либо преобразований выводить и как число, и как символ. Текст такой программы будет следующим:

program EXAMPLE9;
{Заголовок программы}
{Вывод символов с их АSCII -кодировкой}
uses Crt;
{Использование модуля Crt}
var i: Byte:
{Переменная для кода символа}
Ch: Char absolute i;
{Символ}
begin
{Начало тела программы}
for i:= 32 to 255 do
{Организация цикла}
begin
{Начало внешнего составного оператора}
Write(Ch: 4, i: 5);
{Вывод символа и кода}
if (i - 31) mod 8 = 0 then
{Если выведено 8 символов...}
begin
{Начало внутреннего составного оператора}
WriteLn;
{Переход на новую строку}
ReadKey;
{Ожидание нажатия клавиши}
end;
{Конец внутреннего составного оператора}
end;
{Конец внешнего составного оператора}
end.
{Конец программы}

В этой программе применяется еще один прием остановки программы до воздействия на нее пользователя. В данном случае употребляется стандартная подпрограмма ReadKey, расположенная в модуле Crt. Эта подпрограмма является подпрограммой-функцией, с помощью которой определяется символ, соответствующий нажатой клавише клавиатуры. Здесь же сам символ нажатой клавиши нас не интересует, и подпрограмма применяется как процедура лишь для фиксации факта нажатия какой-либо клавиши. Дело в том, что выполнение программы при использовании этой подпрограммы приостанавливается до нажатия какой-либо клавиши. Это несколько удобнее, чем упомянутый выше вариант, в котором обязательно следует нажать клавишу Епtеr. Однако для того, чтобы применить эту подпрограмму, модуль Crt следует объявить в разделе объявления используемых модулей, начинающемся зарезервированным словом uses.
В программе используются две переменные: i - как параметр цикла, содержащий код символа, и Сh - содержащая сам символ. Обе эти переменные занимают одно и то же место в памяти, что осуществляется с помощью директивы absolute. Внутри тела программы организуется цикл вывода всех символов с кодами от 32 до 255. Оператором цикла является составной оператор, заключенный в операторные скобки begin и еnd. Этот оператор здесь назван внешним составным оператором, так как в него входит другой - внутренний составной оператор. На каждой итерации с помощью стандартной процедуры Write выводятся символ Сh и его код i. При этом используется форматированный вывод. После вывода этой информации на экран проверяется, не выведено ли уже в очередную строку 8 символов и их кодов, и, если выведено ровно 8 символов и их кодов, происходит переход на новую строку экрана с помощью стандартной процедуры WriteLn и ожидается с помощью подпрограммы ReadKey нажатие пользователем клавиши. Эти два действия заключены в операторные скобки begin и еnd, т. е. оформлены в составной оператор, который здесь назван внутренним составным оператором.


 
Designed by Alexander Krasilnikov, Copyright © 2003
Частичная или полная перепечатка или иное использование материалов сайта не допускается. Нарушители преследуются по закону РФ.

Лучшая система раскрутки!




System

Процедуры

Append
Assign
BlockRead
BlockWrite
Break
Close
Delete
Erase
Exit
Flush
Halt
Insert
MkDir
Randomize
Read (текстовые файлы)
Read (типизированные файлы)
ReadLn
Rename
Reset
Rewrite
RmDir
Seek
Str
Truncate
Val
Write (текстовые файлы)
Write (типизированные файлы)
WriteLn

Функции

Abs
ArcTan
Chr
Concat
Copy
Cos
Frac
Ln
Ord
Pos
Random
Round
Sin
Sqr
Sqrt
Trunc
UpCase

Это вам пригодится

Типы данных
Таблица цветов
Специальные символы
Выполнение арифметических действий




Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal Turbo Pascal
Хостинг от uCoz