Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по TurboPascal.docx
Скачиваний:
7
Добавлен:
07.02.2015
Размер:
258.44 Кб
Скачать

Лабораторная работа 2.

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

Практическое задание 1:

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

- растровый шрифт – Default, цвет – зеленый, размер по умолчанию для растрового шрифта – 1 (8*8 точек), вывести текст в произвольном месте экрана;

- шрифт – Default, цвет – синий, размер – 3, выравнивание по левому краю выводимого текста и по верхней линии символов строки;

- шрифт – Triplex, цвет – красный, размер – 1, выравнивание по центру выводимого текста и по нижней линии строки;

- шрифт – Triplex, цвет – желтый, размер – 4, выравнивание по левому краю выводимого текста и по центру символов строки;

- шрифт – Small, цвет – белый, размер – 1, выравнивание по правому краю выводимого текста и по верхней линии строки;

- шрифт – Small, цвет – сиреневый, размер – 4, выравнивание по центру выводимого текста и по нижней линии символов строки.

  1. Очистить экран.

  2. Вывести вертикальный текст с теми же параметрами, что и у горизонтального текста.

Текст программы:

program Lab_1_3;

uses Graph;

var

GraphDriver,

graphmode,

errorcode:integer;

text:string;

begin

graphdriver:=detect;

initgraph(graphdriver,graphmode,'c:\bp\bgi');

text:='ET-Forever';

setcolor(2);

settextstyle(0,0,1);

outtextXY(100,50,text);

setcolor(1);

settextstyle(0,0,3); settextjustify(0,2);

outtextXY(100,130,text);

setcolor(4);

settextstyle(1,0,1); settextjustify(1,0);

outtextXY(100,200,text);

setcolor(14);

settextstyle(1,0,4); settextjustify(0,1);

outtextXY(100,250,text);

setcolor(15);

settextstyle(2,0,1); settextjustify(2,2);

outtextXY(100,290,text);

setcolor(13);

settextstyle(2,0,4); settextjustify(1,0);

outtextXY(350,250,text);

Readln; cleardevice;

setcolor(2);

settextstyle(0,1,1);

outtextXY(100,50,text);

setcolor(1);

settextstyle(0,1,3); settextjustify(0,2);

outtextXY(100,130,text);

setcolor(4);

settextstyle(1,1,1); settextjustify(1,0);

outtextXY(100,200,text);

setcolor(14);

settextstyle(1,1,4); settextjustify(0,1);

outtextXY(100,250,text);

setcolor(15);

settextstyle(2,1,1); settextjustify(2,2);

outtextXY(100,290,text);

setcolor(13);

settextstyle(2,1,4); settextjustify(1,0);

outtextXY(350,250,text);

readln;

closegraph;

end.

Результат работы программы представлен на рис.3:

рис.3

Практическое задание 2:

Изобразить на экране шар, который движется влево до соприкосновения со стенкой и обратно.

Текст программы:

Program Lab2z2_el;

Uses Crt,Graph;

Var GraphDriver,GraphMode,Size,

ErrorCode,Width : Integer;

x,y,dx,dy,Heigth : Integer;

i,r,x1,x2,y1,y2 : Integer;

Saucer:Pointer;

Label Q;

Begin

GraphDriver := Detect;

InitGraph(GraphDriver, GraphMode, 'D:\TP7');

ErrorCode := GraphResult;

if ErrorCode <> grOk then

begin

Writeln('Ошибка:',GraphErrorMsg(ErrorCode);

Writeln ('Работа программы прервана');

ReadKey; Halt(1);

end;

SetBkColor(7);

Randomize;

r:=24;

x:=3*r+20; y:=4*r;

SetColor(8);

SetLineStyle(0,0,1);

SetFillStyle(1,8);

FillEllipse(x,y,20,7);

x:=3*r; y:=3*r;

SetColor(2);

SetFillStyle(1,2);

Circle(x,y,r);

FloodFill(x,y,2);

x1:=x-r-1; x2:=5*r; Width:=x2-x1+2;

y1:=y-r-1; y2:=4*r+7; Heigth:=y2-y1+2;

Size:=ImageSize(x1,y1,x2,y2);

GetMem(Saucer,Size);

GetImage(x1,y1,x2,y2,Saucer^);

PutImage(x1,y1,Saucer^,XorPut);

x:=GetMaxX div 2; y:=GetMaxY div 2;

dx:=-3; dy:=0;

Repeat

for i:=1 to 200 do

begin

PutImage(x,y,Saucer^,1);

Delay(1000);

PutImage(x,y,Saucer^,1);

x:=x+dx; y:=y+dy;

Q: if ( x+dx<1 ) or ( x+dx+Width >= GetMaxX ) then

begin

if dx>=0 then dx:=-random(3)-1

else dx:=random(3)+1;

goto Q;

end;

if ( y+dy<1 ) or ( y+dy+Heigth>GetMaxY ) or ( dy=0 ) then

begin

if dy>=0 then dy:=-random(3)-1 else dy:=random(3)+1;

goto Q;

end;

if keypressed then exit;

end;

Until keypressed;

Readkey;

CloseGraph;

End.

Результат работы программы представлен на рис.14:

рис.14