Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Силлабус CИ_АО 2014-15.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.75 Mб
Скачать

Тақырып. Графикалық операторларды өңдеу

Жоспар:

  1. Графикалық режимді тағайындау.

  2. Түстер палитрасы

  3. Графикалық операторлар

Кілттік сөздер: драйвер, экран кеңейтілімі, графикалық режим, графикалық операторлар.

Иллюстрациялық материал: слайд, электрондық оқулық – Алдабергенова А.О. С++ тілінде программалу негіздері

С++ те графикамен жұмыс жасау үшін Graphics.h және conio.h алғашқы файлдарын іске қосамыз және міндетті түрде conio.h құрамына кіретін getch() процедурасы болуы қажет.

Графикалық режимді тағайындау үшін драйвердің режимін анықтайтын және адаптердің жұмыс режимін тағайындайтын бүтін типті екі айнымалы болуы қажет. Графикалық режимді тағайындайтын айнымалыға міндетті түрде бас әріптермен жазылған DETECT мәні меншіктелуі қажет. Осы мәнді меншіктегенде айнымалыға үнсіз келісім бойынша 0 мәні меншіктеледі де, ол EGA.BGI драйверімен жұмыс жасайды. Осы кезде адаптердің жұмыс режимі 640x480x16 режиміне ауысады.

Графикалық режимді тағайындау процедурасы:

initgraph(&драйвер, &режим номері, ‘EGA.BGI файлының жолы’ ) Графикалық режимді жабу процедурасы- closegraph();

  • putpixel(x,y,c)-putpixel(20,25,2)-нүкте салу. Мұндағы с-түсі, ол 0..15-ке дейінгі мәндерді қабылдайды немесе түстердің ағылшын тіліндегі атын үлкен әріптермен жазу керек. Мысалы putpixel(20,25,RED)- қызыл түсті нүкте шығарады.

  • line(x1,y1,x2,y2)-line(20,25,45,25)-түзу салу

  • moveto(x,y)- moveto(20,25)-нүктені қажетті позицияға орналастыру

  • lineto (x,y)- нүктенің ағымдағы орнынан көрсетілген позицияға дейін сызық сызу

  • circle(x,y,r)-шеңбер салу

  • pieslice(x,y,а1,а2,r) – боялған шеңбер немесе сектор салу, мұндағы а1,а2–бастапқы және соңғы бұрыштар –pieslice(40,100,0,360,20)

  • rectangle(x1,y1,x2,y2)-іші боялмайтын тіктөртбұрыш салу

  • ellipse(x,y, а1,а2,r1,r2)-элипс салу

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

  • bar3d(x1,y1,x2,y2,а, ontop(onoff))- параллелепипед салу

  • arc(x,y,a, b, r)- доға салу, мұндағы a, b –бастапқы және соңғы бұрыш - arc(100,50,0,180,50)

  • fillellipse(x,y,xr,yr)- іші боялған эллипс салу

  • outtext(“Graphica”)-мәтінді экранның сол жақ жоғарғы бұрышына шығару

  • outtextxy(x,y,“Graphica”)-мәтінді x,y позициясына шығару

  • setсolor(c)- осы процедурадан кейін орналасқан объектілердің жиегін берілген с түсімен бояйды. Мысалы setсolor(6); circle(200,150,50)-шеңбердің жиегі қоңыр түске боялады.

  • setfillstyle(int Стиль, int түс)- бояу стилін және түсін береді. Мұндағы стиль 0.. 12 –ге дейінгі аралықты қабылдайды. Түс 0..15 аралығында. Мысалы, setfillstyle(1, 14) немесе setfillstyle(SOLD_FILL, 14)- Бұл кезде осы процедурадан кейн орналасқан іші боялатын объектілер тұтас сары түске боялады, өйткені стильдің 1 немесе SOLD_FILL мәні тұтас бояу дегенді білдіреді.

13-дәріс

Тақырып. Файлдар.

Жоспар:

  1. Файлдар туралы түсінік.

  2. Файлдармен жұмысқа арналған функциялар.

Кілттік сөздер: файл, файлды ашу, файлға мәлімет жазу, файл соңына мәлімет қосу..

Иллюстрациялық материал: слайд.

Файл – сыртқы есте сақтау құрылғыларында (магниттік дискілерде) орналастырылған және мәлімет өңдеу, тасымалдау, кездерінде біртұтас күйде қарастырылатын мәліметтер жиыны.

Файлдармен жұмыс істеу үшін оларды, алдымен, ашу керек, яғни файл туралы мәліметті – атын, адресін программаға белгілі ету қажет.

С тілінде файл ашу fоpen() функциясы арқылы орындалады. Ол сыртқы құрылғыдағы физикалық файлды, мысалы, A:\NUR.DAT, программадағы оның логикалық атымен байланыстырады. Логикалық ат дегенымыз - файлға нұсқауыш, яғни файл туралы мәлімет сақталатын жады аймағына сілтеме жасау. Файлға нұсқауыш сипатталуы тиіс.

Сонымен, файлдармен жұмыс істегенде нұсқауыштар қолданылады. Файлға нұсқауыш мынандай түрде сипатталады:

FILE *fr;

Мұндағы FILE типі - <stdio.h> тақырыптық файлында анықталған құрылым. Бұл нұсқауышты көрсетілген файлмен сол файл ашылғаннан бастап, байланыстырып қоюға болады. Ол үшін келесі функция пайдаланылады:

fopen(“файл адресі/аты”, “қатынасу типі”);

ол файлға нұсқауыш мәнін қайтарады немесе қате болса, NULL мәнін береді.

Мысалы, мынадай оператор орындалуы нәтижесінде

fp=fopen (“ex1.txt”,”w”);

жұмыс бумасындағы ex1.txt файлы оған мәлімет жазу (write) үшін ашылады, ал программада бұл файлды fp нұсқауышы арқылы пайдаланамыз (яғни fоpen() функциясы файлдың сыртқы атын оның программада қолданылатын ішкі логикалық атымен байланыстырады).

Сонымен, файлды ашатын fоpen() функциясының жалпы жазылуы:

fp = fopen (name, mode)

мұнда fp – файлға сілтейтін нұсқауыш; name – файлдың адресін де көрсетуге болатын аты, көбінесе символдық тіркес арқылы жазылады; mode – файл қандай режимде қолданылатынын көрсететін параметр, бұл да символдар тіркесімен төмендегідей түрде жазылады:

r” – файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс);

w” – бос файлды информация жазу үшін ашу;

a” – файл соңына мәлімет қосып жазу үшін оны ашу;

r+” – файлдан информация оқу және оған информация жазу үшін ашу;

w+” – бос файдан информция оқу және оған мәлімет жазу үшін файл ашу (бұрын файл болса ол өшіріледі);

a+” – файлдан информация оқу және оның соңына информация қосып жазу үшін ашу;

t” – файл мәтіндік (текстік) режимде ашылады, ол rt,wt,at. т.с.с. болып көрсетіле береді;

b” – файл екілік режимде ашылады, rb,wb,ab, т.с.с. болып көрсетіле береді;

Келісім бойынша файл көбінесе мәтіндік режимде ашылады.

Файлмен жұмыс істеп болған соң, оны жабу үшін келесі функция қолданылады:

fclose( файл_нұсқауышы) .

Файлға мәлімет жазу/оқу үшін жалпы енгізу/шығару функциялары тәріздес бірсыпыра функциялар пайдаланылады:

fprintf() , fscanf() , fputs() , fgets() , getc() , putc() , fgetc() , fputc()

Бұлардың ішіндегі getc() , putc() , fgetc() , fputc() функциялары әрекеттері ұқсас, айырмашылықтары тек getc() пен putc() макроанықтаулар да, fgetc() және fputc() - нағыз функциялар болып табылады.

Барлық файлдық функциялар проротитері <stdio.h> файлында орналасқан.

Файлдардан мәлімет жазу/оқу әрекеттерін үш топқа бөлуге болады:

- символдарды енгізу/шығару операциялары;

- сөз тіркестері жолдарын енгізу/шығару операциялары;

- блок бойынша енгізу/шығару операциялары.

Символдарды енгізу/шығару операцияларында файлдан бір ғана символ оқылады немесе оған бір символ жазылады. Мысалы:

fgetc(FILE *fp); ашылған файлдан символ оқиды.

fputc(int ch, FILE *fp); ch символы кодын файлға жазады.

Сөз тіркестері жолдарын енгізу/шығару операцияларында бір мәлімет алмасуы кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі жазылады. Мысалы:

fgets(char *S); файлдан мәлімет байттарын ‘\n\’ символы кездескенше біртіндеп оқиды да, оларды S тіркесіне орналастырып, ‘\n\’символын ‘\0’(нөл-терминатор) белгісіне айналдырады.

fgets(char *S, int m, FILE *fp); fp түрінде сипатталған файлдардан байттарды оқып, оларды ‘\n\’символы кездескенше немесе m байт оқылып біткенше S тіркесі мәні ретінде жазып шығады.

Блок бойынша енгізу/шығару операцияларында мәліметтер алмасу олардың бір блогын толық қамтиды. Мысалы:

fread (void *ptv, int size, int n, FILE *fp);

мұнда fp файлынан әрқайсысы size байттан тұратын мәліметтің n блогы ptv нұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала орын дайындап қою қажет).

fwrite(void *ptv, int size, int n, File *fp);

мұнда ptv нұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы size байттан тұратын мәліметтің n блогы ашық тұрған fp файлына жазылады.