Слайд 1
Графикалық режим.
Тустер. Операторлар
Слайд 2
Түсті монитордың мәтіндік режимінде әр символдың түсін не экранды 16 түрлі
түстің; біреуі арқылы СRТ модулінде жазулы төмендегі операторлар бойынша бояп көрсетуге болады:
TextBackGound (<түс>) - экран кеңісіігін бояу;
TextColor (<түс>) - символдарды бояу.
(Мұндағы <түс> орнына түс атауы не оньщ коды енгізіледі.)
Режимде пайдаланылатын түстер мен оларга сәйкес кодтар (түстер саны — 16):
Слайд 3
Вlаск = 0 (қара),
Вlue = 1 (көк),
Grin = 2 (жасыл), Суаn =3 (көгілдір),
Red = 4 (қызыл), Маgentа = 5 (күлгіy сары),
Brown = 6 (қоңыр), LightGray =7 (апіық сұр),
DarkGray — 8 (күң^ірт сүр),
LightBlue = 9 (ашьпқ көгілдір), .... ,
Yellow = 14 (ашык сары), White = 15 (ақ).
Слайд 4іпіі^гарһ (бОгіүег, СМоде, РаЙі) — экранды графикалық ре~ көшіру.
Мысалы, TextBackGound
(red)— символдың айналасындағы экран кеңістігія қызыл түске бояу.
TextColor (14) — сиьшолдарды сары түспеы кврсету.
TextBackGound операторьнда алғашқы жеті түстің бірі пайдаланылуы мүмкін.
Экраннын; кез келғен (х, у) айқындамалық нүктесінен (позициясынан) бастап мәтінді экранға шыгаруга болады. Нуктеге курсорды орналастыру операторы: СоtоХҮ(х, у), мысалы
СоtоХҮ (15,20); Write (‘Біз студенттерміз’)
Слайд 5СоtоХҮ (15,20); Write (‘Біз студенттерміз’)
операторларының орындалуы алдында курсор 15-баган мен 20-жолдың
қиылысу нүктесіне орналасады.
Турбо Паскальдың графикалық режимінде пайдаланылатын 80-ге жуық процедуралар (операторлар) мен функциялар бар. Олар жуйелік программаның GRAPH модуліңде жазылып қойылған.Модульдің ашу нүсқауы- USES GRAPH, оны СRТ модулін ашу нүсқауымен бірге программаның басына енгізіп қойса болғаны, мысалы, USES crt, graph,; GRAPH модудінің операторларына енгізілетін саңдар INTEGER типті болуы тиіс. Графикалық оператордар:
* INitgraph (GDriver, GMode, Path) — экранды графикалық режимге көшіру. Мүндағы GDriver — драйвер нөмірі, GMode — режим нөмірі, Path — қажетгі драйверді пайдаланатын файлға жол. Мысалы, компьютер типіне қарай, оның орнына 'C:\tp\bgi','C:\tp7\bgi' не 'C:\tp\''' ('' — Бос аралық) жолдаръның бірін енгізу мүмкін (bgi — графикалык драйвердің кеңейтілуі). Драйверді автоматты түрде аныктау үшін әдетте мәні 0-ге тең Detect атаулы тұрақты пайдаланылады. Олардың дүрыс еңгзілуін режимді орнату функциясы (Graph Result) арқылы тексеруге болады. Оның мәні түрақты және дұрыс кезінде нөл мәнін қабыддайды. Оның жазылу тұрі:
Uses crt, graph; (40)
Слайд 6Var gdriver, gmode, d3:integer;
Begin clrser;gdriver:=detect; intigrrrraph (gdriver, gmoddde,’’) ;
D3:=GdraphResult; if d30
then Writeln ('Режим қате орнатыл-
ған1); Halt(1)
end.
-Setbcolor (<түс>) - экран кеңістігінің түсін орнату. Бұл оператор программаға енгізілмесе, экран ағымдық қара не көгілдір түске боялып корсетіледі.
-SetColor (<түс>) — кескін тусін орнату. Оператор енгізілмесе, кескін ақ түске боялып көрсетіледі.
- GetColor - SetColor операторы орындалған соң ағымдық тұсті қайта орнату. '
- Line (хі, уі, х2, у2) - (хі, уі) нүктесінен (х2, у2) нуктесінен (х2, у2) нуктесіне дейін тузу кесіндісін сызу.
- Rectangle (хі, уі, х2, у2) - сол жақ жоғарғы тебесі (хі, уі), оң жақ төменгі төбесі (х2, у2) болатын қабыргалары кординат өстеріне параллелъ тік төртбұрыш сызу.
- Circle (х, у, R) - орталық нүктесі (х, у), радиусы R болатын шеңбер сызу.
- Аre (х,у, grl, gr2,R) - градуспен берілген grl, gr2 бүрыштарының
аралығында орталық нұктесі (х, у), радиусы Я-ге тең дөңгелек догасын сызу
- Pieslice(х,у, grl, gr2,R) - градуспен берілтен grl, gr2 бүрыштарының
аралығында орталық нұктесі (х, у), радиусы Я-ге тең дөңгелек секторын сызу - Ellipse (х,у, grl, gr2,R)x,Ry) - градуспен берілген grl, gr2 бүрыштарының
аралығында орталық нұктесі (х, у), биктігі мен ені Rx,Ry болатын эллипс сызу
-PutPixel (x,y,< түс > )- түс бояуына боялган(х, у) нүктесін орнату.
-OuttextXY(х, у, '<мәтін>') — (х, у) иүктесінен бастап дөйекшелер ішінде жазылған мөтінді экранға шығару.
-GetmaxX,GetmaxY— экранның көлденеңі мен биікгігі бойынша сәйкес нүктелер санын қайтарып беретін функцияяар.
— CloseGraph — графикалық режимді жауып, мәтіндік режимге өту;
- GraphResult - жүйенің графикалық режимге дұрыс өтуін тексеру функциясы. Ол INTEGER типті жөне, қате болмаса, оның мөні 0-ге тең, т.б.
Слайд 7 1 -мысал. Мәтіңдік режимде (10, 20) нүісгесінен бастап эқранның көгілдір
кеңістігінде сары түске боялған СӘЛЕМ сөзін шығару керек. Одан өрі графикалық режимге өтіп, қалаған түстерге боялган шеңбер, тік төртбүрьш, сектор сызу керек. Сектордың ішіне '30%' жазуы енгізіліп қойылсын.
Программаны мьнадай түрде қүруға болады:
Uses crt, graph;
Var d1,d2,d3:integer;
Begin clrser;
Textbackground(cyan);Textcolor (yellov);
Gotoxy (10,20); Write (‘Calem…’);
Delay (40000); d1:=detect;');
If d3<>then;
Begin writeln (Трафикгік режимді орнату қатесі');
halt (1) end else
Setbkcolor (3); Setbkcolor (15); Сігсlе (300, 200, 60);
Rectangle(180, 300, 480, 460); Pieslice (100, 100, 0,50, 80);
Outtext xy(135, 80, '30%')
end
Слайд 8 Масштабты график сызу
2-мысал. [а; b] кесіндісінде үздіксіз (f)функциясының масштабтык графигн
сызу керек.
Программаның бір турі
Program graf;uses crt, graph;
Const n5=100; {n5- ті кемітіп алу да мумкін}
Type ms= array [0..n5] of real;
Var y : ms; a,b,m1, x1, x2 ,x,h,y1,f1,f2:real;
n,m,n1,n2,k,,c,d,x0,y0: integer;
Function fn (p: real): real;
Begin
Fn:=…{Көп нүкте орнына f(p) функциясын
{ Енгізініз, мысалыбsin (2*p)}
End.
Слайд 9Write(‘[a;b]-кесінді ;а,в мәндері =?‘);
Readln (a,b); Writeln;
Write (‘n-[a;b]-ны бөлу саны , оны
‘);
Writeln(*’10,<=n<100 аралыгында таңдап‘);
Write (‘алуга болады: n=?); readln(n); Writeln;
Writeln(‘ішіне график сызылатын тік төртбурыш’);
Write(‘ ыңгайлы түрде таңдап алыңыз:’);
Write (‘eni ,<639 (n1), biktigi ,479 (n2)
Болсынж n1,n2,=?);eadln(n1,n2);
{m1,m2-x,y өстері бойынша масштабтар}
if (а>=0) аnd ( (d>0) tһеn
begin m1:=n1/b; х0:=0 end;
іf (а<0) and (b>0) then begin
m1:=n1/(b-а); хО:=32О end;
if (а<0) and (Ь<=0) then begin
m1:=n1/аbs (а); хО:=638 end;
х1:=round(х0+m1*а); х2:=гоund(хО+m1.*Ь);
Һ:=(Ь—а)/n; k=0; х:=а;
While х<=b do
begin у[к]:=fn(х); х:=х+һ; к:=к+1 end;
f1:=у[0];і2:=у[0];
(fункцияның ең үлкен және ең кіші мәндерін есептеу)
Ғоr к:=1 to n do
begin
if у[к]f2 һеn f2:= y[k]
end.
функция алыңыз',); delay (3000);
Ехit end; m2:=n2\(f2-f1);
if (f1>=0) and (f2>0) then уО:=438;
if (f14,) аnd (f2.0) tһеn у0:=2;
if (f14,) аnd (f2.0) tһеn у0:=240;
{Масштабты график сызу}
с:=detekt integer grарһ(с, d,’C:\tp7\bgi’);
line(0, уО, getmaxx, уО); line (х0, 0, хО, getmаху);
while x1,=x2 do begin
у1:=уО -m2*fn ((х - х0)/m1);
putpixel (round (х1), гоилсі(уі round (y1)white),
х1:=хl+2 end; Readkey
end.
Слайд 11Ескерту.[а,в] кесіндісінде берілген функцияның масштабты графигін сызуда ені N1, биіктігі N2-ге
тең тік төребүрыш алынган соң функциянын; осы кесінді ішінде ең кіші және мөндері (Ғ^ , Ғ^ ) және х, у өстері бойынша функция графигін созылу (сыгылу) еселікте;рі (М1, М2) төмеңдегі формулалар бойынша есептелді: М1 = N1 / (В - А); М2 - N2/ (Ғш„ - Ғ^). График экранда толық көрінетіидей етіп, координаттар жүйесінІң бас нүктесін ( (хО, уО) ) таңдап алған соң масшгабты функцияньщ графигі у =уО -М2*Ғ(х—х0)/М1) формуласы бойынша сызылатыны математикадан беліілі. (Формулада М2 еселігі минус (—) таңбасымен алынуына байланысты,экранда у әдеттегідей жогары багытталатын етіп сызылады.)