
- •Программалау тілдері
- •2.2. Си тілінің қарапайым элементтері
- •2.2.1 Пайдаланылатын символдар си тілінің символдарын бес топқа бөлуге болады.
- •2.2.2 Тілдің қарапайым объектілері
- •Бақылау сұрақтары
- •2.3. Си тіліндегі мәліметтер типтері және енгізу, шығару функциялары
- •2.4. Бүтін сан түріндегі мәліметтерді сипаттау
- •2.4.2. Char типі
- •2.4.3. Float және double жылжымалы нүктелі нақты сандар типтері
- •2.5 Символдық тіркестер (жолдар, қатарлар)
- •2.6. Printf және scanf функциялары
- •Бақылау сұрақтары
- •3. Си тілінде қолданылатын негізгі операторлар
- •3.1. Меншіктеу операторы
- •3.2. Типтерді түрлендіру
- •Int I; float fl;
- •3.3. Программа жұмысын басқару операторлары
- •3.4. Шартты оператор
- •If (шарт)
- •If (шарт)
- •Int r; /* gil-ды 4-ке бөлгендегі қалдық */
- •Int ball;
- •3.4.1 Шартты операция
- •3.5. Switch көп нұсқалы таңдау операторы
- •Бақылау сұрақтары
- •4. Цикл операторлары
- •4.1. For цикл операторы
- •4.2. While операторы
- •4 .3. Do ... While цикл операторы
- •5. Си тілінде массивтерді пайдалану
- •Int index;
- •Void main()
- •Жиымды өңдеу есептерінің түрлері (кластары)
- •Void main()
- •Void main()
- •Int b[10]; //қосымша массив
- •Жиымды сұрыптау (сорттау, реттеу)
- •Жай таңдау жолымен сұрыптау
- •Жай енгізу (кірістіру) тәсілімен сұрыптау
- •Жай алмастыру арқылы сұрыптау
- •Int *iptr;
- •Функциялар арасында байланыс жасау үшін нұсқауыштарды пайдалану
- •Void change (int *u, int *V)
- •Int temp;
- •Int xmin,X[10];
- •6. Екі өлшемді жиымдар
- •Void line()
- •Void line()
- •Екінші типтегі есептер алгоритмдері
- •Void line()
- •Int I,j,jmin,min;
- •Int amin;
- •Бақылау сұрақтары
- •7. Сөз тіркестерін өңдеу
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Сөз тіркестерімен жұмыс істейтін функциялар
- •Көмекші программа. Функцияны пайдалану
- •Int mini(int X, int y)
- •Int maxi(int X, int y)
- •Void lin(char a)
- •Void z1(int *X, int *y)
- •Void z1(int*, int*);
- •Int rus (unsigned char r)
- •Int min_index(int sp[], int ras)
- •Void init(int mas[],int ras);//функцияны сипаттау
- •Жоғарыда қарастырырылған функцияда екі өлшемді жиымның бағаналарының саны тұрақты және ол ауқымды ko айнымалысымен анықталған.
- •Void main(void)
- •Index(s1,s2)
- •Void main(void)
- •Int main()
- •Бақылау сұрақтары
- •Құрылымдарды пайдалану мысалы:
- •Void Vvod(int nom,struct Spisok *sved)
- •Void main(void)
- •Vvod(-1,sved);
- •Int I; clrscr();
- •Void main(void)
- •Int I,j,k,priznak;
- •If(!priznak) break;
- •If(!priznak)break; }
- •Бақылау сұрақтары
- •Void main ()
- •Int pages;
- •Void main()
- •Бақылау сұрақтары
- •11. Графикалық режимде жұмыс істеу
- •Void main ( )
- •Int gmode; //режим аты
- •Int errorcode; // қате коды
- •11.1. Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
- •Initgraph(&Driver,&Mode,Path);
- •Initgraph(&Driver,&Mode," ");
- •Экранға мәтін шығару функциясы
- •Экрандағы көрсетілген орынға мәтін шығару функциясы
- •1) Line (x1,y1,x2,y2);
- •2) Lineto (X,y);
- •11.2. Сызық стильдерін беру
- •Int gmode;
- •11.3. Тұйық сызықтар салу
- •Көпбұрыш салу функциясы
- •Int gmode;
- •Іші боялған контурлы эллипс салу функциясы
- •Pieslice(X,y,БұрышБасы,БұрышСоңы,Радиус);
- •Void main ()
- •Void main ( )
- •Void main ()
Көмекші программа. Функцияны пайдалану
Си тілінде стандартты функциялармен қатар тұтынушы өзі құрастырған функцияларымен де жұмыс істеу мүмкіндігі жасалған. Ол функцияны алдын ала main функциясына дейін толық анықтау керек немесе оны алдын ала қысқаша сипаттап алып, main функциясынан кейін толық анықтауға болады. Сондықтан, тұтынушы функциялары декларациясы екі түрде: қысқаша сипаттау түрінде (main функциясына дейін) және анықтау түрінде (main функциясынан кейін немесе дейін) толық берілуі мүмкін.
Функцияны алдын ала сипаттау барысында программалық файлдың басында оның прототипі көрсетіледі, өйткені main функциясында оның айнымалылары типтері белгілі болуы тиіс. Ол келесі түрі жазылады:
<нәтиже_типі> <функция _ аты>(<тип> <айнымалы1>, <тип> <айнымалы2>, …<тип> <айнымалыN>);
Прототиптегі жай жақшаларға алынған айнымалылар идентификаторларын көрсетпесе де болады, өйткені тілдің компиляторы оларды өңдемейді.
Параметрлер тізімімен берілген fun функциясын сипаттаудың мысалы:
float fun(int, float, int, int);
Функция прототипі компиляторға программа мәтінінде негізгі программадан (main()) кейін оның толық анықтамасы келтірілетінін білдіреді.
Функцияның толық анықталуының жазылу түрі төмендегідей:
<нәтиже_типі> < функция _ аты >(параметрлер
тізімі)
{
функция коды
}
Нәтиже_типі return операторының көмегімен функцияның шақырылу нүктесіне қайтарылатын мәннің типін көрсетеді. Егер функция типі көрсетілмесе, қайтарылатын мән int типті деп саналады. Параметрлер тізімі үтірмен ажыратылған типтер мен параметрлер аттарының тізбегінен тұрады. Егер функцияның параметрлері болмаса да, жай жақшалар бәрі бір міндетті түрде көрсетілуі тиіс.
Return операторы берілген функциядан бірден шығып, нәтиженің оны шақырушы функцияға қайтарылуын қамтамасыз етеді, яғни бұл оператор функция жұмысы нәтижесін қайтару қызметін атқарады. Функция тұлғасында бірнеше return операторы болуы немесе бірде бір рет кездеспеуі де мүмкін екендігін айта кеткен жөн. Мұндай жағдайда шақырушы функцияға қайту оның тұлғасындағы соңғы оператор орындалғаннан кейін барып жүзеге асырылады.
Екі бүтін санның ішіндегі кішісін анықтайтын функцияның мысалы:
Int mini(int X, int y)
{int t;
if (x<y) t=x;
else t=y;
return t;
}
Мini функциясын келесі түрде де жазуға болады:
mini(int x, int y)
{
return (x<y)? x:y;
}
Екі бүтін санның ішіндегі үлкенін анықтайтын функцияның мысалы:
Int maxi(int X, int y)
{
if (x>y)
return (x);
else
return (y);
}
Егер қайтарылатын мәннің типі көрсетілмесе, ол int типті болып есептеледі.
Си тіліндегі мәнді қайтаратын барлық функциялар өрнектердің оң жағында жазылуы тиіс, өйтпеген жағдайда ешқандай да нәтиже қайтарылмайды. Бірақ функция нәтижесінің адресі қайтарылатын жағдайда, ол сол жақта болуы керек.
Егер функция ешқандай мән қайтармайтын болса, онда ол void (бос) типті функция ретінде сипатталуы тиіс. Мысалы, дисплей экранына бір толық жолды шығару үшін келесі функцияны жазамыз:
Void lin(char a)
{
int k;
for(k=0; k<80; k++)
printf(“%c”, a);
}
Егер функцияда ешқандай параметр болмаса, онда функцияны декларациялау барысында жай жақша ішіне void сөзін жазған дұрыс. Мысалы, негізгі функция тақырыбының көбінесе былай жазылуы мүмкін:
void main(void).
Си тілінде әрбір функция – программаның жеке бөлігі, оны орындау үшін осы функцияны шақыру керек. Мысалы, goto операторы арқылы басқаруды кез келген функцияның тұлғасына беруге болмайды.
Функция келесі түрде шақырылады:
<функция_аты>(аргументтер_тізімі);
мұндағы аргументтер ретінде тұрақтыларды, айнымалыларды, өрнектерді (олардың мәндері функцияны шақырудан бұрын программада анықталады) қолдануға болады. Функцияны шақыру тізімінің аргументтері сол функцияның анықталу параметрлерінің тізімімен саны жағынан, орналасу ретімен, сәйкес параметрлері типтерімен толықтай үйлесуі тиіс. Аргументтер жоқ болған жағдайда да, функция атынан кейінгі жай жақшалардың болуы міндетті.
Айнымалылардың әрекет ету аймағы
Айнымалылардың әрекет ету аймағы – программаның ағымдағы әрекеттеріне қандай мәліметтердің қатынасуға болатынын анықтайтын қағида. Айнымалылардың үш типі болады: ауқымды, локальді (жергілікті) және формальды. Жергілікті айнымалылардың әрекет ету аймағы – олар сипатталған программа бөлігі, яғни олар сол функция тұлғасында ғана белгілі болып табылады. Программаның осы бөлігінен шыққан соң, жергілікті айнымалылар мен олардың мәндері жоғалады.
Формальды айнымалылар – тұтынушы функциясының тақырыбында көрсетілген параметрлер. Формальды параметрлер функция тұлғасында жергілікті айнымалылар сияқты қолданылады. Формальды параметрлердің әрекет ету аймағы – функция тұлғасы болып табылатын блок.
Ауқымды айнымалылар программадағы функциядан тыс сипатталады. Олар программаның кез келген жерінде қолданылуы мүмкін, сондықтан ауқымды айнымалыларды алдын ала сипаттау және бастапқы мәндерді меншіктеу керек. Ауқымды айнымалылардың әрекет ету аймағы – олар сипатталғаннан бастап, программа соңына дейін болып саналады.
Си тілінде әрбір айнымалы компьютер жадының келесі төрт класының біріне жатуы тиіс, олар – автоматты (auto), сыртқы (extern), статикалық (static), регистрлік (register). Айнымалы класын көрсету үшін оның типі спецификациясының алдына қажетті түйінді сөз (auto, extern, static, register) қоса жазылады. Мысалы, register int a;
Айнымалы үшін жады класы нақты көрсетілмеген жағдайда, ол auto класына жатқызылады.
Си тілінде функцияны шақыру барысында аргументтер өздерінің осы программадағы мәндеріне сәйкес әрекеттер атқарады, яғни функцияға аргументтердің нақты мәндері емес олардың көшірмелері жіберіледі. Компьютер жадында (стекте) функцияның формальды параметрлері үшін орын бөлінеді және функцияны шақыру кезінде сол бөлінген орындарға нақты аргументтер мәндері орналастырылады. Содан кейін функция осы мәндерді пайдаланады, бірақ функциядан шыққан кезде олар жоғалып кетеді.
Қажет болған жағдайда, функцияны оған берілген аргументтерді өзгерту үшін қолдануға болады. Ол үшін шақырылатын функцияға аргумент ретінде айнымалы мәнінің орнына оның адресін жіберсе болғаны. Ал аргумент негізгі (оригинал) мәнді пайдалануы үшін “*” нұсқауыш операциясын қолдану қажет.
1- мысал. x және y мәндерінің орындарын ауыстыратын функцияның анықталуы: