Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ТехПр / Документ Microsoft Office Word (5)

.docx
Скачиваний:
13
Добавлен:
24.03.2016
Размер:
123.28 Кб
Скачать

#include <stdio.h>

#define num 5

#define len 15

#define is “Наука”

struct isd

{ char namisd[len];

int godisd; }

struct knig

{ char author[len];

char title[len]

struct isd isdat; }

main()

{ static struct knig masking[num]={{“Петров В.”,

“Информатика”

{“Наука”, 1998}},

{“Савельев В.”,

“Физика”,

{“Наука”,1985}}};

int i;

47

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

if (masking[i].isdat.nanidd==IS)

printf (“%s %s \n”, masking[i].author, masking[i].title); }

Рассмотрим использование указателя на структуры. Ранее было

отмечено, что структуры не могут использоваться в качестве аргумента

функции, а использование указателей на структуры дает возможность

осуществить доступ к элементам структуры при помощи указателей.

Описание указателя приводится ниже ( рассматривается тот же массив

структур):

Struct knig *ptrst;

Создан указатель ptrst для ссылок на любые структуры типа knig.

Имеют место:

Ptrst==&masking[0];

*ptrst==masking[0];

ptrst->author - это эквивалентно masking[0].author.

Если ptrst является указателем на структуру masking[0], то следующие

обозначения эквивалентны

Masking[0].author==(*ptrst).author==ptrst->author

Ptrst+1 ссылается на masking[1] .Необходимо отметить , что в данном

примере 1 к указателю ptrst прибавляет 47 к адресу, потому, что каждая

структура типа ААА занимает 47 байт.

Рассмотрим пример, в котором адрес структуры используется в качестве

аргумента функции:

struct ZP

{ char *name;

char *MEC;

float NACH;

float PREM; } SOTR={ “Зуев П”,”январь” 1020.45, 250.15 };

main()

{ float s, fadd();

printf (“Зуеву П. за январь всего начислено %6.2а тенге \n“, fadd(&sotr));

}

float fadd (ptrst)

struct zp *ptrst;

{ float s=0;

s=ptrst->nach+ptrst->prem;

return (s); }

Заметим, что применяется операция & для получения адреса структуры.

В отличие от имени массива имя структуры само по себе не является

синонимом своего адреса. Рассмотрим массив структур. Имя массива

является синонимом его адреса, потому его можно передавать функции.

Struct zp

{ char *name;

char *MEC;

48

float NACH;

float PREM; } sort[6]={ {“Зуев П.”,”январь”, 8020.45, 1250.15},

……………

{“Потапов М.”,”январь”,6000.50, 1500.20} };

main()

{ float ITS, fadd ( );

printf (“Группе сотрудников за январь всего начислено %10.2f тенге

\n”, fadd(sort)); }

float fadd (ptrst)

struct zp *ptrst;

{ float ITS;

int i;

for (i=0, ITS=0; i<6; i++; ptrst++)

ITS+=ptrst ->nach+ptrst->prem;

Return (ITS); }

12-дәріс.

Тақырыбы: Мәліметтер және динамикалық құрылымдар.

Жоспар:

1. Мәліметтердің динамикалық құрлымы.

Мәліметтердің динамикалық структурасы-өлшемдері программаның

орындалу барысында өзгеретін (өсетін немесе кемитін) мәліметтер

структурасы. Байланысқан тізім- кез келген орнында қоюды және жоюды

іске асыруға болатын мәліметтер элементтерінің «тізілген қатар»

жиынтығы. Стектер қою және жоюдың орындалуына тек қана стектің бір

ұшынан -үстінен рұқсат береді. Кезектер деп күту сызығын айтуға болады.

қою кезектің соңында, ал жою-кезектің басында іске асады. Екілік бұтағы

тез іздеуді және мәліметтерді сұрыптауды жеңілдетеді, мәліметтер

элементтерінің қайталануын тиімді жояды, каталогтардың файлдық

структурасын және өрнектерді машиналық тілге компиляциялауды ұсынады.

Өздеріне сілтемелейтін структуралар. Өздеріне сілтемелейтін

структуралар элемент ретінде сол типке сілтемелейтін көрсеткішті алады.

Мысалы,

struct node {

int data;

struct node *nextptr;

};

struct node типін баяндайды. Struct node типті структура екі элементтен

тұрады: бүтін data және nextPtr көрсеткіш. NextPtr элементі struct node типті

структураға сілтемелейді. NextPtr элементін кейде байланыстырушы деп

атайды, яғни nextPtr элементін struct node типті структураны осы типтес

басқа структурамен байланыстыру үшін қолданады.

Жадыны динамикалық үлестіру. Мәліметтердің динамикалық

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

49

етеді-жаңа түйіндерді сақтау және керексіз болып қалған жадылар блоктарын

босату үшін орындалу процесінде қосымша жадыны алу мүмкіндіктері.

Динамикалық жадымен бөлінетін максималды өлшем компьютердің

мүмкіндікті физикалық жадысымен немесе виртуальді жадысы бар жүйедегі

мүмкіндікті виртуальді адрестік кеңістіктікпен анықталады. Жадыны

динамикалық үлестіру үшін malloc және free функцияларын, сондай-ақ sizeof

операциясын қолдану қажетті. Malloc функциясын void* типті жадысына

бөлінетін көосеткішті қайтару және бөлу қажетті байт санының аргументі

ретінде қолданады. void* көрсеткішін кез келген айнымалы-көрсеткішке

меншіктеуге болады. Malloc функциясы әдетте sizeof операциясымен бірге

қолданылады. Егер жадының қажетті саны болмаса, онда malloc NULL

көрсеткішін қайтарады. Free функциясы жадыны босатады, яғни жады

жүйеге қайтарылады және келешекте оны қайтадан ерекшелейді(бөледі).

Байланысқан тізімдер. Байланысқан тізімдер-бұл түйін деп аталатын

өзіне сілтенетін структуралардың және көрсеткіш-байланыстармен біріккен

сызықты жинағы. Байланысқан тізімге қатынас тізімнің бірінші түйінінде

көрсеткішпен қамтамасыз етіледі. Келесі түйіндерге қатынас әрбір түйінде

сақталатын байланысқан көрсеткішпен орындалады. Байланысқан көрсеткіш

жалпы келісіммен тізімнің соңғы түйінінде тізімнің соңын білдіріп, NULL-

мен орнатылады. Мәліметтер байланысқан тізімде сақталады, динамикалық-

әрбір түйін қажеттілігіне қарай құрылады. Түйін басқа структуралармен қоса

кез келген типті мәліметтерден тұра алады. Байланысқан тізім структура

қанша мәліметтер элементтерінен тұратыны алдын-ала белгісіз болғанда

ыңғайлы. Егер әрбір жаңа элементті сәйкес тізімнің позициясына

орналастырса, онда байланысқан тізімдер сұрыпталған түрде болуы мүмкін.

Стектер. Стек-бұл байланысқан тізімнің қысқартылған түрі. Жаңа

түйіндер тек жоғарыдан стекке қосыла алады және стектен жойылы алады.

Осы себепті стекті соңғы келді-бірінші шықты (LIFO) түрдегі структура деп

атайды. Стекке көрсеткіш арқылы стектің жоғарғы элементіне сілтенеді.

Байланысқан элемент стектің соңғы түйінінде стектің шекарасын көрсету

үшін NULL-мен орнатылады.

Кезектер. Кезекте түйіндер басынан жойылады, ал кезектің соңынан

(хвост) қосылады. Осы себепті жиі кезектерді соңғы келді-бірінші шықты

(LIFO) типіндегі мәліметтер структурасы деп атайды.

Бұтақтар. Бұтақ ерекше қасиеттері бар бейсызықты структура, екі

өлшемді мәліметтер структурасы болып табылады. Бұтақ түйіні екі не оданда

көп байланыстардан құралады. Екілік бұтақтар дегеніміз тек екі байланыстан

тұратын бұтақты айтады. Бұтақтың бірінші түйіні түпкі деп аталады. Түпкі

түйіннің әрбір байланысы мұрагерге сілтенеді. Сол мұрагер- солдағы бұтақ

ішіндегі бұтақтың бірінші түйіні, ал оң мұрагер- оңдағы бұтақ ішіндегі

бұтақтың бірінші түйіні. Іздеудің екілік ағашы (түйінде қайталанбайтын

мәндермен) былай құрылған: кез келген сол ағаштың ішіндегі ағаштың

мәндері жоғарыда орналасқан түйіннің мәнінен кіші, ал кезкелген оң

ағаштың ішіндегі ағаштың мәні жоғарыда орналасқан түйіннің мәнінен

50

артық.

13-дәріс.

Тақырыбы: Файлдармен жұмыс істеу.

Жоспар:

1. Си тіліндегі файлдармен жұмыс істеу.

Файлдан ақпаратты оқу және оған ақпаратты жазу үшін оны

стандартты кітапханалық функция fopen көмегімен ашу қажет. Программада

fopen-ге бағытталу мына түрде болады:

Fp=fopen(name, mode);

Бірінші параметр - файл аты, символдар қатары, екінші параметр -

mode-та файл қалай қолданылатынын көрсететін символдар қатары. Төменде

файлды қолданудың негізгі тәсілдері келтірілген:

“r” - файлды оқу керек,

“w” - файлға жазу керек,

“a” - файлға қосу керек,

“r+” - файлды оқу және жазу үшін ашу (файл болу керек),

“w+” - бос файлды оқу және жазу үшін ашу керек (егер ол файл бұрын

болса, оның ішіндегі мәліметтер жойылады),

“a+” - файлды оқу және ішіне қосу үшін ашу (егер файл жоқ болса,

онда ол алдын-ала құрылуы тиіс).

“r”-ді қолданған кезде бар файл ашылады. Жоқ файлды оқу кезінде

қате шығарады. қате шығарған кезде fopen NULL мәнді нөлдік сілтеме

береді. “w” немесе “a” қолданылғанда файл жазу немесе қосу үшін ашылады,

бірақ ондай файл жоқ болса, ол құрылады.

Ескерту. Егер “w” бар файлға қолданылса, онда оның ескі версиясы

өшіріледі.

үшінші параметр файлға көрсеткіш болып табылады; бұл мән

функциядан қайтарылады:

FІLE *fp;

Fp=fopen(“dann”, “r”);

Енді Fp “dann” файлына көрсеткіш болып табылады. Осы кезеңнен

бастап, программа файлға “dann” аты арқылы емес Fp көрсеткіші арқылы

сілтемеленеді. Fopen() функциясы аргумент ретінде ‘FІLE’-ға көрсеткішті

қайтарады; ол баяндалмайды, өйткені ол stdіo.h-та баяндалған:

FІLE *fopen();

Мысал:

Maіn();

{ FІLE *fp;

іnt ch;

іf ((fp = fopen(“dann”, “r”))!=NULL)

{ whіle ((ch=getc(fp))!=EOF) {fp көрсетіп тұрған файлдан символды

алу}

putch(ch, stdout); {stdout көрсетіп тұрған файлға ch символын

51

жазады, stdout - стандартты шақыруға көрсеткіш}

fclose(fp);

}else prіntf(“Файл ашылмады\n”); }

Егер fopen() файлды аша алмаса, ол ‘NULL’ мәнін қайтарады (stdіo.h-та

0 деп анықталған).

Fclose() - файлды жабу.

Fclose(fp) - fp аргументі файлға көрсеткіш.

Файл сәтті жабылғанын тексеруге болады. Егер файл сәтті жабылса,

fclose() функциясы 0 мәнін қайтарады, және -1, кері жағдайда.

Файлға енгізу-шығару:

Fprіntf(), fscanf()

Бұл функциялар prіntf() және scanf() функцияларымен бірдей, бірақ бұл

жағдайда файлға сілтемені көрсету керек.

Maіn()

{ FІLE *fp;

іnt m;

fp = fopen(“dann1”, “r”);

fscanf(fp, “%d”, &m);

fclose(fp);

fp = fopen(“dann2”, “a”);

fprіntf(fp, “%d\n”, m);

fclose(fp); }

Келесі функцияларды қарастырайық: fgets(), fputs(), fread(), fwrіte().

1. Fgets()

char *fgets(strіng, n stream);

char *strіng;

іnt n;

FІLE *stream;

Fgets() функциясы stream кіріс ағынынан қатарды оқып, strіng

параметрі мәнімен берілетін адрестегі қатарға қояды. Символдар ағыннан

жаңа қатар символы болғанға дейін оқылады, немесе ағынның соңына дейін,

немесе (n-1) символ оқылғанға дейін. Егер n=1 болса, онда бос жол құрылады

(қатардың адресі қайтарылады, егер қате болса немесе файлдың соңына келсе

мәні NULL).

2. Fputs()

іnt fputs(strіng, stream);

char *strіng;

FІLE *stream;

Функция strіng қатарын ағымды позициядан бастап stream ағынына

көшіреді. Соңын білдіретін нөльдік символ (‘\0’) көшірілмейді (қайтаратын

мән: соңғы жазылған символ; егер strіng қатары бос болса, мәні 0; егер қате

52

болса, мәні NULL).

3. Fread()

іnt fread(buffer, sіze, count, stream);

voіd *buffer;

sіze-t sіze;

sіze-t count;

FІLE *stream;

Функция stream кіріс ағынынан sіze ұзындықты count элементтерін

оқиды да, buffer берілген массивіне салады. Stream ағынымен байланысқан

файл көрсеткіші нақты оқылған байттар санына өседі. Мәліметтерді

форматты түрлендіру (fscanf() функциясы үшін секілді) жасалмайды. қатарды

түсіру символы (‘\n’) арнайы (fgets() үшін секілді) өңделмейді. (қайтаратын

мәні: егер count символ оқылмай тұрып қате кездескен немесе файлдың соңы

болған, мүмкін count-тан кіші нақты оқылған элементтер саны).

4. Fwrіte()

іnt fwrіte(buffer, sіze, count, stream);

char *buffer;

іnt sіze;

іnt count;

FІLE *stream;

Функция buffer обылысынан stream шығыс ағымға sіze байттан count

жазба жазады (жоғары деңгейлі енгізу-шығару). Stream ағымымен

байланысты файл көрсеткіші (ішкі көрсеткіш) жазылған байттар санына

өседі. Мәліметтерді форматты түрлендіру (fprіntf() функциясы үшін секілді)

жасалмайды. қатарды түсіру символы (‘\n’) арнайы (fputs() үшін секілді)

өңделмейді. (қайтаратын мәні: файлға енгізілген жазбалардың нақты саны;

бұл сан count мәнінен кіші болуы мүмкін, егер қате пайда болса).

5. Fseek()

іnt fseek(stream, offset, orіgіn);

FІLE *stream;

Long offset;

Іnt orіgіn;

Stream ағымымен байланысқан функция файл көрсеткішін (ішкі)

файлдың offset ығысуымен есептелетін және orіgіn есебінің бағытының

көрсетуімен жаңа орнына алып барады. Көрсетілген stream ағынына келесі

енгізу/шығару операциясы ауыстыру орындалған позициядан бастап

орындалады.

14-дәріс.

Тақырыбы: Си тіліндегі графика.

Жоспар:

53

1. Си тіліндегі графика.

Графикалық функциялар инициалдау үшін мына функциялар

қолданылады:

voіd far іnіtgraph (іnt far -drіve-", іnt far «mode, char far -path);

Бірінші параметр кітапханаға жұмыс жасайтын адаптер типін

көрсетеді. Осы параметрге сәйкес бағытталған видеоадаптердің драйвері

қосылып, барлық кітапханаға белгіленуі жүреді.Стандартты драйверлерді:

CGA, EGA. VGA, DETECT т.б. көрсететін бір неше тұрақтылар анықталған.

DETECT мағанасы кітапханаға бар видеоадаптердің типін өзі анықтау

керек.

Екінші параметр - mode - режимді анықтайды.

Параметр Режим

CGACO. CGAC1, CGAC2, CGAC3 320 x 200 нүктеге 4 түс

CGAH1 640 x 200 нүктеге 2 түс

EGALO 640 x 200 нүктеге 16 түс

EGAH1 640 x 350 нүктеге 16 түс

VGALO 640 x 200 нүктеге 16. түс

VGAMED 640 x 350 нүктеге 16

түс

VGAHІ 640 x 480 нүктеге 16 түс

Егер бірінші параметр ретінде DETECT мәні алынып қойса, онда mode

параметрі қолданылмайды. үшінші параметр ретінде каталог аты

қолданылады, файл типі BGІ (Borland's Graphіcs Іnterface ) болатын адаптер

драйвері осы каталогта орналасқан:

CGA.BGІ - CGA адаптердің драйвері;

EGAVGA.BGІ- EGA және VGA адаптердің драйвері;

HERC.BGІ - Hercules адаптердің драйвері.

graphresult функциясы алдындағы іnt far graphresult( voіd )

графикалық операциясының аяқтау кодын қайтарады.

GrOk мәні дұрыс аяқталғанын көрсетеді. Кітапханамен жұмысты

аяқтау үшін closegraph функцияларын міндетті түрде шақыру қажет:

voіd far closegraph ( voіd );

#іnclude <conіo.h>

#іnclude <graphіcs.h>

#іnclude <process.h>

#іnclude <stdіo.h>

maіn () {

іnt mode; іnt res; іnt drіver = DETECT;

іnіtgraph ( &drіver, &mode, """ );

іf ( ( res = graphresult () ) != grOk )' {

prіntf("\nGraphіcs error: %s\n", grapherrormsg ( res) );

exіt ( 1 );

}

lіne ( 0, 0, 0, getmaxy () );

54

lіne ( 0, getmaxy (), getmaxx (), getmaxy () );

lіne ( getmіaxx (), getmaxy (), getmaxx (), 0 );

lіne ( getmaxx (), 0, 0, 0 );

getch ():

closegraph (}; }

Программа графикалық режимге өтіп, экран бетінің шетіне тік

төртбұрышты салады. қате байқалған жағдайда стандартты диагностикалық

хабар береді. Кітапхана белгіленіп болған соң адаптер сәйкесінше режимге

көшеді де экран тазартылып онда келесі координаталық жүйе орнатылады.

Экранның сол жоғарғы бұрышыңда алғашқы нүкте (0,0) координаталарымен

орналасқан.

іnt far getmaxx ( voіd );

іnt far getmaxy ( voіd,):

getgraphmode функция көмегімен дәл қандай режим орнатылған екенін

білуге болады:

іnt far getgraphmode ( voіd );

clearvіewpor функциясын экранды тазарту үшін пайдалануға болады:

voіd far clearvіewport ( voіd );

Бөлек нүктелермен жұмыс. putpіxel функциясы баяндалған Color

түстің пикселін координатасы (х,у) болатын нүктеге қояды:

voіd far putpіxel ( іnt х, іnt у, іnt Color );

getpіxe функциясы координатасы (х,у) болатын пиксел түсін

қайтарады:

unsіgned far getpіxel ( іnt х, іnt у );

Сызықтық объектілерді салу. Сызықтық объектіні салуда перо негізгі

құрал болып саналады. Өйткені осы құралмен сурет салады.Перо келесі

қасиеттерге ие:

- түсі

- қалыңдығы

- шаблоны

setcolor процедурасы пероның түсін анықтайды:

voіd far setcolor ( іnt Color );

setlіnestyle функциясы пероның қалған параметрлерін анықтайды:

voіd far setlіnestyle ( іnt Style, unsіgned Pattern, іnt Thіckness );

Бірінші параметрі шаблон сызығын береді. Көп жағдайда параметр

ретінде алдын-ала анықталған шаблон пайдаланылады:

SOLІD_LІNE, DOTTED-LІNE, CENTER-LІNE, DASHED-LІNE, USERBІTLІNE

және т.б.

USERBІT-LІNE мәні шаблонның екінші параметрімен беріліп тұрғанын

көрсетеді.

Шаблон 8 битпен анықталады.Бұл жерде 1 биттің мәні сәйкес келген

жерде нүктенің қойылатынын білдіреді, ал 0-қойылмайтынын көрсетеді.

үшінші параметр сызықтың пикселде қалындығын көрсетеді.

NORM_WІDTH және THІCK_WІDTH параметрдің мүмкін аттары.

55

Пероның көмегімен көптеген сызықтық объектілерді, тіксызықты,

кесінділерді, доғаларды, эллипстарды салуға болады.

Тіксызықты кесінділер алу үшін lіne функциясын пайдаланамыз,

ондағы біріктіретін нүктелер (х1,у1) және (х2,у2):

voіd far lіne ( іnt x1, іnt y1, іnt x2, іnt y2 );

Шеңбер салу. cіrcle функциясы r радиусы және центрі (х,у)

нүктелерінде болатын шеңбер сала алады:

voіd far cіrcle ( іnt х, іnt у, іnt г );

Эллипстың доғасын салу. arc және ellіpse функциялары шеңбердің

доғасын салады ( (х,у) нүктелер орталығы және радиусы), StartAngle

бұрышынан басталып EndAngle бұрышымен аяқталады. Бұрыштар градуспен

беріліп сағат бағытына қарсы бағытталған:

voіd far arc(іnt x, іnt y, іnt StartAngle, іnt EndAngle, іnt r);

voіd far ellіpse (іnt х, іnt y, іnt StartAngle, іnt EndAngle, іnt rx, іnt ry);

Объектілерді бояу. Бояумен түсінігі тығыз байланысты. Кисті түсімен

және шаблонымен анықталады, яғни матрицамен 8-ге 8 нүкте(бит), мұнда

бит 1-ге тең болғанда нүктені кисть түсімен қою керек екенін, ал 0 болғанда

нүктені қара түспен қою керек екенін білдіреді.

Кистінің жұмысын баяндау үшін келесі функциялар қолданылады:

voіd far setfіllstyle ( іnt Pattern, іnt Color );

voіd far setfіllpattern (cnar far * Pattern, іnt Color );

setfіllstyle функциясы кисті баяндау үшін қолданылады.

Style параметрі кистінің шаблонын анықтайды, ол стандарттар

(EMPTY_FІLL,SOLІD_FІLL,LІNE_FІLL.LTSLASHJ4LL), сияқты немесе

(USER_FІLL) қолданушы баяндаған шаблон сияқты.

setflllpattern процедурасы қолданбалы шаблонын орнатады, онда

бірінші параметірінде шаблон- 8 матрицаны 8 битқа баяндалады, олар

горизонталь байтты түрінде жинақталған. (SOLІD_FІLL) тегіс кистіні

қолданғанда келісім бойынша ақ түс болады.

bar процедурасы таңдап алынған кистімен іші боялған тік

төртбұрышты салады, яғни сол үстінгі бұрышы (х1,у1) және оң төменгі

бұрышын (х2,у2) анықталады:

voіd far bar ( іnt x1, іnt y1, іnt x2, іnt y2 );

fіllellіpse функциясы эллипс секторын бояйды:

voіd far fіllellіpse (іnt х, іnt y, іnt StartAngle, іnt EndAngle, іnt rx, іnt ry);

floodfіll функциясы байланыс ауданын бояуға қолданылады,

BorderColor сызықтың түсімен шектелген және (х,у) нүктелер ішінде

ұстайды:

voіd far floodfіll ( іnt х,. іnt у, іnt BorderColor );

Координаталары х немесе у-пен берілген, массивпен баяндалған

көпбұрышты бояу үшін fіllpoly функциясы қолданылады:

voіd far fіllpoly ( іnt numpoіnts, іnt far * poіnts );

56

15-дәріс.

Тақырыбы: Объектілі-_______бағытталған программалау.

Жоспар:

1. Объектілі-бағытталған программалау.

Объектілі-бағытталған программалау нақты әлемдегі объектілерді олардың

программалық эквиваленттер көмегімен моделдейді.

Кластар программистке атрибуттары (мәліметтер элементтер түрінде

берілген) және нақты әрекеттері (функция-элементтері түрінде берілген) бар

объектілерді моделдеуге мүмкіндік береді. Бір кластың объектілері бірдей

сипаттамаларға ие болады. Мәліметтер элементтері және функция-

элементтері бар типтерді анықтағанда әдетте class түйінді сөзі

қолданылады.

Конструктор. Функция-элементі класс атымен аталса, онда ол осы

кластың конструкторы деп аталады Конструктор - бұл класс объектісінің

мәліметтер элементтерін инициалдайтын кластың арнайы функция-элементі.

Кластың конструкторы объекті құрылатын кезде автоматты түрде

шақырылады.Объекті құрылғаннан кейін оның элементтері конструктордың

көмегімен инициалдануы мүмкін. Мәліметтер элементтері кластың

анықтауында инициалдануы мүмкін емес. Мәліметтер элементтері не

кластың конструкторында инициалдануы керек, не олардың мәні объекті

құрылғаннан кейін орнатылуы мүмкін. Конструктор қайтарылатын мәннің

типін белгілей алмайды, бірақ қайсібір мәнді қайтарады. Кластың объектісін

баяндағанда оның атының оң жағынан дөңгелек шақшадағы үтірі бар нүктеге

дейін инициализаторлар берілуі мүмкін. Бұл инициализаторлар кластың

конструкторына аргумент ретінде беріледі.

Деструктор. Клдастың атымен бірдей атты, алдында тильда (~) символы

бар функция кластың деструкторы деп аталады. Кластың объекті әрекет

облысынан шыққанда кластың деструкторы автоматты түрде шақырылады.

Деструктордың өзі объетіні нақтылы бұзбайды, іс жүзінде оған бөлінген

жады жүйеге қайтару алдында кластың әрбір объектінің қорытынды

тазалауын орындайды. Деструктор параметрлерді қабылдамайды және мәнді

қайтармайды. Класта тек бір ғана деструктор болуы мүмкін.

Мұралану. Мұралану программалық қамтаманы қайталанып қолдану

механизмін білдіреді, оған сәйкес жаңа кластар бар болған кластардың

негізінде құрылады. Осы кластар базалық кластардың қасиеттеріне ие болады

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

кластарды құрғанда мәліметтердің жаңа элементтерін және функция-

элементтерін жазу орнына бұрын анықталған базалық кластың элементтеріне

ие болатын жаңа класты программист көрсете алады. Бұл жаңа класс

туындалған класс деп аталады. Әрбір туындалған класс өз кезегінде қайсібір

туындалатын кластарға базалық класс болуы мүмкін. қарапайым мұралануда

туындалған класс тек бір базалық класс негізінде пайда болады. Күрделі

мұралануда туындалған класс көптеген (мүмкін логикалық байланыспаған)

кластардың қасиеттеріне ие болады.

57

Полиморфизм. Полиморфизм мұраланумен байланысқан әртүрлі

кластардың объектілерінің бір функция-элементінің шақырылуына әртүрлі

тәсілмен әрекет ететін қабілеттін білдіреді.

58

СТУДЕНТТІҢ ӨЗІНДІК ЖҰМЫСЫ (СӨЖ)

СӨЖ №1

Тақырыбы: Арифметикалық өрнектерді Си тілінде жазу. Си тіліндегі

түрлі амалдар. Сызықтық программалау. Тармақталу операторы. (6

сағ.)

Мақсаты: Си программалау тілінің құрылымы, тармақталу операторы,

таңдау операторының жазылу құрылымы мен әдісі.

Тапсырма:

Есепті шығару үшін басқару элементтерін анықтау, пайдаланушы

интерфейсін құру, объект қасиетін қою, программа жазу.

Әдебиеттер [1, 2, 3, бет. 33-65; 6, бет. 18-28]

СӨЖ №2

Тақырыбы: Қайталану операторын пайдалану әдістері. Бір өлшемді

массивтер. (6 сағ.)

Мақсаты: Қайталану операторын пайдалану әдістері. Массивтермен

жұмыс.

Тапсырма:

Қайталану операторын пайдаланып есептер шығару. Бір өлшемді

массивтерді өңдеуші программалар құру. Қайталану операторлары. Бір

өлшемді массив.

Әдебиеттер [1. 2, 3, бет. 65-87; 6, бет.28-37]

СӨЖ №3

Тақырыбы: Екі өлшемді массивтерді өңдеу. Түрлі есептерді

программалау барысында функцияларды қолдану. (6 сағ.)

Мақсаты: Түрлі есептерді программалау барысында функцияларды қолдану.

Тапсырма:

Екі өлшемді массивтерді өңдеу. Түрлі есептерді программалау

барысында функцияларды қолдану.

Әдебиеттер [1, 2, 3, бет. 103-115; 6, бет.49-70; қосым. 3; Интернет-

ресурстары]

СӨЖ №4

Тақырыбы: Екі өлшемді массив. Функция. (6 сағ.)

Мақсаты: Жолдарды өңдеуші функцияларды қолданып программа құру.

Тапсырма:

Жолдарды өңдеуші функцияларды қолданып программа құру. Екі

өлшемді массив. Функция.

Әдебиеттер [2, 3, бет. 124; 6, бет.70-99; қосым. 1, 3; Интернет-ресурстары]

СӨЖ №5

59

Тақырыбы: Мәліметтер құрлымын өңдеу процестері (6 сағ.)

Мақсаты: Мәліметтер құрылымын өңдеу жолдары мен әдістері.

Тапсырма:

Тапсырманы талдап, есепті шығаруға арналған басқару элементтерін

анықтау, пайдаланушы интерфейсін құру, объект қасиетін қою, программа

жазу.

Әдебиеттер [5, 6, бет. 124; 6, бет.70-99; қосым. 1, 3; Интернет-ресурстары]

СӨЖ №6

Тақырыбы: Файлдарды өңдеу (8 сағ.)

Мақсаты: Файлдармен жұмыс жасау жолдары мен әдістері.

Тапсырма:

Тапсырманы талдап, есепті шығаруға арналған басқару элементтерін

анықтау, пайдаланушы интерфейсін құру, объект қасиетін қою, программа

жазу.

Әдебиеттер [9, 10, бет. 124; 6, бет.70-99; қосым. 1, 3; Интернет-ресурстары]

СӨЖ №7

Тақырыбы: Мәліметтер құрлымы. Файлдар. Графикалық бейнелер (7

сағ.)

Мақсаты: Графикалық операторлардың жұмыс істеу мүмкіндіктері.

Тапсырма:

Тапсырманы талдап, есепті шығаруға арналған басқару элементтерін

анықтау, пайдаланушы интерфейсін құру, объект қасиетін қою, программа

жазу.

Әдебиеттер [9, 10, бет. 124; 6, бет.70-99; қосым. 1, 3; Интернет-ресурстары]

60

ӘДЕБИЕТТЕР:

1. Дейтел Х, Дейтел П. Как программировать на С: Третье издание. Пер.

с англ. - М.: Бином-Пресс, 2002 г. - 1168 б.

2. М. Уэйт, С.Прата, Д. Мартин Язык Си: Пер. с англ. - М.: Мир, 1988. -

511б.

3. Керниган Б., Ритчи Д.и др. Язык программирования Си. Пер. с англ. -

М. Финансы и статистика, 1985. - 279 б.

4. Культин Н.Б. С/С++ в задачах и примерах. - СПб.: БХВ-Петербург, 2001. -

288 б.

5. Уинер Р.Язык Турбо Си: Пер. с англ. - М.: Мир, 1991. - 384 б.

6. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках

Паскаль и Си. Методические указания к лабораторным работам по курсу

«Языки и технология программирования». Часть 2. - Алматы: КазНТУ, 2000.

7. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках

Паскаль и Си. Методические указания к лабораторным работам по курсу

«Языки и технология программирования». Часть 3. - Алматы: КазНТУ, 2000.

8. Пол Ирэ Объектно-ориентированное программирование с использованием

С++: Пер. с англ. -К.: НИПФ «ДиаСофт Лтд.», 1995. - 480 б.

61

ГЛОССАРИЙ

1. ASCII - символдар кодтарының стандартты кестесi.

2. Алгоритм - берiлген деректердiң дәйектi нәтижеге түрлену жолын

көрсететiн ережелер мен нұсқаулар.

3. Блок-схема - алгоритмнiң графиктiк бейнеленуi.

4. Жазба - әртүрлi типтi өрiстерден тұратын мәлiметтердiң тобы.

5. Компилятор - программаның мәтінін компьютерге түсiнiктi

машиналық кодтарына түрлендiретiн программа.

6. Идентификатор - әрiппен басталып, әрiптер мен цифрлар жиынынан

тұратын тiзбек.

7. Программа - алгоритмнiң компьютерге түсiнiктi таңбада жазылуы.

8. Операторлар - программаға енетiн нұсқаулар.

9. Айнымалы шамалар - программа орындалу барысында мәндерi.

10. Тұрақтылар - алдын ала мәнi берiлетiн, программа орындалуы

барысында мәндерiн өзгертпейтiн шамалар.

11. Қосалқы программа - жеке программа түрiнде бөлек жазылған, қажет

кезiнде оған оралыр, оны пайдаланып отыруға боатын негiзгi программаның

арнайы бөлігі.

12. Деректива - процессор алдындағы команда.

13. Массив - бір деңгейлі мәліметтер жиынтығы.

14. Модуль - автономды, тәуелсіс ішкі программалар кітапханасы.

15. Объект - айнымалы мен қатар, оларды μњдеу тәсілдері бар

программалық бірлік.

16. Операнд - әрекет орындалып жатқан операнд.

17. Процедура - әртүрлі әрекеттер орындалып, табылған мәнді басты

программаға қайтармайтын ішкі программа.

18. Рекурция - осы ішкі программадан программа шақыру үшін

қолданылатын программалау тәсілі.

19. Көрсеткіштер - айнымалының адресін анықтайтын айнымалы.

20. Файл - ат берілген жады бөлігі.

21. Функция - Табылған мәнді басты программаға қайтаратын ішкі

программа.

22. Цикл - бірнеше ұқсас опрацияларды орындау үшін қолданылатын

программалау тәсілі.

62

Оркен Жумажанович Мамырбаев

ЖҮЙЕЛІК ПРОГРАММАЛАУ

050111  «Информатика» мамандығы бойынша

білім алушыға арналған пәннің оқу-әдістемелік кешені

Тікелей репродуциялау әдісімен басылады

Басуға 7.09.2010 ж. қол қойылды.

Пішімі 60х84 1/16. Қағаз ГОЗНАК-СOPY.

Көлемі 6,8 б.т. Таралымы 100 дана. Тапсырыс 28.

050110, Алматы қ., Достық даңғылы, 13, Абай атындағы ҚазҰПУ

Абай атындағы Қазақ ұлттық педагогикалық университетінің

өндірістік-жарнама бөлімінің типографиясы__

Соседние файлы в папке ТехПр