O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi g
C++ dasturlash tili. Misol.
Animatsiyali aylanalar
#include #include #include #include int main()
{
int
a,b,i,k[900],l[900],j,m;
cout<<"a="; cin>>a;
cout<<"b=";
cin>>b;
cout<<"Nuqtalar soni=";
cin>>m;
srand(time(NULL));
for(i=1;i<=m;i++) {
k[i]=rand()%(a/2)+a/4;
l[i]=rand()%(b/2)+b/4; }
initwindow(a,b);
setbkcolor(WHITE);
cleardevice;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{ setcolor(i%15+1);
circle(k[i],l[i],round(sqrt(pow(int(k[i]-k[j]),2)+pow(int(l[i]-l[j]),2))));
}
getch(); }
Faylni kompyuter xotirasiga saqlaymiz va uni ishga tushiramiz. Natijada oynada
ichma-ich paydo bo`luvchi animatsiyali aylanalar tasviri paydo bo`ladi.
Misol. Ichma-ich joylashgan ellipslar
#include int main()
{
int gd = DETECT,
gm; int x = 320, y =
240, radius;
initgraph(&gd, &gm,
"");
setbkcolor(WHITE);
cleardevice(); setcolor(GREEN); for (
radius = 25; radius <= 225 ; radius = radius +
20) circle(x, y, radius); getch();
closegraph(); return 0; }
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada oynada
ichma-ich joylashgan ellipslar tasviri hosil bo`ladi.
C++ dasturlash tilida harakatli dasturlar yaratish
Ushbu bo‘limda C++ tilida harakatlanuvchi dasturlar yaratishni ko`rib
chiqamiz. Misol. C++ tilida oynaning tepasidan pastga va pastdan yuqoriga
qarab harakatlanuvchi aylana tasvirini hosil qiling.
Yechish:
#include
#include using namespace
std;
int main()
{
initwindow(400,300);
// 400×300 o`lchamli oyna hosil qilish
setbkcolor(WHITE);
// Oq rangli fonda oyna yaratish
cleardevice();
t:for (int a = 50; a <=250; a++)
{
setcolor(RED); circle(200,a,50);delay(10);
//qizil angli aylana
setcolor(WHITE);circle(200,a,50);
//oq rangli aylana
}
for (int a = 250; a>=50; a--)
{
setcolor(RED); circle(200,a,50);delay(10);
//qizil
angli
aylana
setcolor(WHITE);circle(200,a,50);
//oq angli aylana
}
goto t;
getch();
closegraph();
return 0;
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchaning yuqori qismida aylana hosil bo`ladi va u pastga qarab harakatlanadi.
Aylana oynaning ostki qismigacha harakatlanib bo`radi va so`ngra oynaning tepa
qismiga qarab harakatlanadi. Bu jarayon takrorlanib turadi.
Misol. Markazi bitta bo`lgan ichma-ich paydo bo`luvchi aylanalar tasviri
#include
#include using namespace
std;
int main()
{
initwindow(400,400);
setbkcolor(WHITE);
a:cleardevice();
for (int i = 1; i <=100; i=i+5)
{
setcolor(RED);
circle(200,200,i*2);
delay(50);
}
cleardevice();
for (int i = 100; i >=1; i=i-5)
{
setcolor(RED);
circle(200,200,i*2);
delay(50);
}
goto a;
getch();
closegraph();
return 0;
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchaning o`rtasida kichik aylana hosil bo`ladi va radiusi kattaroq bo`lgan
aylanalar ketma-ket paydo bo`ladi. Eng katta radiusli aylana hosil bo`lgach, aylana
radiuslari kichiklashib bo`radi. Bu jarayon takrorlanib turadi.
Misol. Strelkalari aylanib turuvchi soat tasviri.
#include #include #include #include using namespace
std;
int main() { float
fi=0; int k=150;
float
x,y;
int
x1,y1;
initwindow(400,400);
setbkcolor(WHITE);
cleardevice(); setcolor(BLACK);
outtextxy(190,35,"12");
outtextxy(355,190,"3");
outtextxy(200,350,"6"); outtextxy(35,190,"9");
do {
setlinestyle(0,1,2);
fi=fi+0.01; if (fi==
6.28) fi=0;
//x=trunc(k*cos(fi));
//y=trunc(k*sin(fi));
x1=int(k*cos(fi+3.14));
y1=int(k*sin(fi+3.14));
setcolor(10); line(200,200, x1+200, y1+200);
delay(50);
setcolor(15); line(200,200, x1+200, y1+200);
setcolor(10); circle(200,200,170);}
while
(KEY_END);
getch();
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchada soat tasviri va uning o`rtasida aylanib turuvchi chiziq tasviri hosil
bo`ladi.
Misol. Trigonometrik funksiyalar (Sin, Cos, Tan, Ctg) ning grafigini
chizuvchi dastur. #include #include #include #include using namespace
std;
int main()
{
initwindow(800,600);
setbkcolor(WHITE);
cleardevice();
setcolor(RED);
line(0,300, getmaxx(), 300);
line(400,0, 400, getmaxx());
int x,y;
float
pi=3.1415;
setcolor(BLAC
K);
outtextxy(10,320,"Sinus");
setcolor(YELLOW);
outtextxy(10,340,"Kosinus");
setcolor(GREEN);
outtextxy(10,360,"Tangens");
setcolor(BLUE);
outtextxy(10,380,"Kotangens");
for (float a = -360; a <=360;
a=a+0.01)
{ setlinestyle(2,2,2);
x=400+a;
y=int(300-sin(a*pi/180)*100);
putpixel(x,y,BLACK);
y=int(300-
cos(a*pi/180)*100);
putpixel(x,y,YELLOW);
y=int(300-tan(a*pi/180)*100);
putpixel(x,y,GREEN);
y=int(300-
1/tan(a*pi/180)*100);
putpixel(x,y,BLUE);
}
getch();
closegraph();
return 0;
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchada koordinatalar chizig`i va Sin, Cos, Tg va Ctg funksiyalarining grafiklari
hosil bo`ladi.
Misol. Funksiya yordamida gorizontal yo`nalishda harakatlanib
turuvchi uchburchak tasvirini hosil qiling. #include #include
#include void Figure ( int x, int y, int
color ) {
setcolor ( color );
line ( x, y, x+20, y );
line ( x, y, x+10, y-20 );
line ( x+10, y-20, x+20,
y );
} int
main()
{
int d = VGA, m = VGAHI;
int x, y, dx,key;
initgraph ( &d, &m, "c:\\borlandc\\bgi" );
x = 0; y = 240; dx = 1;
while ( 1 ) { if (
kbhit() ) if ( getch()
== 27 ) break; Figure
( x, y, YELLOW );
delay ( 10 );
Figure ( x, y, BLACK
); if ( x + 20 >= 639 )
dx = - 1; if ( x <= 0 )
dx = 1;
x += dx;
}
closegraph(
); return 0;
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchada gorizontal yo`nalishda harakatlanuvchi uchburchak tasviri paydo bo`ladi.
Misol. Oynaning markazida aylana tasvirini hosil qiling. Hosil qilingan
aylanani mos holda klaviaturaning Left, Right, Up va Down tugmalari yordamida
harakatlantiruvchi dastur. #include #include
#include void Figure ( int x, int y, int color )
{ setcolor (
color );
circle(x,y,50);
}
int
main()
{ int d = VGA, m = VGAHI;
int x, y, key;
initgraph ( &d, &m, "c:\\borlandc\\bgi" );
setbkcolor(WHIT
E);
cleardevice(); x
= 320; y = 240;
while ( 1 )
{
Figure ( x, y,
RED ); key =
getch(); if ( key
== 27 ) break;
Figure ( x, y,
WHITE ); switch
( key ) { case
75: x --; break;
case 77: x ++; break;
case 72: y --; break;
case 80: y ++;
}
}
closegraph(
); return 0;
}
Faylni kompyuter xotirasiga saqlaymiz va ishga tushiramiz. Natijada grafik
darchada aylana tasviri hosil bo`ladi. Klaviaturadan Left, Right, Up va Down
tugmalarini bossak, mos holda aylana chapga, o`nga, yuqoriga va pastga qarab
harakatlanadi.