1. Программалау тілдері. Си тілінің негізгі элементтері



бет6/7
Дата08.06.2018
өлшемі199,78 Kb.
#42012
1   2   3   4   5   6   7

46суракЖиымдепбіратпенаталатын, саны алдын-ала анықталғанбіртиптіэлементтержиынынатайды. Жиымның C++ тіліндесипатталу форматы:

элементтер_ типіжиым_ аты [элементтер_ саны]

Мысалы: int a[10];

float X[20], Y[20];

longint Z[3][4];

Паскальтіліненайырмашылығы C++ - теиндекскекезкелгенаралықенгізугеболмайды. Жиымэлементтерініңеңтөменгіиндексі 0- гетең, сондықтан, сипаттаудакөрсетілгенжиымөлшеміиндекстіңеңүлкенмәнінен 1- геартық.

Мысалы: int a[10] түріндесипатталғанжиымэлементтерітөмендегідей:

a[0], a[1], a[2],… a[9];

Жиымэлементтерісипаттағанкездеенгізілсе, ондаоныңөлшемінкөрсетпеугеболады.

Мысалы: intХ[]={3, 8, 9, 1,-5};

яғни, X[0]=3, X[1]=8,...X[4]=-5

Жиымныңбіржәнеекіөлшемдітүрлерібағдарламалаудажиіқолданылады.

Екіөлшемдіжиымның C++ тіліндесипатталу форматы:

элементтер_ типіжиым_ аты [жол саны][бағансанМысалы: int A[2][3];

float X[3][5];

A жиымыныңэлементтері: A[0][0], A[0][1], A[0][2],

A[1][0], A[1][1], A[1][2].

Екіөлшемдіжиымдыда (матрица) сипаттаубөліміндеанықтауғаболады.

int A[][]={7, 5, 2,

3, 9, 1};

a[2][3] матрицаэлементтерінжадығаенгізутөмендегішежүзегеасады:

for (i=0; i<2; i++)

for (j=0; j<3; j++)

cin>> a[i][j];

Берілгенматрицаэлементтерінқалпынсақтапэкранғашығарутүрі:

for (i=0; i<2; i++)

for (j=0; j<3; j++)

{cout<< a[i][j]<<” “;

cout<<”\n”;}

Мысал 34. Матрицаныңжұпжәнетақэлементтерініңсанынтабыңдар.

main()

{ constint n=3, m=2;



int a[n][m]; inti, j, k=0, t=0; // k-жұп, t-тақэлементсаны

for (i=0; i

for (j=0; j

{cin>> a[i][j];

if (a[i][j]%2==0) k++; else t++; }

cout<<”жұп элемент саны=”<

}

Мысал 35. [10,50] аралығындағыкездейсоқбүтінсандарментолтырылған Х(3х4) матрицаныңжолдарындағыэлементтердіңқосындысынтабыңдар.



main()

{ int X[3][4]; inti, j, S;

srand(time(0));

for (i=0; i<3; i++)

for (j=0; j<4; j++)

X[i][j]=rand()%41+10;

for (i=0; i<3; i++) {

for (j=0; j<4; j++)

cout<

for (i=0; i<3; i++)

{S=0;

for (j=0; j<4; j++)



S=S+X[i][j];

cout<<"\nS["<

getch();

Мысал 36. Квадратматрицаның (жолжәнебағансандарытеңматрица) негізгідиагоналындағытерісэлементтердіңкөбейтіндісінжәнеқосалқыдиагоналындағытақэлементтердіңсанынтабыңдар.

main()

{ int a[5][5]; inti, j, k=0, P=1;



for (i=0; i<5; i++)ы];

for (j=0; j<5; j++)

{cin>>a[i][j];

if (i==j && a[i][j] <0) P=P*a[i][j];

if (i+j ==4 && a [i][j] % 2==1) k++;}

cout<<"\n P="<




}

47,48сурак,

Мысал 38. A (N x N) квадратматрицанытранспонирлеубағдарламасынқұрыңдар. (Транспонирлеу - матрицажолдарынбағандарменжәнекерісіншеалмастыру).

Мысалы: Аматрицасыболса, оғантранспонирленгенматрица

түріндеболады.

main()
{ int A[5][5], B[5][5]; inti, j;

srand(time(0));

for (i=0; i<5; i++)

for (j=0; j<5; j++)

A[i][j]=rand()%9;

cout<<"\n Matrix A \n\n";

for (i=0; i<5; i++) {

for (j=0; j<5; j++)

cout<

for (i=0; i<5; i++)

for (j=0; j<5; j++)

B[i][j]=A[j][i];

cout<<"\n Matrix B \n\n";

for (i=0; i<5; i++) {

for (j=0; j<5; j++)

cout<

}

49сурак

Бірдейтиптіэлементтертізбегінжиымғабіріктіругеболатыныбелгілі. Ал әртүрлітиптіэлементтердібіртопқабіріктіруүшін Паскаль бағдарламалаутіліндегіжазбағасәйкес С++ тіліндеқұрылымқолданылады.

Құрылымдепбіратауменаталатынәртүрлітиптіэлементтержиынтығыаталады.

Құрылымдық тип деректерқорын, ақпараттықжүйеніжасаудақолданылады.

Құрылымдықтиптісипаттаудыңжалпы форматы:

structқұрылымдықтиптіңатауы

{элементтердіанықтау};

Мысалы: 2 студент туралы 5 өрістентұратынмәліметберілсін: Студенттіңтегі, туғанжылы, факультеті, курсы, студент билетініңнөмірі. Сипаттағанкездеқұрылымныңжәнеоныңэлементтерінің (яғниөрістердің) атауларыноқуғаыңғайлыетіп, түсініктітүрдетаңдапалғанжөн. Сонда Studentжазбасынбылайшасипаттауғаболады:

structStudent

{charFam[20];

intGod_r;

charFak[10];

intKurs;

charNom_b;};

Сонансоң, Studentқұрылымдықтипінқолданып, S1, S2 екіайнымалыныанықтауғаболады.

Student S1, S2;

Құрылымдықшаманыңкезкелгенэлементі (өрісі) былайшакөрсетіледі:

құрылымдықтиптіңаты. элемент атауы;

Мысалы: S1. Fam -1-студенттің тегі

S2. Fak -2-студенттің факультеті

S2. God_r -2- студенттіңтуғанжылыт.б.

Құрылымэлементтерініңмәніненгізуге, яғнименшіктеугеболады.

Мысалы: Student S1={“Ғизатова”, 1997, ”физ-мат”, 1, “Ф00234”};

Әдетте, бағдарламадақұрылымжиымықолданылады.

Мысалы 10 студент туралымәліметкелесідейсипатталғанжиымдасақталады: Student S[10];

Ондажеке студент туралымәліметтөмендегішекөрсетіледі:

S[1].Fam, S[5].Kurs, S[8].Fakт.с.с.

Жоғарыдасипатталғанәрбіреуі 5 элементтентұратын 10 студенттуралықұрылымжиымынжадығаенгізужәнеэкранғашығарутөмендегішеболады:

// енгізу

for (inti=0; i<10; i++)

cin>>S[i].Fam>>S[i].God_r>>S[i].Fak>>S[i].Kurs>>S[i].Nom_b;

// шығару

for (inti=0; i<10; i++)

cout<

Мысал.5студенттіңтегінжәнеүшпәнбойыншаемтиханбағасыненгізіп, әрстуденттіңтегіменорташабағасыншығаратынбағдарламақұрыңдар.

main()


{ inti; float k;

struct stud

{char fam[20];

intx,y,z;};

stud s[5];

for (i=0; i<5; i++)

cin>>s[i].fam>>s[i].x>>s[i].y>>s[i].z;

for (i=0; i<5; i++)

{k=(s[i].x+s[i].y+s[i].z)/3;

cout<<"\n"<

}

50сурак

Құрылымдыtypedefқызметшісөзіжәне #defineдирективасыарқылысипаттау

Құрылымдықтиптібасқашасипаттауға да болады. Бұлжағдайдаtypedefқызметшісөзіқолданылады.

Жалпытүрітөмендегішежазылады:

typedefstruct

{элементтердіанықтау}

құрылымдықтиптіңатауы;

Бұлжағдайдықолдануғамысалқарастырайық.

Мысал. Студент тегі мен жасыберілген. Жасыберілгенжастанүлкенболатынстуденттертізіміншығаратынбағдарламақұрыңдар.

main()


{ inti,n;

typedefstruct

{char fam[15];

intjas;} Student;

Student st[5];

for (i=0; i<5; i++)

cin>>st[i].fam>>st[i].jas;

cout<<"\n жастыенгіз"; cin>>n;

for (i=0; i<5; i++)

if (st[i].jas>n) cout<<"\n студенттегі="<

}

Құрылымды #defineдирективасыарқылыда сипаттауғаболады. Бұлжағдайдақұрылымдысипаттаудыңжалпытүрібылайшажазылады:



#defineқұрылымдықтиптіңатауыstruct

{элементтердіанықтау;}

Мысал.Студенттіңаты мен тегіберілген. Тегі “А” әрпіненбасталатынстуденттертізіміншығаратынбағдарламақұрыңдар.

#include

#include

#define Student struct\

{charati[15];\

char fam[20];}

main()

{ inti;



Student st[3];

for (i=0; i<3; i++)

cin>>st[i].fam>>st[i].ati;

for (i=0; i<3; i++)

if (st[i].fam[0]=='A') cout<<"\n fam="<

getch();


}

Ескерту. Құрылымды #define директивасыарқылыдаанықтағандаәрбіржолданкейін “\” жалғастырусимволықойылады.



50-51.сурак

Құрылымдық типті басқаша сипаттауға да болады. Бұл жағдайда typedef қызметші сөзі қолданылады.

Жалпы түрі төмендегіше жазылады:

typedef struct

{элементтерді анықтау}

құрылымдық типтің атауы;

Бұл жағдайды қолдануға мысал қарастырайық.



Мысал 61. Студент тегі мен жасы берілген. Жасы берілген жастан үлкен болатын студенттер тізімін шығаратын бағдарлама құрыңдар.

main()


{ int i,n;

typedef struct

{char fam[15];

int jas;} Student;

Student st[5];

for (i=0; i<5; i++)

cin>>st[i].fam>>st[i].jas;

cout<<"\n жасты енгіз"; cin>>n;

for (i=0; i<5; i++)

if (st[i].jas>n) cout<<"\n студент тегі="<

}

Құрылымды #defineдирективасы арқылы да сипаттауға болады. Бұл жағдайда құрылымды сипаттаудың жалпы түрі былайша жазылады:



#defineқұрылымдық типтің атауы struct

{элементтерді анықтау;}

Мысал 62. Студенттің аты мен тегі берілген. Тегі “А” әрпінен басталатын студенттер тізімін шығаратын бағдарлама құрыңдар.

#include

#include

#define Student struct\

{char ati[15];\

char fam[20];}

main()

{ int i;



Student st[3];

for (i=0; i<3; i++)

cin>>st[i].fam>>st[i].ati;

for (i=0; i<3; i++)

if (st[i].fam[0]=='A') cout<<"\n fam="<

getch();


}

Ескерту. Құрылымды #defineдирективасы арқылы да анықтағанда әрбір жолдан кейін “\” жалғастыру символы қойылады.

52 сурак

Қазіргі заманғы операциялық жүйелерде С++ бағдарламалау тілінде жұмыс жасау үшін Dev- C++ бағдарламасы қолданылады. Dev- C++ тілінде графикамен жұмыс жасау үшін оған екі модуль қосу қажет. Ол үшін келесі әрекеттер орындалады:

1) graphics.h тақырыптық файлы C:\Dev-Cpp\include бумасына орналастырылады.

2) libbgi.a кітапханалық файлы C:\Dev-Cpp\lib бумасына орналастырылады.

(Бұл екі файл Интернет арқылы іздеп табылады)

3) Dev-C++ бағдарламасын іске қосып, Сервис мәзір пунктінен Параметры компилятора (Tools\Compiler Options) командасы орындалады.

4) Компилятор (Compiler) астарлы бетіне өтіп, Добавить эти команды к командной строке компоновщика (Add these commands to the linker command line) пунктіне жалауша белгісін қойып, оның астындағы терезеде келесі жолды енгізу қажет (13- сурет):

-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32



Оk командасын орындату.

Нәтижеде Dev- C++ бағдарламасының графикамен жұмыс жасау командаларын қолдануға болады.

Dev- C++ те графикамен жұмыс жасау үшін #includeкомандасы арқылы графиктік тақырыптық файл іске қосылады.

initwindow(n, m) командасы арқылы өлшемі nm пиксел графика терезесін орнатуды жүзеге асырады.

Мысалы: initwindow(200,200);

Қазіргі заманғы компьютерлерде экрандағы кескін растр түрінде көрінеді. Растр деп (латынның rastrum сөзінен алынған) белгілі бір тәсіл бойынша салынған кескін элементтерінің жиынтығын айтады. Бейнені құрайтын ең элементар нүкте пиксель деп аталады. Растрлық құрылғыда кез келген кескін немесе фигура нүкте- пиксельдердің жиынтығынан тұрады. Кескіннің әр нүктесінің орны Х және У координата арқылы анықталады. Координата-растрлық жол және баған нөмірін белгілейтін бүтін сандар. Х осі солдан оңға, У осі жоғарыдан төмен қарай бағытталған. Сол жақ жоғарғы бұрыштың координатасы (0,0).





Графиктік драйвер графиктік режімде дисплей адаптерін басқарады. Графиктік драйверлер барлық типті адаптерлер үшін BORLAND фирмасында жасалған. Олар әдетте, BGI ішкі каталогында орналасады. (BGI- Borland Graphics Interface – Borland фирмасының графиктік интерфейсі )

Графиктік режімді жабу үшін closegraph()командасы қолданылады. Бұл команданың орындалуы нәтижесінде мәтіндік режімге өтіледі.

Графиктік режімдегі бағдарламаның жалпы түрі:

#includeh>

#include<сonio.h>

main()

{ initwindow(200,200);

…..


графиктік операторлар

.......

closegraph();

getch();

}

Түстерді орнату. Кескін, фон түстері.Қарапайым геометриялық фигураларды салу операторлары

EGAVGA.BGI драйверінде 16 түс қолданылады. Әр түске бүтін санды код сәйкес келеді (5- кесте).


Кесте 5. Графиктік режімнің түс кодтары

Коды

Түсі

Коды

Түсі

0

black (қара)

8

darkgray (күңгірт сұр)

1

blue (көк)

9

lightblue (ашық көк)

2

green (жасыл)

10

lightgreen (ашық жасыл)

3

сyan (циан)

11

lightcyan (ашық циан)

4

red (қызыл)

12

lightred (ашық қызыл)

5

magenta (күлгін көк)

13

lightmagenta (ашық күлгін)

6

brown (қоңыр)

14

yellow (сары)

7

lightgray (ашық сұр)

15

white (ақ)

Экранға шығатын кескін (сызықтар мен символдар) түсі setcolor(түс)командасы арқылы орнатылады.

Мұндағы түс - 0-ден 15-ке дейінгі бүтін сан немесе кестедегі тұрақтының аты.

Мысалы: setcolor(4), setcolor(RED).

Бұл оператор енгізілмесе, кескін қалыпты жағдайда ақ түспен шығады. Кескіннің әр жаңа түсі үшін setcolor() командасы қайта шақырылады.



setbkcolor(түс)командасы экран фонының түсін орнатады. Бұл оператор болмаса, экран ағымдық қара түске боялып көрсетіледі.

Мысалы: setbkcolor(12); cleardevice(); экран фонына ашық қызыл түс орнату.

Мұндағы, cleardevice()– графиктік режімдегі экранды тазарту операторы.



putpixel(x, y, түс)операторы координатасы (х, у), берілген түске боялған нүктені экранға шығарады.

Мысалы: Экран центрінде қызыл түсті нүкте шығару үшін бұл оператор былайша жазылады: putpixel(100,100,4) немесе putpixel(100,100,RED)

Ескерту! Графиктік операторлардағы барлық аргумент мәндері бүтін сан болып табылады.

line(x1,y1,x2,y2)операторы координатасы (х1, у1) нүктесінен координатасы (х2,у2) нүктесіне дейін түзу кесіндісін салуды жүзеге асырады.

Мысалы: line(10,10,90,100);

graphics.h файлының кітапханасында кесінді, шеңбер, эллипс, доға және тіктөртбұрыш салатын операторлар бар. Бұл операторлардың бәрінде сызық қолданылады. Қалыпты жағдайда сызықтың қалыңдығы 1-ге тең, үзігі жоқ- тұтас және түсі ақ. Сызық стилі мен түсін өзгертуге болады. Сызық түсі setcolor() операторы арқылы таңдалады.

Сызық стилінің 5 нұсқасы бар:

тұтас сызық ­­­­­­­­­­­­­­­­­­­­­ ( ________ )

нүктелік сызық ( ………….)

пунктир- нүктелік (-.-.-.-.-.-. )

пунктир (----------- )

типін қолданушы өзі анықтайтын сызық..

Сызық типі келесі оператор арқылы анықталады:



setlinestyle(LineStyle, Pattern, Width);

Мұндағы linestyle- көрсетілген 5 шаблонның бірін қабылдайды.



Pattern - сызық типін қолданушы өзі анықтаған кезде берілетін бояу шаблоны. Қалыпты жағдайда ол 0-ге тең.

Width- сызық қалыңдығы. Сызық қалыңдығының 2 түрі болады:

бірлік NormWidth=1 және үштік ThickWidth=3.

Мысалы: setlinestyle(1,0,3); командасы орындалса, қалыңды үшке тең нүктелік сызық орнатылады.

Мысал 70: Х осіне параллель, қалыңдығы 1-ге тең әр түрлі стильдегі сызықтар салу бағдарламасын құрыңдар.

#include

#include

main()


{ int I=0;

initwindow(200,200);

for (int y=20; y<=200; y=y+20)

{setlinestyle(I, 0, 1);

line(20, y, 180, y);

I++;


if (I>3) I=0;}

getch();


closegraph();

}

Графиктік режімде көрсеткішұғымы қолданылады. Ол мәтіндік режімдегі меңзер ұғымына ұқсас. Одан айырмашылығы көрсеткіш экранда көрінбейді.



moveto(x, y)операторы көрсеткішті координатасы (x, y) нүктесіне орналастырады.

moverel(deltaX, deltaY)операторы көрсеткішті оның ағымдық мәнінен ∆Х, ∆У-ке айырмашылығы бар нүктеге орналастырады.

lineto(x, y)операторы ағымдық нүктеден координатасы (x, y) нүктесіне дейін сызық сызады.

Мысалы:

moveto(40, 50)- көрсеткішті координатасы (40, 50) нүктеге орналастырады.

lineto(100,120)- координатасы (40, 50) нүктесінен координатасы (100,120) нүктесіне дейін сызық сызады.

moverel(40, 50)- көрсеткішті координатасы (140,170) нүктеге орналастырады.

lineto(170, 200) - координатасы (140,170) нүктесінен координатасы (170,200) нүктесіне дейін сызық сызады.

rectangle(x1,y1,x2,y2)операторы тіктөртбұрыш салады.

(х1, у1)- тіктөртбұрыштың сол жақ жоғарғы, (х2, у2)- оң жақ төменгі төбелерінің координаталары.



Мысалы: rectangle(10,10,100,100);

bar(x1,y1,x2,y2) –іші боялған тіктөртбұрыш салу операторы. Қалыпты жағдайда тіктөртбұрыш ақ түске боялып шығады.

circle(x, y, R)-центрі (х, у) нүктесіндегі, радиусы R шеңбер салу операторы.



Мысал 71. Центрі экран центрінде орналасқан, концентрлі шеңберлер салу бағдарламасын құрыңдар.

main()


{

initwindow(500,500);

for (int r=40; r<280; r=r+20)

circle(250, 250, r);

getch();

closegraph();

}

arc( x, y, StartАngle, EndAngle, R ) – центрі (х, у) нүктесіндегі, радиусы R шеңбер доғасын салады.

Мұндағы StartАngle, EndAngle- градуспен өрнектелген доғаның бастапқы және соңғы бұрыштары. Доға StartАngle- ден EndAngle- ге дейін сағат тіліне қарсы бағытта сызылады.



Мысалы: arc(x, y, 180, 0, R) операторы  түріндегі, ал

arc(x, y, 0, 180, R) операторы  түріндегі доға салады.

ellipse(x, y, , , Rx, Ry )- центрі (х, у ) нүктесіндегі, ,  бұрыштарының аралығындағы, биіктігі мен ені сәйкес Rx, Ry эллипс сызу операторы.

Мұндағы Rx, Ry- пикселмен өрнектелген ОХ және ОУ бағыттарындағы эллипстің жарты осьтері.



Мысалы: ellipse(250,250,0,360,80,40);

Қарапайым геометриялық фигураларды салу операторын қолданып бағдарлама құрайық.

Мысал 72.

#include

#include

main()


{ initwindow(400,400); {400х400 өлшемді терезе орнату}

setbkcolor(2); cleardevice(); { фонға жасыл түс орнату }

setcolor(1); { кескінге көк түс орнату }

putpixel(200, 200,14); { сары түсті нүкте шығару }

line(100, 200, 300, 320); { кесінді салу }

rectangle(10, 10, 330, 370); {тіктөртбұрыш салу }

setcolor(4); { кескінге қызыл түс орнату}

circle(200, 200, 100); { шеңбер салу }

getch(); { Кез- келген перне басылғанша күту }

closegraph();

}

53 сурак

Паскаль графикасында кез келген тұйық облысты бояуға болады. Облысты бояу операторының жазылу үлгісі:



setfillstyle( Pattern, Color);

Мұндағы Pattern аргументі төмендегі 12 шаблонның бірін қабылдайды. Ол шаблондар бояу стилін көрсетеді. Бояу шаблондары 6- кестеде көрсетілген.


Кесте 6. Бояу шаблондарының түрлері

Стиль коды

Сипаты

0

Фон түсімен бояйды

1

Тегіс бояйды

2

----- горизонталь штрих

3

///// оңға көлденең бояу

4

///// оңға көлденең қою бояу

5

\\\\\ солғакөлденең қою бояу

6

\\\\\солғакөлденең бояу

7

+ + + торлы бояу

8

хххх қисық торлы бояу

9

тіктөртбұрышты торлы бояу

10

сирек нүктелермен бояу

11

жиі нүктелермен бояу

12

Қолданушы анықтайтын шаблон


Color –бояу түсінің коды.

Мысалы: setfillstyle(1, 4)- қызыл түске тегістей бояйды.

setfillstyle(2, 4)- қызыл түске штрихтап бояйды.



Мысал 73. 15 түске кідіріспен боялатын тіктөртбұрышты салу бағдарламасын құрыңдар.

main()


{initwindow(640,480);

for (int c=0; c<16; c++)

{

setfillstyle(1, c);



bar(10, 10, 620, 450);

Sleep(200);

}

closegraph();



}

Мысал 74. Қызыл түске әр түрлі стильмен боялатын тіктөртбұрышты салу бағдарламасын құрыңдар.

main()


{initwindow(640,480);

for (int p=0; p<12; p++)

{

setfillstyle(p, 4);



bar(10, 10, 620, 450);

Sleep(500);

}

closegraph();



}

Сол жақ жоғарғы төбесінің координатасы (10, 10) , оң жақ төменгі төбесінің координатасы (620, 450) болатын тіктөртбұрыш 73-мысалда әр түрлі түске тегістей боялады, 74- мысалда қызыл түске әртүрлі стильде боялады.



setfillstyle() операторы арқылы облысты бояудың түсі мен стилі ғана орнатылады. Бояуға қажетті облысты көрсету үшін келесі оператор қолданылады.

floodfill(x, y, ColorBorder);

Бұл оператор шекарасында үзік нүктесі жоқ , тұйық облысты бояйды.

Мұндағы х, у – боялатын облысқа тиісті кез келген нүктенің координатасы.

ColorBorder- боялатын облыс шекарасының түсі.

Мысалы:

setcolor(2);

setfillstyle(1, 9);

circle(40, 60, 30);

floodfill(40, 60, 2); {шеңбер ішін ашық көк түске тегістей бояу }

setfillstyle(7, 4);

bar(200, 200,350, 350); {тіктөртбұрыш ішін қызыл түске торлы стильде бояу }

setcolor(14);

setfillstyle(2, 14);

rectangle(10, 10, 30, 30);

floodfill(15, 15, 14); {тіктөртбұрыш ішін сары түске штрихтап бояу }

Боялған фигуралар

Контурлы суреттерден басқа C++ графикасында боялған фигураларды салу операторлары бар. Қалыпты жағдайда олар ақ түске боялады. Бояу типі setfillstyle() операторы арқылы анықталады.



bar(x1, y1, x2, y2)- іші боялған тіктөртбұрыш

bar3d(x1, y1, x2, y2, depth, top ) - тікбұрышты параллелепипед салу (х1,у1) және (х2,у2) –оның фронталды жағының координаталары. Яғни, (х1,у1) параллелепипедтің алдыңғы жағының сол жақ жоғарғы, (х2,у2) оң жақ төменгі бұрыштарының координаты.

depth- қалыңдығы. Логикалық типті top параметрі жоғарғы жағын салу қажет пе екенін анықтайды. Егер top= topOn = true болса, онда жоғарғы жағы салынады.

top= topOff = false болса, онда жоғарғы жағы салынбайды.

fillellipse(x, y, Rx, Ry) - центрі (х, у) нүктесіндегі, жарты осьтері сәйкес Rx, Ry боялған эллипс сызады

pieslice(x, y, , , R) -центрі (х, у) нүктесіндегі, радиусы R шеңбердің ,  бұрыштары арасындағы боялған сектор сызады

sector(x, y, , , Rx, Ry) - эллипстің боялған секторын сызады.

Мысал 75. Келесі бағдарлама боялған фигуралар салуды жүзеге асырады.

main()


{initwindow(300,300);

bar3d(20, 20, 80, 80, 7,0 );

fillellipse(200, 80, 50, 30);

pieslice(50,250,20,90,100);

sector(200,200,0,90,100,50);

getch();

closegraph();

}

Графиктік режімде экранда мәтін шығару

Мәтін төмендегі қасиеттер арқылы сипатталады:

мәтін бағыты (тігінен немесе көлденең)

мәтін басталатын экран нүктесінің координаты

қаріп түрі

қаріп өлшемі

Графиктік экранда мәтін шығарудың 2 операторы бар.

1. outtextxy( x, y, text);

Мұндағы x,y шығатын мәтіннің сол жақ жоғарғы бұрышының координаты.



text- экранға шығатын мәтін.

Мәтінді шығару үшін қолданылатын екінші оператор:

2. outtext( text);

Бұл жағдайда мәтін көрсеткіштің ағымдық мәнінен бастап шығады. Бұл операторды бір жолға бірнеше жазба шығарған кезде қолданған ыңғайлы.



settextstyle( Font, Direct, Size )-операторы қаріп стилін орнатады.

Мұндағы Font- қаріп коды (нөмірі)



Direct- қаріп бағытын көрсету коды

Size- қаріп өлшемінің коды

Қаріп кодын көрсету үшін 7- кестедегі тұрақтылар қолданылады.


Кесте 7. Қаріп түрлері

Қаріп аты

коды

сипаты

файл аты

Default_Font

0

8x8 нүктелік қаріп




Triplex_Font

1

үш еселенген қаріп

Trip. chr

SmalL_Font

2

кішірейтілген қаріп

Litt. chr

SansSerif_Font

3

“сан-сериф” тіке қаріп

Sans chr

Gothic_Font

4

готикалық қаріп

Goth. chr




5

қолжазба қаріп

Scri. chr




6

бір штрихты қаріп

Simp. chr




7

әдемі көлбеу қаріп

Tscr.chr.




8

Times Roman типті

Lcom. chr




9

өлшемі үлкейтілген қаріп

Euro. chr




10

екі штрихты ірі қаріп

Bold. chr

Мәтін бағытын( Direct ) көрсету үшін келесі тұрақтылар қолданылады:

HORIZ_DIR 0 - көлденең { солдан оңға қарай}

VERT_DIR1 - тігінен { төменнен жоғары қарай}

Әр қаріптің өлшемін (Size) 10 есе өзгертуге болады. Size параметрінің мәні 0 мен 10 аралығында өзгереді. Егер параметр мәні 0-ге тең болса бірлік өлшем, 10- нан артық болса ондық өлшем орнатылады. Қаріптің анық көрінетіндей ең кіші өлшемі 4- ке тең.

Мысалы: settextstyle(4, 0, 7);

outtextxy(40, 50, “Text1”);

Нәтижеде өлшемі 7- ге тең “Text1” сөзі көлденең бағытта, готикалық қаріппен, координаты (40, 50) нүктеден бастап жазылады.

Мысал 76. “Informatika”сөзін C++ графикасындағы әр түрлі қаріпті қолданып жазу бағдарламасын құрыңдар.

main()


{initwindow(300,250); int style=0;

for (int y=5; y<=190; y=y+20)

{settextstyle(style, 0, 3);

outtextxy(5,y,"Informatika");

style++;}

getch();

Сурет анимациясы былайша жүзеге асады:

Алдымен белгілі бір координатта сурет шығады

Ол бірнеше уақыт экранда кідіреді

Сурет жоғалып кеткен тәрізді болады, яғни экран тазартылады

Сонан соң, сурет келесі координатта шығады

Нәтижеде, сурет қозғалып бара жатқан сияқты бейне пайда болады.

Суретті экранда кідірту үшін graphics.h файлында анықталған Delay() операторы қолданылды.

Delay(N) операторы экрандағы көріністі N миллисекунд кідіртуді жүзеге асырады. (Delay- кідіріс). 1 мсек=1/1000 сек. Жоғарыдағы мысалда шеңбер экранда 0,1 секунд кідірістен кейін шығып тұрады.

Мысал 77. Х осіне параллель бағытта солдан оңға қарай қозғалатын шеңбер суретін шығаратын бағдарлама құрыңдар.

main()


{

initwindow(400,400);

for (int x=20; x<400; x=x+10)

{circle(x,100,50);

delay(100);

cleardevice(); }

getch();

closegraph();

}

54сурак.

Мәтін төмендегі қасиеттер арқылы сипатталады:

мәтін бағыты (тігінен немесе көлденең)

мәтін басталатын экран нүктесінің координаты

қаріп түрі

қаріп өлшемі

Графиктік экранда мәтін шығарудың 2 операторы бар.

1. outtextxy( x, y, text);

Мұндағы x,y шығатын мәтіннің сол жақ жоғарғы бұрышының координаты.

text- экранға шығатын мәтін.

Мәтінді шығару үшін қолданылатын екінші оператор:

2. outtext( text);

Бұл жағдайда мәтін көрсеткіштің ағымдық мәнінен бастап шығады. Бұл операторды бір жолға бірнеше жазба шығарған кезде қолданған ыңғайлы.



settextstyle( Font, Direct, Size )-операторы қаріп стилін орнатады.

Мұндағы Font- қаріп коды (нөмірі)



Direct- қаріп бағытын көрсету коды

Size- қаріп өлшемінің коды
Қаріп кодын көрсету үшін 7- кестедегі тұрақтылар қолданылады.
Кесте 7. Қаріп түрлері

Қаріп аты

коды

сипаты

файл аты

Default_Font

0

8x8 нүктелік қаріп




Triplex_Font

1

үш еселенген қаріп

Trip. chr

SmalL_Font

2

кішірейтілген қаріп

Litt. chr

SansSerif_Font

3

“сан-сериф” тіке қаріп

Sans chr

Gothic_Font

4

готикалық қаріп

Goth. chr




5

қолжазба қаріп

Scri. chr




6

бір штрихты қаріп

Simp. chr




7

әдемі көлбеу қаріп

Tscr.chr.




8

Times Roman типті

Lcom. chr




9

өлшемі үлкейтілген қаріп

Euro. chr




10

екі штрихты ірі қаріп

Bold. chr

Мәтін бағытын( Direct ) көрсету үшін келесі тұрақтылар қолданылады:

HORIZ_DIR 0 - көлденең { солдан оңға қарай}

VERT_DIR1 - тігінен { төменнен жоғары қарай}

Әр қаріптің өлшемін (Size) 10 есе өзгертуге болады. Size параметрінің мәні 0 мен 10 аралығында өзгереді. Егер параметр мәні 0-ге тең болса бірлік өлшем, 10- нан артық болса ондық өлшем орнатылады. Қаріптің анық көрінетіндей ең кіші өлшемі 4- ке тең.

Мысалы: settextstyle(4, 0, 7);

outtextxy(40, 50, “Text1”);

Нәтижеде өлшемі 7- ге тең “Text1” сөзі көлденең бағытта, готикалық қаріппен, координаты (40, 50) нүктеден бастап жазылады.

Мысал 76. “Informatika”сөзін C++ графикасындағы әр түрлі қаріпті қолданып жазу бағдарламасын құрыңдар.

main()


{initwindow(300,250); int style=0;

for (int y=5; y<=190; y=y+20)

{settextstyle(style, 0, 3);

outtextxy(5,y,"Informatika");

style++;}

getch();

closegraph();}Сурет анимациясы былайша жүзеге асады:

Алдымен белгілі бір координатта сурет шығады

Ол бірнеше уақыт экранда кідіреді

Сурет жоғалып кеткен тәрізді болады, яғни экран тазартылады

Сонан соң, сурет келесі координатта шығады

Нәтижеде, сурет қозғалып бара жатқан сияқты бейне пайда болады.

Суретті экранда кідірту үшін graphics.h файлында анықталған Delay() операторы қолданылды.

Delay(N) операторы экрандағы көріністі N миллисекунд кідіртуді жүзеге асырады. (Delay- кідіріс). 1 мсек=1/1000 сек. Жоғарыдағы мысалда шеңбер экранда 0,1 секунд кідірістен кейін шығып тұрады.

Мысал 77. Х осіне параллель бағытта солдан оңға қарай қозғалатын шеңбер суретін шығаратын бағдарлама құрыңдар.

main()


{

initwindow(400,400);

for (int x=20; x<400; x=x+10)

{circle(x,100,50);

delay(100);

cleardevice(); }

getch();

closegraph();

}



Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет