Ana səhifə Seçilmişlərə əlavə et Bizə yazın

     
 
 XƏBƏRLƏR
 
 
 
RƏSMİ
 
 
 HEYDƏR ƏLİYEV FONDU
 
 
 
QANUNVERİCİLİK
 
 
 
TƏHSİL NAZİRLİYİNDƏ
 
 
 
PEDAQOJİ YAZILAR
 
 
 MÜSAHİBƏLƏR
 
 
 
İDMAN
 
 
 
FOTOQALEREYA
 
 
 ARXİV
 
 
 ƏLAQƏ

 
 

Azərbaycan təhsili: yaxın keçmişə, bu günə və gələcəyə bir baxış
 

Dünya universitetləri

internetdə

saytda

 

Fotoqalereya

 
 
 
 
 
 
 
 
 

ARXİV

12 Mart 2010 - ¹10

 

Pascal dilində qrafikqurma operatorlarının öyrədilməsi metodikası

Bookmark and Share

Məktəblərimizin informasiya-kommunikasiya texnologiyaları ilə təmin olunması informatika fənninin öyrənilməsinə münasibətin dəyişməsini, yeni proqram və dərsliklər hazırlanmasını, I siniflərdən fənnin kurikulum əsasında hazırlanmış dərsliklə tədrisinə başlanmasını, bu isə onun tədrisi metodikası sahəsində ciddi axtarışların aparılmasını zəruri etmişdir.

Biz pascalda qrafikqurma operatorlarının tədrisi ilə bağlı qarşıya çıxan çətinliklərin aradan qaldırılması üçün müəllimlərin bu dərsləri aşağıdakı alqoritm əsasında öyrətmələrini vacib hesab edirik:

1. Pascalda mətn rejimindən qrafik rejimə keçidin şagirdlər üçün aydınlaşdırılması;

2. Qrafik rejimdə koordinat sisteminin ekranda necə yaradıldığının anlaşılması;

3. Pascalda müxtəlif fonlu qrafik ekran almağın və qrafik primitivlərin rənginin təyin edilməsi;

4. Pascalda qrafik primitivlər və onları qurmaq üçün istifadə olunan zəruri funksiya və prosedurların mənimsənilməsi.

Qeyd edək ki, TurboPascalın IV versiyasından başlayaraq fərdi kompüterlərdə özündə bir sıra xüsusi qrafik prosedur və funksiyaları birləşdirən Graph modulundan istifadə olunur.

Kompüterdə tb.exe faylı icra olunan kimi monitor mətn rejimində işə hazır olur. Qrafik təsvirləri almaq üçün proqramın əvvəlində Uses Graph modulu daxil edilir.

Kompüterdə qrafik rejimlər bir-birindən ekranın sətir və sütunlarında olan piksellərin sayına və rənginə görə fərqlənirlər.

Monitoru qrafik rejimə hazırlamaq üçün

InitGraph (Driver, Mode:integer; Path:string)

prosedurundan istifadə olunur.

Burada, Driver - tam tipli dəyişəni qrafik drayverin tipini bildirən qrafik drayveri əməli yaddaşa yükləyərək adapteri qrafik iş rejiminə hazırlayır. Mode - tam tipli dəyişəni qrafik drayverin iş rejimini, Path isə String tipli ifadə olub qrafik drayverin axtarış marşrutunu təyin edir.

Kompüterin qrafik imkanları məlum olduqda qrafik adapteri seçmək və proqramı yazmaq çox asandır. Lakin qrafik drayver məlum olmadıqda ən sadə yol adapterin tipinin və rejimin avtomatik seçilməsini təmin etmək üçün Driver dəyişəninə Detect qiymətinin mənsub edilməsidir. Daha dəqiq, proqramın tərtibi zamanı monitorun tipindən asılı olmayaraq qrafik drayver, rejim və drayverin axtarış marşrutu aşağıdakı mətnlə təyin edilir:

Driver:= Detect;

InitGraph (Driver, Mode, Sc:\tp\bgiT);

Proqramda bu sətirlər monitorun ən yüksək imkanlı qrafik rejim və rəng üçün hazırlanmasını təmin edir.

Beləliklə, pascalda qrafik təsvirlərin alınması üçün aşağıda tipik proqram nümunəsi verilir:

Program qrafik_təsvirin_qurulması;

Uses Graph;

Var Driver, Mode : integer;

Begin

Driver:= Detect;

InitGraph (Driver, Mode, Sc:\tp\bgiT);

{operatorlar,...}

CloseGraph

End.

Closegraph proseduru qrafik rejimi bağlayır.

Qrafik rejimə keçdikdə monitorun ekranında düzbucaqlı koordinat sistemi - qrafik ekran formatlaşdırılır. Bu ekranın yuxarı sol küncü - (0,0) nöqtəsi koordinat başlanğıcı qəbul edilir. Koordinat sistemində ən sadə qrafik təsvir olan nöqtə (x,y) şəklində, bir cüt ədədlə verilir. Absis oxu soldan sağa, ordinat oxu yuxarıdan aşağıya doğru yönəlir. Ekranda kiçik düzbucaqlı şəklində təsvir olunub piksel adlanan hər bir nöqtə x, y, r parametrləri ilə xarakterizə edilir. Bu parametrlər, x (nöqtənin absisi) tam ədəd olub [0..GetMaxX], y (nöqtənin ordinatı) tam ədəd olub [0..GetMaxY] və r (pikselin rəngi) tam ədəd olub [0..GetMaxColors] intervalında təyin olunur.

GetMaxX, GetMaxY və GetMaxColors funksiyaları cari qrafik ekranda nöqtənin koordinatlarının və rənginin maksimal qiymətlərini bildirir. Qrafik rejimin imkanlılıq səviyyəsindən asılı olaraq onun sətir və sütunlar üzrə piksellərinin sayı dəyişir. Bu anda işlədiyiniz monitora uyğun parametrlərin qiymətləri aşağıdakı proqramla təyin edilir: 

 

Program piksellərin_və_rənglərin_sayı;

Uses graph;

Var driver, mode : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

writeln(GetMaxX,SxT,GetMaxY,SyT,GetMaxColors);

readln;

closegraph

End.

Fon və təsvirin rəngi. Rəngli monitorlarda ekranın rəngini dəyişmək, yeni rəng təyin etmək olar. Alınan rəng fonun rəngi adlanır.

Fonun rəngi SetBkColor(fr:word) proseduru ilə təyin olunur.

Burada, fr parametri fonun rəngini təyin edən tam tipli ifadə olub 0..15 qiymətlərini alır. Bu qiymətlərə Black (qara), Blue (mavi), Green (yaşıl), Cyan (firuzəyi), Red (qırmızı), Magenta (bənövşəyi), Brown (qəhvəyi), LightGray (açıq-boz), DarkGray (tünd-boz), LightBlue (açıq-mavi), LightGreen (açıq-yaşıl), LightCyan (açıq-firuzəyi), LightRed (açıq-qırmızı), LightMagenta (açıq-bənövşəyi), Yellow (sarı) və White (ağ) rəngləri uyğun gəlir.

Qrafik rejimdə bu prosedur təyin olunmadıqda qara rəngli ekran alınır.

Aşağıdakı proqramla müxtəlif fonlu ekranlar almaq olar:

Program ekranın_fonu;

Uses graph;

Var driver, mode : integer;

                                  fr : word;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

writeln (Sfr-i daxil edinT);

setbkcolor (0);

readln (fr);

setbkcolor (fr);

readln;

closegraph

End.

Proqram icra olunduqda, fr-in daxil edilən qiymətinə uyğun rəngli - fonlu ekran alınır.

Qrafik rejimdə SetColor(tr:word) proseduru təsvirin rəngini təyin edir.

Burada, tr - təsvirin rəngini təyin edir, 0..15 qiymətlərini alır. tr=0 olduqda, təsvirin və fonun rəngi eyni olduğu üçün o, ekranda görünmür.

Proqramda özündən sonra gələn təsvirlərin rəngini dəyişən SetColor proseduru təyin olunmadığı halda, təsvir ağ rəngdə alınır.

Qrafik ekran ClearDevice ilə silinir.

Ekranda qrafik təsviri düzbucaqlı (qrafik) pəncərə daxilində vermək üçün

SetViewPort(x1,y1, x2,y2:integer;c:boolean);

prosedurundan istifadə olunur. Burada, (x1,y1) və (x2,y2) nöqtələri uyğun olaraq düzbucaqlının  yuxarı sol və aşağı sağ künclərinin koordinatlarıdır. c dəyişəni doğru (c=true) qiymət aldıqda təsvir düzbucaqlının daxilində qurulur, əks halda isə onun xaricinə çıxa bilər.

MoveTo (x,y:integer) proseduru ekranda qrafik kursoru cari nöqtədən (x,y) nöqtəsinə gətirmək üçün istifadə olunur.

MoveRel(Dx,Dy:integer) proseduru kursorun (x,y) nöqtəsindən (x+Dx, y+Dy) nöqtəsinə gətirilməsini həyata keçirir.

Həndəsi fiqurları nöqtələrlə qurmaq olar. Mürəkkəb həndəsi fiqurları nöqtələrin köməyi ilə qurmaq isə xeyli çətinliklər yaradır. Pascalda təsviri qurulan fiqurlar qrafik primitivlər adlanır. Aşağıda Graph modulunun prosedur və funksiyaları ilə əsas qrafik primitivlərin (düz xətt, çevrə, ellips, düzbucaqlı və s.) təsvirlərinin qurulması verilir:

PutPixel (x,y:integer;rəng:word) proseduru (x,y) nöqtəsini ekranda rəng dəyişəninin 0..15 qiymətinə uyğun rənglə təsvir edir. Prosedurdan əvvəl nöqtənin koordinatları və rəngi təsvir olunur.

Misal 1. Qırmızı rəngli (150,250) nöqtəsini təsvir edin.

Aşağıdakı proqram icra olunduqda ağ fonlu ekranda qırmızı rəngli nöqtə təsviri alınır:

Program nöqtənin_qurulması;

Uses graph;

Var driver, mode : integer;

                               x, y : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x:= 150;  y:= 250;

setbkcolor (white);

putpixel (x, y, red);

readln;

closegraph

End.

Line(x1,y1,x2,y2:integer) proseduru (x1,y1) və (x2, y2) nöqtələrini birləşdirən parça çəkir. Line prosedurundan əvvəl SetColor proseduru ilə xəttin rəngi təyin edilir. Xəttin rəngi daxil edilmədikdə o, ağ rəngdə görünür.

Misal 2. Ekranda başlanğıc və son nöqtələri uyğun olaraq (50,120) və (250,175) olan mavi rəngli parça qurun.

Aşağıdakı proqram qara fonlu ekranda mavi rəngli parça təsvir edir:

Program düz_xəttin_qurulması;

Uses graph;

Var driver, mode : integer;

      x1, y1, x2, y2 : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x1:= 50;    y1:= 120;

x2:= 250;  y2:= 175;

setbkcolor (black);

setcolor (blue);

line (x1,y1, x2,y2);

readln;

closegraph

End.

LineTo(x,y:integer) proseduru kursorun dayandığı cari nöqtə ilə (x,y) nöqtəsini birləşdirən xətt çəkir.

Misal 3. Təpələri (150,120) və (250,175) nöqtələrində olan parçanın son nöqtəsini (450,350) nöqtəsi ilə birləşdirən mavi rəngli parça çəkin.

Proqramı aşağıdakı şəkildə yazmaq olar:

Program sınıq_xəttin_qurulması;

Uses graph;

Var driver, mode : integer;

        x1, y1, x2, y2, x3, y3 : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x1:= 50;    x2:= 250;  x3:= 450; 

y1:= 120;  y2:= 175;  y3:= 350;

setbkcolor (black);

setcolor (blue);    line (x1,y1, x2,y2);

moveto (x2, y2);

setcolor (green);  lineto (x3, y3);

readln;

closegraph

End.

Proqram icra olunan kimi ekranda sınıq xətt - bucaq təsviri alınır.

LineRel (Dx,Dy:integer) operatoru cari (kursorun dayandığı) (x,y) nöqtəsini onun koordinatlarına uyğun olaraq Dx və Dy artımları verməklə alınan (x,y, x+Dx,y+Dy) nöqtəsi ilə birləşdirir. Bu operator Line (x,y, x+Dx,y+Dy) operatoru ilə eynigüclüdür.

Misal 4. O(320,240) nöqtəsi ilə uyğun koordinatları üzrə artımları Dx:=100, Dy:=125 olan nöqtəni birləşdirən parça çəkin.

Proqramı aşağıdakı şəkildə tərtib edək:

Program parçanın_qurulması;

Uses graph;

Var driver, mode : integer;

                      x, y : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x:= 320;  y:= 240;

setcolor (green);

moveto (x, y)

linerel (100, 125);

readln;

closegraph

End.

Bu proqrama linerel operatorundan əvvəl fonun rəngini təyin edən setbkcolor(rəng) operatorunu daxil etdikdə, rəng fonlu ekranda yaşıl rəngli parça görünür.

Restangle(x1,y1,x2,y2:integer) proseduru cari rəng və xəttin tipindən asılı olaraq yuxarı sol təpəsi (x1,y1) və aşağı sağ təpəsi (x2,y2) nöqtələrində olan düzbucaqlı təsviri qurur.

Misal 5. Yuxarı sol küncü (160,120) və aşağı sağ küncü (320,240) nöqtələrində olan düzbucaqlı çəkin.

Bu proqram qara rəngli fonda sarı rəngli düzbucaqlı təsvir edir:

Program grap_düzbucaqlı;

Uses graph;

Var driver, mode : integer;

        x1,y1, x2,y2 : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x1:= 160;   y1:= 120;

x2:= 320;   y2:= 240;

setcolor (yellow);

rectangle (x1,y1, x2,y2);

readln;

closegraph

End.

Bar (x1,y1, x2,y2:integer) proseduru yuxarı sol və aşağı sağ təpələri uyğun olaraq (x1,y1) və (x2,y2) nöqtələrində olan, daxili oblastı rənglənmiş düzbucaqlı çəkir.

Rəngin tipi SetFillStyle (rt, rəng) proseduru ilə təyin edilir və düzbucaqlının sərhədi xətlərlə əhatə olunmur.

Burada, rt - rəngin tipini, rəng - daxili oblastın rəngini təyin edir. Tamam rənglənmə rt ilə (0 qiymətinə uyğun) verilir.

Circle(x,y:integer;R:word) proseduru mərkəzi (x,y) nöqtəsində olan R radiuslu çevrə çəkir.

R radiusu absis və ordinat oxları üzrə piksellərin sayını bildirir.

Misal 6. Ekranda mərkəzi (320,240) nöqtəsində olan R=50 radiuslu çevrə təsviri qurun.

Proqramı aşağıdakı şəkildə yazmaq olar:

Program çevrənin_qurulması;

Uses graph;

Var  driver, mode : integer;

                    x, y, r : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x:= 320;  y:= 240;  r:= 50;  

setcolor (red);

circle (x, y, r);

readln;

closegraph

End.

Proqram icra edilən kimi qara fonlu ekranda (susmaya görə) qırmızı rəngli çevrə görünür.

Misal 6-nın proqramında əlavə olaraq n tam tipli dəyişənini təyin edib, Circle(x, y, r) operatorunu Circle(x, y, r*n) ilə əvəz etməklə, ondan əvvəl For n:=1 To 10 Do operatorunu əlavə etdikdə ekranda konsentrik çevrələr təsvir olunur.

Arc(x,y:integer;qdbq,qdsq, R:word) proseduru mərkəzi (x, y) nöqtəsində, qövsünün dərəcələrlə başlanğıc və son qiymətləri uyğun olaraq qdbq və qdsq olan R radiuslu çevrə qövsü təsvir edir.

Bu zaman bucaqlar absis oxunun müsbət istiqamətinə nəzərən saat əqrəbi hərəkətinin əksi istiqamətində hesablanılır.

Misal 7. Ekranda mərkəzi (320,240) nöqtəsində, radiusu 100, qdbq:= 00 və qdbq:=900 olan çevrənin birinci rübünə uyğun qövs qurun.

Verilənlərə əsasən proqramı aşağıdakı şəkildə yazmaq olar:

Program çevrə_qövsünün_qurulması;

Uses graph;

Var driver, mode: integer;

       x, y, r, qdbq, qdsq: integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

x:= 320;    y:= 240;     r:= 100;           

qdbq:= 0;  qdsq:= 90; 

setcolor (brown);

arc (x, y, qdbq, qdsq, r);

readln;

closegraph

End.

Bu proqramda qdsq:=3600 olduqda, Arc funksiyası Circle funksiyası kimi işləyir və çevrə təsviri qurur.

Ellipse(x,y:integer;qdbq,qdsq,xR,yR:word) proseduru mərkəzi (x,y) nöqtəsində olub qövsünün dərəcə ilə başlanğıc qiyməti qdbq, son qiyməti qdsq, üfüqi və şaquli radiusları uyğun olaraq xR, yR olan ellips qövsü qurur.

FillEllipse(x,y:integer;xR,yR:word) proseduru mərkəzi (x,y) nöqtəsində olub üfüqi və şaquli radiusları uyğun olaraq xR, yR olan daxili oblastı rənglənmiş ellips təsviri qurur.

Sector(x,y:integer;qdbq,qdsq,xR,yR:word) proseduru mərkəzi (x,y) nöqtəsində olub qövsünün dərəcə ilə başlanğıc qiyməti qdbq, son qiyməti qdsq, üfüqi və şaquli radiusları uyğun olaraq xR, yR olan ellips sektoru qurur. 

PieSlice(x,y : integer; qdbq,qdsq, R : word) proseduru mərkəzi (x,y) nöqtəsində, qövsünün  dərəcələrlə başlanğıc və son qiymətləri uyğun olaraq qdbq və qdsq olan R radiuslu dairə sektoru qurur və onu cari rənglə rəngləyir.

Bar3D(x1,y1,x2,y2:integer;d:word;a:boolean) proseduru yuxarı sol arxa və aşağı sağ ön üzlərinin təpə nöqtələri uyğun olaraq (x1,y1) və (x2,y2) olan ön üzü rənglənmiş üçölçülü düzbucaqlı (paralelepiped) təsviri qurur.

Burada, d - yan üzün üfüqi istiqamətdə eni (piksellərin sayı) olub, əksər hallarda onun qiyməti d:= (x2-x1) div 4 qəbul edilir;

a - yuxarı üzün görünüb-görünməməsini təyin edir və a=true olduqda üz görünür, əks halda isə görünmür. 

DrawPoly (n:word; var ma) proseduru təpə nöqtələrinin sayı n olan çoxbucaqlı qurur.

Burada, ma - çoxbucaqlının təpə nöqtələrinin koordinatlarından ibarət massivin adını bildirir.

Misal 8. Təpələri (75,0) (100,50), (150,75) və (75,0) nöqtələrində olan dördbucaqlı qurun.

Proqram aşağıda verilir:

Program dördbucaqlının_qurulması;

Uses graph;

Const  a: array[1..10]of integer=(75,0,100,50,150,

 200,125,75,75,0);

Var  driver, mode : integer;

Begin

driver:= detect;

initgraph (driver, mode, SC:\tp\bgiT);

setfillstyle (1, 2);

Drawpoly (5, a);

readln;

closegraph

End.

FillPoly (n, ma) proseduru DrawPoly proseduru ilə qurulmuş çoxbucaqlının daxili oblastını həm də rəngləyir.

GetPixel (x,y:integer) proseduru ilə qapalı oblastın daxilində yerləşən (x,y) nöqtəsinin rəngi müəyyən edilir. 

Gülşən HACIYEVA,
Bakıdakı 99 nömrəli
məktəbin informatika müəllimi

 
Səhifənin başına qalx Nömrənin müdəricatına dön"Pedaqoji yazılar" bölməsinə get

Səhifənin başına qalx

 

HEYDƏR ƏLİYEV

İLHAM ƏLİYEV

MEHRİBAN ƏLİYEVA

HEYDƏR ƏLİYEV
FONDU

AZƏRBAYCAN RESPUBLİKASI TƏHSİL NAZİRLİYİ

 
12 Mart 2010 - ¹10
Azərbaycan qadınlarının bir qrupunun "Tərəqqi" medalı ilə təltif edilməsi haqqında Azərbaycan Respublikası Prezidentinin Fərmanı
 
Azərbaycan qadınlarının bir qrupuna fəxri adların verilməsi haqqında Azərbaycan Respublikası Prezidentinin Fərmanı
 
Bakının on məktəbinin direktoru vəzifəsindən azad edildi
 
"Azərbaycan müəllimi" qəzetinin yeni saytı (www.muallim.edu.az) istifadəyə verildi
 
Qəbələdə daha iki məktəb binası tikildi
 
Azərbaycan təhsili: yaxın keçmişə, bu günə və gələcəyə bir baxış
 
De-institutlaşdırma və alternativ qayğı Dövlət Proqramının icrası ilə bağlı təqdimat dinlənildi
 
Əməkdaşlıq barədə Anlaşma Memorandumu imzalandı
 
Həmyerlimiz beynəlxalq Eynşteyn mükafatına layiq görüldü
 
Səfir Azərbaycan Dillər Universitetində olub
 
Müasir elmi problemlər araşdırılır
 
Qələbənin 65 illiyi ilə əlaqədar tədbir keçirilib
 
Pascal dilində qrafikqurma operatorlarının öyrədilməsi metodikası
 
Naxçıvan və İrəvanın işğal dönəminin tarixinə dair monoqrafik tədqiqat
 
Almaniyalı professor BSU-da mühazirə oxuyub
 
Tələbələrin elmi-tədqiqat işlərinə həsr olunmuş konfrans keçirilib
 
"Təbiəti qoruyaq" mövzusunda "dəyirmi masa"
 
Görkəmli kinoşünasın yubileyi qeyd edilib
 
"Təhsilin əsasları" fənninin ilk semestrdə tədrisi nə göstərir
 
Məktəbdə "Məzun günü"
 
Yetirmələri tərəfindən daim xatırlanmağın sevinci
 
Yeri görünən insan
 
"Sağlam həyat tərzi və idman" devizi altında
 
Qızlar arasında voleybol yarışı keçirilib
 
Pəhləvanlarımız finalda erməni rəqiblərinə qalib gəliblər
 
Uşaqlar bacarıqlarını nümayiş etdirəcəklər
 
Məktəblilər arasında ekoloji breyn-rinq yarışması
 
Dünya universitetləri: Paris Ali Normal Məktəbi
 

2007 - 2015-ci illərdə Azərbaycan gənclərinin xarici ölkələrdə təhsil üzrə
DÖVLƏT PROQRAMI

Azərbaycan Respublikasında texniki peşə təhsilinin inkişafı üzrə
DÖVLƏT PROQRAMI

Azərbaycan Respublikası Təhsil Nazirliyi
KURİKULUM PORTALI

Azərbaycan Respublikası
TƏHSİL PORTALI

 

Copyright 2010 ©  All Rights Reserved.
Created and supported by
Mehman Shafagatov