Методическое и дидактическое обеспечение преподавания раздела «Алгоритмы и программы» в 5-11 кл. Исполнитель

Вид материалаРеферат

Содержание


DetectGraph (, режим)
SetBkColor (c)
RectAngle (x1,y1,x2,y2)
Circle (X,Y,R)
SetFillStyle (,)
FloodFill (x,y,)
OutTextxy (x,y,)
GetColor (X,Y)
Declare sub
Then print
Подобный материал:
1   2   3   4   5   6   7   8   9

End.

Процедуры

Комментарий

InitGraph ();

Задаёт графический режим

DetectGraph (, режим);

Возвращает значения характеристик дисплея

SetColor (c);

Задаёт цвет изображения c = red

SetBkColor (c);

Задаёт цвет фона c = white

PutPixel(x,y,c);

Точка с координатами x,y и цветом с

Line (x1,y1,x2,y2);

Линия между тт.(x1,y1) и (x2,y2)

LineTo(x,y);

Линия от текущей точки до точки (x,y)

LineRel(dx,dy);

Линия от текущей точки c приращениями

RectAngle (x1,y1,x2,y2);

Прямоугольник с диагональю (x1, y1, x2, y2)

SetViewPort (x1,y1,x2,y2,True);

Координаты нового графического окна. True – режим отсекания изображения, выходящего за рамки окна

Bar (x1,y1,x2,y2);

Закрашенный прямоугольник цветом из SetFillStyle()

Bar3d (x1,y1,x2,y2,<объёмная глубина>, true);

Параллелепипед

Circle (X,Y,R);

Окружность с центром в т. X,Y, радиусом R

Arc (x,y, A0,A,R);

Дуга A0 => A

Pieslice (x,y, A0,A,R);

Закрашенный сектор

Ellipse (x,y, A0,A,a,b);

Эллипс или дуга эллипса а - гориз. полуось (радиус), b - верт. полуось (радиус),

SetFillStyle (,<с>);

Z – способ заполнения : 0 – цвет фона; 1 – сплошное, 2 – толстые гориз. линии, 3 – наклонные линии, 11 – плотно точками

FloodFill (x,y,);

Заливка, с1 – цвет границы

OutText (<текст>);

Выводит текст из текущей позиции

OutTextxy (x,y,<текст>);

Выводит текст в заданной позиции

SetTextStyle (f,ar,h)

f - шрифт, ar – направление (0 – горизонтально, 1 – вертикально), h - размеры (1,2,3)




Функции

Комментарий

GraphResult;

Код ошибки, если невозможно задать граф. режим и 0, если он задан

GetMaxX

Возвращает значение размера экрана по горизонтали

GetMaxY

Возвращает значение размера экрана по вертикали

GetColor

Возвращает значение цвета

GetColor (X,Y)

Возвращает цвет точки

GetX, GetY

Возвращает координаты текущего пикселя

2. Программа «Точки, линии»

Program PsetLine; {Графика. Основные операторы}

Uses Crt, Graph;

label 10;

Var a,gD,gM,i,n: integer;

begin

10: clrscr;

writeln('После просмотра картинки жми <Enter>');

write('Сколько будет фигурок - ');readln(n);

InitGraph(gD,gM, '');

for i:=1 to n do begin

putpixel(round(random(600)),round(random(480)),round(random(16)));

delay(1000); end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор PutPixel() - точки');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(16)));

line(round(random(600)),round(random(480)),round(random(600)),round(random(480)));

delay(1000); end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор Line() - линии');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(15)));

rectangle(round(random(600)),round(random(480)),round(random(600)),round(random(480)));

delay(1000); end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор Rectangle() - рамки');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(15)));SetFillStyle(round(random(11)),round(random(15)));

bar(round(random(600)),round(random(480)),round(random(600)),round(random(480)));

delay(1000); end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор Bar() - залитый прямоугольник');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(15)));SetFillStyle(round(random(11)),round(random(15)));

bar3d(round(random(600)),round(random(480)),round(random(600)),round(random(480)),round(random(10)),topon);

delay(1000); end;

Setcolor(15);

SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор Bar3d() - параллелепипед ');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(15)));SetFillStyle(round(random(11)),round(random(15)));

Fillellipse (round(random(600)),round(random(480)), round(random(300)), round (random(340)));

delay(1000); end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор FillEllipse() - залитый эллипс');

readln; CloseGraph; InitGraph(gD,gM, '');

for i:=1 to n do begin

Setcolor(round(random(15)));SetFillStyle(round(random(11)),round(random(15)));

PieSlice(round(random(600)),round(random(480)),round(random(360)),round (random(360)), round (random(200))); delay(1000);

end;

Setcolor(15); SetTextStyle(DefaultFont, HorizDir, 2);

OutTextXY(0, 100, 'Оператор PieSlice() - залитый сектор');

OutTextXY(0, 200, 'Это всё!');

readLn; CloseGraph;

write('Для повторения введи 1/0 - ');readln(a);

if a=1 then goto 10 else writeln('Пока!');

end.

3. Программа «Дом» Мухаметшиной Насти и Ивановой Ирины 2005 г.(Линейная)

program dom;

uses crt, Graph;

var x,y,r,gd,gm: integer;

begin

x:=300; y:=300; r:=10;

gd:=Detect; InitGraph (gd,gm, '');

SetСolor (2);

MoveTo (100,300);

Rectangle (x,y-100,x+100,y); SetFillStyle (9,6); FloodFill (x+10,y-10,2);

Rectangle (x-150,y,x,y-100); SetFillStyle (2,15); FloodFill (170,278,2);

Rectangle (x-90,y,x-50,y-70); SetFillStyle (1,6); FloodFill (160,280,2);

MoveTo (x,y-100);

LineTo (x+50,y-150); LineTo (x+100,y-100);

LineTo (x,y-100); LineTo (x+50,y-150); LineTo (x-100,y-150); LineTo (x-150,y-100);

Bar (x+30,y-40,x+70,y-70);

Circle (350,178,13); SetFillStyle (4,13); FloodFill (350,178,2);

Circle (150,50,35); SetFillStyle (1,14); FloodFill (150,50,2);

Ellipse(500,200,0,360,10,60); SetFillStyle (9,2); FloodFill (500,200,2);

Line (x+200,y-50,x+200,y+20);

Ellipse (50,280,0,360,30,10); SetFillStyle (1,7); FloodFill (52,278,2);

Ellipse (87,270,0,360,10,10); SetFillStyle (1,7); FloodFill (88,268,2);

Line (x-270,y-13,x-277,y-2); Line (x-240,y-11,x-233,y-2);

Line (x-278,y-18,x-295,y-40);

MoveTo (0,y); LineRel (500,0); LineRel (500,0);

SetFillStyle (1,2); FloodFill (120,400,2);

SetFillStyle (1,11); FloodFill (120,160,2);

PieSlice (x,y,0,2*1,r); SetTextStyle (6,0,1);

SetColor (14); OutTextXY (20,400,'Ирина и Настя');

readln;

closegraph

end.

4. Программа «Орнамент» Антона Косинцева. (Линейная)

Program Ornament; {Антон Косинцев}

Uses Crt, Graph;

const x=320;

y=240;

c=15;

Var Driver,Mode,i: integer;

r,a,x1,y1,x2,y2:integer;

procedure kwadrat(x1,y1,x2,y2,c:integer);

begin

SetFillStyle(1,15);Bar(x1,y1,x2,y2);Delay(10000);

end;

procedure krug(x,y,r,i: integer);

begin

SetColor(i);Circle(x,y,r);

SetFillStyle(1,i+1);FloodFill(x,y,i);Delay(10000);

end;

begin

clrscr;

InitGraph(Driver, Mode, '');

r:=200;

for i:=1 to 13 do begin

x1:=x-r;y1:=y-r;x2:=x+r;y2:=y+r;

kwadrat(x1,y1,x2,y2,15);

krug(x,y,r,i);

r:=round(r/sqrt(2));

end;

readln;

CloseGraph

end.

5. Программа «Бильярд» Саши Перминова и Паши Гиоргобиани 2005 г. (Динамическая)

Program biljard; {Бильярд}

Uses Crt, Graph;

Var Driver,Mode,i,x,y,n,n1,r:integer; {Гиоргобиани и Перминов}

begin clrscr;

n:=2; r:=5; n1:=2;

InitGraph(Driver, Mode, '');

Rectangle(100,80,540,400);

y:= GetMaxY div 2; x:=100+r;

Repeat

x:=x+n; y:=y+n1;

if x>=540-4-r then n:=-2;

if x<=100+4+r then n:=2;

if y>=400-4-r then n1:=-2;

if y<= 80+4+r then n1:=2;

SetFillStyle(1,4); SetColor(4); Circle(x,y,r); FloodFill(x,y,4);

delay(150);

SetFillStyle(1,0); Setcolor(0); FloodFill(x,y,0); circle(x,y,r);

Until Keypressed;

readLn; CloseGraph;

End.

6. Программа «Точки» Журнал «Информатика и Образование» («И и О») (Структурная)

program toshki;

uses crt, graph;

var x, y : Array [1..255] Of Longint; {Объявление массива на Pascal}

r,b : longint;

l, h ,n, i, j, g, m : integer;

s : string;

procedure coord (n, i : integer); {Создание массива координат точек}

begin randomize;

for i:=1 to n do begin

x[i]:=round(Random*580+20); {random – аналог функции RND QBasic}

y[i]:=round(Random*370+50);

end;

Setcolor(14); rectangle(15,45,605,425);

end;

function rasst(i,j: integer):longint; {Функция - расстояние м/у точками}

begin

rasst:=round(sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j])));

end;

procedure init; {Инициализация адресов ближайших и МИН}

begin

l:=1; h:=2; b:=rasst(1,2);

end;

procedure pole (i : integer); {Расстановка точек на плоскости}

var s : string;

begin

for i:=1 to n do begin

str(i,s); setcolor(2);

putpixel(x[i],y[i],15); circle(x[i],y[i],2); setcolor(15);

outtextXY(x[i]+4,y[i]+4,s);

end;

end;

procedure basis; {проверка на МИН}

begin

if rthen begin b:=r; l:=i; h:=j; end;

end;

procedure result(l,h: integer; b: longint);

var s,s1:string;

begin

str(l,s); str(h,s1);

s:='Ближайшие друг к другу точки : '+s+' и '+s1;

outtextXY(10,10,s);

str(b,s); s:='Расстояние между ними - '+s;

outtextXY(340,10,s); setcolor(4);

line(x[l],y[l],x[h],y[h]);

end;

begin clrscr; {основная программа}

write('Сколько будет точек n<=255 - '); readln(n);

InitGraph(g,m, '');

setcolor(2);

coord(n,i);

pole(i);

init;

for i:=1 to n-1 do

for j:=i+1 to n do begin

r:=rasst(i,j);

basis;

end;

result(l,h,b);

readln;

closegraph

end.

7. Программа Сергея Кривоногова «Рекурсия» 2004 г.(ж-л «И и О»)

program rekursia;

uses crt, Graph;

var i,g,m,xa,ya,xb,yb,xc,yc: integer;

procedure treugolnik(xa,ya,xb,yb,xc,yc,n: integer);

var i,xp,yp,xq,yq,xr,yr: integer;

begin i:=1;

if n>0 then begin

xp:=(xb+xc) div 2; yp:=(yb+yc) div 2;

xq:=(xa+xc) div 2; yq:=(ya+yc) div 2;

xr:=(xb+xa) div 2; yr:=(yb+ya) div 2;

MoveTo(xp,yp); LineTo(xq,yq); LineTo(xr,yr); LineTo(xp,yp);

i:=i+1; SetColor(i); treugolnik(xa,ya,xr,yr,xq,yq,n-1);

i:=i+1; SetColor(i); treugolnik(xb,yb,xp,yp,xr,yr,n-1);

i:=i+1; SetColor(i); treugolnik(xc,yc,xq,yq,xp,yp,n-1);

i:=i+1; SetColor(i);

end;

end;

begin clrscr; InitGraph(g,m,''); i:=1; SetColor(i);

xc:=0; yc:=0; xb:=GetMaxX; yb:= GetMaxY; xa:=0; ya:= GetMaxY;

MoveTo(xa,ya); LineTo(xb,yb); LineTo(xc,yc); LineTo(xa,ya);

treugolnik(xa,ya,xb,yb,xc,yc,6);

readln;

CloseGraph;

end.

8. Программа Сергея Коломойца «Листок» 2004 г.(ж-л «И и О» Рекурсионная)

program listok;

uses Graph, Crt;

const Maxit=20;

var p,Dr,Md,I : integer;

x,y,xnew,ynew,r : real;

begin initgraph(Dr,Md,'');

repeat

x:=0.0; y:=0.0; {или x:=random/1000.0; }

for i:=0 to MaxIt do begin

r:=random;

if r<0.01 then begin

xnew:=0.; ynew:=0.16*y;

end

else if r<0.86 then begin

xnew:=0.85*x+0.04*y; ynew:=-0.04*x+0.85*y+1.6;

end

else if r<0.93 then begin

xnew:=0.2*x-0.26*y; ynew:=0.23*x+0.22*y+1.6;

end

else begin

xnew:=-0.15*x+0.28*y; ynew:=0.26*x+0.24*y+0.44;

end;

x:=xnew; y:=ynew ; delay(10);

if (x>=-5) and (x<=5) and (y>=0) and (y<=10) then

putpixel(trunc(640*(x+5)/10),trunc(480-480*y/10),4);

end;

until keypressed;

readln;

closegraph;

end.


9. Код программы "Треугольник". Язык QBasic. (Структурная)

DECLARE SUB init (n1, n2, n3)

DECLARE SUB process ()

DECLARE SUB result ()

DIM SHARED r(1 TO 5)

DIM SHARED i, f, x0, y0, n1, n2, n3

CLS : SCREEN 12

CALL init(n1, n2, n3)

CALL process

CALL result

END


SUB init (n1, n2, n3)

10 INPUT "Сторона a=>"; r(1) : n1 = r(1)

INPUT "Сторона b=>"; r(2) : n2 = r(2)

INPUT "Сторона c=>"; r(3) : n3 = r(3)

r(4) = r(1) : r(5) = r(2)

FOR i = 1 TO 3

IF r(i) >= r(i + 1) + r(i + 2) THEN

COLOR 5 : PRINT "Это не треугольник!" : COLOR 7 : GOTO 10

END IF

NEXT i

END SUB


SUB process

f = 0

FOR i = 1 TO 3

IF r(i) * r(i) = r(i + 1) * r(i + 1) + r(i + 2) * r(i + 2) THEN f = 1 : EXIT FOR

END IF

NEXT i

END SUB


SUB result

IF f = 0 THEN PRINT "В треугольнике нет прямого угла" : EXIT SUB

COLOR 4 : PRINT "Это прямоугольный треугольник!" : GOTO 100

COLOR 15 : PRINT "Его гипотенуза - "; r(i)

100 LINE(350, 200)-(350 + n1 * 10, 200), 5

LINE(350, 200)-(350, 200 - n3 * 10), 5