Программирование движущихся объектов — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Программирование движущихся объектов

2017-12-21 707
Программирование движущихся объектов 0.00 из 5.00 0 оценок
Заказать работу

Рисование на экране является действием с битами, т.е. побитовыми операциями над содержимым видеопамяти и битами изображения. В Паскале режимы вывода изображений на экран, задаются процедурой SetWriteMode(Wmode:integer).

Параметр Wmode может в различных процедурах принимать пять значений: copyput (0), xorput (1), orput (2), andput(3), notput (4). Последним четырем значениям соответствуют логические операции над битами xor, or, and, not. При инициализации графики устанавливается режим замещения битов памяти монитора битами изображения – copyput. Поэтому, если на экране есть изображение, оно заменяется новым.

Если требуется прорисовать движущийся объект, то часто его рисуют сначала цветом объекта, потом цветом фона. Это допустимо, если движение объекта происходит по пустому экрану. Если фоном является другое изображение, то этот прием непригоден. В таком случае используют режим поразрядного совмещения изображений xorput, который при повторной прорисовке объекта восстанавливает исходное состояние видеопамяти.

Пример 3. Случайное перемещение прямоугольника по экрану, используя в качестве фона параллепипед.

program Prog11_3;

uses graph,crt;

var gd,gm:integer;

dx,dy,x,y:integer;

mx,my:integer; {разрешение дисплея}

Begin

gd:=0;

initgraph(gd,gm,' ');

mx:=getmaxx; {максимально адресуемые}

my:=getmaxy; {координаты экрана}

dx:=mx div 4; {вычисление сторон}

dy:=my div 4; {прямоугольника}

bar3d(dx,dy,mx-dx,my-dy,30,true); { параллепипед,

левый верхний угол которого задается координатами

dx,dy, правый нижний – mx-dx,my-dy, с глубиной –

30 и отображением верхней плоскости – true }

setwritemode(xorput); {установка режима совмещения}

Repeat

x:=random(mx-dx); y:=random(my-dy); {задание

координат левого угла прямоугольника}

rectangle(x,y,x+dx,y+dy); {рисует прямоугольник}

delay(10000); {пауза в 10000 мс}

rectangle(x,y,x+dx,y+dy) {рисует прямоугольник

на том же месте}

until keypressed; {цикл до нажатия клавиши}

closegraph

End.

 

Если перемещаемый объект имеет сложный образ, то целесообразно выполнить его рисование один раз, а затем использовать буфер для сохранения двоичного образа области экрана, занимаемого этим объектом и восстановления его на траектории движения в режиме совмещения. Для реализации такого алгоритма используются следующие подпрограммы:

ImageSize(x1,y1,x2,y2:integer):word – функция возвращает число байтов, занимаемых прямоугольной областью экрана;

GetImage(x1,y1,x2,y2:integer; var b); – процедура сохраняет в буфере, адрес которого указывает параметр
р – ссылка на битовый массив – двоичный образ заданной прямоугольной области экрана с координатами x1,y1,x2,y2;

PutImage(x,y:integer; var b; mode:word); – процедура выводит содержимое буфера в прямоугольную область экрана, с координатами левого верхнего угла x,y с использованием режима mode.

Последовательность действий для работы с буфером:

var size:word; p:pointer;

………………………………………………………………………………………………

Size:=ImageSize(x1,y1,x2,y2); {прямоугольный фрагмент в байтах}

GetMem(p,size); {размещение буфера в куче}

GetImage(x1,y1,x2,y2;p^);{занесение фрагмента в буфер}

…………………………………………………………………………………………………

PutImage(x,y; p^; xxx Put); {вывод фрагмента, вместо

xxx Putиспользуется один из режимов: copyput, xorput, orput, andput, notput}

FreeMem(p,size); {освобождение буфера}

Пример 4. Написать программу случайного перемещения шарика по фону, заданному в виде прямоугольника.

program Prog11_4;

uses graph, crt;

const r=10;

var x1,y1,x2,y2,sx,sy:integer; {переменные для }

maxx,maxy,xm,ym,gd,gm:integer; {оживления фрагмента}

size: word; {размер фрагмента}

p: pointer; {указатель на буфер}

Begin

gd:=detect;

initgraph(gd,gm,'');{ инициализация графики}

maxx:= GetMaxX; { максимальное поле экрана}

maxy:= GetMaxY;

x1:=maxx div 2-r; {координаты области экрана}

y1:=maxy div 2-r; {в которой будет нарисован}

x2:=x1+2*r; {шарик и которая и будет}

y2:=y1+2*r; {со храненным фрагментом}

sx:=x1; xm:=3; {начальная точка движения и }

sy:=y1; ym:=-1; {шаг перемещения шарика}

SetFillStyle(SolidFill, Red); { выбор типа заливки}

PieSlice(X1+r,Y1+r, 0,360,r); { рисование шарика}

size:=ImageSize(x1,y1,x2,y2); {фрагмент в байтах}

GetMem(p, Size); { размещение буфера }

Getimage(x1,y1,x2,y2,p^); { фрагмент в буфер}

SetFillStyle(CloseDotFill,blue); {тип заливки фона}

bar(50,50,maxx-50,maxy-50); {фоновая картинка}

repeat {начинается движение шарика}

PutImage(sx,sy, p^,xorPut); {вывод шарика}

Delay(3600); { пауза}

PutImage(sx,sy,p^,xorPut); {стирание шарика}

{ограничения на движение шарика в пределах поля фона:}

if (sx<50)or(sx>maxx-50-2*r) then xm:=-xm;

if (sy<50)or(sy>maxy-50-2*r) then ym:=-ym;

inc(sx, xm); {следующая точка появления}

inc(sy, ym); {шарика на экране}

until KeyPressed; {пока не нажата клавиша}

FreeMem(p,size); {освобождение памяти буфера}

CloseGraph {закрытие режима графики}

end.

Имитировать движение на экране можно с помощью управления видеостраницами. По умолчанию действия в графическом режиме производятся с 0-ой страницей. Если направить вывод на ненулевую страницу (если есть), то на экране ничего не отобразится. Переход на скрытую страницу делает изображение видимым. Для этого используем процедуры:

SetVisualPage(n:word); – устанавливает видимой на экране страницу с номером n;

SetActivePage(n:word); – перенаправляет все графические операции на страницу с номером n.

Пример 5. Программа выводит на экран пульсирующий эллипс.

program Prog11_5;

uses graph,crt;

var j:byte; gd,gm:integer;

procedure form(k:byte); {рисование кадров 0..3}

const r: array [0..3] of integer=(20,40,60,80);

var r1,rr:integer; {радиусы эллипсов в кадрах}

Begin

r1:=r[k]; {максимальный радиус }

rr:=0; {радиус вложенного эллипса}

Repeat

ellipse(getmaxx div 2,getmaxy div 2,0,360,r1,rr); {рисование эллипса с центром в середине экрана}

inc(rr,5); {изменение радиуса вложенного эллипса}

until rr>r1; {пока не достигнет максимального радиуса}

end;

procedure smena; {процедура смены кадров }

const ms=460;

var i:byte;

Begin

Repeat

for i:=0 to 3 do begin

setvisualpage(i); {смена видеостраниц}

delay(ms) {с задержкой между кадрами }

end;

for i:=3 downto 0 do begin

setvisualpage(i); {смена видеостраниц в обратном порядке}

delay(ms);

end;

until keypressed; {цикл до нажатия клавиши}

end;

Begin

gd:=0;

initgraph(gd,gm,''); {инициализация графики}

setgraphmode(VGALo); {установка графического режима

VGA с 4 видеостраницами}

for j:=3 downto 0 do begin {цикл заполнения страниц}

setvisualpage(succ(j) mod 4); {видимые страницы,

начиная с 0}

setactivepage(j); {активные страницы,

начиная с 3}

form(j) {рисование кадра}

end;

smena;

closegraph

end.

Иллюзию движения можно создать, используя смену палитр. Программная палитра может состоять из 16 цветов, которые обозначаются числами от 0 до 15. Каждому программному цвету присваивается аппаратный цвет из полной палитры (256 цветов). В модуле Graph определен тип для описания палитры:

PaletteType = record

size:byte;

colors: array [0..15] of shortint

end;

и процедуры установки соответствия программному цвету аппаратного, смены палитр.

Пример 6. Пример имитации движения с помощью смены палитр.

program Prog11_6;

uses graph, crt; {подклочены graph и crt}

var palette:PaletteType; {переменная для палитры }

i,j,maxc,gd,gm:integer; {счетчики; максимальный цвет}

Begin

gd:=detect;

initgraph(gd,gm,''); { инициализация графики}

palette.size:=GetPaletteSize; {размер текущей палитры}

maxc:=pred(palette.size); {программный цвет }

for i:=0 to maxc do begin {рисование вложенных}

{разноцветных прямоугольников}

SetFillStyle(SolidFill,i);

bar(i*10,i*10,GetMaxX-i*10,GetMaxY-i*10)

end;

for i: = 0 to 63-maxc do begin {цикл по аппаратным цветам}

{Сдвиг программных цветов относительно аппаратных:}

for j:=0 to maxc do palette.colors[j]:=j+i;

SetAllPalette(palette);{назначение новой палитры}

delay(10000) {пауза в 10000 мс}

end;

readln; {пауза до нажатия ввода}

GetDefaultPalette(palette); {берется исходная палитра}

SetAllPalette(palette); {и восстанавливается}

CloseGraph {закрытие графики}

end.

 

Контрольные вопросы:

1. В чем заключается механизм отображения информации на экран дисплея в текстовом режиме?

2. Какие существуют возможности размещения информации на экране?

3. Какие есть способы выделения некоторой части информации на экране?

4. Как использовать символы псевдографики для представления информации в требуемой форме?

5. Как реализуется перемещение символов по экрану?

6. Как используются функции опроса клавиатуры для управления информацией на экране?

7. В чем заключается механизм отображения информации на экран дисплея в графическом режиме?

8. В чем отличие способов создания изображения в текстовом и графическом режимах?

9. Какие существуют возможности размещения информации на экране?

10. Как осуществить преобразование декартовых координат на плоскости в координаты экрана?

11. Как реализуется в программе эффект движущегося по экрану изображения?

12. Как осуществляется управление цветом изображения в различных графических режимах?

 

Лабораторная работа № 11

 

Задание 1. Ипользуя текстовый режим работы, выполнить задание, соответетствующее варианту.

 

Варианты заданий:

1. Дана строка символов. Разработать программу вывода на экран этой строки так, чтобы каждый символ появлялся на экране справа и перемещался в горизонтальном направлении влево при нажатии клавиши до первой незанятой позиции. После того как очередной символ займет свое место, должен начинаться вывод следующего символа и т.д.

2. Написать процедуру, которая выдает на экран (в текстовом режиме) таблицу из m строк и n столбцов шириной p позиций каждый. Привести пример использования разработанной процедуры.

3. Разработать программу конфиденциального ввода информации (цвет символов совпадает с цветом фона). При нажатии «парольной» клавиши введенная или вводимая информация становится видимой.

4. Написать программу рисования в текстовом режиме вертикальных и горизонтальных линий по нажатию соответствующих клавиш движения курсора. Для перемещения курсора в начальное положение использовать клавиши движения курсора.

5. Разработать программу, которая случайным образом устанавливает курсор в какой-либо строке экрана на диагонали и выводит номер строки. Спустя некоторое время это сообщение исчезает и появляется следующий случайный номер.

6. Разработать программу передвижения прямоугольника по экрану при нажатии клавиш перемещения курсора.

7. Разработать программу ввода нескольких строк текста. Каждая строка вводится в отдельном окне. Предусмотреть эффект сжимания предыдущей строки в точку при выводе строки в новом окне.

8. Разработать программу вывода на экран меню следующего вида:

 

Вариант 1 Вариант 2 Вариант 3

 

отображающего процесс выбора любого из перечисленных вариантов, осуществляемый с помощью и ®. При этом вариант, на который падает выбор, должен выделяться повышенной яркостью или цветом. При нажатии клавиши <ВВОД> или ­ на месте соответствующего варианта должно появляться другое окно. Используйте данную форму меню в конкретной задаче.

9. Разработать программу вывода на экран меню следующего вида:

  Вариант 1
Выбор ¾® Вариант 2
  Вариант 3
  Вариант 4

Процесс выбора одного из вариантов осуществлять с помощью клавиш ¯ и ­. При этом к строке, на которую падает выбор, должна быть направлена стрелка от слова "Выбор". Используйте данную форму меню в конкретной задаче.

10. Разработать программу выдачи горизонтального меню с выпадающими вертикальными подменю:

 

Выбор 1 Выбор 2 Выбор 3
  Вариант 1    
  Вариант 2    
  Вариант 3    

Подменю активизируется клавишей <ВВОД>. Выбор режима осуществляется клавишами перемещения курсора. Используйте данную форму меню для вывода информации о знаках тригонометрических функций в соответствующих четвертях координатной плоскости.

11. Разработать программу вывода на экран меню следующего вида

    Вариант 3  
Вариант 2    
Вариант 1    
     
       
             

 

В этом меню приведен полный список вариантов. Название каждого варианта оформляется в отдельном окне. Полностью видно только одно окно, на которое падает выбор. При нажатии клавиш ¯ и ­ порядок окон меняется. Разработанная программа должна ото­бражать этот процесс выбора варианта для конкретной задачи.

12. Разработать программу выдачи информации в виде двухуровневого гипертекста. На 1-ом уровне в тексте цветом выделены некоторые слова, к которым можно при нажатии клавиши <ВВОД> получить пояснения в виде текста на 2-ом уровне. Возвращение к тексту предыдущего уровня выполнять нажатием клавиши <ESC>.

13. Разработать программу, выдающую на экран меню следующего вида:

 

Заголовок
F1 - Вариант 1
F2 - Вариант 2
F3 - Вариант 3
F4 - Вариант 4

Выбор варианта осуществляется соответствующими функциональными клавишами. Приведите пример использования данной формы меню в конкретной задаче.

14. Разработать заставку к программе, которая содержит основные сведения о программе (автор, название, год разработки). Предусмотреть эффект сжимания всего изображения в точку в центре экрана.

15. Разработать программу ввода и вывода матрицы по строкам. Ввод каждого числа осуществляется в заданную позицию экрана таким образом, чтобы на экране вводимые числа располагались по строкам и столбцам в виде матрицы. Размерность матрицы и максимально возможное количество позиций в числе вводятся с клавиатуры. При выводе матрицы предусмотреть выравнивание столбцов по правому краю (для вещественных чисел оставить 2 знака после запятой).

 

Задание 2. Ипользуя графический режим работы, вывести на экран график функции в декартовой системе координат. Нанести обозначения и разметку осей.

 

Варианты заданий:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

 

Задание 3. Ипользуя графический режим, нарисовать картинку, имитируя движение в соответствии с вариантом.

 

Варианты заданий:

1. Дом на берегу моря, на море – движущийся парусник. Когда он причалит к берегу, в окне дома загорается свет.

2. Рождественская елка в огнях и игрушках. Гирлянды огней зажигаются и гаснут.

3. Море с бегущей волной, корабль и маяк. Маяк подает сигналы.

4. Летящие над полем (лесом, морем) и машущие крыльями птицы.

5. Перекресток со светофором для пешеходов. Пешеход движется на зеленый свет.

6. Аквариум с плавающей рыбкой.

7. Перемещение по экрану стилизованного изображения человека (окружность – голова, треугольник – туловище, четыре ломаные линии – руки и ноги). Перемещение человека, изображенного на экране, должно осуществляться при нажатии соответствующих клавиш управления курсором.

8. Построение последовательно следующих рисунков:

При нажатии некоторой клавиши меняется форма рта.

9. Нарисовать почтовый конверт:

Предусмотреть, чтобы по нажатию какой-либо клавиши конверт открывался, в него влетал листок, затем конверт закрывается.

10. Циферблат механических часов с движущимися секундной, минутной и часовой стрелками (при этом используйте процедуру Delay).

11. Изменение масштаба изображения (рисунок и текст) в прямоугольном окне на экране при нажатии фиксированных клавиш.

12. Перемещение упругого шарика в замкнутом пространстве прямоугольной формы. Начальное направление и скорость движения шарика должны задаваться произвольно.

13. Разделить экран на 2 части: в одной предусмотреть выдачу позитивного изображения (белое на черном), а в другой – негативного (черного на белом). Написать процедуру движения по такому экрану некоторого геометрического объекта.

14. Выделение цветом, отличным от фона и цвета изображения прямоугольного фрагмента рисунка на экране. Задание размеров фрагмента с помощью стрелки-указателя, фиксируя концы одной из диагоналей прямоугольника. Для управления стрелкой-указателем по экрану использовать клавиши перемещения курсора и ввода.

15. Многоугольник любой формы. Вершины многоугольника должны задаваться путем перемещения текущего указателя в форме стрелки с помощью клавиш управления курсором и нажатия клавиш <ВВОД>. Замкнутое пространство внутри многоугольника следует заполнить штриховкой.

 

Л И Т Е Р А Т У Р А

 

1. Абрамов, В.Г. Введение в язык Паскаль. – М.: Наука, 1988. – 318 с.

2. Бондарев, В.М. Основы программирования. – Харьков: Фолио, 1997. – 368 с.

3. Гуденко, Д.А. Сборник задач по программированию. – СПб.: Питер, 2003. – 475 с.

4. Давыдов, В.Г. Программирование и основы алгоритмизации. – М.: Высш. школа, 2003. – 448 с.

5. Долинский, М.С. Алгоритмизация и программирование на Turbo Pascal: от простых до олимпиадных задач. – СПб.: Питер, 2005. – 237 с.

6. Епанешников, А. М. Программирование в среде Turbo Pascal 7.0. – М.: Диалог-МИФИ, 1996. – 288 с.

7. Зуев, Е.А. Программирование на языке TURBO PASCAL 6.0, 7.0. – М.: Радио и связь, 1993. – 384 с.

8. Лукин, С.Н. Турбо Паскаль 7.0: самоучитель для начинающих. – М.: Диалог-МИФИ, 2000. – 384 с.

9. Немнюгин, С.А. Turbo Pascal: практикум. – СПб.: Питер, 2000. – 256 с.

10. Офицеров, Д.В., Долгий, А.Б., Старых, В.А. Программирование на персональных ЭВМ: практикум. – Мн.: Выш. школа, 1993. – 256 с.

11. Павловская, Т.А. Паскаль: программирование на языке высокого уровня. – СПб.: Питер, 2004. – 393 с.

12. Пильщиков, В.Н. Сборник упражений по языку Паскаль. – М.: Наука, 1989. – 160 с.

13. Поляков, Д.Б., Круглов, И.Ю. Программирование в среде ТУРБО ПАСКАЛЬ. – М.: Изд. МАИ, 1992. – 576 с.

14. Сурков, Д.А. Программирование в среде Borland Pascal для Windows: справочное пособие. – Мн.: Выш. школа, 1996. – 432 с.

15. Фаронов, В.В. Турбо Паскаль 7.0: Начальный курс. – М.: Нолидж, 2000. – 576 с.

16. Фаронов, В.В. Турбо Паскаль 7.0: Практика программирования. – М.: Нолидж, 2000. – 416 с.

 

П Р И Л О Ж Е Н И Я

Приложение 1

Краткое описание системы программирования
Турбо Паскаль

Базовыми компонентами системы программирования Турбо Паскаль являются компилятор языка Паскаль, средства создания и редактирования исходных текстов программ и средства их отладки. Все эти компоненты объединены в единую интегрированную среду разработчика. Базовый набор для разработки программ, не использующих графический режим, состоит из файла TURBO.EXE, который хранит ядро системы, и файла TURBO.TPL, содержащего резидентную библиотеку модулей.

Чтобы инициировать работу Турбо Паскаля, надо запустить программу из файла TURBO.EXE на выполнение. Это можно сделать с помощью DOS-ориентированных оболочек управления файлами (Windows Commander, Norton Commander, Far и т.п.) либо команды системного меню Пуск | Выполнить. В этом случае среда Turbo Pascal будет открыта в окне Windows.

Рассмотрим кратко основные элементы интегрированной среды программирования.

При запуске Турбо Паскаля, на экране появляется следующее изображение:

Экран Турбо Паскаля содержит 4 основные части, сверху вниз:

- главное меню (File, Edit, Run, Compile, Options, Debug, Break/Watch);

- окно редактирования (Edit) со служебной информацией редактора в верхней строке;

- окно просмотра (Watch) для отладки программ;

- строку подсказки о назначении функциональных клавиш (F1..F10).

Рассмотрим коротко назначение основных пунктов меню Турбо Паскаля.

File
New удаление текущей программы из оперативной памяти, очистка экрана и создание нового файла с именем NONAMEXX.pas
Open [F3] загрузка файла с диска в новое окно редактора. При этом в диалоговом окне на выбор предлагаются имена файлов с маской *.pas. Если ввести имя, которого нет в текущем каталоге, то будет создан новый файл.
Save [F2] сохранение на диске текущего редактируемого файла. Если имя файла было NONAMEXX.pas, то среда запросит новое имя.
Save as запись содержимого окна на диск под другим именем. В поле ввода диалогового окна необходимо написать новое имя, которому автоматически будет дано расширение.pas.
Change dir изменяет текущий каталог пользователя.
Print печатает содержимое текущего окна на принтере.
Exit [Alt+X] завершает работу с Турбо Паскалем. Синоним команды – сочетание клавиш.

 

Edit
Undo [Alt + Back Space] отмена предыдущего выполненного действия в редакторе, так называемый «откат».
Redo отменяет действие команды Undo.
Cut [Shift + Del] удаляет выделенный блок текста из окна редактора и переносит его в буфер обмена Clipboard.
Copy [Ctrl + Ins] копирует выделенный блок из окна редактора в буфер обмена.
Paste [Shift + Ins] копирование содержимого буфера обмена в окно редактора, в то место, где в данный момент находится курсор.
Clear [Ctrl + Del] удаляет из окна редактора выделенный блок без помещения его в буфер обмена
Run
Run [Ctrl + F9] запускает компиляцию (трансляцию), компоновку (сборку, линковку) и выполнение программы
Step over [F8] выполняет те же действия, что и [F7], но без трассировки процедур и функций
Trace Into [F7] запускает режим пошагового (построчного) выполнения программы (трассировка). Многократно нажимая клавишу [F7], строка за строкой, мы можем выполнить всю программу. Очередная строка при этом подсвечивается голубым цветом.
User Screen [ALT+F5] отображает состояние экрана дисплея после завершения прогона программы. Повторное нажатие этих клавиш возвращает экран компьютера в исходное состояние.

 

Compile
Compile [Alt + F9] компилирует программу, которая находится в окне редактора (или содержащуюся в файле, имя которого указано в подкоманде Primary file команды Compile).
Destination с помощью этой опции можно указать системе, куда поместить «EXE» – файл на диск DISK или в оперативную память MEMORY. Переключение из одного состояния в другое осуществляется нажатием клавиши ENTER.

 

Options
Compiler разворачивается дополнительное меню, с помощью которого можно управлять параметрами компилятора.
Environment настройка среды Турбо Паскаля для удобства работы конкретного пользователя.
Directories настройка рабочих каталогов (директорий).

 

Break/Watch
Add Watch эта опция позволяет поместить или добавить переменную или выражение в окно просмотра и узнать их текущее значение.
Delete Watch эта опция удаляет из окна WATCH текущее просматриваемое выражение (режим удаления доступен в том случае, если окно просмотра WATCH является видимым). Удалить текущее выражение просмотра можно также с помощью клавиш DEL или CTRL-Y.
Watch открывает окно просмотра.

 


Приложение 2

Типы данных в Паскале

Тип величины определяет возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу; внутреннюю форму представления данных в ЭВМ; операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

o Классификация типов:


  • Простые

- Порядковые

§ Целый

§ Логический

§ Символьный

§ Перечисляемый

§ Интервальный

- Вещественный

- Указатели

· Структурированные

- Массивы

- Строки

- Множества

- Записи

- Файлы

 

 


o Простые типы данных

В таблице приведены простые стандартные типы данных Турбо Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.

Таблица 2.1

Стандартные типы данных

Идентификатор Длина (байт) Диапазон значений Операции*
Целые типы
integer   -32768..32767 +, -, /, *, div, mod, >=, <=, =, <>, <, >
byte   0..255 +, -, /, *, div, mod, >=, <=, =, <>, <, >
word   0..65535 +, -, /, *, div, mod, >=, <=, =, <>, <, >
shortint   -128..127 +, -, /, *, div, mod, >=, <=, =, <>, <, >
longint   -2147483648..2147483647 +, -, /, *, div, mod, >=, <=, =, <>, <, >
Вещественные типы
real   2,9x10-39..1,7x1038 +, -, /, *, >=, <=, =, <>, <, >
single   1,5x10-45..3,4x1038 +, -, /, *, >=, <=, =, <>, <, >
double   5x10-324..1,7x10308 +, -, /, *, >=, <=, =, <>, <, >
extended   3,4x10-4932..1,1x104932 +, -, /, *, >=, <=, =, <>, <, >
Логический тип
boolean   true, false not, and, or, xor, >=, <=, =, <>, <, >
Символьный тип
char   все символы кода ASCII +, >=, <=, =, <>, <, >

 

Перечисляемый тип представляет собой ограниченную упорядоченную последовательность скалярных констант, составляющих данный тип. Значение каждой константы задается ее именем. Имена отдельных констант отделяются друг от друга запятыми, а вся совокупность констант, составляющих данный перечисляемый тип, заключается в круглые скобки:

type имя_типа = (константа_1, константа_2, …, константа_N);

Пример.

typе

colors =(red, white, blue);

Отрезок любого порядкового типа может быть определен как интервальный тип. Отрезок задается диапазоном от минимального до максимального значения констант, разделенных двумя точками:

type
имя_типа = <мин.зн. конст.>..<макс.зн. конст.>

В качестве констант могут быть использованы константы, принадлежащие к целому, символьному, логическому или перечисляемому типам.

Пример.

type

digit = '0'..'9';

hour= 0..24;

Интервальный тип необязательно описывать в разделе TYPE, а можно указывать непосредственно при объявлении переменной.

Пример.

var

date: 1..31;

month: 1..12;

o Структурированные типы данных

Описание структурированных типов данных (массивов, множеств, строк, записей, файлов) приводится в соответствующих разделах данного издания.



Приложение 3

Операции и отношения

Таблица


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.165 с.