Функция ең болмағанда бір мәнді қайтаруы мүмкін. Бұл қайтарылған мән программаның орындалу барысында функцияның шақылу нүктесіне қойылатын функцияның орындалу нәтижесі. Аргументсіз және ешқандай мәнді қайтармайтын функцияларды қолдануға болады. Мұндай функциялардың әрекеті кейбір айнымалылардың мәнін өзгертуде, кей текстерді баспаға шығаруда, т.б.-ны құрайды. Си тілінде функцияны қолданумен үш түрлі мағына - функцияны анықтау (функциямен орындалатын әрекеттердің сипаттамасы), функцияны хабарлау және функцияны шақыру байланысты. Функцияны анықтау қайтарылатын мәннің типін, функцияның атын, формальді параметрлердің типі мен санын, сонымен бірге функция денесі деп аталатын айнымалы мен операторды хабарлауды және функцияның анықтайтын әрекетін береді.
Мысалы:
int rus (unsigned char r)
{ if (r>='А' && c<=' ') return 1; else return 0; }
Берілген мысалда unsigned char типті және r атты бір параметрі бар rus атты функция анықталған. Егер функция параметрі орыс алфавитінің әріпі болса, функция 1-ге тең бүтін санды қайтарады немесе керісінше. Қолданылатын функциялардың анықтамасы main функциясының анықтамасынан кейін, оның алдында немесе басқа файлда орын алуы мүмкін. Компилятор тексеруді жүргізу үшін берілетін фактілі параметрлер типін формальді параметрге сәйкестендіре отырып, функцияны шақырғанша функция хабарландырылуын (прототип) сыйғызу керек. Функция хабарландырылуы функция анықтамасының түріндей болады, тек айырмашылығы функция денесі болмайды және формальді параметрлердің аты түсіп қалады. Соңғы мысалда анықталған функция үшін прототип түрі мынадай болуы мүмкін:
int rus (unsigned char r); немесе rus (unsigned char);
Си тілінің программаларында библиотекалық функциялар, яғни өңделген және библиотекаға жазылған функциялар кеңінен қолданылады. Библиотекалық функциялардың прототипі жүйелі программалау құрамына енетін библиотекалармен бірге қойылатын арнайы тақырыптық файлдарда жатады және #include директивасы арқылы программаға қосылады. Егер функция хабарландырылуы берілмесе, функцияның алғашқы жіберуінің анализі негізінде ол функцияны шақыру немесе анықтау болса да, функция прототипі құрылады. Бірақ мұндай прототип келесі анықтамамен немесе функция шақырылуымен келісе бермейді. Әрқашан функция прототипі бері мақұлданады. Бұл компиляторға не функцияны дұрыс қолданбау кезінде диагностикалық хабарларды беруге не программа орындалу барысында орнатылған аргументтердің сәйкес келмеуін реттеуге мүмкіндік береді. Функция параметрлерінің хабарландыру оны анықтау кезінде функция атынан соң жақшада параметр аттары, ал жақшадан соң параметр типтерін хабарландыру жазылатын "ескі стилде" орындалуы мүмкін. Мысалы, алдыңғы мысалдан rus функциясы келесі жолмен анықталуы мүмкін:
int rus (r)
unsigned char r;
{ ... /* функция денесі */ ... }
СИ тілінің синтаксисіне сәйкес функция анықтамасы келесі формада болады:
[жады-класының-спецификаторы] [тип-спецификаторы] функция-аты
([формальді-параметрлер-тізімі])
{ функция-денесі }
Болуы міндетті емес жады-класының-спецификаторы static немесе extern болатын функция жадының класын береді. Функцияның тип-спецификаторы қайтарылатын мәннің типін береді және кез келген типті сұрауы мүмкін. Егер тип-спецификаторы берілмесе, функция int типінің мәнін қайтарады. Функция массив немесе функцияны қайтара алмайды, бірақ массивке, функцияғажәне кез келген типке көрсеткішті қайтара алады. Функция анықтамасында берілетін қайтарылатын мәннің типі осы функцияның хабарландыруының типімен сәйкес келуі керек. Егер функцияның орындалуы return операторымен аяқталса, функция мәнін қайтарады. Егер return операторы өрнекті құрамаса немесе функцияның орындалуы оның соңғы операторының орындалуынан кейін аяқталса, онда қайтарылған мән анықталмаған. Формальді-параметрлер-тізімі - бұл үтір арқылы бөлінген формальді параметрлер хабарландырулар тізбегі. Формальді параметрлер - бұл функция денесінің ішінде қолданылатын айнымалылар және оларға фактілі параметрлерге сәйкес келетін көшіру арқылы функцияны шақыру кезінде алынатын мәндер. Формальді-параметрлер-тізімі үтірмен (,) немесе көп нүктелі үтір (,...)-мен аяқталады, бұл функциялардың аргументтерінің сандары айнымалы екенін білдіреді. Егер функция параметрлерді қолданбаса, онда дөңгелек жақшаның болуы міндетті, ал параметрлер тізімінің орнына void сөзін көрсету керек.
Функция хабарландыруы (прототип) төмендегідей форматта болады:
[жады-класының-спецификатор] [тип-спецификатор] функция-аты ([формальді-параметрлер тізімі]) [функция-атының-тізімі];
Функция анықатамасына қарағанда тақырытық прототипте үтірлі нүкте жазылады, ал функция денесі болмайды. Форматтың қалған элементтерін қолдану ережесі функцияны анықтаудағыдай. Функцияны шақыру форматы төмендегідей:
адрестік-өрнек ([өрнектер-тізбегі])
Функцияның аты функция денесінің басының адресі болып табылады, функцияға адрестік-өрнек арқылы байланыс жасауға болады. Өрнек-тізімі функция арқылы берілетін фактілі параметрлер тізімін береді. Бұл тізім бос болуы мүмкін, бірақ дөңгелек жақшаның болуы міндетті.
Жақша алдында тұратын адрестік-өрнек функцияны шақыратын адресті анықтайды. Бұл функция қөрсеткіш арқылы шақырыла алатынын білдіреді. Мысалы:
int (*fun)(int x, int *y);
Мұнда fun айнымалысы екі параметрмен- int типі және int - ке көрсеткіш параметрлерімен функцияға көрсеткіш ретінде хабарланған. Функцияның өзі int типінің мәнін қайтару керек. fun көрсеткішінің атын құрайтын дөңгелек жақшалар және көрсеткіш белгісінің * болуы міндетті, әйтпесе мына жазу
int *fun (intx,int *y);
int –ке көрсеткішті қайтаратын fun функциясының хабарландыруы ретінде интерпретацияланады.
Функцияларды қолдану
Функцияны пайдаланып, цилиндрдің көлемін есептеу.
#include
/* цилиндрдің көлемін есептеу */
void main ( )
{float w(float, float); /* функция прототипі */
float a,b;
int j;
for (j=0; j<5; j++)
{printf("/nМәнді енгізіңіз a=");
scanf( "%f",&a);
printf("Мәнді енгізіңіз b=");
scanf( "%f", &b);
if ( a > 0.0 && b > 0.0 ) break;
printf("/n Қате, a>0 және b>0 болуы керекі\n");}
if (j==5)
{printf("/n мәнді өте нашар енгіздіңізі");
return;}
printf("/n Цилиндрдің көлемі =%f ", w(a,b));} /* негізгі программаның соңы */
/* цилиндрдің көлемін есептеу функциясы: */
float w(float g, float h)
{if ( g>=h )
return (3.14159*g*g*h);
else
return (3.14159*g*h*h);}
Программаның орындалу нәтижесі:
Мәнді енгізіңіз a=2.0
Мәнді енгізіңіз b=-44.3
Қате, a>0 және b>0 болуы керекі
Мәнді енгізіңіз a=2.0
Мәнді енгізіңіз b=3.0
Цилиндрдің көлемі=56.548520
Рекурсивті функциялар. Параметрлері айнымалы санды функциялар. Рекурсивтік функциялар. Си тілінде функциялар өз-өздерін шақыра алады. Функция рекурсивті деп аталады, егер функция денесіндегі операторда сол функцияның шақыруы бар болса. Рекурсивтік функцияның классикалық мысалы ретінде,
Nі =1*2*3*4*...N cанының факториалын есептеу жатады.
factorial ()
{ int a;
if (n ==1) return 1;
a= factorial (n-1)*n;
return a; }
Рекурсивтік функцияда функцияны шақыру функцияның жаңа көшірмесін құрмайды, ол жадыда жаңа локальдық айнымалылардың және параметрлердің көшірмесін құрайды. Рекурсивтік функциядан шығуды қарастыру керек, онда жүйенің “тежеліп” (“зависание“) қалуы мүмкін.
Функция
Параметрлі айнымалы санды функцияны құру үшін, stdarg.h және varargs.h файлдарын пайдалану керек.
Кемінде бір параметрі болып және көп нүктемен (...) аяқталған параметрлері айнымалы сандағы функцияларды сипаттағанда, соңғы фиксирленген параметрден кейін көп нүкте алдыңда қайырма қою шарт емес. Мысалы:
void (int a, int b,...);
немесе
void f (int a, int b...);
Cи тілінде аргументтер айнымалы санымен жұмыс істеу үшін басқа ешқандай жағдайлар қарастырмайды, бірақ stdarg.h файлында параметрлері айнымалы санды функциялармен қолдау табатын жабдықтар бар:
тип va_list
макрос va_start(list, last_fixed)
макрос va_arg(list, arg_type)
макрос va_end(list)
va_start макросы фиксирленбеген параметрлерге ену (доступ) механизмінің инициализациясын шығарады, list - va_list типті айнымалы және last_fixed- соңғы фиксирленген параметр.
Фиксирленбеген параметрлерге тізбектелген ену va_arg макроспен орындалады, мұндағы макростың бірінші параметрі, va_start шақырумен инициализацияланған va_list типті айнымалы, ал екінші параметр - келесі параметрдің типі; va_arg бұл параметрдің мәнін қайтарады. Типтің сәйкестігін тексеру жүргізілмейді, яғни va_arg типімен және функцияны шақырудағы сол берген арасында сәйкестік программистің бақылауында болуы
керек.
va_end макросы va_list типті айнымалымен жұмысты аяқтайды.
Функцияны параметрлері айнымалы санды функцияны пайдаланудың мысалы:
1. int sum_1 (int a,...)
{ va_list args;
int result=a,t;
va_start (args, a);
while (t=va_arg (args, int)і=0)
result +=1;
va_end (args);
return result;}
2. int sum_2 (int num_args,...)
{ va_list args;
int result=0,i;
va_start (args, num_args);
for (i=0;i< num_args ;i++)
result +=va_arg(args,int);
va_end (args);
return result;}
void error_message (char*fint,....)
{va_list (args);
printf (“error:”);
va_start (args, fint);
vprintf (fint, args);
va_end (args);
exit (1);}
Мұнда параметрлері айнымалы санды функциямен жұмыс істеудің үш тәсілін келтірілген. Мұндағы негізгі проблема, шақырылатын функцияда параметрлердің типі де, олардың саныда белгісіз болуында. Келесі :
(printf () функциясындай форматтау қатары форматттау спецификасы арқылы параметрлердің толық типін және санын анықтайды.
(кейбір мәндерді (мысал 1) резервтелінген етуге болады.
(Параметрлер санын фиксирленген параметрлер (мысал 2) ретінде беруге болады.
(stdio.h файлында туысқандық функциялар vprintf () ,vsprintf (), vfprintf (), vscanf (),vsscanf (), vfscanf () қарастырылған. Оларды басқа параметрлері айнымалы санды функцияларда пайдалануға болады.
Бұл механизм қалай орындалады. Функцияның параметрлері жадыда бірінен соң бірі орналасады. Va_list типі - void көрсеткіші болады. va_start макросы бұл көрсеткішті соңғы фиксирленген параметрден кейін орнатады. va_arg макросы белгіленген екінші параметр ретіндегі типті пайдалануда, бірінші параметр көрсеткен мәнге қайтарады.
Borland C++ фиксирленбеген параметрлерді char, unsigned char тиянақты пайдалану керек. Өйткені жадыда оларға 1 байт орынды алады, ал стекте оларға 2 байт бөлінеді.
Егер кейбір операциялар жиынтығын бірнеше рет орындауға (бастапқы берілгендерді жиі жаңадан енгізу) тура келсе, онда ішкі программа деп аталатын программалық модуль қалыптастыруға болады. Си тілінде ішкі программаның бір ғана түрі -функция -қолданылады.
Ішкі программа -функциямен жұмыс істеу нәтижесінде, оның атымен байланысты кейбір мәндер қалыптасады. Сондықтан ішкі программаны анықтаған кезде, оның атының алдыңда, көрсеткіштің типі қойылады. Кейде, функцияны пайдаланудың логикасы, функцияның атымен байланысқан мәнді қалыптасуын қажет етпейді. Сонда типтің көрсеткіші ретінде void қызметші сөзі пайдаланады.
Си тілінде функцияның анықталуын (хабарлануын) және оның сипатталуын білуіміз керек. Егер функцияның бары туралы хабарланса, онда қалған функциялар (main деп аталатын бас функцияны қоса) функцияда хабарлануы мүмкін. Бірақ та функцияны хабарлау жеткіліксіз. Оның толық мәтінің сипаттауымыз керек.
Программаның басында пайдаланатын функциялардың анықталынуы берілген. Анықталуында параметрлердің типі және саны көрсетілген, бұл алдағы уақытта функцияны шақыру кезінде, әртүрлі қателерді (негізгі параметрлердің типімен санының сәйкес келмеуі) бақылауды қамтамасыз етеді. Содан кейін тұрақтылар сипатталады. Жалпы тұрақты функциядан тыс сипатталғандықтан, барлық функцияларға “көрініп“ тұр. Келесіде, әрдайым main деп аталатын бас функцияның тексті (сипатталуы) келеді. Программада мұндай функция - жалғыз және main функциясына назар аударып орындалады. Программаның текстінде main() кез келген жерінде орналасуы мүмкін. Қарастырылған программада main() кейін үш функция сипатталған: берілгендерді енгізу, нәтижені есептеу және оны шығару.
Inab функциясының орындалуының нәтижесі, оның атымен байланысты, бұл нәтиже пайдаланбайды, void типінің берілгені ретінде жүреді. Функцияның параметрлері, берілгендерді енгізетін орындарының адрестері болып табылады. Сондықтан кіретін параметрлер, float типті берілгендер сияқты анықталмайды. Ал, олар осы берілгендерге көрсеткіш түрінде анықталынады.
Result () функциясы бастапқы берілгендер ретінде сандық мәндерді және float типті нәтижені шығарады. Функцияның атымен байланысты нәтижені беру үшін, return операторы пайдаланады.
Outres () функциясы оның атымен байланысқан нәтижені шақыру “нүктесіне“ қайтармайды. Сондықтан, бұл функция void типті болады.
Функцияның анықталуы
Программада пайдаланатын функция анықталуы тиіс; басқаша айтқанда, олар “хабарланған“ болуы керек. Функцияның анықталуының екі тәсілі бар: классикалық
және қазіргі «современный». Классикалық тәсіл функцияның атын және нәтижені шақыру нүктесіне қайтаратын типті ғана хабарлайды. Жоғарыда қарастырылған программада:
void inab ();
float result ();
void outres ();
Мұнда параметрлердің саны, типтері туралы ешқандай информация жоқ.
“Қазіргі заманғы“ тәсіл прототип деп аталатын хабарлануды пайдаланады. “Прототип“ термині функцияны хабарлау кезінде, параметрлер туралы информацияны қосу үшін пайдаланады. Қарастырылған программада прототиптер, әрбір функцияның бірінші қатарын дәлме-дәл қайталайды. Жалпы жағдайда прототип мына форматқа бағынады:
функция-аты типі (инф-парам-1, ..., инф-парам-і,...);
мұндағы инф-парам-і- і-ші параметр туралы информация
Прототипті параметр туралы информация мына түрде көрсетіледі:
а) тип
параметр-атының типі
...
с) варианттың пайдалану параметрлері өзгеруі мүмкін екендігін білдіреді. Прототиптерді қолдану, параметрлердің тапсырмаларының корректілі ойылмағандығына, компиляторға бақылау жауапкершілігін жүктейді.
Функцияның сипатталуы
Си тіліндегі программалар - функциялар жиынтығы. Функцияны сипаттаудың классикалық үлгісі келесі схемаға бағынады:
функция-атының типі (параметрлер тізімі)
параметрлерді сипаттау;
{ локальдық сипаттау;
....
команда;
....
команда; }
“Жаңаша“ үлгі параметрлерді сипаттауды жай жақшаның ішіне ауыстырды:
функция-атының типі (инф-парам-1,...,инф-парам-і,...)
{ локальдық сипаттау;
....
команда;
....
команда; }
Мұндағы инф-парам-і -параметр туралы информация (параметр типі және аты). Бұл прототипке ұқсас: әрбір параметр туралы информация бар. Прототиптен айырмашылығы тақырыптың жазылуы “;” бітпейді.
Тұрақтылардың, берілгендер типінің және функцияның ішіндегі айнымалылардың сипатталуы (main ішіндегі жазылғанды қоса) тек осы функцияның аралығында ғана орындалады.
Си тілі бір функцияның екіншісіне енуін жібермейді.
№ 19, 20 практикалық сабақтың тақырыбы: Функцияны қолданып программалау.
Тапсырма: Төмендегі есептердің Си тілінде программасын құрыңдар:
Үш натурал сандар берілген. Олардың ең үлкен ортақ бөлгішін (ЕҮОБ) анықтайтын функцияны құру керек.
Натурал N саны берілген. Ол екі x және y бүтін сандарының квадраттарының қосындысына тең болатын болса N=x2+y2, онда x, y сандарын анықтайтын функцияны құру керек.
Натурал N саны берілген. K2-қа бөлінетін және K3-қа бөлінбейтін барлық натурал K-ларды табу керек.
Егер N цифрдан тұратын натурал санның цифрларының қосындысын n-ші дәрежеге шығарғанда, сол санның өзіне тең болатын болса, ондай сан Армстронг саны деп аталады (мысалы, 153=13+53+33 ). Екі, үш және төрт цифрдан тұратын барлық Армстронг сандарын табу керек.
Екі ұшбұрыштың төбелерінің координаталары берілген. Олардың қайсысының ауданы үлкен екенін анықтау керек.
Жазықтықтағы үш түзу akx+bky=ck (k = 1,2,3) теңдеулерімен берілген. Егер ол түзулер қос-қостан қиылысып, үшбұрыш құрайтын болса, сол үшбұрыштың ауданын табу керек.
Екі жай санның бір-бірінен айырмашылығы 2-ге тең болса, олар “егіздер” деп аталады (мысалы, 41 және 43 сандары). [n, 2n] аралығындағы барлық ―егіздерді анықтау керек, мұндағы n–2-ден үлкен бүтін сан.
Нүктеден шеңбер центріне дейінгі қашықтықты табу функциясын қолданып, 8 элементтен тұратын нүктелер массивінің центрі (1,1), радиусы R шеңберге тиісті нүктелерінің санын табыңдар.
Табаны а-ға тең, биіктігі 2-ден 6-ға дейін 0,5 қадаммен өзгеретін үшбұрыштардың орташа ауданын, үшбұрыш ауданын табу ішкі программасын қолданып есептеңдер.
n нүктенің жазықтықта координатасы берілген. Екі нүктенің ара қашықтығын табу функциясын қолданып, берілген нүктелерден координаталар басына дейінгі қашықтықтарды табыңдар.
n! –ды табу функциясын қолданып, алғашқы 10 жұп натурал сандардың факториалдарын табыңдар.
Екі нүктенің ара қашықтығын табу процедурасын қолданып, төбелері берілген үшбұрыштың периметрін табыңдар.
Берілген натурал санның жәй сан екенін анықтау процедурасын қолданып, N-нен кіші барлық жәй сандарды табыңдар.
Пифагор сандарын табу ішкі программасын қолданып, берілген n-нен кіші барлық Пифагор сандарын табыңдар (а,в,с натурал сандар Пифагор сандары деп аталады, егер а2+b2=c2 шарты орындалса).
Əдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер.
№10. СОБӨЖ.
Тақырыбы: Функция.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Функцияны анықтау.
Функцияға қатынау.
Функцияны қолдану программалары
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8[ 578- 592] ,3[533-567]
№10. СӨЖ.
Тақырыбы: Функция.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Функцияны анықтау.
Функцияға қатынау.
Функцияны қолдану программалары
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8[ 578- 592] ,3[533-567]
Он бірінші апта
№ 21, 22 практикалық сабақтың тақырыбы: Құрылымдық типтерді программалау.
Тапсырма: Төмендегі есептердің Си тілінде программасын құрыңдар:
Келесі мәліметтерден құралған төрт студент туралы ақпаратты енгізіңіз:
тегі және инициалы;
туған жылы;
оқуға түскен жылы;
бірінші семестрдің бағасы:
физика;
жоғарғы математика;
информатика;
Әліпби бойынша реттелген студенттердің тізімін шығару керек.
Туған жылы бойынша реттелген студенттердің тізімін көрсету қажет.
Оқуға түскен жылы бойынша реттелген озат студенттердің тізімін шығару керек.
Сессияны 4 және 5-ке тапсырған студенттердің анкеталық мәліметтері шығарылуға тиіс.
Тегі (фамилиясы) Б әрпінен басталатын студенттердің тізімін және олардың барлық пәндер бойынша бағаларын көрсету керек.
Оқу озаттарының анкеталық мәліметтерін шығару қажет.
Тегі А әріпінен басталатын студенттердің тізімін және олардың туған жылдары көрсетілуі тиіс.
Сессияда «3» деген бағалары бар студенттердің анкеталық мәліметтерін шығару керек.
Тегі В және Г әрпінен басталатын студенттердің тізімін және олардың бағаларын шығаратын программа құру керек.
Сессияны «үштік» баға алмай, емтихан тапсырған студенттердің тізімін және олардың туған жылдарын шығару керек.
Барлық студенттердің жалпы орта балын және осы орта балдан жоғары балл жинаған студенттердің тізімі көрсетілуі тиіс.
Барлық студенттердің жалпы орта балын және осы орта баллға тең балл жинаған студенттердің тізімін шығару керек.
Сессияда ―екілік алған студенттердің анкеталық мәліметтерін шығару керек.
Информатика пәнін 5-ке тапсырған студенттердің анкеталық мәліметтерін экранға шығару қажет.
Физиканы 4-ке және жоғарғы математиканы 5-ке тапсырған студенттердің анкеталық мәліметтері шығарылуы тиіс.
Төмендегідей тапсырмаларды практикалық жұмыстар кезінде орындау керек.
нұсқа
Flat (бөлмелер саны, көлемі, қабаты, мекен жайы, бағасы) құрылымын сипаттаңыз. Пернетақтадан жиымға бес элементтен тұратын Flat типіндегі мәндер енгізіңіз. Экранға бағалары (пернетақтадан) енгізілген саннан аспайтын пәтерлер жайлы ақпаратты шығару керек. Егер, ондай пәтер болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
PEREVOZKI (ұшақ типі, рейстер саны, осы кезге дейінгі сағатпен берілген ұшқан мерзімі, мың километрмен берілген ұшқан қашықтығы) құрылымын сипаттаңыз. Пернетақтадан жиымға алты элементтен тұратын PEREVOZKI типіндегі мәндер енгізіңіз. Экранға ұшқан мерзімі (пернетақтадан) енгізілген саннан артық ұшақтар жайлы ақпаратты шығару керек. Егер, ондай ұшақ болмаса, программа экранға сәйкесінше хабарлама шығарылуы тиіс.
нұсқа
AVTO (машина маркасы, түсі, бағасы, максималды (максимум) жылдамдығы) құрылымын сипаттаңыз. Пернетақтадан жиымға алты элементтен тұратын AVTO типіндегі мәндер енгізіңіз. Экранға жылдамдығы (пернетақтадан) енгізілген саннан (аспайтын) кем болатын машиналар жайлы ақпаратты шығару керек. Егер, ондай машина болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
TELEFON (абоненттің ЖАТ, телефон нөмірі, телефонға төлеген төлемі, орнатқан жылы) құрылымын сипаттаңыз. Пернетақтадан жиымға бес элементтен тұратын TELEFON типіндегі мәндер енгізіңіз. Экранға орнатылған жылы (пернетақтадан) енгізілген саннан (аспайтын) артық болатын телефондар жайлы ақпаратты шығару керек. Егер, ондай телефон болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
DET_SAD (бала бақша нөмірі, бүлдіршіндер саны, қала ауданы, бір айлық төлемі) құрылымын сипаттаңыз. Пернетақтадан жиымға алты элементтен тұратын DET_SAD типіндегі мәндер енгізіңіз. Экранға көрсетілген аудандағы (ауданның аты пернетақтадан енгізіледі) бала бақшалар жайлы ақпаратты шығару керек. Егер, бұл ауданда балабақшалар әлі болмаса, программа экранға сәйкесінше хабарлама шығарылуы тиіс.
нұсқа
MUSEUM (мұражай аты, жұмыс жасау уақыты, билеттің құны, мекен жайы) құрылымын сипаттаңыз. Пернетақтадан жиымға алты элементтен тұратын MUSEUM типіндегі мәндер енгізіңіз. Экранға билетінің құны (пернетақтадан) енгізілген саннан (аспайтын) аспайтын мұражайлар жайлы ақпаратты шығару керек. Егер, ондай мұражай болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
TOUR (елі, турдың ұзақтығы, транспорт түрі, бағасы) құрылымын сипаттаңыз. Пернетақтадан жиымға жеті элементтен тұратын TOUR типіндегі мәндер енгізіңіз. Экранға билет құны (пернетақтадан) енгізілген саннан (аспайтын) аспайтын елдер жайлы ақпаратты шығару керек. Егер, ондай ел болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
PRICE (тауардың аты, құны, дүкеннің аты) құрылымын сипаттаңыз. Пернетақтадан жиымға жеті элементтен тұратын PRICE типіндегі мәндер енгізіңіз. Экранға пернетақтадан енгізілген дүкендегі тауарлар жайлы барлық ақпаратты шығару керек. Егер, ондай дүкен болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
FRIDGE (тауардың аты, дайындаған фирмасы, қоймадағы саны, бағасы) құрылымын сипаттаңыз. Пернетақтадан жиымға бес элементтен тұратын FRIDGE типіндегі мәндер енгізіңіз. Экранға бағасы (пернетақтадан) енгізілген саннан (аспайтын) аспайтын тоңазытқыштар жайлы ақпаратты шығару керек. Егер, ондай тоңазытқыш болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
ZODIAK (жұлдыз бойынша зодиак белгісі, аты және жөні, туылған күні) құрылымын сипаттаңыз. Пернетақтадан жиымға жеті элементтен тұратын ZODIAK типіндегі мәндер енгізіңіз. Экранға жұлдызы «мерген» болатын адамдардың жөнін, атын және туылған күнін шығару керек. Егер, ондайлар жоқ болса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
нұсқа
STUDENT (оқу орнының аты, студенттің тегі және инициалдары, топ нөмірі, бес бағадан тұратын жиым-үлгерімі) құрылымын сипаттаңыз. Пернетақтадан жиымға алты элементтен тұратын STUDENT типіндегі мәндер енгізіңіз. Экранға орта балы (пернетақтадан) енгізілген саннан артық болатын студенттер жайлы ақпаратты шығару керек. Егер, ондай студент болмаса, программа экранға сәйкесінше хабарламаны шығаруы тиіс.
Әдістемелік нұсқау: Берілген есептің қойылысын талдап, Си тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер.
№11. СОБӨЖ.
Тақырыбы: Құрылымдық типтер жəне құрылым.
Тапсырма:Сұрақтарға жауап беру.
Сұрақтар:
1.Құрылымдық тип.
Құрылымдық типті анықтау форматы.
Құрылымдық типті анықтаудың typedef операторы.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [711-739]
№11. СӨЖ.
Тақырыбы: Құрылымдық типтер жəне құрылым.
Тапсырма:Сұрақтарға жауап беру.
Сұрақтар:
1.Құрылымдық тип.
Құрылымдық типті анықтау форматы.
Құрылымдық типті анықтаудың typedef операторы.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [711-739]
Он екінші апта
№23, 24 практикалық сабақтың тақырыбы: Көрсеткіш. Оны программалауда пайдалану.
Тапсырма: Төмендегі есептердің Си тілінде программасын құрыңдар:
A[m][n] матрицаның жолдарының евклидтік нормасын табу программасын құрыңдар. (Бір өлшемді массивтің элементтерінің квадраттарын табатын фунцияны қарастырып, функция параметрі ретінде массивке көрсеткішті қолданыңдар.)
Бір өлшемді нақты сандар массивінің орташа мəнін табу функциясын жасаңдар. Бұл функцияны ең үлкен мəнді орташасы бар матрица жолының нөмірін анықтайтын негізгі программада қолданыңдар. (массивке көрсеткішті қолданыңдар.)
Интернеттен көрсеткіш тақырыбы бойынша ақпарат іздеу, программа құру
Əдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып, тестілеңдер.
№12. СОБӨЖ.
Тақырыбы: Көрсеткіш.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Массив функция параметрі ретінде.
Массивке көрсеткіш мысалын қарастыру.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8[ 458-493 ]
№12. СӨЖ.
Тақырыбы: Көрсеткіш.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Массив функция параметрі ретінде.
Массивке көрсеткіш мысалын қарастыру.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8[ 458-493 ]
Он үшінші апта
№25, 26 практикалық сабақтың тақырыбы: Деректер ағынымен жұмыс істеу командаларын қолданып программалау.
Тапсырма: Деректер ағынымен жұмыс істеу командарларын қолданып, Си тілінде программа құрыңдар:
f файлында квадрат матрица берілген. Матрицаның жұп элементтерінің орнына 0, тақ элементтерінің орнына 1 санын қойып, пайда болған матрицаны g файлына шығар.
Файлды кездейсоқ сандармен толтырып, ондағы тақ сандардың квадраттарының қосындысын табыңдар
f файлында сөздер массиві берілген. Берілген әріптен басталатын сөздерді g файлында көрсетіңдер.
Файлдағы сөздерді алфавит бойынша реттеп, нәтижені басқа файлға жазыңдар.
Орысша сөздерден тұратын файл берілген. Бірдей әріптен басталатын және аяқталатын сөздерді басқа файлға шығарыңдар.
Оқушы аты және жасынан тұратын файл берілген. Оқушы жасын өсуі бойынша реттеп, оларды атымен қоса екінші файлға шығарыңдар.
Барлық элементі 0-ге тең А(5,5) матрицасы файлда берілген. Кездейсоқ тәсілмен одан әртүрлі 7 элементті таңдап, таңдалған элементтің орнына 3 санын қойып, шыққан матрицаны басқа файлда көрсетіңдер.
Файлдан сандар оқып, солардың ішіндегі теріс сандар қанша екенін анықтайтын программа құру керек.
Файлдан сөз тіркесін оқып, солардың ішіндегі 6 символдан артық сөздерді экранға шығарып, басқа файлға жазып шығыңдар.
Файлдан сандар оқып, солардың арифметикалық ортасын файл соңына қосып жазу керек.
Файлдан сөз тіркесін оқып, солардың керісінше жазылған нұсқасын басқа бір файлға жазып шығыңдар.
Файлдан сандар оқып, солардың максимумын анықтайтын программа құру керек.
Файлдан сөз тіркесін оқып, солардың ішіндегі бос орын орнына сызықша жазып оны басқа бір файлға жазып шығу керек.
Файлдан сандар оқып, солардың минимумын анықтайтын программа құру керек.
Бір файлда екі сөйлем жазылған, соның екінші сөйлемін басқа файлға жазып шығу керек.
Файлдан сандар оқып, солардың көбейтіндісін анықтайтын программа құру керек.
Сөз тіркесінен тұратын файлдағы бас әріптерді кіші әріптерге айналдырып, басқа файлға жазып шығу керек.
Файлдан сандар оқып, солардың нешеуі 5-тен артық екенін анықтау керек
Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерін біріктіріп, үшінші файлға жазып шығыңдар.
Файлдан сандар оқып, солардың қосындысын анықтау керек
Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерінің орнын ауыстырып жазып шығу керек.
Файлдан сөз тіркесін оқып, солардың ішіндегі ең ендісін анықтап, соның неше символдан тұратынын анықтау қажет.
Файлдан сандар оқып, солардың тақтарын бір файлға, жұптарын екінші файлға жазып шығыңдар.
Файлдан бірнеше сөйлем оқып, сол сөйлемдердің ―м әрпінен басталатын бір сөйлемін ғана экранға шығарып, соның ұзындығын анықтайтын программа құру керек.
Файлдан сандар оқып, солардың барлығын да бірге арттырып, шыққан сандарды басқа бір файлға жазып шығыңдар.
Файлдан бірнеше сөйлем оқып, сол сөйлемдердің ең соңғы сөйлемін ғана экранға шығарып, соның ұзындығын анықтайтын программа құру керек.
Файлдан сандар оқып, соларды керісінше тәртіппен екінші бір файлға жазып шығыңдар.
Файлдан сандар оқып, солардың цифрларын экранға сөзбен шығаратын программа құру керек, мысалы, 0 орнына ―нөл, 1 орнына ―бір, т.с.с. 9 орнына ―тоғыз деп жазатын болуы тиіс.
Файлдан сөз тіркесін оқып, солардың бірінші сөзі мен соңғы сөзін алмастырып, екінші бір файлға жазып шығыңдар.
Файлдан сөз тіркесін оқып, соларды керісінше жазып шығатын программа құру керек.
Файлдан сандар оқып, солардың алғашқы жартысы мен соңғы жартысының орнын ауыстырып, нәтижесін жаңа файлға жазып шығу керек.
10 бүтін саннан тұратын файл жасайтын программа құру керек. Сол файлдағы сандарды оқып, олардың қосындысын анықтаңдар.
Whіle операторы арқылы Char типті элементтерден тұратын файл жасау қажет. Циклден шығу шарты – z әрпін енгізу. Сол файлдың көшірмесін екінші бір файлға жазып, жазылған мәліметтерді экранға да шығару керек.
Іnteger типті N саннан тұратын файл жасап, сол файлдағы жұп сандарды экранға шығару қажет.
Бүтін сандардан тұратын файл жасап, сол сандарды басқа бір файлға кері тәртіппен жазып шығу керек.
Мынадай құрылымдағы бірнеше қатарлары бар файл жасау керек: реттік нөмірі; фамилиясы, аты-жөні; жалақысы.
Осы файлға бес адам туралы мәліметтер енгізіп, басқа файлға осылардың ішіндегі ең көп жалақы алатын адам туралы мәліметті көшіріп жазу керек.
Файлдағы мәтінді түгел оқып шығып, ондағы «о» әрпін «а» әрпімен алмастыратын программа құрыңдар.
Файлдағы мәтіндік ақпаратты экранға және қағазға шығаратын программа жасау керек.
Файлда N бүтін сан жазылған. Соларды өсуі бойынша реттеп, екінші файлға жазып шығару қажет.
Нақты сандардан тұратын бір өлшемді жиым элементтерін пернелерден енгізе отырып, бір файлға жазып шығып, сол жиымның жұп индексті элементтерін екінші файлға жазатын программа құрыңыздар.
Топтағы студенттердің үлгерімін бір файлға мынадай түрде жазу керек: рет нөмірі, аты-жөні, 5 сабақтың аты, әр сабақтан алған 3 бағасы. Программаға енгізілетін мәліметтер пернелерде теріліп, файлға жазылуы қажет. Жақсы оқитын студенттер тізімін екінші бір файлға бөлек жазып шығу керек.
Əдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып, тестілеңдер.
№13.СОБӨЖ.
Тақырыбы: Деректер ағынымен жұмыс жасау.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Деректер ағынын хабарлау.
Деректер ағынын ашу.
3. Деректер ағынынан деректерді оқу жəне жазу.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 1[ 605- 618]
№13.СӨЖ.
Тақырыбы: Деректер ағынымен жұмыс жасау.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Деректер ағынын хабарлау.
Деректер ағынын ашу.
3. Деректер ағынынан деректерді оқу жəне жазу.
Əдістемелік нұсқау: Берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 1[ 605- 618]
Он төртінші апта
№27, 28 практикалық сабақтың тақырыбы: Мəтіндік режимді басқару функцияларын қолданып программалау
Тапсырма: Мәтіндік режимді басқару программаларын құрыңдар.
Уақытты есептеп отыратын сиқыршымен кездестiңдер делiк және ол сендерге жұлдыздар сырын ашып бередi деп ойлайық. Неге аспанда жұлдыздар жымыңдайды? Аспандағы әрбiр жұлдыз — бiр адамның өмiрi. Сендерге көне жұлдыздарды дәл уақытында өшiрiп, жаңасын дер кезінде жағып отыру керек. Уақыт есептеушінің жұмысын көрсететін программа жазу керек. Есеп модель құрудан басталады: экрандағы әрбiр жұлдыз нүктемен көрсетіледi және барлығы 20 жұлдыз жанып тұрсын делiк (кездейсоқ түрде таңдап алынған): жанып тұрған бiрiншi нүктенi өшiрiп, оны кез келген басқа орыннан жандыру керек, содан кейiн екiншiсiн, т.с.с. Жиырмасыншы жұлдыз өшкеннен кейiн қайтадан бiрiншiсiне көшу керек.
«Жаңбыр» программасын жазыңдар — экранда (кездейсоқ күйде) 50 нүкте жоғарыдан төменге қарай қозғалып келе жатқандай болуы тиіс. Нүктелердiң бiрi экранның төменгi шекарасына жеткенде, ол қайтадан экранның жоғарғы бөлiгiнде пайда болуы керек.
«Жаңбыр» программасын кейбiр нүктелер шапшаң, кейбiреулерi баяу қозғала-тындай етiп өзгертiңдер.
«Жаңбыр» программасын нүктелер өз қозғалысын төменгi сол жақ бұрыштан бастап, жоғарғы оң жақ бұрышта аяқталатындай етiп өзгертiңдер.
Қағазға оралған ―кәмпиттiң бейнесiн: диагональдары жүргiзiлген горизонталь тiктөртбұрыш пен оның екi жағына жалғасып жатқан тең қабырғалы үшбұрыштар салыңдар. Тiктөртбұрыштың сол жақ төменгi төбесiнiң координатасы (х, у), биiктiгi а-ға, ұзындығы 2а-ға тең болсын. Үшбұрыштың биiктiктерi а/2. Тiкбұрыштың диагональдары мен қабырғаларынан пайда болған қарама-қарсы екi үшбұрышты бояңдар.
Үш тiстi және жарты дөңгелек пiшiндi аркасы бар мұнара салыңдар. Мұнараның сол жақ төменгi төбесiнiң координатасы (х, у), табанының ұзындығы а. Қалған өлшемдерiн а арқылы өрнектеп табыңдар. Мұнараны бояңдар.
Куб салыңдар. Кубтың алдыңғы сол жақ төменгi төбесiнiң координатасы (х, у), бүйiр қыры а. Жоғарғы бүйiр бетiн бояңдар, оң жақ бүйiр бетiнде диагональ жүргiзiңдер.
Алтыбұрышты тiк пирамида салыңдар. Табанының алдыңғы сол жақ төбесiнiң координатасы (х, у), табанындағы қыры а. Қалған өлшемдерiн а арқылы өрнектеп табыңдар. Пирамиданың екi бүйiр жақтарын бояңдар.
Тiктөртбұрышты қиық пирамида салыңдар. Пирамида табанының төменгi сол жақ төбесiнiң координатасы (х,у), табанындағы қыры а, жоғарғы жақтың қыры — а/2. Қалған өлшемдерiн а арқылы өрнектеп табыңдар. Пирамиданың оң жақ бүйiр бетiн бояңдар.
Қарайтылған ―Е әрпi тәрiздi фигура салатын программа құрыңдар. Әрiп құрайтын нүктелердiң абсциссалары мен ординаталары жиым элементтері ретiнде берілген. Сурет салу үшiн циклге енгiзiлетiн тек қана бiр LINE операторын пайдаланыңдар.
Экранда боялған шырша салатын программа жазыңдар. Сурет элементтерін жиымда сақтап, өшiрiп және содан кейiн қайтадан экранға шығарыңдар.
Боялған 7 шыршаның суретiн салатын программа жазыңдар. Шыршалар бiр-бiрiне ұқсас, горизонталь бойында бiр қалыпта орналасады, шыршалардың биiктiгi солдан оңға қарай сызықтық түрде өсуi керек. Шыршаларды бойлап Қызыл Телпек оларды уақытша ―үсiп қалмасын деп бір затпен жауып шығатын болсын.
Графикалық режiмде ESC пернесiн басқанша монитор экранына кездейсоқ күйде бірсыпыра нүктелер шығаратын программа құрыңдар.
Графикалық режiмде ESC пернесiн басқанша монитор экранында (100, 100) — (300, 200) тiктөртбұрышының нүктелерiн кездейсоқ күйде жоятын программа құрыңдар.
Шахмат тақтасының бейнесін салыңдар.
Циклдiк операторды пайдаланып 10 басқышы бар саты салыңдар, оның жұп және тақ нөмiрлi басқыштарының көлемi әртүрлi болатын программа құрыңдар.
Шеңберге iштей бесбұрышты жұлдыз салыңдар.
Қызыл экранға 0..9 аралығындағы 1000 кездейсоқ санды ақ түспен шығару қажет. Мұнан соң экран түсін жасылға бояп, сандарды сары түспен шығарыңдардар.
Экранды барлық (8) фон түстеріне 5 секунд кідіріспен бояп шығыңыздар. Экранның сол жақ жоғарғы бұрышына оның нөмірін жазып қою керек.
Қара экранға 1-ден 16-ға дейінгі сандарды 16 түрлі түске бояп шығару қажет. Әрбір сан бөлек жолда орналасатын болсын.
Алдын ала тазартылған экранды ақ түске бояп, жеті атаңыздың аттарын жеті түрлі түспен шығарыңдардар.
Экранның жоғарғы жағына екі терезе салып, оның біріншісінің ішіне өз атыңызды, екіншісіне – фамилияңызды жазып қойыңыз. 10 секундтан кейін терезелер ішін тазартып, өз аты-жөніңіздің орнына досыңыздың аты мен фамилиясын орналастырыңыз.
Экранның сол жақ шетіне көк түсті терезе салып, оны оң жаққа қарай қадамын бір символ етіп жылжытып отыратын программа құру керек.
Экранға біртіндеп үлкейе бастайтын шағын қызыл терезе салу қажет. Үлкею қадамын Х координатасы үшін 3, ал У координатасы үшін 1 етіп алыңыздар.
Экранды көк түсті жұлдызшамен жиектеңдер де, рефераттың басқы бетін безендіріңдер.
Қызыл түсті экранға 0..9 аралығынан ақ түсті 100 кездейсоқ сан шығарыңдар. Сонан соң экранды жасыл түске, сандарды сары түске бояңдар.
Экран ортасына «Информатика» сөзін шығарып, оны әртүрлі түске бояу программасы.
Кездейсоқ сандар шығару функциясын қолданып, экранда «жұлдызды аспан» бейнесін шығару программасы.
Экранға әр жолға түрлі түспен жеті атаңның атын шығарыңдар.
Берілген сөзді экранның бойымен қозғалтыңдар.
10 сұрақтан тұратын тестілеу программасын жасаңдар.
1- ден 7- ге дейінгі цифрлық пернені басқанда 1- октаваның “до”- дан ”си”- ге дейінгі жеті нотасы ойналатын және нотаға сәйкес оның аты әртүрлі түспен экранға шығатын программа құрыңдар.
Әдістемелік нұсқау: Берілген есептің қойылысын талдап, Си тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер.
мƏдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер.
№14. СОБӨЖ
Тақырыбы: Си тілінде мəтіндік режимді басқару функциялары.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Мəтіндік режимде мəтін жəне фон түсін таңдау функциялары.
Мəтін координатасын анықтау жəне мəтін шығару функциялары.
3.Си тілінде дыбысты программалау.
Əдістемелік нұсқау: Си тілінде мəтіндік режимді басқару функциялары бойынша берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [808-827 ]
№14. СӨЖ
Тақырыбы: Си тілінде мəтіндік режимді басқару функциялары.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Мəтіндік режимде мəтін жəне фон түсін таңдау функциялары.
Мəтін координатасын анықтау жəне мəтін шығару функциялары.
3.Си тілінде дыбысты программалау.
Əдістемелік нұсқау: Си тілінде мəтіндік режимді басқару функциялары бойынша берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [808-827 ]
Он бесінші апта
№29, 30 практикалық сабақтың тақырыбы: С/C++ тіліндегі графиктік функцияларды қолданып программалау.
Тапсырма: graphics.h тақырыптық файлының функцияларын қолданып программалар құрыңдар.
Х осіне параллель бағытта солдан оңға қарай қозғалатын шеңбер суретін шығаратын программа.
Стрелкасы қозғалатын сағатты имитация жасайтын программа.
Теңізде жүзіп бара жатқан желкенді қайықтың суретін салыңдар.
Түрлі- түсті кемпірқосақты бейнелейтін сурет салыңдар.
Радиустары бірдей, центрінің координатасы кездейсоқ нүктелер болатын түрлі түсті 5 шеңбер сызыңдар.
концентрлі шеңберлер салып, олардың ішін түрлі стильмен жəне түрлі түспен бояңдар.
Əдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер. Си тілінің графиктік операторларын қолданып, сағат циферблатын имитация жасайтын программа құр. Шеңбер салып, оның ішінен айналатын стрелка салыңдар.
№15.СОБӨЖ
Тақырыбы: С/C++ тіліндегі графика. graphics.h тақырыптық файлының функциялары.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Графиктік режимге өтуді жүзеге асыру.
graphics.h модулінің функциялары.
Əдістемелік нұсқау: Си тілінің graphics.h тақырыптық файлының функциялары бойынша берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [808-827 ]
№15.СӨЖ
Тақырыбы: С/C++ тіліндегі графика. graphics.h тақырыптық файлының функциялары.
Тапсырма: Сұрақтарға жауап беру.
Сұрақтар:
Графиктік режимге өтуді жүзеге асыру.
graphics.h модулінің функциялары.
Əдістемелік нұсқау: Си тілінің graphics.h тақырыптық файлының функциялары бойынша берілген сұрақтарға жауап дайындап, конспектілеңдер.
Әдебиеттер: 8 [808-827 ]
Əдебиеттер тізімі.
Негізгі əдебиеттер.
Павловская Т.А. С/С++. Жоғарғы деңгейлі тілде программалау. -Алматы: "Дәуір", 2012.-504 б.
Бөрібаев Б. Алгоритмдеу, мәліметтер құрылымы және программалау тілдері: Оқулық.–Алматы: Қазақ университеті, 2012. -236 б.
Бөрібаев Б.С/С++ тілдерінде программалау (мысалдар мен жаттығулар): Оқу-әдістемелік құрал. –Алматы: Қазақ университеті, 2013. -266 б.
Страуструп Б. Программалау. С++ тілін пайдалану қағидалары мен тәжірибесі: 1-2-том. Оқулық. Ағылш. тілінен ауд. -Алматы: 2013-2014. -688 б.
Бөрібаев Б. Программалау технологиялары: Оқулық. –Алматы: ЖШС РПБК «Дәуір», 2011. -352 б.
Страуструп Б. Язык программирования С++, спец. изд. Пер. с англ. -М.: БИНОМ; -СПб.: Невский диалект “БИНОМ”, 2008. -288 с.
Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си. -М. : Финансы и статистика, 2005. -271с.
Вирт Н. Алгоритмы и структуры данных: Пер. с англ. 2-е изд., испр. -СПб.: Невский диалект,2008. -352с.
Павловская Т.А. Щупак Ю.А. С/С++. Структурное и объектно-ориентированное программирование: Практикум.-СПб.: Питер, 2011. -352 с.
Щупляк В.И. C++. Практический курс: уч. пособие. -Минск: Новое знание, 2008. -576 c.
Қосымша əдебиеттер:
Березин Б.И., Березин С.Б. Начальный курс С и С++.-М:ДИАЛОГ-МИФИ, 2004. -288с.
Шиманович Е.Л. С/С++ в примерах и задачах.-Мн.: Новое знание,2004. -528с.
Канцедал С.А. Алгоритмизация и программирование: уч. пособие. -М.: ИД «Форум»: ИНФРА-М, 2008. -352 с.
Абрамов С.А., Гнездилова Г.Г., Капустина Е.И., Селюн М.И. Задачи по программи- рованию. -М.: Наука, Гл. ред. физ.-мат. лит. 1988. -224 с.
Культин Н.Б. С/С++ в задачах и примерах. 2-е изд., перераб. и доп. -СПб.: БХВ- Петербург, 2009. -368 с.
Костюкова Н.И., Калинина Н.А. Язык Си и особенности работы с ним. –М.: «Интернет- университет информационных технологий - ИНТУИТ.ру», 2006. -208 с. // www.intuit.ru
Бөрібаев Б., Дүйсебекова К. Си тілінде программалау: Оқу-әдістемелік құрал. –Алматы: Қазақ университеті, 2007. -208 б.
Өзін-өзі бақылауға арналған сұрақтар
Си тілінің негізгі ұғымдары, алфавиті, деректер типтері.
Стандарт функциялар.
Енгізу, шығару оперторлары. Программа құрылымы.
Тармақталу командасы.
Таңдау командасы.
С/C++ тіліндегі цикл, оның түрлері, жазылу форматтары.
С/C++ тіліндегі бір өлшемді массив ті сипаттау форматы. Бір өлшемді массив элементтерін енгізу, шығару.
Массив элементтерін өсуі жəне кемуі бойынша көпіршік əдісімен реттеу.
Массивті кездейсоқ сандармен толтыруды жүзеге асыру. rand() функциясы.
Массивтің ең үлкен жəне ең кіші элементтерін анықтау.
Матрицаны программада сипаттау, енгізу, шығару. Матрица элементтерін инициализациялау.
Матрицаның жол жəне баған элементтерін түрлендіру.
Квадрат матрица. Оның элементтерін қарау шарттары.
Символдық жолдарды өңдеу функциялары: жолды енгізу жəне шығару функциялары
Символдық жолдың ұзындығын табу, біріктіру жəне көніру функциялары.
Бүтін санды кодты символға жəне керісінше айналдыру функциялары.
Функция. Функцияны анықтау. Функцияға қатынау операторы
Функцияны рекурсивті анықтау. Жергілікті жəне ауқымды айнымалылар.
Құрылымдық тип. Құрылымдық типті анықтау форматы.
Бірігу. (объединение). Оның форматы. union операторы.
Көрсеткішті сипаттау. Көрсеткішке операциялар.
Деректер ағынымен жұмыс жасау: деректер ағынын хабарлау, ашу. Деректер ағынынан деректерді оқу жəне жазу.
Си тілінде мəтіндік режимді басқару функциялары: мəтін жəне фон түсін таңдау функциялары, мəтін координатасын анықтау жəне мəтін шығару функциялары.
Си тілінде дыбысты программалаудың Sound, Delay, Nosound функциялары.
С/C++ тіліндегі графика. Графиктік режимге өтуді жүзеге асыру.
graphics.h тақырыптық файлының функциялары.
7.Аралық бақылау тапсырмалары (1 және 2)
Си программалау тілінен коллоквиум сұрақтары:
Коллоквиум 1
1 Си тіліндегі деректер типтері:
Тұрақтыны сипаттаудың 2 түрі:
Таңдау командасының жазылуының жалпы түрі
4. Cи тіліндегі экранды тазарту функциясы жəне экранды тазарту функциясын қолдану үшін қосылатын тақырыптық файл:
Кездейсоқ сандарды шығару функциясын қолдану үшін қосылатын тақырыптық файл:
Программаның орындалу нəтижесінде k-ның мəні неге тең болады?
for (k=1, х=1;x<=10;x++)
if (x % 3= =0) k++;
x=10; y = (х/5= = 3) ? 5 : х/10 өрнегіндегі у-тің мəні неге тең болады?
1-өлшемді массив берілген. Барлық элементтерінің қосындысы мен көбейтіндісін табу программасын жаз.
Екі санның үлкенін табу программасын жазыңдар.
Берілген санның жұп не тақтығын анықтайтын программа жазыңдар.
Бақылау жұмысы №1
Си тілінде есептердің программасын құрыңдар.
1- ден 10- ға дейінгі бүтін сандарды, олардың квадраттарын жəне кубтарын 3 бағанға шығарыңдар.
Берілген санның барлық бөлгіштерін табыңдар.
Үш таңбалы бүтін санның цифрларының қосындысын табыңдар.
Массивті [10,50] аралығындағы кездейсоқ бүтін сандармен толтырып, ондағы жұп элементтердің санын тауып, оны массивтің бірінші элементінің орнына қойғанда шыққан массивті табыңдар.
Коллоквиум 2
Си тілінде көрсеткішті белгілеу үшін қолданылатын белгі:
%u спецификаторы нені анықтайды?
%ld спецификаторы нені анықтайды?
Си -де логикалық шаманың мəні не болады?
Комментарийді белгілеу үшін қандай символдар қолданылады
Си тіліндегі тақырыптық файлдың типі қандай?
Cи тілінде бүтін де символдық та болатын тип?
5/2 өрнегінің мəні нешеге тең?
9. int n = 10 мəні программада анықталған. x = 5 + (++n) нəтижесін анықтаңдар:
return операторының мəні:
Программаның орындалу нəтижесінде k-ның мəні неге тең болады? for (х=1;x<=10;x++)
if (x % 3= =0) k++;
А(3х2) екі өлшемді массив қалай сипатталады?
Төмендегі сипатталған массивте қанша элемент бар?
int a[n][m];
Массив деген не?
float a[3][2] жазуы нені білдіреді?
Cи тіліндегі экранды тазарту функциясы:
Экранды тазарту функциясын қолдану үшін қосылатын тақырыптық файл:
Кездейсоқ сандарды шығару функциясын қолдану үшін қосылатын тақырыптық файл:
Формальды параметрлер деген не?
Символдық айнымалыларға əрекеттер жасау үшін қосылатын тақырыптық файл:
Жолдың ұзындығын табу үшін қолданатын функция:
Екі жолды біріктіру үшін қолданатын функция:
Төмендегі ішкі программа-функция нені анықтайды?
int ppp(int x,int y) {while (x!=y)if (x
Əртекті элементтер жиынтығы Си-де қалай аталады
Құрылымды сипаттауда қолданылатын қызметші сөз:
8.Емтиханға дайындалуға арналған сұрақтар мен тапсырмалар тізімі
Си тілінің негізгі ұғымдары, алфавиті, деректер типтері.
Стандарт функциялар.
Енгізу, шығару оперторлары. Программа құрылымы.
Тармақталу командасы.
Таңдау командасы.
С/C++ тіліндегі цикл, оның түрлері, жазылу форматтары.
С/C++ тіліндегі бір өлшемді массив ті сипаттау форматы. Бір өлшемді массив элементтерін енгізу, шығару.
Массив элементтерін өсуі жəне кемуі бойынша көпіршік əдісімен реттеу.
Массивті кездейсоқ сандармен толтыруды жүзеге асыру. rand() функциясы.
Массивтің ең үлкен жəне ең кіші элементтерін анықтау.
Матрицаны программада сипаттау, енгізу, шығару. Матрица элементтерін инициализациялау.
Матрицаның жол жəне баған элементтерін түрлендіру.
Квадрат матрица. Оның элементтерін қарау шарттары.
Символдық жолдарды өңдеу функциялары: жолды енгізу жəне шығару функциялары
Символдық жолдың ұзындығын табу, біріктіру жəне көніру функциялары.
Бүтін санды кодты символға жəне керісінше айналдыру функциялары.
Функция. Функцияны анықтау. Функцияға қатынау операторы
Функцияны рекурсивті анықтау. Жергілікті жəне ауқымды айнымалылар.
Құрылымдық тип. Құрылымдық типті анықтау форматы.
Бірігу. (объединение). Оның форматы. union операторы.
Көрсеткішті сипаттау. Көрсеткішке операциялар.
Деректер ағынымен жұмыс жасау: деректер ағынын хабарлау, ашу. Деректер ағынынан деректерді оқу жəне жазу.
Си тілінде мəтіндік режимді басқару функциялары: мəтін жəне фон түсін таңдау функциялары, мəтін координатасын анықтау жəне мəтін шығару функциялары.
Си тілінде дыбысты программалаудың Sound, Delay, Nosound функциялары.
С/C++ тіліндегі графика. Графиктік режимге өтуді жүзеге асыру.
graphics.h тақырыптық файлының функциялары.
10. БІЛІМДІ БАҒАЛАУҒА АРНАЛҒАН МАТЕРИАЛДАР.
Білімді бағалау схемасы
Бағалау критериі
|
Баға түрі
|
Жұмыс үшін балл
|
Орындалған жұмыстар саны
|
Дәрістегі белсенділік
|
100
|
15
|
Практикалық сабақтағы белсенділік
|
100
|
30
|
СОӨЖ сабақтағы белсенділік
|
100
|
45
|
СӨЖ тапсырмаларын орындау
|
100
|
45
|
Өзіндік жұмыстар
|
100
|
6
|
Жазба жұмысы
|
100
|
2
|
Шығармашылық жұмыс
|
100
|
1
|
Рубеждік бақылау
|
100
|
2
|
Аралық аттестация(P1,P2)
|
100
|
Барлық бағалардың арифметикалық орташасы
|
Ағымдық бақылау
|
(P1+P2)/2
|
|
Жіберілу рейтингісі
|
Ағымдық бақылау*0,6
|
|
Қорытынды бақылау (емтихан)
|
100*0,4
|
|
Қорытынды
|
Жіберілу рейтингісі+ Қорытынды бақылау
|
|
Семестр барысында екі аралық бақылау жүргізіледі 7(8) және 15- апталарда.
Аралық бақылаулар бойынша студенттің максималды үлгерім көрсеткіші 60% құрайды. Семестр аяғында оқу пәні бойынша қорытынды аттестациялау – емтихан өткізіледі (максималды көрсеткіші - 40%).
Пән бойынша қорытынды емтихан бағасы аралық бақылаулар және қорытынды аттестациялаудың максималды көрсеткіштер сомасы ретінде анықталады.
Қорытынды емтихан пәннің негізгі теориялық және практикалық материалдарын қамтитын нұсқауларға бөлінген тест тапсырмалары түрінде өтеді.
Әріптік бағалау және оның балдардағы цифрлік эквиваленті дұрыс жауаптардың пайыздық көрсеткіші бойынша анықталады (кесте бойынша)
Студенттердің білімі келесі кесте бойынша бағаланады:
Баға
|
Әріптік жүйе бойынша
|
Ұпай саны бойынша
|
%-дық көрсетілуі
|
Дәстүрлі жүйе бойынша
|
А
|
4,0
|
95 – 100
|
өте жақсы
|
А-
|
3,67
|
90 – 94
|
В+
|
3,33
|
85 – 89
|
жақсы
|
В
|
3,0
|
80 – 84
|
В-
|
2,67
|
75 – 79
|
С+
|
2,33
|
70 – 74
|
С
|
2,0
|
65 – 69
|
қанағаттанарлық
|
С-
|
1,67
|
60 – 64
|
Д+
|
1,33
|
55 – 59
|
Д-
|
1,0
|
50 – 54
|
FХ
|
0,5
|
25 - 49
|
қанағаттанғысыз
|
F
|
0
|
0 - 24
|
Бағалау саясаты.
Бағалау саясаты келесі принциптерге негізделу керек: шынайылық, әділдік, айқындылық, икемділік, жоғары дифференциация.
Қорытынды бағалауға рейтингтік бақылау және емтихан кіреді.
Ќорытынды бағалау мен рейтингті бақылау
Семестрдің 7(8)- аптасында (1-7 апта нәтижесі бойынша) және 15- аптада (8-15 апта нәтижесі бойынша) оқытушы 100 балдық шкала бойынша рейтингті бақылау нәтижелерін шығарады және оқытушы өткізген рейтингке қойылатын баға, ағымды, рубеждік бақылау балдарының сомасын көрсетеді.
Қорытынды баға мына формула бойынша есептеледі
U = [(P1 +P2) / 2] * 0,6 + E * 0,4
P1 - бірінші рейтингті бағалаудың цифрлік эквиваленті
P2 - екінші рейтингті бағалаудың цифрлік эквиваленті
Е – емтихандағы бағалаудың цифрлік эквиваленті
Яғни 30% (1 рейтинг) + 30% (2 рейтинг) + 40% (емтихан).
Достарыңызбен бөлісу: |