Тәттібеков Қ. С. Раимбаева С.Ә. С/С++ тілінде программалау негіздері



Pdf көрінісі
бет68/79
Дата15.11.2023
өлшемі1,39 Mb.
#124059
түріПрограмма
1   ...   64   65   66   67   68   69   70   71   ...   79
7. Графикалық режимде мәтін шығару 
outtext(s); 
Нұсқағыштың ағымдағы орынынан бастап мәтіннің жолын шығарады. 
s – жолдық типтің айнымалысы немесе тұрақтысы. 

90 
180 
270 


102 
outtextxy(x,y,s); 
(x, y) – мәтіннің басы орналасатын нүкте.
Ескерту
: Экранға сандық берілгендерді шығару үшін алдымен санды жолға 
айландыру қажет.
Жазық обьектілерді бейнелегенде объектілердің шынайы өлшемдері 
экранның координаталар жүйесімен сәйкес болмауы мүмкін. Бұл жағдайда 
терезе деп аталатын координаталар осіне жақтары параллель болатын кез 
келген тікбұрышты жазық аймаққа, экранның тікбұрышты аймағы – шығару 
аймағы байланысады.
Төменде көрсетілген мысалда терезе түзулермен x=xmin, x=xmax, 
y=ymin, y=ymax шектелген, ал шығару аймағы бүкіл экран болып табылады. 
Нүкте (xmin, ymin) экранның төменгі сол жақ бұрышында, ал Нүкте 
(xmax, ymax) – оң жоғарғы жақ бұрышында бейнеленеді. Экранның әрбір 
пикселіне өлшемі төмендегідей болатын терезедегі тіктөртбұрыш сәйкес 
келеді: 
Осылай, пиксел координаталарын төмендегі формула бойынша есептеуге 
болады: 
 
y=f(x) 
функциясының графигін шығарғанда екі жолды пайдалануға 
болады: нүктелік графиктерді салу және үзінді-сызықты графиктерді салу. 
Бірінші жағдайда, экранға
(x,y) координаталары 
бар нүктелер шығарылады, 
мұндағы 
y=f(x)
, ал екінші жағдайда графиктің екі көрші нүктелері түзумен 
қосылады. 
Шындығында, екінші жағдайда интерполяциялық сызықтық сплайн 
құрылады. Бірінші жағдайда putpixel функциясы, ал екінші жағдайда line 
функциясы қолданылады. Енді үзінді-сызықты графиктерді салайық. 
#include  
#include  
#include  
#include  
float xmin, xmax;
// x-тің өзгеру аймағы 
float ymin, ymax;
// y-тің өзгеру аймағы 
float hx
; // қадам
float xdens, ydens; 


103 
// 
экрандық x координатаны есептеу
int ex(float x,float y) 
{return (int) ((x-xmin)/xdens);} 
// экрандық у координатаны есептеу 
int ey(float x,float y) 
{return (int) ((ymax-y)/ydens);} 
// 
Функция y=f(x)
float f(float x) {return (float)(x*sin(x));} 
void main() 

int graphdriver= DETECT, graphmode, n; 
float x,y; 
// Графиктік режимді инициалдау: 
initgraph(&graphdriver,&graphmode,""); 
// Параметрлерге сұраныс: 
gotoxy(40,20); 
printf(" Enter please parameter n "); 
scanf("%d",&n); 
gotoxy(40,21); 
printf(" Enter xmin xmax "); 
scanf("%f%f",&xmin,&xmax); 
gotoxy(40,22); 
printf(" Enter ymin ymax "); 
scanf("%f%f",&ymin,&ymax); 
// Сұраныстар аймағын тазалау 
gotoxy(40,20); 
printf(" "); 
gotoxy(40,21); 
printf(" "); 
gotoxy(40,22) ; 
printf(" "); 
xdens=(xmax-xmin)/getmaxx(); 
//x бойынша масштабтау коэффициентін 
есептеу 
ydens=(ymax-ymin)/getmaxy(); 
//у бойынша масштабтау коэффициентін 
есептеу 
hx=(xmax-xmin)/n;
// Қадамды есептеу 
setcolor(LIGHTGRAY); 
// Осьтерді шығару үшін түстерді қою


104 
line(ex(xmin,0), ey(xmin,0), ex(xmax,0), ey(xmax,0)); 
// X осін шығару 
line(ex(0,ymax), ey(0,ymax), ex(0,ymin), ey(0,ymin)); 
// Y осін шығару 
gotoxy(39,2); printf("Y"); 
// Y осінің жазбасын шығару 
gotoxy(78,16); printf("X");
// X осінің жазбасын шығару 
gotoxy(39,16); printf("0");
// Координаталар басына 0 шығару
// Бағыттауыштарды шығару 
line(ex(0,ymax),ey(0,ymax),ex(0,ymax)-3,ey(0,ymax)+8);
line(ex(0,ymax),ey(0,ymax),ex(0,ymax)+3,ey(0,ymax)+8); 
line(ex(xmax,0),ey(xmax,0),ex(xmax,0)-8,ey(xmax,0)+3); 
line(ex(xmax,0),ey(xmax,0),ex(xmax,0)-8,ey(xmax,0)-3); 
setcolor(WHITE); 
// функция графигі үшін түс қою
// x*sin(x) функциясының графигін шығару 
for(x=xmin;xline(ex(x,f(x)),ey(x,f(x)), ex(x+hx, f(x+hx)), ey(x+hx, f(x+hx))); 
gotoxy (1 , 1); printf("function x*sin(x)"); 
// Жазбаны шығару 
getch(); 
// Кез келген пернені басуды күту 
closegraph (); 
// Графиктік режимнен шығу 

Монитор экранына шығару мәтіндік режимде немесе графиктік режимде 
жүргізіледі. Мәтіндік режимге өткенде видеожады мазмұны өзгермейді. 
Мәтіндік режимнен графиктік режимге өткенде видеожады мазмұны 
тазартылады, сондықтан графиктік режимде мәтіндік ақпаратты шығару 
функцияларын алу қажет. Бұл мақсатқа келесі функциялар арналған: 


Достарыңызбен бөлісу:
1   ...   64   65   66   67   68   69   70   71   ...   79




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

    Басты бет