55сурак
Әдетте дисплей экраны екі режимде болады: мәтіндік жэне графиктік. Екі режимде де пиксель деп аталатын дисплей экранының физикалық нүктелері пайдаланылады.
Экранға мәтін жолдарын шығаруға арналған командалар бар, тек жолдарды экранға шығарып қана қоймайды. Мысалы,
Оuttext процедурасы ағымдағы түспен, графикалық курсордың ағымдағы позициясынан бастап, тағайындалған бағытта мәтіні (жолды) шығарады.
Форматы: Outtext(Мәтін);
мұндағы мәтін - типі string немесе сһаг болып келген шығарылатын мәтін.
Outtextxy процедурасы корсетілген позициядан бастап экранға мәтін шығарады.
Форматы: outtextxy (х, у, мәтін);
мұндағы х, у : іnt - шығарылатынмәтініңпозициясынкөрсетеді, мәтін-мәтінмәні.
Бұл процедурада ОutTехtпроцедурасытәрізді. Бірақ курсор көрсетілгенорындақалады. Шынмәніндебұл процедура екіпроцедураныңқызметінатқарады: moveto(x, у); (курсорды тағайындау) және outtext (мәтін).
Settextstyle процедурасы шығарылатын мәтінің стилін тағайындайды: шрифт, бағыт, өлшем.
Форматы: Settextstyle (шрифт, бағыт, өлшем);
мұндағы шрифт - шрифт коды;
бағыт -бағьггтың коды;
өлшем -өлшем коды.
Жоғарыда келтірілген графикалық құралдарды пайдаланып, мысалдар қарастырайық.
Мысал1. Радиусы, центрі және түсі әртүрлі кездейсоқ түрде алынған шеңберлерден алынған өрнекті бейнелейтін бағдарлама құрайық.
#include
#mclude
#include
#include
#include
void main ()
{
intx,y,k,i,r,d,e,c; intgdriver=DETECT;
intgmode,errorcode; clrscr();
initgraph(&gdriver,&gmode,"C:\\turboc30\\bgi\\"); errorcode=graphresult();
if (errorcode !=grOk)
{
printf("Kate: %d\n",errorcode); getch();
exit(1);
}
for (i=l; i<=50; i++)
{
x=rand() %500; y=rand() %500; k=rand()%100; c=rand()%l 6; setcolor(c);
circle(x,y,k);
}
getch();
closegraphQ;
}
Мысал2. Күнпланетасынэллипсбойыменайналыптұрганпланеталардыбейнелейтінбағдарламақұрастыру.
#include
#include
#include
#include
#include
void main ()
{
intk,r;
intgdriver=DETECT;
intmode,errorcode; clrscrQ;
initgraph(&gdriver,&gmode,"C:\\turboc30\\bgi\\");
errorcode=graphresult();
if (errorcode !=grOk)
{
printf("Kate: %d\n",errorcode); getch();
exit(l);
}
do
{
setcolor(6);
ellipse( 160.100,0,360,100,60); setcolor(14);
circle( 160,100,20);
setfillstyle(l,l4);
floodfill( 160,100,14); delay(900);
circle(60,100,20); clrscr();
delay(lOO);
circle(80,65,20); delay(lOO);
circle( 100,50,20); clrscr(); delay(200); circle( 130,43,20); delay(200);
circle( 160,40,20); clrscrO; delay(200); circle( 190,43,20); delay(200);
circle(220.50,20); clrscrQ; delay(200); circle(240,65,20); delay(200);
circle(260,100,20); clrscrO; delay(200); circle(245,l 35,20); delay(200);
circle(220,155,20); clrscrO; delay(200); circle(190,158,20); delay(200);
circle( 160,160,20);clrscr(); delay(200); circle( 130,158,20); delay(200);
circle(]00,155,20); clrscrO; delay(200);
circle(80,145,20); clrscr();
delay(200);
}
while (13); getch(); closegrap();
}
Мысал 3. Түстердіңауысуындыбыспенсүйемелдейтінбағдарламақұрастыру.
#include
#include
#include
void main ()
{
inti,j: clrscr();
textbackground(2) sound(50);
for(i=l; i<=40; i++)
{
textcolor(i+l); cprintff ",2*i); cprintf("Hi”);
delay(10);
}
nosound; getch();
}
Мысал 4. Шеңбер, тіктөртбұрышжәнетүзусызықсызатынбағдарламақұрастыру.
#include
#include
#include
#include
#define PATHDRIVER "d:\\TC\\bgi"
void main ()
{
intgdriver=DETECT; intgmode; interrorcode;
initgraph(&gdriver,&gmode. PATHDRIVER); errorcode=graphresult();
if (errorcode !=grOk)
{
printf("Kate %d \n",errorcode);
getch();
return;
}
setbkcolor(0);
setcolor(15);
circle(70,70,50);
rectangle( 180,30,250.150);
line(280,70,400,150);
settextstyle(0,0.0);
outtextxy(40,140,"Shenber");
outtextxy(160,160,"Tiktortburish");
outiextxy(380,160,"Tuzu");
getch();
closegraph();
}
Фонның түстерін басқару және шығару мүмкіндіктері графикалық экранға әртүрлі графикалық және мәтіндік информацияны түрлі түспен шығаруға мүмкіндік береді. Ол үшін кезекті бейнені шығарар алдында тағайындалған фонның түсін өзгерту жеткілікті. Сонымен қатар, түсті басқару командасы кез келген шығарылған графикалық нүктенің түсін анықтауға мүмкіндік береді; бұл графикалық информацияларды өңдеу алгоритмдерінде жиі пайдаланылады.
setcolor процедурасы - графикалық немесе мәтіндік информацияны графикалық экранға шығаратын ағымдағы түсті тағайындайды:
setcolor (<түс>).
Мұндағы <түс> : : Word - түс номерін көрсетеді. Мысалы, Setcolor(RED)немесе setсоІоr(4);
Setbkcolor процедурасы орындалғанда графикалық экранның ағымдағы фонының түсі берілген түске өзгереді. Форматы:
Setbkcolor (<түсі>)Мұндағы түс WORD типті түстің номері.
Мысалы, setbkcolor(GREEN); немесе setbkcolor(6);
56 сурак
C++ тілінде кездейсоқ бүтін санды шығару үшін rand() функциясы қолданылады. Берілген [a,b] аралығындағы кездейсоқ бүтін санды шығару үшін функция былайша жазылады:
rand()% (b-a+1)+a;
Мысалы: [10,50] аралығындағы кездейсоқ бүтін санды шығару үшін команда x=rand()%41+10; түрінде жазылады.
rand() функциясы stdlib.h тақырыптық файлында анықталған.
Әрбір орындатқанда уақытқа байланысты әр түрлі кездейсоқ сандар алу үшін, яғни ағымдық уақытқа байланысты кездейсоқ санды генерациялау үшін time.h тақырыптық файлында анықталған srand(time(0)) командасы қолданылады.
Мысал 15. [0,10] аралығындағы кездейсоқ шыққан 3 бүтін санның нешеуі жұп екенін анықтайтын бағдарлама құрыңдар.
#include
#include
#include
#include
main()
{ int a,b,c,k=0;
srand(time(0));
a=rand()%10;
b=rand()%10;
c=rand()%10;
cout«"a="«a«"b="«b«"c="«c;
if (a%2==0) k++;
if (b%2==0) k++;
if (c%2==0) k++;
cout«"\n k="«k;
getch();
}
Бір өлшемді int a[10] жиымын жадыға енгізу былайша жүзеге асады:
for (i=0; i<10; i++)
{cout«”a[“«i«”]=”; cin»a[i];} // немесе cin» a[i];
Берілген жиым элементтерін экранға шығару түрі:
for (i=0; i<10; i++)
cout«”\n a[“«i«”]=”«a[i]; // немесе cout« a[i];
Мысал 33. Жиымды [1..10] аралығындағы кездейсоқ бүтін сандармен толтырып, бұл жиымның ең үлкен элементін тауып, оны бірінші элементтің орнына және ең кіші элементін тауып, оны соңғы элементтің орнына қойғанда пайда болған жиымды анықтаңдар.
#include
#include
#include
#include
main()
{int X[10];
int i, min, max;
srand(time(0));
for (i=0; i<10; i++)
{X[i]=rand()%10+1; //жиымды кездейсоқ сандармен толтыру
cout«X[i]«" ";} // жиымды шығару
max= X[0]; min= X[0]; // жиымның ең үлкен, ең кіші элементтерін табу
for (i=0; i<10; i++)
{if (maxif (min>X[i]) min= X[i];
}
cout«"\n";
X[0]= min; X[9]= max; //ең кіші элементті алғашқы, ең үлкенді соңғы
орынға қою
for (i=0; i<10; i++) //пайда болған жиымды шығару
cout«X[i]«" ";
getch();
}
57 СУРАК.
Dev- C++ те графикамен жұмыс жасау үшін #include командасы арқылы графиктік тақырыптық файл іске қосылады.
initwindow(n, m) командасы арқылы өлшемі
nm пиксел графика терезесін орнатуды жүзеге асырады.
Мысалы: initwindow(200,200);
Қазіргі заманғы компьютерлерде экрандағы кескін растр түрінде көрінеді. Растр деп (латынның rastrum сөзінен алынған) белгілі бір тәсіл бойынша салынған кескін элементтерінің жиынтығын айтады. Бейнені құрайтын ең элементар нүкте пиксель деп аталады. Растрлық құрылғыда кез келген кескін немесе фигура нүкте- пиксельдердің жиынтығынан тұрады. Кескіннің әр нүктесінің орны Х және У координата арқылы анықталады. Координата-растрлық жол және баған нөмірін белгілейтін бүтін сандар. Х осі солдан оңға, У осі жоғарыдан төмен қарай бағытталған. Сол жақ жоғарғы бұрыштың координатасы (0,0).
58 СУРАК.
Графиктік драйвер графиктік режімде дисплей адаптерін басқарады. Графиктік драйверлер барлық типті адаптерлер үшін BORLAND фирмасында жасалған. Олар әдетте,
BGI ішкі каталогында орналасады. (
BGI- Borland Graphics Interface – Borland фирмасының графиктік интерфейсі )
Графиктік режімді жабу үшін closegraph() командасы қолданылады. Бұл команданың орындалуы нәтижесінде мәтіндік режімге өтіледі.
Графиктік режімдегі бағдарламаның жалпы түрі:
#includeh>
#include<сonio.h>
main()
{ initwindow(200,200);
…..
графиктік операторлар
.......
closegraph();
getch();
}
Түстерді орнату. Кескін, фон түстері. Қарапайым геометриялық фигураларды салу операторлары
EGAVGA.BGI драйверінде 16 түс қолданылады. Әр түске бүтін санды код сәйкес келед.
59 сурак.
Контурлы суреттерден басқа 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) - эллипстің боялған секторын сызады.
60сурак.
Шартты оператордың жазылуының жалпы түрі:
if (шарт) 1- оператор; else 2- оператор; немесе
if (шарт) оператор;
Бұл оператор былайша орындалады: алдымен жақша ішіндегі шарт тексеріледі. Егер оның мәні ақиқат болса, яғни мәні 1- ге тең болса, 1- оператор, әйтпесе 2- оператор орындалады.
Шартты операторда бір емес, оператор блогы болуы мүмкін. Олар фигуралық жақшаға алынып жазылады. Бұл жағдайда шартты оператордың жалпы түрі төмендегіше болады:
if (шарт) { операторлар}; else { операторлар};
Мысал 5. Берілген екі санның үлкенінің квадратын және кішісінің квадрат түбірін табатын бағдарлама құрыңдар.
#include
#include
#include
main()
{ float x,y;
cout<<"х,у -сандарын eнгіз"; cin>>x>>y;
if (x>y) {x=pow(x,2); y=sqrt(y);} else {y=pow(y,2); x=sqrt(x);}
cout<<"x= "<жүктеу/скачать 199,78 Kb.