Mavzu: 1 ­­– dars. Masalalarni kompyuterda yechish bosqichlari Darsning maqsadi



Download 2,64 Mb.
bet126/202
Sana24.06.2021
Hajmi2,64 Mb.
#100424
1   ...   122   123   124   125   126   127   128   129   ...   202
Bog'liq
9-sinf kons

PutPixel(X,Y,Rang) operatori ekranning (X,Y) koordinatali nuqtasini “Rang” parametri bilan aniqlangan rangga bo‘yaydi. Masalan, PutPixel(400,200,Red) operatori ekranning (400,200) koordinatasiga mos joyda qizil rangli nuqta joylashtiradi (yuqoridagi rasm).

GetPixel(X,Y) funksiyasi ekranning (X,Y) koordinatali nuqtasi qanday rangda ekanini aniqlaydi. Masalan, Rang – butun tipli o‘zgaruvchi bo‘lsa, Rang:= GetPixel(40,50); operatori bajarilgach Rang o‘zgaruvchi (40,50) koordinatali nuqta rangining qiymatiga teng bo‘ladi.

GetMaxX va GetMaxY funksiyalari mos ravishda ekranning gorizontal va vertikal yo‘nalishi bo‘yicha maksimal koordinatasini aniqlaydi. Bu funksiyalar kompyuterning grafik adapteri va ishlatiladigan grafik holatga bo‘g‘liq bo‘lmagan dasturlar tuzishda foydalidir.

1-misol. Nuqtalar yordamida ekranning (0,0) nuqtasini (639,479) nuqtasi bilan tutashtiruvchi qizil rangli kesma chizish dasturini tuzing.

Y echish. Quyidagicha butun o’zgaruvchilarni qiymati bilan olamiz: bx:=0; ox:= GetMaxX; (ox:=639; kabi olish mumkin). Tekshirib ko’rishingiz mumkin, [bx, ox] oraliqda y=[GetMaxY·x/GetMaxX] butun qiymatli chiziqli funksiyaning boshlang’ich qiymati 0 va oxirgi qiymati 479 bo’ladi (GetMaxY o’rniga 479 yozish ham mumkin). Endi parametrli takrorlash operatori yordamida tuzilgan quyidagi dastur misol yechimini beradi.

Uses Graph;

Var gd, gm:integer; bx, y, ox: Integer; x: LongInt;

Begin


Gd := 0; InitGraph(Gd, Gm, ‘‘); bx:=0; ox:= GetMaxX;

For x:= bx to ox do begin

y:= trunc(GetMaxY*x/GetMaxX); putpixel(x, y, red); end;

Readln; CloseGraph;

End.

Nima uchun x o’zgaruvchi LongInt turda olinganini o’ylab ko’ring!



2-misol. Nuqtalar yordamida ekran markazida R radiusli sariq rangli aylana chizish dasturini tuzing.

Yechish. Ekran markazini aniqlaydigan butun o’zgaruvchilarni kiritib olamiz: markazX:=trunc(GetMaxX/2); markazY:=trunc(GetMaxY/2); (yoki markazX:=639; va markazY:=479). Matematikadan ma’lumki, ta’rif bo’yicha va . Bundan kelib chiqadiki, markazi (0,0) nuqtada bo’lgan R radiusli aylana nuqtalarini quyidagi formulalar juftligi orqali aniqlash mumkin: x = r·cos(), y = r·sin(), bunda  burchak 0 dan 2 gacha o’zgaradi. Dasturda aylana nuqtalarini zichroq chizish uchun  burchak o’zgarishini 0,01 qadam bilan olamiz. Shularga asosan quyidagi dasturni tuzamiz.

Uses Graph;

Var gd, gm:integer;

x, y, markazX, markazY: Integer; R, alfa: real;

Begin

Gd := 0; InitGraph(Gd, Gm, ‘‘); Write(‘R= ‘); readln(R);



markazX:=trunc(GetMaxX/2); markazX:=trunc(GetMaxY/2); alfa:=0;

while alfa<=2*pi do begin

x:= GetMaxX +trunc(R*cos(alfa)); y:= GetMaxY +trunc(R*sin(alfa));

putpixel(x, y, 14); alfa:= alfa+0.01; end;

Readln; CloseGraph;

End.


Dasturda masshtabni kattalashtirish uchun x ni 10 ga, y ni 5 ga ko’paytirdik. Parabola shoxchalari quyidan yuqoriga yo’nalgan bo’lishi uchun “–” ishora qo’yilgan. Masshtabni kattalashtirishni va ishorani olib tashlab dasturni ishlatib ko’rishni o’zingizga havola etamiz.


  1. Download 2,64 Mb.

    Do'stlaringiz bilan baham:
1   ...   122   123   124   125   126   127   128   129   ...   202




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish