Yechim:
Ekran grafik holatga o‘tkazilgach PutPixel(X,Y,Rang) protsedurasi va pa- rametrli takrorlash operatorlari yordamida kerakli nuqtalar joylashtiriladi. Ran- glarni 1 dan 15 gacha parametrli takrorlash operatori yordamida o‘zgartirish qulay (kodi 0 bo‘lgan rang olinsa kesma ko‘rinmaydi, chunki grafik holatga _o‘tilganda avtomatik ravishda ekran foni rangi kodi 0 deb belgilanadi).
Dasturi: Uses Graph;
var gd, gm, x, y, rang: Integer; Begin gd:= 0;
InitGraph(gd, gm, ");
For rang:=l to 15 do For y:=l to 15 do For x:=10 to 620 do PutPixel(x, 10*y, rang); Readln; CloseGraph; end.
T-4. Random funksiyasi yordamida “yulduzli osmon” manzarasini hosil qilish dasturini tuzing.
Bu masalani yechimi avvalgi darsdagi 4-mashqning yechimi bilan bir xil.
T-5. Ekran markazidan o‘tuvchi koordinalar o‘qi, mos joyda koor- dinatalar o‘qi nomini yozuvchi va x e [-7, 7] oraliqda y=|x| funksiya- sining grafigini chizuvchi dastur tuzing
Yechim:
Ekran grafik holatga o‘tkazilgach PutPixel(X,Y,Rang) protsedurasi va shart bo‘yicha takrorlash operatori (ehunki o‘zgarish qadami haqiqiy son), ma- salan, While yordamida nuqtalar joylashtiriladi. Nuqtalami zichroq joylashtirish uchun X ni qiymatini -7 dan 7 gacha 0.01 qadam bilan o‘zgartirib, bu qiymatga mos Y ning qiymati y:=abs(x); formula yordamida aniqlanadi. Nuqtalar oq rangda aks etishi uchun rangni White (yoki 15) kabi tanlanadi. Masshtabni kat- talashtirish uchun x ni 30 ga, у ni 20 ga ko‘paytirish kerak. Ma’lumki, grafik ekranda ordinata qiymati yuqoridan quyiga o‘sadi. Shu sababli to‘g‘ri chiziq nuqtalari Dekart koordinatalar sistemasidagi kabi aks etishi uchun ishora qo‘yilgan. Grafikni ekran markazidan o‘tishni ta’minlash uchun birinchi koor- dinataga (640/2=) 320 ni, ikkinchi koordinataga (480/2=) 240 ni qo‘shish maq- sadga muvofiq.
Parametrli takrorlash operatorlari yordamida qizil rangdagi koordinata o‘qlarini ekran markazi (320, 240) nuqtadan o‘tkaziladi. Ekran piksellarda o‘lchangani va hisob (0,0) nuqtadan boshlangani uchun OuttextXY(A, B, ‘matn‘); protsedurasi yordamida ekranning chap yuqori burchagidan gorizontal bo‘yicha A, vertikal bo‘yicha В piksel uzoqlikda “matn” chiqariladi.
Dasturi:
Uses Graph;
var k, gd, gm: Integer; x, y, a, b: real; Begin gd:=0; InitGraph(gd, gm,");
х:= —7;
While х<=7 do BEGIN y:=abs(x); a:=30*x+320; b:=-20*y+240; putpixel(trunc(a), trunc (b),15); x:=x+0.01; END;
For k:=20 to 460 do PutPixe!(320,k,4); For k:=20 to 620 do PutPixel(k,240,4); OuttextXY(300,10,'Y'); OuttextXY(620,220,'X');
Readln; CloseGraph;
End.
T-6*. Ichma-ich joylashgan 7 ta aylana chizuvchi dastur tuzing (yoilanma: radiusni oshirish uchun takrorlash operatoridan foydalaning.
Yechim:
Ekran grafik holatga o‘tkazilgach radiusi R ga teng aylana chizish dasturi- ni darslikdagi kabi tuzib olinadi. Bunda PutPixel(X,Y,Rang) protsedurasi va shart bo‘yicha takrorlash operatori (chunki o‘zgarish qadami haqiqiy son), ma- salan, While yordamida nuqtalar joylashtiriladi. Nuqtalarni zichroq joylashti- rish uchun alfa burchakni qiymati 0 dan 2-n gacha 0.01 qadam bilan o‘zgartiriladi. Nuqtalar sariq rangda aks etishi uchun rangni Yellow (yoki 14) kabi tanlanadi. Grafikni ekran markazidan o‘tishni ta’minlash uchun birinchi koordinataga (640/2=) 320 ni, ikkinchi koordinataga (480/2=) 240 ni qo‘shiladi.
Endi aylanalar sonini 7 taga yetkazish uchun shunday o‘zgartirish qilinadi: dastuming aylana chizish qismi While yordamida 7 marta takrorlanishi uchun radius o‘zgarish qadamini 20 va chegarani 140 kabi tanlanadi(7-20=140).
Dasturi:
Uses Graph;
Var gd, gm: integer; x, y: Integer; R, alfa: real;
Begin Gd:=0;
InitGraph(Gd, Gm, “); R:=20;
While R<=140 do BEGIN alfa:=0;
While alfa<=2*pi do begin x:= 320 +trunc(R*cos(alfa)); y:= 240 +trunc(R*sin(alfa)); putpixel(x,y, 14); alfa:=alfa+0.01;
end; R:=R+20; END;
Readln; CloseGraph;
Do'stlaringiz bilan baham: |