ПоәК 042-39 104/03-2013 №1 басылым 18. 09. 2013ж



жүктеу 0,87 Mb.
бет8/8
Дата06.02.2020
өлшемі0,87 Mb.
#28423
1   2   3   4   5   6   7   8

Егер өрістердің келесі н енгізсек:

№ - n

Атауы - name

Саны - k

Бағасы - c

Шығарылған жылы - g
Сипаттау келесідей болады:
struct s {

int n;


char name[];

int k;


float c;

int g;


};
struct s x;
және x айнымалысы жоғарыда көрсетілген кесте жолындағы берілгендерді өңдеуге арналған.
Мысал

Құрылым(обьект) мен құрылымдық типті бірге сипаттау мысалыstruct student {

char name [15]; /* Аты */

char surname [20] ; /* Фамилиясы */

int year; /* Курсы */

} student_l, student_2, student_3;

Мұнда student атты құрылымдық тип және student_l, student_2, student_3 үш ныұты құрылым сипатталған. Осы үш құрылымның әрқайсысына студенттің атын (name), фамилиясын (surname),студенттің оқитын курсын(year) жарииялайтын құрылым кіреді.

Келтірілген сипаттамадан кейін сол программада кез келген құрылым санын сипаттауға болады, ол үшін келесі student құрылымдық типін қолдануға болады:

struct student laader, freshman ,
Құрылымды инициализациялау және меншіктеу. Құрылымды инициализациялау массивтерді инициялазациялауға ұқсас. Нақты құрылымды сипаттауда оның атынан және '=' белгісінен кейін фигуралы жақшаның ішінде бастапқы элементтердің тізімі жазылады. Мысалы:

struct goods coat={"қара пиджак ", 400000, 7.5, 220, "12.01.97"};


Си тілінің стандарты құрылымды меншіктеуге рұқсат береді. struct goods (tea, coat) құрылымдық типтегі жоғарыда көрсетілген құрылымға келесі меншіктеуге рұқсат етілген:

tea=coat;

Құрылымдар үшін теңсіздік операциялары, тіпті, теңдік те қолданылмайды. Егер құрылымды салыстыру керек болса, тек қана элементтері арқылы ғана.



Құрылым элементеріне рұқсат алу. Құрылым элементтеріне рұқсат алу нақты атау бойынша қамтамасыз луға болады.

құрылым_аты.элемент_аты

конструкциясы құрылымдық тип сипаттамасын ойнайды.

Біздің struct goods құрылымдық типін инициализациялау мысалымызда:

coat.name - char[] типті массиві "қара пиджак ";

coat.price - long типті мәні 400000 айнымалы;

coat.percent - float типті мәні 7.5айнымалы;

coat.vol - int типті мәні 220 айнымалы;

coat.date -"12.01.97" тұратын char [9] типті массиві.

Нүктенің алдында құрылымдық типтің аты емес, оның сипатталуына жды бөлінген нақты құрылымның аты тұрғанына назар аударыңыз.



Нақыланған ат – бұл екі операндамен және олардың арасындағы "нүктеден" тұратын өрнек. "Нүкте" оперциясы құрылым элементіне рұқсат алу операциясы деп талады.

Егер құрылымды сипаттауда ол инициализцияланған болса, онда оның элементтері сәйкес бастапқы мәндерін алады. Нақталанған аттың көмегімен бұл мәндер , мысалы, экранға шығады.

Құрылым элементінің нақтылы аты сәйкес типтегі обьектілердің брлық ережелерінен тұрады. Оларды өрнектерде қолдануға болады, олардың мәндерін пернетқтадан енгізуге болады.

Құрылымдар массиві. Құрылымдық типтің массивтері басқа типтегі массивтер сияяқты сипатталады. Анық айырмашылығы – құрылымдық тип атауындағы struct қызметші сөзінде. Жоғарыда енгізілген құрылымдық типтерді анықтау келесідей:

struct goods list [5];

Бұл сөйлем list-ті goods құрылымдық типтегі, 5 элементтен тұратын массив ретінде анықтайды. List аты құрылымның аты болып табылмайды, ол элементтері құрылым болатын массив аты. list[0] - goods типінің құрылымы, list[1] - list[ ] массивінің goods типті екінші құрылымы жіне т.б.

Құрылым массиві құрамына кіретін құрылым компонентеріне рұқсат алу үшін, бірінші аты индекстелген нақтыланған атау қолданылады . Мысалы:

list[0].price - list[ ] құрылым массивіне бірінші элемент ретінде (нөлдік индекспен) кіретін, goods типті құрылымның long типті екінші компоненті (price атты).



1 суретте list[ ] массивін шартты түрде жадыға орналастыу сызбасы берілген. Оның элементтері (басқа массив элементтері сияқты) негізгі жадта индексінің өсуі бойынша ретпен орналасады.




Рис. 1. Құрылым массиві (100 элементтен құралған)
Массивке сәйкес құрылым компонентеріне рұқст алудағы нақтылы атаудың индекстелуіне тағы бір назар аударыңызда. Индекс құрылым массивінің атауынан кейін жазылады. Сөйтіп, массивтен қажетті құрылым бөлінеді, ал нүкте мен онан кейінгі атау көмегімен құрылымның сәйкес компоненті идентифицирленеді. Мысалы,

list.percent[8] /* Қате ! */ -жазылымы қате атау; percent – массив емес, float типті айнымалы.

Құрылым массивін сипаттау:

struct goods list [5];


Баса типтегі массивтер сияқты, құрылымдық массив сипатталуында инициализациялана алады. Құрылымдық массив инициализаторы фигуралық жақша ішіндегі массивтің бастапқы элементтерінің тізімінен тұруы мүмкін. Өз кезегінде, құрылым үшін әр бастапқы мән – бұл оның комонентерінің мәндерінің тізімі(фигуралы жақша ішінде).
Мысал

Төменде кестеде көрсетілген берілгендерді сипаттау



Фамилия

Туған жылы

Телефоны


Үй адресі

Иванов

1980

33-22-11

ул. Чехова, 1

Петров

1981

44-55-66

пр. Шакарима, 126

Сидоров

1980

34-22-11

ул. Ленина, 50

struct stroka

{

char f[20];



int g;

char tel[8];

char adres[40];

};
struct stroka tab[3];


Осындай берілгендерді сипаттаудан кейін, tab массивінің элементтері жоғары кестеде берілген бүтін жол екенін түсіну керек, яғни:

tab[0] – бұл

Иванов

1980

33-22-11

ул. Чехова, 1

tab[1] – бұл

Петров

1981

44-55-66

пр. Шакарима, 126

tab[2] – бұл

Сидоров

1980

34-22-11

ул. Ленина, 50

Өзін-өзі тексеру сұрақтары

  1. Берілгендердің құрылымдық типі қайда қолданылуы мүмкін?

  2. Құрылымды қалай анықтауға болады?

  3. Құрылымның жазу типі мен құрылымдық айнымалы арасындағы айырмашылық?

  4. Құрылым элментіне қалай рұқсат алуға болады?

  5. Құрылым бір типтегі элементтерден тұруы мүмкін бе?


8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984


13 апта


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

Дәріс жоспары

  1. Файл ұғымы.

  2. Өңдеу үшін қолданылатын берілгендер файлының басымдылығы.

  3. Файлға нұсқаушы.

  4. Файлды ашу жабу.

  5. Енгізу және шығару функциялары.

  6. Файлдарды жаңа берілгендермен толықтыру.

  7. Файлдардың екілік және мәтіндік форматы.


Дәрістің қысқаша жоспары

Файлдар

Файл – белгілі бір атпен дискіде сақталатын ақпарат.

Кез келген файлдың үш ерекшелігі болады:



  1. Файлдың атауы болады .

  2. Файлдың комонеттері бір типті болды.

  3. Файлдардың ұзындығы деп аталатын файлдағы элементтер фиксирленбеген. Файлдың массивтен негізгі еекшелігі сонда.Бір де бір элементі жоқ файл бос деп аталады. Оның ұзындығы нөлге тең.

Берілгендер файлын программ үшін қолдану өте ыңғайлы, себебі:



  1. Берілгендер файлы алдын ала дайындалған болады және бірнеше рет қолдныла алады.

  2. Берілгендер фйлы кез келген басқа программада қолдныла алады.

  3. Берілгендер файлын қолданылатын программалар орындалу барысында қолданушыны қажет етпейді.


Енгізу және шығару

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

Си тілінің кітапханасы енгізу және шығарудың үш дәрежесі бар:


  • Ағымдық енгізу шығару,

  • Төменгі дәрежелі,

  • консолдар мен порттарға арналған енгізу шығару.

Ағымдық енгізу шығару дәрежесінде ақпарат алмасу байттік түрде. Бұндай енгізу –шығару байттік алмасу құрылғыларымен қатар(баспа құралы, дисплей), ішкі жад құралы қабықшалық алмасу құралы болып табылса да, дискідегі файлдарда да мүмкін, яғни, құрылғығы бір рет рұқсат алғанда фиксирленген берілгендер позициясын оқу немесе жазу орындалады. Көбінесе, ішкі жадымен алмасушы берілгендердің минималды позициясы 512 байттан немесе 1024 байттан тұратын блоктар болып табылады. Дискіден енгізген (файлдан оқыған) кезде берілгендер операциялық жүйенің буферіне орналасады, одан кейін байттік немесе анықталған порциялармен қолданушының программасына беріледі. Берілгендерді файлға шығару кезінде олар буферде жиналады, буфер толып кетсе, бір блок ретінде соңғыға рұқсат алған дискіге жазылады. Операциялық жүйенің буфері негізгі жадының аумаы ретінде жүзеге асады. Сондықтан, буферлер мен программалар арасындағы енгізу – шығару сілтемелері физикалық құрылғыларға қааанда жылдам жүреді.

Лекпен жұмыс істегенде келесі әрекеттерді жүзеге асыруға болады:



  • лектерді ашу және жабу (нұсқаушыларды нақты файлдары бар лектермен байланыстыру);

  • жолдарды, символды, форматталған берілгендерді, туынды ұзындықты берілгендер порциясын енгізіп шығаруға болады;

  • лекті енгізу – шығарудың қателерін және лектің соңына жету (файлдың соңына) шарттарын талдау;

  • лектің буфферленуін және буфердің өлшемін басқару;

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

Си тілінің библеотекасының енгізу – шығару функцияларын қолдану үшін, енгізу – шығару функцияларының прототипінен, сонымен қатар тұрақтыларды, типтерді және құрылымдарды, лекпен алмасуға қажетті функцияларды сипаттаудан тұратын stdio.h (#include ) тақырыптық файлын іске қосу керек.

Лекті ашу және жабу

Лекпен жұмыс жасауды бастамас бұрын, оны инициялизациялау керек, яғни ашу керек. Сонда лек орындалатын программада FILE типті алдын ала анықталған құрылыммен байланысады. FILE құрылымдық типінің сипатталуы stdio.h тақырыптық файлында орналасқан. FILE құрылымында лекпен жұмыс жасуға арналған компонентер орналасқан, дербес жағдайда, буферге нұсқаушы, лектегі ағымдағы позициядағы нұсқаушы(индикатор) және басқа ақпарат.

Лекті ашқанда программада FILE құрылымдық типті обьектіне нұсқаушысы болып табылатын, лекке нұсқаушы қайтып оралады.Бұл нұсқаушы лекті қалған басқа операцияларда идентификациялайды.

Лекке нұсқаушы , меысалы, fp, программада келесі түрде жариялануы керек:


#include

FILE *fp;


Лекке нұсқаушы лекті ашу функциясының орындалуы нәтижесінде:
fp = fopen (файл _аты,ашылу- режим);
файл _аты және ашылу- режим параметрлері лекпен байланысты және режимдер жолымен байланысты файл атынан тұратын символдар массивіне нұсқаушы болып табылды. Бірақ, бұл параметрлер фацлды ашу функциясын шақыранда жол түрінде және берілуі мүмкін:

fp = fopen("t.txt", "r") ;

мұндағы t. txt – лекпен байланысты қандай да бір файл аты;

r файлмен жұмыс режимдерінің бір белгіленуі (лекке рұқсат алу типі).


Лекпен байланысты, стандартты файлды келесі алты режимнің біреуімен ашуға болады:

"w" – жаңа мәтіндік файлы жазу үшін ашылады. Егер файл бар болған болса, онда алдынғы мазмұны тазаланып, жаңадан қайта құрылады;

"r" – бар мәтіндік файл оқу үшін ғана ашылады;

"а" – мәтіндік файл оған жаңа ақпарат қосу үшін (файл соңына) ашылады (немесе егер файл жоқ болса, құрылады) . V режиміне қарағанда "а" режимі бар файлдарды олардың алдындағы версияларын жоймай ашады және оған ары қарай жазуға болады;

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

"r+" – бар мәтіндік файл оқу үшін де жіне файлдың кез келген жеріне жазу үшін де ашылады. Бірақ, бұл режимде файлдың соңына жазу мүмкін емес, яғни, файл өлшемін кеңейту мүмкін емес.;

"а+" – мәтіндік файл өзгертуге болатындай ашылады немесе құрылады (егер ол жоқ болса) яғни, кенз келген жерден оқу мен жазу мүмкін болатындай; Сонымен қатар "w+" режиміне қарағанда бар файлды оның мазмұнын жоймай ашу мүмкін; "г+" режиміне қарағанда "а+" режимінде файл соңына жазу енгізуге болады, яғни, оның көлемін өзгертуге болады.

Лекті мәтіндік немесе екілік(бинарлық) режимде ашуға болады.

Мәтіндік режимде лектен оқылған символдар комбинациясы CR (13 мәні ) және LF (10 мәні) , яғни, " каретканы қайтару" және "жолды тасымалдау" басқарушы кодтары жаңа жолдың бір символына '\n' (LF) , CR және LF кезектілігін ауыстыру арқылы түрленеді.

Егер лекпен байланысты файл мәтіндік емес, өзіндік екілік ақпараттан тұрса, онда көрсетілген түрлендірулер керек емес және зиянды болуы да мүмкін. Бұндай түрлендірусіз алмасу b әрпімен белгіленетін, екілік немесе бинарлық режимде орындалады. Мысалы, "r+b" немесе "wb". Кейбір компиляторларда мәтіндік файл t әрпімен белгіленеді, яғни, "a+t" немесе "rt" түрінде жазылады.

Егер лек өзгерту үшін шылған болса, яғни, режим параметрінде "+", символы бар болса, онда лекке шығарумен қатар одан оқу да мүмкін. Бірақ, режимді ауыстыру (оқудан жазуға өту немесе керісінше) лек нұсқаушысын керекті позицияға орналасырғаннан кейін ғана орындалуы керек.

Лекті ашуда келесідей қателер пайда болуы мүмкін: лекпен байланысқан нұсқалған файл табылған жоқ (оқу режимі үшін); диск бос емес немесе дискіге жазуға рұқсат жоқ және т.б. fopen() функциясының орындалуы кезінде динамикалық жадының бөлінуі орындалатынын ескерте кету керек. Ол жоқ болған жағдайда "Not enough memory" (жадыда орын жоқ) қате белгісі шығады. Аталған жағдайларда, лекке нұсқаушы NULL мәніне ие болады.

Лекпен байланысқан файлдарды ашуда қолданылатын операторлар кезектілігіне мысал келтірейік:

if ((fp=fopen("t.txt", "w"))==NULL)

{

perror("файлды ашуда кеткен өателік t.txt \n");

exit(0);

}

Мұндағы NULL - stdio.h файлында анықталған нөлдік нұсқаушы.


Лекті ашқандағы қате туралы хабарламаны экан дисплейіне шығару үшін реггог() библеотеекалық функциясы қолданылады, оның stdio.h –тағы пототипінің түрі келесідей:

void perror (const char * s);

perror() функциясы s нұсқаушысымен адрестелген символдар жолын шығарады, одан кейін: қос нүкте, пробел және қате туралы хабарлама орналасады. Қатенің мазмұны мен форматы программалау жүйесінің жүзеге асуымн анықталады. Қате туралы хабарламаның мәтіні қате нөміріне байланысты реггог() фуекциясымен таңдалады. Қате нөмірі Си тілінің библеотекасының жанындағы, сонымен қатар енгізу – шығару функциялары жанындағы int errno(int errno тақырыптық файлында анықталған ) айнымалысына енгізіледі. Файл ашылғаннан кейін, оған ақпарат жазу арқылы намесе оқу арқылы (режимге байланысты) онымен жұмыс істеуге болады.

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



int fclose (лекке_нұсқаушы);

Ашылған файлды оны fclose( ) функциясы көмегімен жапқаннан кейін ғана қайта ашуға болады (мысалы онымен жұмыс істеу режимін өзгертіу үшін).


Дискідегі файлдармен жұмыс

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



fgetc(), getc() – енгізу (файлдан бір символды оқу;

fputc(), putc() – файлға бір символды жазу;

fprintf() – файлға форматталған шығару;

fscanf() – файлдан фоматталған шығару (оқу);

fgets() – файл жолын енгізу (оқу);

fputs() – жолды файлға жазу.
Файлдарды алмастырудың екілік (бинарный) режимі

Екілік алмасу getc() және putc()функцияларының көмегімен жүзеге асады. Олардың форматтары:


c=getc(fp);

putc(c,fp);


мұндағы fp – ағымға нұсқаушы; c – келесі символды файлдан қабылдап оның мәнін файлға жазуға арналған int типті айнымалы.

Функциялардың прототипі:

int getc(FILE *stream);

int putc(int c, FILE *stream);


Файлдармен жолдық алмасу
Мәтіндік файлдармен жұмыс істегенде fgets() және fputs() функцияларын қолдану тиімді
fgets(s, n, f);

s –жол, f – лекке нұсқаушы.



fgets() функциясы нұсқаушы анықтаған f файлынан (n-1) символдан кем емес симводы жазады және оны s жолына жазады. (n-1) символды оқығаннан кейін немесе жаңа жллға көшіретін '\n' символын кездестіргеннен кейін функция жұмысын тоқтатады . Қосымша әр жолдың соңында жолдың аяқталу белгісі '\0' жазылады.Нәтижелі аяқталу жағдайында функция s жолын қайтарады. Қате болған немесе файл соңына жеткенде, бір де бір символ оқылмаса функция NULL мәнін қайтарады.Бұндай жағдайда жолдың мәні өзгерусіз болып қалады.
fputs(s, f);

s – строка, f – указатель на поток.



fputs() функциясы '\0' символымен шектелген жолды лекке нұсқаушы анықтаған f файлына жазады және оң бүтінді қайтарады.

Қате жағдайында fputs() функциясы EOF қайтарады. '\0' символы тасымалданбайды және '\n' символы '\0' символының орнына жазылмайды.



Файлдармен форматты алмасудың режимі

Кейбір жағдайлрда ақпаратты файлға жазуда монитор экранында бейнелеуге жарамды етіп жазу ыңғайлы.Бұндай жағдайда, fpritf(), fscanf() файлға форматты енгізу (шығару) функциясының прототипін қолданады:

int fprintf(лекке_нұсқаушы, форматты_жол,айнымалылар _тізімі);

int fscanf(лекке_нұсқаушы, форматты_жол,айнымалылар_адресінің_тізімі);


Лектегі позциялау

Си тілінің библеотекасында ағымдағы позициядағы нұсқаушыны лектегі қажет байтқа нұсқайтын fseek() функциясы іске қосылған. Ол келесі прототиптен тұрады:

int fseek(лекке_нұсқаушы,бірігу, есеп берудің_басу);

Өзін-өзі тексеру сұрақтары


  1. Файл деген не?

  2. Өңдеу үшін берілгендер файлдарын қолданудың қандай маңызы бар?

  3. Программада файлға нұсқаушы не үшін қолданылады?

  4. Файлдарды ашу мен жабу қалай орындалады?

  5. Файлдармен жұмыс істеу үшін енгізу мен шығарудың қандай функциялары бар?

  6. Файлдарды жаңа фйлдармен қала толтыруға болады?

  7. Файлдардың мәтіндік және екілік форматы.


8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984
14 тақырып. Модулдер
Дәріс жоспары


  1. Файлдан мәтіннің қосылуы. #include директивасы.

  2. Стандартты модулдер.

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

  4. Дәрістің қысқаша конспектісі

Файлдардағы мәтіндерді қосу

Файлдан мәтінді қосылу үшін #include директивасы қолданылады. Оны жазудың үш түрі бар. Олар:

#include <имя_файла>

#include "имя_файла'

#include имя_макроса
Егер файлдың аты үшбұрышты жақшада болса, онда препроцессор файлды стандартты жүйелік каталогтан іздейді. Егер файлдың аты жақшаға алынған болса, онда препроцессор бірінші қолданушының ағымдағы каталогын қарастырады содан кейін барып стандартты жүйелік каталогқа хабарласады.

Выполняя у #include директивтивасын орындау кезінде препроцессор программаға енгізу-шығару кітапханасымен байланыс құралын қосады. stdio.h файлын іздеу стандартты жүйелік каталогтарда орындалады.

Келісілген келісім бойынша Һ библеотекалық функциялардың прототипі болатын функцияларға , содай-ақ библеотека компиляторларымен жұмыста қолданылатын типтер мен тұрақтыларды сипаттауларда жазылады.

Бұл файлдарды тақырыптық деп атайды. Программаның тақырыбына кез келген файлдар кіруі мүмкін (стандартты немесе арнайы дайындалған).

Компильятор кітапханасымен жұмыс істеуге арналған тақырыптық файлдардың сипатталуының жиынтығы стандартты тілмен бекітілген:


assert.h

программа диагностикасы

ctype.h

Символдарды түрлендіру және тексеру

errno.h

Қателерді тексеру

float.h

Нақты берілгендермен жұмыс

limits.h

Бүтін санды берілгендердің соңғы мәні

locate.h

Ұлттық ортаны қолдау

math.h

Математикалық есептеулер

setjump.h

Локальді емес ауысулардың мүмкіндіктері

signal.h

Дербес оқиғаларды өңдеу

stdarg.h

Параметрлар саны айнымалысын қолдау

stddef.h

Қосымша анықтамалар

stdio.h

Кіріс-шығыс ортасы

stlib.h

Жалпы пайдаоану функциялары (жадымен жұмыс)

string.h

Символдар жолымен жұмыс

time.h

Күн мен уақытты анықтау

Әрбір ОЖ-де сәйкес тақырыптық файлды енгізу байланысы үшін графикалық функция кітапханасы бар. #include <…> директивасын программада қолданғанда ол программаға сәйкес стандарттыы кітапхананы қоспайтынын есте сақтау қажет.

Препроцессорлық өңдеу программаның негізгі мәтіні деңгейінде орындалады. #include директивасы тек қана программаның мәтініне көрсетілген тақырыптық файлдан жазуды қоюға мүмкіндік береді. Программаға кітапханалық функциялар кодын қосу тек байланысты редактрлеу этабында іске асырылады, яғни программаның машиналық коды алынғанда , компиляциядан кейін.

Қосылған тақырыптық файлдың іс-әрекеті программаның мәтініне тек бір модуль аралығында ғана, #include директивасы орналасқан жерден мәтіндік файлдың соңына дейін таралады (және программадағы барлық мәтіндерде).

Стандартты емес тақырыптық файлдар үлкен көлемдегі программаны модульдік өңдегенде тиімді болып табылады. Әр түрлі файлдарда орналасқан модульдер арасындағы байланыс параметрлер көмегімен ғана іске асырылмайды, сонымен қатар бірнеше немесе барлық модульдерде глобальді ішкі обьектілер арқылы жүзеге асады.

Сондай ішкі объектілер(айнымалылар, массивтер және т.б) сипаттамасы және функция прототиптері бір файлда орналасады, олар #include дерективасы көмегімен ішкі объектілер қажет жерлерде барлық модульдерге қосылады. Егер пограммада бірнеше функциялар қолданылса, онда олардың әрбіреуінің мәтінін жеке файлда сақтаған ыңғайлы. Программады бір модуль түрінде дайындағанда программист #include "…" командасының көмегімен оған барлық функциялардың мәтіндерін қосады.



Файлдар модуль ретінде

.h файлы программаның басқа бөліктері қолданатын интерфейс болып табылады; .c файлы жүзеге асыруды білдіреді. Мұндай обьектілерді көбіне модуль деп атайды. Қолданушыға қажетті атауларға ғана рұқсат болады, ал қалған атаулар жасырынған. Бұл қасиетті көбіне берілгендерді жасыру деп атайды. Модульдердің мұндай түрі жұмсақ болады. Мысалы, жүзеге асыру бір немесе бірнеше .c файлдардан тұруы мүмкін және .h файл түрінде бірнеше интерфейс ұсынылуы мүмкін. Қолданушыға қажет емес ақпараттар жасырынған. Егер қолданушы .c файлында не жасырынғанын білмеу керек болса, оларға рұқасат бермеу керек. Оларға компилятордың эквивалентті шығатын файлдары да жеткілікті.

Кейде келесілерден тұратын қиындықтар туады, мұндай жұмсақтық формалдық құрылымсыз жүзеге асырылады. Тілдің өзі объект сияқты модульдерді танымайды және компиляторда басқа (экспортталатын) модулдар қолдануы қажет атауларды анықтайтын .h файлдарын, басқа (импортталатын) модульдерден атауларды сипаттайтын .h файлдарынан ажырата алатын мүмкіндігі жоқ.

Басқа жағдайларда сол мәселе туындауы мүмкін, яғни модуль жаңа типті емес объектілер жиынын анықтайды. Мысалы, table модульі бір кестені анықтайды, ал егер сізге екі кесте керек болса, онда модуль анықтамасының көмегімен екінші кестені берудің қарапайым тәсілі жоқ.

Әр статистикалық үнсіздік бойынша енгізілген объект нолмен инициализирленеді, программист басқа (константты) мәндер бере алады. Бұл инициализацияның тек өте примитивті түрі. Модуль қандай да түрде қолданылар алдында кластар көмегімен инициализация үшін орындалатын код құруға болады, және/немесе коды, соңғы қолданылған модульден кейін тазарту үшін қолданылады.
Кітапхананы құру

"кітапханаға орналасқан" және "кез келген бір кітапханада ізделініп жатыр" типті фразалар жиі қолданылады, бірақ мұның C++ программасында мәні қандай? Өкінішке орай бұл сұраққа жауап қандай операциялық жүйе қолданылып отырғанына тәуелді; бұл тарауда UNIX операциялық жүйесінің 8-ші нұсқасында кітапхананы құруды қарастырамыз. Басқа операциялық жүйелер аналогтық мүмкіндіктерін қарастырады. Кітапхана өзінің негізінде сәйкес .c файлдар жиынының компиляциялау нәтижесінде алынған .o файлдар жиыны болып табылады. Әдетте, .o файлдарды қалай пайдалану керектігі туралы мағлұматы бар бір немесе бірнеше .h файлдар болады. Мысал ретінде, келесі жағдайды қарастырайық, кейбір анықталмаған қолданушылар жиынына бізге математикалық функциялар тобын беру керек болсын. Тақырыптық файл келесідей :

extern double sqrt(double); // жиынүсті

extern double sin(double);

extern double cos(double);

extern double exp(double);

extern double log(double);
бұл функциялардың анықтамалары сәйкес файлдарда сақталған sqrt.c, sin.c, cos.c, exp.c и log.c.

math.h атты кітапхананы құруға болады, мысалы:

$ CC -c sqrt.c sin.c cos.c exp.c log.c

$ ar cr math.a sqrt.o sin.o cos.o exp.o log.o

$ ranlib math.a
Бірінші шығатын файлдар өздеріне эквивалентті обьектілік файлдарға компиляцияланады. Содан кейін math.a. атты архив құру үшін ar командасы қолданылады. Аяғында архив рұқсатты жылдамдату үшін индекстеледі.
Енді .o файлына қарағанда math.a файлының артықшылығы қандай екенін қарастырамыз, мысалы:

$ CC myprog.c sqrt.o sin.o cos.o exp.o log.o


Көптеген программалар үшін .o файлдарының дұрыс тобын анықтау оңай емес. Жоғарыда келтірілген мысалда олардың барлығы қосылған, бірақ егер функциялар myprog.c –да тек қана sqrt() және cos() функцияларын шақырса, онда бұл жеткіліксіз болады.

$ CC myprog.c sqrt.o cos.o


Бірақ бұл олай емес, cos.c sin.c-ны қолданғандықтан.

.a файлын өңдеу үшін СС командасымен шақырылған компоновщик .a файлдарды құру үшін қолданылған жиындағы сияқты тек қажетті .o файлдарды архивтан шығаруды біледі. Басқа сөзбен айтқанда, кітапхананы қолдана отырып бір аттың (имени) көмегімен көптеген анықтамаларды қосуға болады, және, сонымен қатар, нәтижесінде программаға анықтамалардың минималды санын қосуды қамтамасыз етеді.



Өзін-өзі тексеруге арналған сұрақтар

  1. Модуль деген не?

  2. Қандай стандартты модулдер бар және олар неге арналған?

8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984


15 апта



Тақырып 15. Графика
Дәріс жоспары

  1. Экранмен жұмыс істеуге арналған графикалық режимдер.

  2. Графикалық обьектілерді сызу.


Дәрістің қысқаша конспектісі

Графикамен жұмыс

1. Адаптер, адаптер типтері, драйверлер және режимдер түсінігі

Графикалық режимдегі кез келген бейне монитор экранында пикселдер жиынынан тұрады. Графикалық режимде монитордың жұмыс істеу мүмкіндігі графикалық адаптер деп аталатын арнайы электрондық сызбамен қамтамасыз етіледі. Адаптерлердің негізгі типтері: CGA, EGA, VGA SVGA. Графикалық адаптердің жұмысын драйвер деп аталатын арнайы программа іске асырады. Драйверлер BGI кеңейтіліміндегі файлдарда сақталады. Қолданылып отырған драйвер әр түрлі режимдерде қызмет ете алады.


Видеорежимдер

адаптер типі

Режим

Түстің саны

Рұқсат етілген

драйвер файлы


Константа аты

Константа мәні

CGA

1

CGAC0

4

320x200

CGA.BGI

CGAHi

2

640x200

EGA

3

EGALo

16

640x200

EGAVGA.BGI

EGAHi

16

640x350

VGA

9

VGALo

16

640x200

EGAVGA.BGI

VGAHi

16

640x350

Графикалық режимде монитор экранымен жұмыс істеуге арналған функцияларды қолдану үшін graphics.h тақырыптық файлын қосу керек.


2. Инициализация және графикалық режимнен шығу

Мүмкін графикалық режимдердің біреуін орнататын функция.



initgraph(&d,&m,p);
мұндағы d –драйверді береді, m –режимді береді, p – драйвер файлына жолды береді, яғни BGI кеңейтіліміндегі сәйкес файлға (Ескерту: Егер драйвер файлы ағымдағы каталогта болса, онда жол ретінде келесіні береді "").
Мысал:
initgraph(9,VGALo,"c:\");
Бұл функция 16 әр түрлі түстерді көрсету мүмкіндігімен 640х200 пикселді рұқсатымен режимді орнатады.
Ескерту: Сонымен қатар, Detect стандартты константасы бар. Оны драйвер түрінде көрсеткенде автоматты түрде қажетті драйверді және мониторға сәйкес келетін режимді орнатады.
Мысал:

Графикалық режимді инициализациялау


int d,m;
d=DETECT;

initgraph(&d,&m,"");

Графикалық режимнен шығу үшін closegraph функциясы қолданылады;
3. Координат жүйесі

Бейнені экранда бейнелеу үшін координат жүйесі қолданылады.



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


moveto(x,y); - ағымдағы нұсқағышты (x,y)координатындағы нүктеге әкеледі

moverel(x,y); - ағымдағы нұсқағышты горизонтал бойынша х нүктеге, вертикал бойынша у нүктеге әкеледі.

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


getmaxx() – Орнатылған режим үшін х-тің максималды мүмкін мәнін анықтайды.

getmaxy() - Орнатылған режим үшін у-тің максималды мүмкін мәнін анықтайды.
4. Негізгі фигураларды құру

1. putpixel(x,y,c);



(x,y) координаттарымен нүкте салу, c түсті білдіреді.
2. Сызық салу

line(x1,y1,x2,y2);

(x1,y1)нүктесінен (x2,y2) нүктесіне дейін сызық сызады.


lineto(x,y);

ағымдағы көрсеткіштен (x,y)нүктесіне дейін сызық сызады.


Сызықтың түсі келесі функциямен беріледі

setcolor(c);
Сызықтың стилі келесі функциямен беріледі

setlinestyle(l,p,t);
l тұрған жерге сызықтың стилін береді;
Сызық стилдерінің кестесі

Константа аты

Константа мәні

Жазылуы

SolidLn

0




DottedLn

1




CrnterLn

2




DashedLn

3




UserBitLn

4

Қолданушы типі



t сызықтың қалыңдығын көрсетеді;
сызықтың қалыңдығының кестесі

Константа аты

Константа мәні

Жазылуы

NormWidth

1

орташа(1 пиксель)

ThickWidth

3

қалың (3 пикселя)


P үлгіні береді
Егер қолданушы стандартты стиль қолданылса, онда р-ның мәні 0-ге тең.

Егер қолданушы өз стильін қолданса, онда р-ның мәні 4-ке тең.


3. Төртбұрыш салу
rectangle(x1,y1,x2,y2);

Боялмаған тіктөртбұрыш салу, мұндағы


Төртбұрыштың сызығын бояу үшін setcolor функциясын қолданамыз, ал қалыңдығы мен стилін өзгерту үшін setlinestyle функциясын қолданамыз.
bar(x1,y1,x2,y2);

Боялған тіктөртбұрыш салу

Бояғанда келесі функциямен өрнектелетін шаблон және түс қолданылады:

setfillstyle(n,c);
мұндағы, n- толтыру стилі, c – түсі.
толтыру стилі кестесі


Константа аты

Константа мәні

жазылуы

EmptyFill

0

Фон түсімен боялады

SolidFill

1

Ағымдағы түспен боялады

LineFill

2




LtslashFill

3




SlashFill

4




BkslashFill

5




LtbkslashFill

6




HatchFill

7




XhatchFill

8




InterLeaveFill

9




WideDotFill

10




CloseDotFill

11




UserFill

12

Қолданушының анықтауы бойынша толтырылады

4. Параллелепипед салу


bar3d(x1,y1,x2,y2,d,t);
мұндағы,

d үш өлшемді контурдың тереңдігін береді, t тік төртбұрышты параллелепипедке төбені қосу(t=1) керек пе, жоқ (t=0) па соны анықтайды.

Сызықтың түсі setcolor функциясымен анықталады. Сызықтың стилі setlinestyle функциясымен анықталады. Бояудың стилі мен түсі setfillstyle функциясымен анықталады.


5. Дөңгелек,дога,, эллипс салу
circle(x,y,r);

радиусы r, центрі (x,y) нүктесінде орналасқан дөңгелек салу.

түс setcolor функциясымен беріледі.




arc(x,y,b,e,r);

b бастапқы бұрыштан e соңғы бұрышына дейін,

радиусы r, центрі (x,y) нүктесінде орналасқан

дога салу.



Ескерту: Егер b=0, e=360 болса, онда дөңгелек сызылады.

ellipse(x,y,b,e,xr,yr);

b бастапқы бұрыштан e соңғы бұрышына дейін(x,y) нүктесінде центрі орналасқан эллипс салу, xr – X бойынша радиус, yr –Y бойынша радиус.


6. Бояу түсі және фон түсі
setbkcolor(c);

Графикалық режимде фонның түсін анықтайды.


cleardevice();

Графикалық режимде экранды тазалау функциясы.


floodfill(x,y,c);

setfillstyle функциясымен анықталатын ағымдағы түспен және толтыру стилімен белгіленген аймақты бояйды.

(x, y) – белгіленген аймақтың ішінде орналасқан нүкте, c – белгіленген аймақтың шекарасының түсі.
7. Графикалық режимде мәтін шығару
outtext(s);

Нұсқағыштың ағымдағы орынынан бастап мәтіннің жолын шығарады.

s – жолдық типтің айнымалысы немесе тұрақтысы.
outtextxy(x,y,s);
(x, y) – мәтіннің басы орналасатын нүкте.

Ескерту: Экранға сандық берілгендерді шығару үшін алдымен санды жолға айландыру қажет.
Өзін-өзі тексеруге арналған сұрақтар


  1. Экранмен жұмыс істеуге арналған қандай графикалық режимдер бар?

  2. Графикалық обьектілерді сызуға арналған қандай функциялар бар?


8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984
2. практикалық сабақ

1 апта

1, №2 практикалық сабақ



1 тақырып. Дербес компьютердің программалық құралдары

2 тақырып. Программалаудың методологиясы

Сабақтың мақсаты:

  1. Түсініктермен танысу:

  • программалық қамтамасыз ету;

  • ПҚ түрлері;

  • программалау тілі;

  • программалау тілдерінің классификациясы;

  • трансляция, трансляторлар: компиляторлар, интерпретаторлар;

  • программалау тілдерінің ұрпағы;

  • алгоритмдік программалау;

  • обьектілі-бағытталған программалау;

  • программалау жүйелері;

  • программаны өңдеу этаптары.

  1. Түсінікті қайталау:

  • алгоритм;

  • алгоритм қасиеті;

  • алгоритмдерді жазудың әдістері;

  • алгоритм типтері.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. программа деген не?

  2. ДК дің ПҚ-уы деген не?

  3. ПҚ-дың қандай түрлері бар?

  4. Программалау тілі деген не?

  5. "төмен дәрежелі тіл" және "жоғары дәрежелі тіл" терминдерінің мағынасын анықта?

  6. Трансляция, трансляторлар деген не?

  7. компиляторлар мен интерпретаторлардың айырмашылығы?

  8. Прогаммалау тілдерінің қандай ұрпақтары бар?

  9. Программалау жүйесі деген не?

  10. Программаны өңдеудің қандай этаптары бар?

  11. Алгоритмдік программалау деген не?

  12. Құрылымдық программалау деген не?



Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

  1. Программаны өңдеуге арналған техникалық тапсырма.

  2. Программаны техникалық проектілеу этабы.

  3. Алгоритмдердің құрылымдық сызбасын өңдеу.

  4. Берілгендерді ұйымдастыру.


2 апта

3, №4 практикалық сабақ



3 тақырып. Программалау технологиясының негізі

Сабақтың мақсаты:

1Түсініктермен танысу:



  • ПҚ-ды проектілеу әдісі;

  • құрылымдық программалау;

  • модульдік программалау;

  • программалау стилі;

  • жөндеу және программаны сынақтан өткізу

  • программаның сапасын бақылау.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Құрылымдық программалау деген не?

  2. Программалаудың экономикалық аспектілері қандай?

  3. өңдеу периодына қандай этаптар кіреді?

  4. Программаның сапасын тексеру этабында не болады?



Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.



СОӨЖ, СӨЖ сұрақтары

  1. Программаны құжаттау.

  2. ГОСТ пен мақұлданған программалық құжаттау түрі.

  3. Программалық құжаттаудың бірлік жүйесі.



3 апта

5, №6 практикалық сабақ



4 тақырып. Си тілінің жалпы сипаттамасы. Си программалау жүйесіне кіріспе.

Сабақтың мақсаты:

  1. Си тілінің алфавитімен танысу.

  2. Түсініктермен танысу:

  • идентификатор;

  • айнымалылар және константалар;

  • берілгендер типі;

  • препроцессор директивалары.

  1. Си тілінің берілгендерінің стандартты типтерімен танысу.

  2. Берілгендер типін анықтауды үйрену.

  3. Си тіліндегі программаның құрылымымен танысу.

  4. Си программалау жүйесі ортасында жұмыс істеуге үйрену .


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Си тілінің алфавитіне қандай символдар кіреді?

  2. Идентификатор деген не? Идентификаторларды рәсімдеудің қандай ережелері бар?

  3. Константа деген не?

  4. Айнымалылар деген не?

  5. Си тілінде берілгендерінің қандай стандартты типтері бар?

  6. Препроцессор директивасы деген не? Препроцессордың қандай директивасы бар ?

  7. Си тіліндегі программаның құрылымы қандай?

  8. Си программалау жүйесінің файылдарының құрамы қандай?



Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


4 апта

7, №8 практикалық сабақ



5 тақырып. Меншіктеу операторы. Енгізу-шығаруды ұйымдастыру.

Сабақтың мақсаты:

  1. Түсініктермен танысу:

  • өрнек;

  • операциялар;

  • меншіктеу операциялары;

  • стандартты функциялар.

  1. Си тілінде математикалық өрнектерді жазуды үйрену.

  2. Логикалық өрнектердің мәнін анықтауды үйрену.

  3. Түсініктермен танысу:

  • оператор;

  • операторды жазу форматы.

  1. Меншіктеу операцияларын, енгізу функцияларын, шығару функцияларын қолдануды үйрену.

  2. Сызықты құрылымды программаларды құруды үйрену.



Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Өрнек деген не?

  2. Берілгендерге қандай операциялар қолданылады?

  3. Қандай меншіктеу операциялары бар?

  4. Меншіктеу операторының жазылу форматы мен тағайындауы қандай?

  5. Типтерді келтірудің қандай түрлері бар?

  6. Берілгендерді енгізу және шығару деген не?

  7. Қандай енгізу функциялары бар?

  8. Қандай шығару функциялары бар?



Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.



СОӨЖ, СӨЖ сұрақтары

Есептеу жүргізу үшін қандай формулаларды қолдануға болады:



  • Сандардың дәрежесі;

  • ctg x

  • arcsin x

  • arccos x

  • arcctg x

  • loga x

5 апта

9, №10 практикалық сабақ



6 тақырып. Шартты және шартсыз өту операторлары

Сабақтың мақсаты:

  1. Түсініктермен танысу:

  • құрама оператор;

  • белгі.

  1. Операторларды қолданудың жазу форматымен және ережесін тағайындаумен танысу:

  1. тармақталған құрылымдағы программаны құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. тармақталған алгоритм деген не?

  2. Белгі деген не?

  3. goto шартсыз өту операторының тағайындалуы және жазылу форматы қандай?

  4. if… шартты өту операторының тағайындалуы және жазылу форматы қандай?

  5. Қысқа формада жазылған шартты өту операторы қалай жұмыс істейді?

  6. Толық формада жазылған шартты өту операторы қалай жұмыс істейді?

  7. Қарапайым оператор деген не?

  8. Құрама оператор деген не? Құрама оператор не үшін қолданылады?

  9. Таңдау операторының тағайындалуы және жазылу форматы қандай?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

  1. Кездейсоқ өлшем түсінігі.

  2. Кездейсоқ өлшеммен жұмыс істеуге арналған процедуралар мен функциялар.



6 апта

11, №12 практикалық сабақ



7 тақырып. Цикл операторлары

Сабақтың мақсаты:


  1. Жазу форматымен және операторларды қолдану ережесімен, тағайындауымен танысу:

  • while …

  • do …

  • for …

  1. Циклдік құрылымдағы программа құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар



  1. Циклдік алгоритм деген не?

  2. Шарты алдын ала берілген циклдік операторының тағайындалуы мен жазылу форматы қандай? Шарты алдын ала берілген циклдік операторы жұмысының блог –схемасын қалай көрсетуге болады?

  3. Шарты соңынан берілген циклдік операторының тағайындалуы мен жазылу форматы қандай? Шарты соңынан берілген циклдік операторы жұмысының блог –схемасын қалай көрсетуге болады?

  4. Параметрлік цикл операторының тағайындалуы мен жазылу форматы қандай? Параметрлік цикл операторының жұмысының блог –схемасын қалай көрсетуге болады?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


7 апта

13, №14 практикалық сабақ



8 тақырып. Функции

Сабақтың мақсаты:

  1. Ішкі программа ұғымымен танысу.

  2. Функцияны жазу ережесімен танысу.

  3. Түсініктермен танысу:

  • Формалды және фактлік параметрлер;

  • Глобальді және локальді айнымалылар.

  1. Негізгі программаға функцияны шақыру әдістерімен танысу.

  2. Ішкі программаны қолдану арқылы программа құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Ішкі программа деген не?

  2. Функция деген не?

  3. Функцияны қалай жазады?

  4. Негізгі программаға функцияны шақыруды қалай жүзеге асырады?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.

СОӨЖ, СӨЖ сұрақтары

TP және Си программаларының қолданылуын салыстыру.


8 апта

15, №16 практикалық сабақ



9 тақырып. Жады кластары

Сабақтың мақсаты:

  1. Түсініктермен танысу:

  • Жады кластары;

  • Автоматты айнымалылар;

  • статистикалық айнымалылар;

  • сыртқы айнымалылар;

  • регистрациялық айнымалылар;

  • нұсқағыштар және адрестік арифметика.

  1. Жадының әр түрлі класының обьектілерімен программа құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Жадының қандай кластары бар?

  2. Автоматты жады деген не?

  3. Динамикалық жады деген не?

  4. Статистикалық ішкі жады деген не?

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

  6. Автоматты айнымалы деген не?

  7. Статистикалық айнымалы деген не?

  8. Ішкі айнымалы деген не?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

Программа құру.



9 апта

17, №18 практикалық сабақ



10 тақырып. Берілгендердің күрделі типі: массивтер

Сабақтың мақсаты:

  1. Түсініктермен танысу:

  • массив;

  • массивті;

  • массивті жазудың әдістері.

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


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Массив деген не?

  2. Массивтің өлшемі деген не?

  3. Программада бір өлшемді, екі өлшемді массивтерді қалай жазамыз?

  4. Массив элементіне қалай рұқсаталамыз?

  5. Массивті қалай толтырамыз?

  6. Массивті экранға қалай шығарамыз?

  7. бір өлшемді массив және нұсқағыштар.


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.



СОӨЖ, СӨЖ сұрақтары

Программа құру.




10 апта

19, №20 практикалық сабақ



10 тақырып. Берілгендердің күрделі типі: массивтер

Сабақтың мақсаты:

  1. Берілгендер типімен танысу: шектелген, диапазондық.

  2. Шектелген және диапазондық типтердің жазылу әдісімен танысу .

  3. Түсініктермен танысу:

  • массив;

  • массивтің өлшемі;

  • массивтің жазылу әдісі.

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


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Екі өлшемді массив қалай жазылады?

  2. Екі өлшемді массивтің элементіне қалай рұқсат аламыз?

  3. Екі өлшемді массивті қалай толтырады?

  4. Екі өлшемді массивті экранға қалай шығарады?

  5. Екі өлшемді массивке нұсқағыш қалай қолданады?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

Программа құру.



11 апта

21, №22 практикалық сабақ



11 тақырып. Жолдар

Сабақтың мақсаты:

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

  2. Жолдық берілгендерді жазудың әдісмен танысу.

  3. Жолдармен жұмыс істеуде стандартты функциялармен танысу.

  4. Жолдық берілгендерді қолдану арқылы программа құруды үйрену.

Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Жол деген не?

  2. Жолды программада қалай жазуға болады?

  3. Жолды берілгендерде қандай операциялар рұқсат етілген?

  4. Жолдың жеке символына қалай рұқсат алуға болады?

  5. Жолдармен жұмыс істеуге арналған қандай функциялар бар?

  6. Екі жолды қалай салыстырады?

  7. Жолдық айнымалыға мәнді қалай меншіктейді?

  8. Жолдың ұзындығын қалай анықтайды?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

Программа құру.



12 апта

23, №24 практикалық сабақ



12 тақырып. Берілгендер құрылымы

Сабақтың мақсаты:

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

  2. Құрылымды пайдалану арқылы программа құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Берілгендердің құрылымдық типі қайда қолданылуы мүмкін?

  2. Құрылымды қалай анықтайды?

  3. Құрылымды жазу типі мен құрылымдық айнымалының арасындағы айырмашылық неде?

  4. Құрылым элементіне қалай?

  5. Құрылымда бір типтің элементтері болуы мүмкін бе?



Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.

СОӨЖ, СӨЖ сұрақтары

Программа құру.


13 апта

25, №26 практикалық сабақ



13 тақырып. Файлдар

Сабақтың мақсаты:

  1. Файл түсінігімен танысу.

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

  3. Ішкі файлдарды қолдану арқылы программа құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Файл деген не?

  2. Берілгендер файлын өңдеу үшін қолданудың қандай артықшылықтары бар?

  3. Программаларда файлға нұсқағыш не үшін қолданылады?

  4. Файлдың ашылуы және жабылуы қалай орындалады?

  5. Файлдармен жұмыс істеу үшін қандай енгізу және шығару функциялары бар?

  6. Файлды жаңа берілгендермен қалай толықтырады?

  7. Файлдардың тестілік және екілік форматтары.

Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.

СОӨЖ, СӨЖ сұрақтары

Программа құру.



14 апта

27, №28 практикалық сабақ



14 тақырып. Модулдер

Сабақтың мақсаты:

Модуль және стандартты модуль ұғымымен танысу.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Модуль деген не?

  2. Қандай стандартты модульдер бар және олар неге арналған?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.

СОӨЖ, СӨЖ сұрақтары

TP және Си модульдерінің қолданылуын салыстыру.

Программа құру.

15 апта

29, №30 практикалық сабақ



15 тақырып. Графика

Сабақтың мақсаты:


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

  2. Графикалық бейнелерді салу және қозғалту программаларын құруды үйрену.


Практикалық сабаққа дайындалуға арналған сұрақтар

  1. Экранмен жұмыс істеуге арналған қандай графикалық режимдер бар?

  2. Графикалық обьектілерді сызуға арналған қандай функциялар бар?


Сабақтың жүруі:

  1. Сабақ тақырыбы бойынша теориялық сұрақтарды қарастыру.

  2. Сабақ тақырыбы бойынша практикалық тапсырмаларды орындау.


СОӨЖ, СӨЖ сұрақтары

Программа құру.



3. студенттердің өздік жұмыстары тақырыптарының тізімі:



СОӨЖ тапсырмалары

СОӨЖ №1. Программаны өңдеуге арналған техникалық тапсырма.

СОӨЖ №2. Программаны техникалық проектілеу этабы.

СОӨЖ №3. Алгоритмдердің құрылымдық сызбасын өңдеу.

СОӨЖ №4. Берілгендерді ұйымдастыру.

СОӨЖ №5. Программаны құжаттау.

СОӨЖ №6. мақұлданған программалық құжаттау түрі.

СОӨЖ №7. Программалық құжаттаудың бірлік жүйесі.

СОӨЖ №8. Есептеу жүргізу үшін қандай формулаларды қолдануға болады:

Сандардың дәрежесі;

ctg x

arcsin x

arccos x

arcctg x

loga x


СОӨЖ №9. Кездейсоқ өлшем түсінігі.

СОӨЖ №10. Кездейсоқ өлшеммен жұмыс істеуге арналған процедуралар мен функциялар.

СОӨЖ №11. TP және Си программаларының қолданылуын салыстыру.

СОӨЖ №12. Программа құру.

СОӨЖ №13. Программа құру.

СОӨЖ №14. Программа құру.

СОӨЖ №15. Программа құру.


СӨЖ тапсырмалары

СӨЖ 1. Сызықтық программалау есебі түсінігіне анықтама беру.

СӨЖ 2. Конструктивті және сапалы есептер.

СӨЖ 3. Берілгендер түсінігі.

СӨЖ 4. Ақпарат туралы түсінік.

СӨЖ 5. Ақпарат моделі.

СӨЖ 6. Ақпарат типі. Ақпарат өлшемі.

СӨЖ 7. Түрлендіру: логикалық, структуралық, процедуралық

СӨЖ 8. Представление знаний правилами и логический вывод.

СӨЖ 9. Білім тілі

СӨЖ 10. Объектті-бағыттау программалауда берілгендер және білім анықтамалары

СӨЖ 11. Білім технологиясы

СӨЖ 12. Білім түсінігі проблемасы

СӨЖ 13. Берілгендермен білімнің арасындағы қатынас

СӨЖ 14. Білім түсінігін құру

Программалау тілдері теориясы және трансляция әдістері ” пәні бойынша емтиханға дайындалуға арналған сұрақтар тізімі.




  1. Дербес компьютердің программалық ортасы.

  2. Программалау әдісі.

  3. Программалау технологиясының негізі.

  4. Си тілінің жалпы сипатталуы. Си программалау жүйесіне кіріспе.

  5. Меншіктеу операторы. Енгізу-шығаруды ұйымдастыру.

  6. Шартты және шартсыз өтуоператорлары.

  7. Цикл операторлары.

  8. Функциялар.

  9. Жады кластары.

  10. Берілгендердің күрделі типі: массивтер.

  11. Жолдар.

  12. Берілгендердің құрылымы.

  13. Файлдар.

  14. Модулдер.

  15. Графика.


жүктеу 0,87 Mb.

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




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

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау