19 -tema. Paskal tilinde ápiwayı formalar sızıw reje
Download 33.69 Kb.
|
19 -tema. Paskal tilinde ápiwayı formalar sızıw
19 -tema. Paskal tilinde ápiwayı formalar sızıw REJE: 1. Ápiwayı sırtqı kórinislerdi chizuvchi proceduralar hám olardan paydalanıw 2. Sırtqı kórinislerdi boyaw hám shablon menen toltırıw Grafikalı ortalıqta ob'ektlerdi sızıw ushın ápiwayı sırtqı kórinislerdi chizuvchi proceduralar hám olardan paydalanıw ushın funksiyalardan paydalanıw zárúr. Tómende olardı keltirip ótemiz: PutPixel (x. y:integer;color:word ) -procedurası kórsetilgen color reńli (x. y) koordinatalı noqattı ekranda suwretleydi. Mısalı : PutPixel (100, 100, red)-procedurası ekarnda (100, 100)-koordinatalı noqatda qızıl reńli noqat suwretin jaratadı. Bul proceduradan programma quramında paydalanıp, nátiyjeli “effektlar” alıwımız múmkin. Mısalı, tómendegi programma járdeminde ekranda Setviewport (20, 20, 200, 200, true) procedurası menen belgilengen aynada 32000 noqatlardı putpixel (random (getmaxx), random (getmaxy), random (255)); procedurası yorlamida túrli reńler menen bo'yab ájayıp suwret jaratılıwmasımız múmkin. Programma kórinisi: uses Graph; var Driver, Mode, d, m:integer; begin
InitGraph (Driver, Mode, 'c:\tp\bgi'); setbkcolor (black); Setviewport (20, 20, 200, 200, true); for d:=1 tap 32000 do putpixel (random (getmaxx), random (getmaxy), random (255)); readln; CloseGraph ; end. GetPixel (x, y:integer):word funksiyası (x, y) koordinatalı noqattıń reńin anıqlawda qollanıladı. Bul funksiyadan paydalanıwǵa mısal keltiremiz: uses graph; var gd, gm:integer; a:word ; begin gd:=detect; initgraph (gd, gm, ፄ); a:=getpixel (25, 25);writeln (a);readln; end. Line (x1, y1, x2, y2:integer)-procedurası (x1, y1) hám (x2, y2) koordinatalı noqatlarani tutastiruvchi tuwrı sızıq sızıw ushın isletiledi. Mısal : uses graph; var gd, gm, x1, x2, x3, y1, y2, y3:integer; begin gd:=detect; initgraph (gd, gm, ፄ); x1:=45;y1:=45;x2:=160 ;y2:=120 ;x3:=100;y2:=80; line (x1, y1, x2, y2); line (x3, y3, x2, y2); line (x1, y1, x3, y3);readln; end. mısal : line (10, 100, 340, 100); LineTap (x, y:integer)-procedurası kórsetkish turǵan noqattan koordinatalri (x, y) bolǵan noqatqasha to'gri sızıq sızılishini támiyinleydi. Bul proceduradan paydalanǵannen keyin kórsetkish koordinatası sol noqatqa kóship ótedi. mısal : uses graph; var gd, gm, i:integer; begin gd:=detect;initgraph (gd, gm, ፄ); for i:=1 tap 20 do lineto (random (getmaxx), random (getmaxy));readln; end. LineRel (dx, dy:integer)-procedurası kórsetkish turǵan noqatqa salıstırǵanda koordinataları uyqas túrde (dx, dy) bahalarǵa arttırılǵan noqatqasha tuwrı sızıq sızılishini támiyinleydi. uses graph; var gd, gm:integer; begin gd:=detect; initgraph (gd, gm, ፄ); moveto (100, 100); Linerel (100, 40 );readln; end. SetLineSstyle (type, Pattern, Thick:word )-procedurası sızılıwı kerek bolǵan sızıqtıń formasın ornatıw ushın qollanıladı. Bul jerde: Type- sızıqtıń formasın Pattern- sızıqtıń úlgisi Thick- sızıqtıń qalıńlıǵın anıqlawshı parametrler. Sızıqtıń tipini tómendegi turaqlılar arqalı beriw múmkin: const Solidln =0; {uzluksiz sızıq} Dotteln =1; {nuqtali sızıq} Centerln =2; {shtrix-punktirli sızıq} Dashedln =3; {punktirli sızıq} Userbtln =4; {chiziq kórinisi paydalanıwshı tárepinen belgilenedi} Pattern-parametri paydalanıwshı tárepinen belgilenetuǵın sızıqlar ushın anıqlanadı. Pattern parametri uzınlıǵı 16 piksel bolǵan kesmani anıqlaydı. Mısalı, bul parametr ma`nisi 100 ge teń bolsa, 16 pikseldiń sol bólegi”yoritiladi” qalǵan bólegi fon reńi menen ańlatpadanadi.programma sızılıwı zárúr bolǵan sızıqtı áne sol 16 pikselde ketm-ket suwretleydi. Thick-parametri tómendegi bahalardı qabıl etedi: const NormWidth =1; {chiziq qalıńlıǵı 1 pixel} ThickWidth =3; {chiziq qalıńlıǵı 3 pixel} programma quramında shamalar -turaqlılikalr atınıń ózgertiwimiz múmkinligin esapqa alǵan halda, SetLineSstyle procedurasınan paydalanıwǵa mısal keltiremiz: Mısal : uses graph; const úzliksiz=0; noqatli=1;Shtrix_punktir=2; punktir=3;foychiz=4; chizqal=1; var gd, gm, i:integer; begin gd:=detect;initgraph (gd, gm, ፄ); setlineStyle (noqatlı, 0, chizqal);moveto (100, 100);Lineto (400, 100); setlineStyle (úzliksiz, 0, chizqal);moveto (100, 110 );Lineto (400, 110 ); setlineStyle (Shtrix_punktir, 0, chizqal);moveto (100, 120 );Lineto (400, 120 ); setlineStyle (punktir, 0, chizqal);moveto (100, 130 );Lineto (400, 130 ); setlineStyle (foychiz, 80, chizqal);moveto (100, 140 );Lineto (400, 140 ); readln; end. Túsindirme: domiyliklar atı ornına olardıń ma`nisinen de paydalanıwımız múmkin. SetLineStyle- procedurası járdeminde ornatılǵan sızıqtıń forması járdeminde tórtmuyush, ko'pburchak hám basqa sırtqı kórinislerdi sızıwda paydalanıw múmkin. rectangle (x1, y1, x2, y2:integer);-procedurası shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan to'gri tórtmuyush sızıw ushın isletiledi. mısalı : uses graph; var gd, gm:integer; begin gd:=detect; initgraph (gd, gm, 'c:\tp\bgi'); az waqıt reńi tek “qora” reńde emes, rectangle (5, 5, getmaxx-5, getmaxy-5); readln; end. SetColor (color:word );- procedurası sızılıwı hám baspadan shıǵarılıwı zárúr bolǵan sızıqlar hám simvollar reńin belilaydi. Graph modulında reńlerdi ańlatıw ushın Srt modulındaǵı turaqlıliklardan paydalanıladı. GetColor :word - funksiyasınan ámeldegi reń kodın anıqlawda paydalanıladı. GetMaxColor :word - funksiyası SetColor procedurasında paydalanıwı múmkin bolǵan maksimal kodtı anıqlawda isletiledi. Tekstli jaǵdaydan ayrıqsha f qálegen bóle aladı. Grafikalı ekranda reńni anıqlaw arqalı pútkil ekran reńin ózgertiw múmkin, yaǵnıy bul ekrandı túrli tarawların túrli reńler menen “boyaw”ning ılajı joq. Circle (x, y:integer;r:word ) ; - procedurası orayı ( x, y) hám radiusı r -piksel bolǵan sheńber sızıw isletiledi. Bul proceduradan paydalanıwda sızıq qalıńlıǵın parametr arqalı ózgertiw múmkin, biraq sızıq forması tek úzliksiz sızıqtan ibarat boladı. Mısalı :. .. setlinestyle (1, 0, 3); circle (50, 50, 45);. .... Joqarıdaǵı proceduralar járdeminde ekranda oray koordinataları hám radiusları tasodufiy bahaǵa iye bolǵan 120 ta sheńber sızıw programmasın keltiremiz: uses graph, crt; var gd, gm, i:integer; begin gd:=detect;initgraph (gd, gm, ፄ); for i:=1 tap 120 do begin setcolor (random (getmaxcolor)); circle (random (getmaxx), random (getmaxy), random (100)); end; end. Arc (x, y:integer;BegA, EndA, r:word ) ; - procedurası orayı ( x, y) hám radiusı r -piksel bolǵan sheńber yoyining BegA hám EndA múyeshlerine uyqas keliwshi bólegin sızıw ushın shlatiladi. BegA hám EndA graduslarda beriledi hám saat mili baǵdarına qarsı túrde esapqa aldınadılar. Mısalı :
ellipse (x, y:integer; BegA, EndA, RX, Ryr:word ) ; - procedurası orayı ( x, y) hám gorizontal radiusı RX, vertikal radiusı Ry -piksel bolǵan ellips yoyining BegA hám EndA múyeshlerine uyqas keliwshi bólegin sızıw ushın shlatiladi. Mısalı : ellipse (100, 100, 150, 60, 145, 100); SetFillStyle (fill, color:word );-procedurası qandayda bir tarawdı toltırıwdıń stili hám reńin belgileyd i. Toltırıw tipi ushın tómendegi shamalardan paydalanıladı : const EmptyFill =0;{fon reńi menen toltırıw} SolidFill =1;{yaxlit-úzliksiz toltırıw } LineFill =2;{----- simvollari menen toltırıw} LtslashFill =3;{ /////// simvollari menen toltırıw} SlashFill =4;{ //// qalıń simollari menen toltırıw} BkSlashFill =5;{\\\\\ qalıń simvollari menen toltırıw } LtBkSlashFill =6 ;{ //// simvollari menen toltırıw } HatchFill =7;{+++++ simvollari menen toltırıw } XHatchFill =8;{ xxxx simvollari menen toltırıw } InterLeaveFill =9 ;{kataklar menen toltırıw} WideDotFill =10 ;{kam sanlı -tıǵız bolmaǵan noqatlar menen toltırıw } CloseDotFill =11;{zich bolǵan noqatlar menen toltırıw } UserFill =12;{foydalanuvchi tárepinen anıqlanǵan forma menen toltırıw} floodfill (x, ol;integer; Barder:word );-procedurası qálegen shegaralanǵan tarawdı aldınan anıqlanǵan tarawdı toltırıwdıń stili hám reńi menen toldıradı. mısalı : parametrleri (150, 150, getmaxx-150, getmaxy-150) bolǵan tórtmuyush tarawdı túrli stillerde tolıqlawısh programmanı keltiremiz: uses graph; var gd, gm:integer; i:byte; begin gd:=detect; initgraph (gd, gm, 'c:\tp\bgi');setbkcolor (black); setcolor (red);setlinestyle (0, 0, 1); for i:=0 tap 12 do begin setfillstyle (i, green);rectangle (150, 150, getmaxx-150, getmaxy-150); floodfill (160, 160, red); readln; end; readln; end. Bar (x1, y1, x2, y2:integer);-procedurası shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan tuwrı tórtmuyushli ekran salasın toldıradı. mısalı : bar (340, 125, 480, 220 ); Bar hám setfillstyle proceduraları járdeminde 12 tuwrı tórtmuyushli tarawdı túrli stillerde toltırıp, toltırıw stilin kórsetiw etiwshi programma jaratıń. uses graph, crt; const stil:array[0..11]of string= ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'); var gd, gm, a, b:integer; i:byte; begin gd:=detect;initgraph (gd, gm, ፄ);setbkcolor (black); a:=5; b:=100; for i:=0 tap 11 do begin setfillstyle (i, 4);bar (a, 100, a+50, 200);outtextxy (a+15, 75, stil[i]);a:=a+50; end; readln; end. Bar3 d (x1, y1, x2, y2, depth:integer;top:boolean);-procedurası aldınǵı aymaǵı shep joqarı múyeshi ( x1, y1) hám oń tómen múyeshi (x2, y2) noqatlarda jaylasqan parallelepiped suwretin jaratıwda isletiledi. bul jerde : -depth-úsh o'lmali suwrettiń úshinshi ólshemi - tap - parallelepipedning joqarı aymaǵın sáwlelendiriw ushın isletiledi, yaǵnıy “true” qiymtida joqarı aymaq hákis etirilsa, kerisinshe halda ol “kórinbeydi”. Mısalı : Bar3 d procedurası járdeminde ekranda parallelepipedning joqarı aymaǵın sáwlelendiriw hám hákis etirilmasligini kórsetiw etiwshi programmanı keltiremiz. uses graph, crt; var gd, gm:integer; begin gd:=detect;initgraph (gd, gm, ፄ); setbkcolor (black);setcolor (magenta); begin bar3 d (100, 100, 200, 200, 25, true); bar3 d (300, 100, 400, 200, 25, false); end; readln; end. FillEllipse (x, y, Rx, Ry:integer)-orayı (x, y noqatda bolǵan gorizontal radiusı Rx-ga, vertikal radiusı Ry-ga teń ellipsni toltırıw ushın isletiledi. ( Rx hám Ry-piksellerde) Mısalı : fillellipse (340, 220, 100, 50); Sector (x, y:integer;BegA, EndA, Rx, Ry:word )-procedurası orayı (x, y) noqatda bolǵan gorizontal radiusı Rx-ga, vertikal radiusı Ry-ga teń ellipsning baslanǵısh múyeshi BegA-ga, aqırǵı múyeshi EndA ga teń sektorın anıqlanǵan forma menen toldıradı. Mısalı : sector (200, 200, 180, 200, 55, 300); PieSlice (x, y:integer;BegA, EndA, R:word )-procedurası orayı (x, y) noqatda bolǵan radiusı R-teń sheńberdiń baslanǵısh múyeshi BegA-ga, aqırǵı múyeshi EndA ga teń sektordı berilgen forma menen toldıradı. Mısalı : PieSlice (300, 300, 145, 360, 100); Soraw hám tapsırmalar. 1. PutPixel operatorı haqqında sóylep beriń. 2. Ekranda qandayda bir forma sızıw ushın onıń reńi qaysı operator járdeminde saylanadı? 3. Paskalda kesma sızıw múmkinshiligin ámelde kórsetip beriń. 4. Qaysı procedura sızıqtıń formasın ornatıw ushın qollanıladı? 5. SetLineStyle- procedurası járdeminde qanday sırtqı kórinislerdi sızıwda paydalanıladı? 6. Sheńber qaysı operator járdeminde sızıladı? 7. SetFillStyle operatorın wazıypasın aytıp beriń. 8. Bar hám Bar3 D operatorların wazıypası neden ibarat? 9. FillEllipse operatorı qanday forma sızadı? ASOSIY ADABIYOTLAR: 1. Slinkin D. A. Osnovi programmirovaniya na Turbo-Paskale: Uchebno-metodicheskoe posobie dlya studentov vuzov. Shadrinsk: Izd-vo Shadrinskogo pedinstituta, 2003.- 146 -151 cs. 2. Faronov V. V. Turbo Pascal. — SPb.: VXV- Sankt-Peterburg, 2004.- 1056 c. (329 -341 cc) 3. M. Ol. Ashurov, N. D. Xatkerxmedova. Turbo Pascal programmalastırıw tili. (stilistik qóllanba ), Tashkent TDPU - 2011 (88-94) Download 33.69 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling