Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal (Задания).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
915.97 Кб
Скачать

Программы с объектами

Пример. А. Задать объект и предусмотреть над ним следующие действия:

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

- рисование треугольника

- стирание треугольника

- перемещение треугольника

- принадлежность точки треугольнику

- изменение размера треугольника при сохранении подобия

Б. Распространить вышеуказанные действия на:

- закрашенный треугольник

- треугольник с размеченными вершинами А, В, С.

Составить программу с использованием этих объектов.

program primer;

uses graph,crt;

type tr=object

x1,y1,x2,y2,x3,y3,r:integer;

c:word;

procedure coord(x1i,y1i,x2i,y2i,x3i,y3i:integer);

procedure col(ci:word);

procedure ris;

procedure cl;

procedure podobh;

procedure podobl;

procedure mov(hx,hy:integer);

end;

tr1=object(tr) c1:word;

procedure ris1;

procedure cl1;

procedure mov1(hx,hy:integer);

end;

tr2=object(tr) c1:word;

procedure ris2;

procedure cl2;

procedure mov2(hx,hy:integer);

end;

procedure tr.coord; begin x1:=x1i; y1:=y1i; x2:=x2i; y2:=y2i; x3:=x3i; y3:=y3i;end;

procedure tr.col; begin c:=ci end;

procedure tr.ris;

begin

setcolor(c);

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

end;

procedure tr.cl; var s,s1:word;

begin

s:=getbkcolor; s1:=getcolor;

setcolor(s);

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

setcolor(s1);

end;

procedure tr.podobh;

begin

cl;

x2:=round((11*x2-x1)/10); y2:=round((11*y2-y1)/10);

x3:=round((11*x3-x1)/10); y3:=round((11*y3-y1)/10);

ris;

end;

procedure tr.podobl;

begin

cl;

x2:=round((10*x2+x1)/11); y2:=round((10*y2+y1)/11);

x3:=round((10*x3+x1)/11); y3:=round((10*y3+y1)/11);

ris;

end;

procedure tr.mov;

begin

cl; coord(x1+hx,y1+hy,x2+hx,y2+hy,x3+hx,y3+hy); ris

end;

procedure tr1.ris1;

begin

setcolor(c);

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

setfillstyle(c1,2);

FloodFill(x1+10,y1-10,c);

end;

procedure tr1.cl1; var s,s1:word;

begin

s:=getbkcolor; s1:=getcolor;

setcolor(s);

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

setfillstyle(s,1);

FloodFill(x1+10,y1-10,s);

end;

procedure tr1.mov1;

begin

cl1; coord(x1+hx,y1+hy,x2+hx,y2+hy,x3+hx,y3+hy); ris1

end;

procedure tr2.ris2;

begin

setcolor(c);

settextstyle(1,0,2);

outtextxy(x1-10,y1,'A');

outtextxy(x2-5,y2-25,'B');

outtextxy(x3+5,y3,'C');

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

end;

procedure tr2.cl2; var s,s1:word;

begin

s:=getbkcolor; s1:=getcolor;

settextstyle(1,0,2);

setcolor(s);

outtextxy(x1-10,y1,'A');

outtextxy(x2-5,y2-25,'B');

outtextxy(x3+5,y3,'C');

moveto(x1,y1);lineto(x2,y2);

lineto(x3,y3); lineto(x1,y1);

end;

procedure tr2.mov2;

begin

cl2; coord(x1+hx,y1+hy,x2+hx,y2+hy,x3+hx,y3+hy); ris2

end;

var i,m,gd,grdr,grr,a1,a2,a3,b1,b2,b3,a1i,a2i,a3i,b1i,b2i,b3i:integer; t:tr; t1:tr1; t2:tr2; ch:char;

k:real;

BEGIN

gd:=detect; initgraph(gd,m,'c:\bp\bgi');

setbkcolor(1);

setcolor(10);

t.col(10); t1.col(10); t2.col(10);

a1:=50;b1:=400;a2:=100;b2:=300;a3:=150;b3:=400;

REPEAT

settextstyle(4,0,4);

outtextxy(150,20,'1- Simple');

outtextxy(150,50,'2- Fill');

outtextxy(150,80,'3- Such');

outtextxy(150,110,'4- ABC');

outtextxy(150,140,'Enter - exit');

ch:=readkey;

case ch of

#49:{1}

for i:=-100 to 600 do

begin

t.coord(a1+i,b1,a2+i,b2,a3+i,b3);

t.mov(1,0);

delay(10);

end;

#50:{2}

begin

i:=0;

repeat

t1.coord(a1+i,b1,a2+i,b2,a3+i,b3);

t1.mov1(1,0);

delay(0);

i:=i+1;

until keypressed or (i=600);

t1.cl1;

end;

#51:{3}

begin

{coord;}

{a2i:=a2;b2i:=b2;a3i:=a3;b3i:=b3;}

t.coord(a1,b1,a2,b2,a3,b3);

t.ris;

repeat

ch:=readkey;

case ch of

#72: {вверх}

begin

t.podobh;

end;

#80 :{вниз}

begin

t.podobl;

end;

end;

until ch=#27;

t.cl;

end;

#52:{4} begin i:=0;

repeat

i:=i+1;

t2.coord(a1+i,b1,a2+i,b2,a3+i,b3);

t2.mov2(1,0);

delay(1);

until keypressed or (i=600);

t2.cl2;

end;

end;

UNTIL ch=#13;

closegraph;

END.

Вопросы к зачету по информатике

Тема: “Файлы”

Теоретические вопросы.

1. Понятие файла (физический файл, файл в среде Турбо-Паскаль).

2. Отличие структуры данных “файл” от структуры данных “массив”.

3. Описание файлового типа данных. Примеры.

4. Запись и считывание элементов файла. Примеры.

5. Текстовые файлы и их отличия от других файловых типов.

Практические задания.

1. Дан символьный файл. Требуется записать его элементы в другой файл, заменяя идущие подряд одинаковые элементы одним таким же элементом.

2. Дан символьный файл. Подсчитать и вывести на экран количество элементов файла не используя функцию filesize.

3. Дан целочисленный файл f. Записать в символьный файл числа из файла f.

4. Из текстового файла создать новый файл, исключив самую длинную и самую короткую строки.

5. Дан целочисленный файл f. Записать в новый файл элементы файла f, которые удовлетворяют условию: меньше некоторой величины a, но больше некоторой величины b,

6. Дан целочисленный файл f, Создать целочисленный файл g, содержащий квадраты элементов файла f, стоящих на четных позициях файла.

7. Дан целочисленный файл f, Создать целочисленный файл g, содержащий кубы элементов файла f, стоящих на нечетных позициях файла.

8. Дан целочисленный файл f. Создать файл, состоящий из разности рядом стоящих элементов файла.

Пример: F: 1233; G: 110

9. Дан текстовый файл. Записать в другой файл все элементы первого, отличные от некоторого заданного символа.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]