Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
066536 / 343, 390б, 483, 866А, 954, 371.doc
Скачиваний:
33
Добавлен:
09.06.2015
Размер:
158.21 Кб
Скачать

Здача №866а.

Начертить узор, повторяющий узор, описанный в задаче №865, но составленный из треугольников.

Clrscr; gd:=Detect;

InitGraph(gd, gm, ‘ ‘)

n:=20; m:=0.08;

ax:=

ay:=

bx:=

by:=

cx:=

cy:=

aax:=i

aay:=i

bbx:=i

bby:=j

ccx:=j

ccy:=j

Line|a, b|

Line|b, c|

Line|c, a|

ax:=aax; ay:=aay

bx:=bbx; by:=bby

cx:=ccx; cy:=ccy

Raedln; closegraph;

да

program n866a;

Uses Graph, Crt;

var

gd,gm,n,i:integer;

m,ax,aax,bx,bbx,cx,ccx,ay,aay,by,bby,cy,ccy:real;

begin

Clrscr;

gd:=Detect;

InitGraph(gd,gm,'');

if GraphResult <> grOk then Halt(1);

n:=20;

m:=0.08;

ax:=325+100*cos(90*pi/180);

ay:=225+100*sin(90*pi/180);

bx:=325+100*cos(210*pi/180);

by:=225+100*sin(210*pi/180);

cx:=325+100*cos(330*pi/180);

cy:=325+100*sin(330*pi/180);

for i:=1 to n+1 do begin

aax:=ax+(bx-ax)*m; aay:=ay+(by-ay)*m;

bbx:=bx+(cx-bx)*m; bby:=by+(cy-by)*m;

ccx:=cx+(ax-cx)*m; ccy:=cy+(ay-cy)*m;

Line (round(ax),round(ay),round(bx),round(by));

Line (round(bx),round(by),round(cx),round(cy));

Line (round(cx),round(cy),round(ax),round(ay));

ax:=aax; ay:=aay;

bx:=bbx; by:=bby;

cx:=ccx; cy:=ccy:

end;

readln;

Closegraph;

end.

переменная

тип

Назначение

gd,gm

целые

Для вызова процедуры инициализации графики

i

целый

Счетчик в цикле for

n

целый

Количество треугольников

m

веществ.

Коэффициент µ

ax, aax

bx, bbx

cx, ccx

веществ.

Координаты точек a, b, с соотв. по оси x

ay, aay

by, bby

cy, ccy

веществ.

Координаты точек a, b, с соотв. по оси y

Задача №954.

Изобразить точку, совершающую независимые гармонические колебания с частотой w1 по горизонтали и с частотой w2 по вертикали (амплитуда тех и других колебаний равна a). Считать, что в момент времени t точка имеет координаты x= a cos×w1(t-t1) , y=a cos×w2(t-t2); числа t1 и t2 даны. Предусмотреть возможность управления с клавиатуры значениями w1 и w2

Readln;

Gd:=detect;

Readln;

Gd:=detect;

Initgraph(Gd,Gm,’’)

a:=150;

P;=Pi;

t1:=p*ramdom(1)

t2:=p*random(1)

да

да

w1:=w11;

w2:=w22

Str(w1,s1);

Str(w2,s3);

Clear vief port;

Outtext xy(…)

Outtext xy(…)

C:=’0’;

X:= ;

Y:= ;

Put pixel(…);

Delay (30);

Put pixel(…);

Inc(t);

да

C:=readkey;

W11:=w1-1;

W11:=w1=1;

W22:=w2=1;

W22:=w2-1;

‘a’

‘d’

‘w’

‘s’

да

t:=0;

да

Readln;

Closrgraph;

Program n954;

Uses Graph,Crt;

Var

w1,w11,w2,w22,x,y,t1,t2,p:Real;

Gd,Gm,a,t:Integer;

s1,s2:String;

c:Char;

Begin

Clrscr;

Randomize;

Writeln('vvedite nachalnui w1'); Readln(w1);

Writeln('vvedite nachalnui w2'); Readln(w2);

Writeln('upravlaem chastotoi po osi x --> a< >d ');

Writeln('upravlaem chastotoi po osi y --> s< >w ');

Writeln('dla vuxoda jmem --> q ENTER'); Readln;

Gd:=Detect;

InitGraph(Gd, Gm, '');

If GraphResult <> grOk Then Halt(1);

a:=150;

p:=Pi;

t1:=p*Random(1);

t2:=p*Random(1);

Repeat;

If (w11<>w1)Or(w22<>w2) Then Begin

Clearviewport;

w1:=w11;

w2:=w22;

Str(w1,s1);

Str(w2,s2);

Outtextxy(10,10,'chastota w1='+s1);

Outtextxy(10,20,'chastota w2='+s2); End;

c:='0';

x:=325+a*cos(w1*(t/1000-t1));

y:=225+a*cos(w2*(t/1000-t2));

Putpixel(Round(x),Round(y),3);

Delay(30);

Putpixel(Round(x),Round(y),0);

Inc(t);

If Keypressed Then Begin

c:=Readkey;

Case c Of

'a': w11:=w1-1;

'd': w11:=w1+1;

'w': w22:=w2+1;

's': w22:=w2-1; End; End;

If t=100000 Then t:=0;

Until c='q';

Readln;

Closegraph;

End.

Пример:

Vvedite nachalnui w1

1

Vvedite nachalnui w2

2

Upravlaem chastotoi po osi x  a< >d

Upravlaem chastotoi po osi y  s< >w

Dla vuhoda jmem  q ENTER

переменная

тип

назначение

w1, w2

веществ.

Угловые скорости движения точки

w11, w22

веществ.

Для вычисления новых значений w1 и w2

x, y

веществ.

Координаты центра шара

t1, t2

веществ.

Начальные фазы

p

веществ.

Число пи

Gd, Gm

целые

Для вызова процедуры инициализации графики

a

целый

Амплитуда колебания точки

t

целый

Время

s1, s2

строковый

Для хранения значения w1 и w2 соотв.

c

символьный

Управление w1 и w2, а так же для останова цикла repeat

Соседние файлы в папке 066536