«Программалау» ПӘнінің ОҚУ-Әдістемелік кешені



бет2/16
Дата21.12.2019
өлшемі1,23 Mb.
#53890
1   2   3   4   5   6   7   8   9   ...   16
Байланысты:
cf272a53-91fd-11e3-8e6b-f6d299da70eeУММ Пр2-2 ШАКАРИМА

Стандартты функциялар


Математическая функция

Имя функции в языке С

1

2



Sqrt(x)

|x|

Fabs(x)

ex

Exp(x)

xy

Pow(x,y)

Ln(x)

Log(x)

Lg10(x)

Log10(x)

Sin(x)

Sin(x)

Cos(x)

Cos(x)

Tg(x)

Tan(x)

Arcsin(x)

Asin(x)

Arccos(x)

Acos(x)

Arctg(x)

Atan(x)

Arctg(x/y)

Atan2(x,y)

Sh(x)=1/2 (ex-e-x)

Sinh(x)

Ch(x)=1/2 (ex+e-x)

Cosh(x)

Tgh(x)

Tanh(x)
X –ті y-ке бөлгендегі қалдық

Fmod(x,y)

Х-тан үлкен ең кішібүтін >=x

Ceil(x)

Х-тан кіші ең үлкен бүтін <=x

Floor(x)



Бақылау сұрақтары:

  1. #include директивасы туралы айтып бер.

  2. #define директивасы туралы айтып бер

  3. Негізгі функцияның тақырыбы қалай?

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


Дәріс №3

Тақырыбы: С++ тіліндегі операторлар.

Мақсаты: Оператор, бос оператор, құрама оператор ұғымдарын енгізу.

Си тілінің барлық элементтері келесі категорияларға шартты түрде бөліне алады:



  • шартты операторлар, оған if шартты операторы және switch таңдау операторлары жатады;

  • циклдік операторлар (for, while, do while);

  • көшу операторлары (break, continue, return, goto);

  • басқа операторлар (оператор “өрнек”, бос оператор).

Программадағы операторлар құрама операторларға фигуралық жақшалар көмегімен біріктіріле алады. Программадағы кез келген оператор аттан және одан кейін келетін қос нүктеден тұратын таңбамен (метка) белгілене алады. Си тілінің барлық операторлары құрама операторлардан басқасы “;” үтір нүктемен аяқталады.

Өрнек оператор (оператор выражение).

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

Мысалдар:

++i;


Бұл оператор i айнымалысының мәнін бірге өсіретін өрнекті көрсетеді.

a=cos(b*5);

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

a(x,y);

Бұл оператор функцияны шақырудан тұратын өрнекті көрсетеді.

Бос оператор


Бос оператор тек үтір нүктеден тұрады. Бұл операторды орындау кезінде ештеңе болмайды. Ол әдетте келесі жағдайларда пайдаланылады:

  • оператор орны керек етілмегенде жолдарда do, for, while, if операторларында, бірақ синтаксис бойынша ең болмағанда бір оператор талап етіледі;

  • қажеттілік туғанда фигуралық жақша белгілеу.

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

Мысал:


int main()

{

:



{if (…) goto a; /* жақшаға көшу */

{…

a: ;}



return 0;

}

Құрама оператор


Құрама оператор фигуралық жақшаларға алынған бірнеше операторлар мен жариялаулар болып көрінеді:

{[жариялау]

:

оператор; [оператор];



:

}

Құрама оператордың соңына үтір нүкте қойылмайтынын ескерейік.



Құрама оператордың орындалуы оны құрайтын операторлардың жүйелі орындалуынан тұрады.

Мысал:


int main()

{

int q,b;



double t,d;

:

if (…)



{

int e,g;


double f,q;

:

}



:

return(0);

}

e, g, f, q айнымалылары құрама оператор орындалғаннан кейін жойылады. q айнымалысы құрама операторда локальды болып саналатынын айта кетейік, яғни оның int типті main функциясының басында жарияланған q айнымалысымен ешқандай байланысы жоқ. return –нан кейін тұрған өрнек дөңгелек жақшаларға алына алады, соңғы жақшаның болуы міндетті емес екенін де айта кетейік.


Бақылау сұрақтары:

  1. С++ тілінде өрнек қалай жазылады?

  2. Бос оператор не үшін қажет?

  3. Құрама оператор деген не?

  4. Құрама оператордың жазылу тәртібі қандай?


Дәріс №4

Тақырыбы: If операторы, switch таңдау операторы.

Мақсаты: шартты оператор мен таңдау операторларының форматтарымен, орындалу схемасымен таныстыру.

Оператордың форматтары:

if (өрнек) оператор-1;[else оператор-2;]

if операторының орындалуы өрнектің есептелуінен басталады. Әрі қарай орындалу келесі схема бойынша жүреді:



  • егер өрнек ақиқат (яғни нөлден айрықша) болса, онда оператор-1 орындалады;

  • егер өрнек жалған (яғни нөлге тең) болса, онда оператор-2 орындалады;

  • егер өрнек жалған және оператор-2 жоқ болса (квадраттық жақшаға міндетті емес конструкция алынған), онда if-тен кейінгі орындалады.

if операторы функциясынан кейін мән программаның келесі операторына беріледі, егер программаның операторлардың орындалу тізбегі көщу операторларының пайдалануымен мәжбүрсіз бұзылса.

Мысал:


if(ielse {j=i-3;i++; }

Бұл мысал оператор-1 мен оператор-2-нің орнында күрделі конструкциялар болуын бейнелейді. if-тің кірістірілген операторларын пайдалануға болады. if операторы if конструкциясына немесе if-тің басқа операторларының else конструкциясына енгізілуі мүмкін. Программаның жеңіл оқылуы үшін фигуралық жақшаларды пайдалану if-тің кірістірілген операторларындағы операторлар мен конструкцияларды топтастыру ұсынылады. Егер де фигуралық жақшалар жоқ болса, онда компилятор әрбір else кілттік сөзін неғұрлым жақын else-сі жоқ if-пен байланыстырады. Мысалдар:

int main()

{

int t=2, b=7, r=3;



if (t>b)

{

if (b

}

else r=t;

return (0);

}

Бұл программаның орындалу нәтижесінде r 2-ге тең болады.



Егер де программада if операторларынан кейін тұратын фигуралық жақшаларды алып тастасақ, онда программа мына түрде болады:

int main()

{

int t=2, b=7, r=3;



if (a>b)

if (b

else r=t;

return (0);

}

Бұл жағдайда r үшке мәнді қабылдайды, өйткені else кілттік сөзі if-тің бірінші операторында тексерілетін шарт орындалмайтындықтан, if-тің орындалмайтын екінші операторына қатысты.



Келесі фрагмент if-тің кірістірілген операторларын бейнелейді:

char ZNAC;

int x,y,z;

:

if (ZNAC= =’-‘) x=y-z;



else if (ZNAC= =’+’) x=y+z;

else if (ZNAC= =’*’) x=y*z;

else if (ZNAC= =’/’) x=y/z;

else ...


Осы мысалдың талқылауынан if-тің кірістірілген операторларын пайдаланатын конструкциялар қолайсыз және әрқашан сенімді емес деген қорытынды жасауға болады. Әр түрлі варианттар жиынынан алынған таңдауды ұйымдастырудың басқа тәсілі болып арнайы switch таңдау операторын пайдалану саналады.
switch таңдау операторы

switch операторы әр түрлі варианттар жиынынан алынған таңдауды ұйымдастыру үшін арналған. Оператордың форматы келесі түрде:

switch (өрнек)

{[жариялау]

:

[case тұрақты өрнек 1]:[1 операторлар тізімі]



[case тұрақты өрнек 2]:[2 оператолар тізімі]

:

:



[default:[операторлар тізімі]]

}

switch кілттік сөзінен кейінгі дөңгелек жақшаға алынған өрнек мәні бүтін Си тілінде мүмкін болатын кез келген өрнек бола алады.



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

Бұл өрнектің мәні бірнеше варианттан таңдау үшін кілттік (ключевой) болып табылады. switch операторының денесі кезекті тұрақты өрнегі бар case кілттік сөзімен белгіленген бірнеше операторлардан тұрады. Бүтін тұрақты өрнекті пайдалану қарастырылған операторға тән маңызды жетіспеушілік болып табылады.

Тұрақты өрнек трансляция мезетінде есептелетіндіктен онда айнымалылар немесе функцияның шақырулары болмайды. Әдетте тұрақты өрнек ретінде бүтін немесе символдық тұрақтылар пайдаланылады.

switch операторындағы барлық тұрақты өрнектер өте сирек болуы керек. case кілттік сөзімен белгіленген операторлардан басқа default кілттік сөзімен белгіленген жалғыз бір фрагмент болуы мүмкін. Сонымен қатар switch операторында операторлар тізбегін фигуралық жақшаға алу міндетті емес.

switch операторында сонымен қатар жариялануы case-тің бірінші кілттік сөзінің алдында болатын өзінің локальды айнымалыларын пайдалануға болады, бірақ жариялануда инициализация пайдаланылмау керек.

switch операторының орындалу схемасы келесідей:



  • дөңгелек жақшадағы өрнек есептеледі;

  • есептелінген мәндер case кілттік сөзінен кейін келетін тұрақты өрнектермен жүйелі түрде салыстырылады;

  • егер тұрақты өрнектердің біреуі өрнек мәнімен сәйкес келсе, онда басқару сәйкес case кілттік сөзімен белгіленген операторға беріледі;

  • егер тұрақты өрнектердің ешқайсысы өрнекке тең болмаса, онда басқару default кілттік сөзімен белгіленген операторға, ал жоқ болған жағдайда басқару switch операторынан кейінгі операторға беріледі;

switch операторының пайдаланылу ерекшелігін белгілейік: default сөзі бар конструкция switch операторының денесіндегі соңғы емес. switch операторының денесіндегі case және default кілттік сөздері switch операторының денесінің орындалуының бастапқы нүктесі анықталып жатқан тек бастапқы тексеру кезінде маңызды. Бастапқы оператор мен дененің соңындағы аралықтағы барлық операторлар кілттік сөздерге тәуелсіз орындалады, егер тек операторлардың қандай да біреуібасқаруды switch операторының денесіне бермесе. Осылайша программист case-тен шығуды өзіойластыруы керек, егер ол қажет болса. Көбінесе бұл үшін break операторы пайдаланылады. өрнектің әр түрлі мәндері үшін тек бір әрекетті орындау үшін бірнеше case кілттік сөздері бар операторды белгілеуге болады.
Мысал:

int i=2;


switch (i)

{

case1: i+=2;



case2: i*=3;

case0: i/=2;

case4: i-=5;

default: ;

}

switch операторының орындалуы case2 деп белгіленген оператордан басталады. Осылайша i айнымалысы алтыға тең мәнді қабылдайды, әрі қарай case0 кілттік сөзімен белгіленген оператор орындалады, ал содан кейін case4, i айнымалысы үш мәнін, ал содан кейін екі мәнін қабылдайды. default кілттік сөзімен белгіленген оператор айнымалының мәнін өзгертпейді.



Қазір if-тің кірістірілген операторларын пайдаланып бейнеленген switch операторын пайдаланып жазылған алдыңғы келтірілген мысалды қарастырамыз.

char ZNAC;

int x, y, z;

switch (ZNAC)

{

case ‘+’:x=y+z; break;



case ‘-’:x=y-z; break;

case ‘*’:x=y*z; break;

case ‘/’:x=y/z; break;

default: ;

}

break операторын пайдалану қажетті мезетте switch операторының денесіндегі орындалатын оператрлар тізбегін switch операторынан кейінгі операторға беру арқылы үзуге (прервать) мүмкіндік береді.



switch операторының денесінде switch-тің кірістірілген операторларын пайдалануға болады, сонымен қатар case кілттік сөздерінде бірдей тұрақты өрнектерді пайдалануға болады.

Мысал:


:

switch(a)

{

case1:b=c; break;



case2:

switch(d)

{ case0:f=s; break;

case1:f=9; break;

case2:f-=9; break;

}

case3:b-=c; break;



:

}


break операторы

break операторы оны біріктіретін switch, do, for, while операторларының ең ішкі орындалуының тоқтатылуын қамтамасыз етеді. break орындалғаннан кейін басқару келесі операторға беріледі.



Бақылау сұрақтары:

  1. С++ тілінде шартты оператор қалай жазылады?

  2. If операторының форматы қандай?

  3. Таңдау операторы не үшін қажет?

  4. Switch операторының форматы қандай?

  5. Break операторы қандай жағдайда қолданылады?



Дәріс №5

Тақырыбы: С++ тілінде циклдарды ұйымдастыру.

Мақсаты: for операторы, while операторы, do while операторларының форматтары мен орындалу схемаларымен танысу. continue, return, goto операторларының қолданылуы мен орындалу схемаларымен танысу.

for операторы

for операторы – бұл циклды ұйымдастырудың ортақ әдісі. Оның форматы келесідей:

for (өрнек1; өрнек2; өрнек3) дене

өрнек1 әдетте циклды басқаратын айнымалылардың бастапқы мәндерін бекіту үшін пайдаланылады. өрнек2 – бұл шартты анықтайтын өрнек. Бұл шарт кезінде цикл денесі орындалады. өрнек3 цикл денесінің әрбір орындалуынан кейін циклды басқаратын айнымалылардың өзгеруін анықтайды.

for операторының орындалу схемасы:

1.өрнек1 есептеледі.

2.өрнек2 есептеледі.

3. Егер өрнек2-нің мәндері нөлден айрықша (ақиқат) болса цикл денесі орындалады, өрнек3 есептеледі және 2-ші пунктке көшу орындалады, егер өрнек2 нөлге тең (жалған) болса, онда басқару for операторынан кейінгі операторға беріледі.

Шарттың тексерілуі циклдың басында орындалады. Бұл егер орындалу шарты жалған болса, цикл денесі бір де бір рет орындалмайтынын білдіреді.

Мысал:


int main()

{ int i,b;

for (i=1;i

Бұл мысалда 1-ден 9-ға дейінгі сандар квадраты есептеледі. for операторының пайдаланылуының кейбір варианттары циклды басқаратын бірнеше айнымалыларды пайдалану мүмкіндігінің есебінен оның икемділігі артады. Мысал:

int main()

{ int top, bot;

char string[100], temp;

for (top=0, bot=100; top

{temp=string[top];

string[bot]=temp;

}

return 0;



}

Бұл символдар жолын кері тәртіпте жазатын мысалда циклды басқару үшін top және bot екі айнымалысы пайдаланылады. Мұнда өрнек1 мен өрнек3-тің орнына үтір арқылы жазылған және тізбек түрінде орындалатын бірнеше өрнектер пайдаланылады.

for операторын пайдаланудың басқа варианты болып шексіз цикл саналады. Мұндай циклды ұйымдастыру үшін бос шартты өрнекті пайдалануға болады, ал циклдан шығу үшін әдетте осылайша шартты және break операторын пайдаланады.

Мысал:


for(;;)

{…

… break;



}

Си тілінің синтаксисіне сәйкес нөл бос бола алады, сонымен бірге for операторының денесі де бос болуы мүмкін. Оператордың мұндай формасы іздеуді ұйымдастыру ‡шін пайдаланыла алады. Мысал:


for (i=0;t[i]<10;i++);

Берілген мысалда циклдің i айнымалысы мәні оннан үлкен болатын t массивінің бірінші элементінің нөмірінің мәнін қабылдайды.



while операторы

Циклдың while операторы шарты алдын ала берілген цикл деп аталады және оның формасы келесідей:

while (өрнек) дене;

өрнек ретінде Си тілінің кез келген өрнегін, ал оператордың денесі ретінде кез келген оператор (бос немесе құрама) пайдалануға болады. while операторының орындалу схемасы келесідей:

1. өрнек есептеледі.

2. Егер өрнек жалғанболса, онда while операторы аяқталады және рет

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

3. Процесс 1-пункттан бастап қайталанады.

for (1-өрнек;2-өрнек;3-өрнек) дене;

түріндегі цикл операторы while операторымен келесі түрде алмаса алады:


1-өрнек;

while (2-өрнек)

{дене

3-өрнек;


}

for операторының орындалуы кезіндегі сияқты while операторында да шартты тексеру орындалады. Сондықтан while операторын оператор денесін әрқашан орындамаған жағдайларда пайдаланған ыңғайлы. for және while операторларының ішінде сәйкес типтердің анықтамасы жариялалантын локальды айнымалыларды пайдалануға болады.



do while операторы

do while циклының операторы бос цикло ператоры деп аталады және цикл денесі ең болмағанда бір рет орындау қажет болған жағдайларда пайдаланылады. Оператордың форматы келесі түрде болады:

do дене while (өрнек);

do while операторының орындалу схемасы:

1. Цикл денесі орындалады (ол құрама операторболуы мүмкін).

2. өрнек орындалады.

3. Егер өрнек жалған болса, онда do while операторының орындалуы аяқталады да келесі кезекті оператор орындалады. Егер өрнек ақиқат болса, онда оператордың орындалуы 1-пункттан бастап жалғасады. Шарт жалған болғанға дейін циклдың орындалуын тоқтату үшін break операторын пайдалануға болады. while және do while операторлары кірістіріліген болуы мүмкін. Мысал:

int i, j, k;

...

i=0; j=0; k=0;



do {i++; j--;

while (a[k]

}

while (i<30&&j<-30);



continue операторы

continue операторы break операторы сияқты тек цикл операторларының ішінде пайдаланылады, бірақ одан айырмашылығы программаның орындалуы тоқтатылған оператордан кейінгі оператордан емес, тоқтатылған оператордың басынан жалғасады. Оператордың форматы келесідей:

continue;

Мысал:


int main()

{ int a,b;

for (a=1,b=0; a<100; b+=”a,a++)” {if (b%2) continue; .../* жұп

қосындылардың өңделуі*/ } return0;}

1-ден а-ға дейінгі сандардың қосындысы тақ болған кезде continue операторы басқаруды жұп қосындылардың өңделу (обработка) операторларын орындамай for циклының кезекті итерациясына береді. continue операторы break операторы сияқты оның көлемді циклдарының ішкісін үзеді.

return операторы

return операторы берілген функцияның орындалуын аяқтайды және басқаруды шақырылатын функцияға, яғни шақырудан кейінгі нүктеге қайтарады. main функциясы басқаруды операциялық жүйеге береді. Оператор форматы: return [өрнек];

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

Егер қандай да бір функцияда return операторы жоқ болса, онда басқарудың шақырылатын функцияға берілісі шақырылатын функцияның соңғы операторы орындалмағаннан кейін жүреді. Мұнда қайтарылатын мәнанықталмаған. Егер функцияның қайтарылатын мәні болмаса, онда оны void типімен жариялау керек. Осылайша return операторның пайланылуы не функциядан дереу шығу үшін, не қайтарылатын мәннің берілісі үшін қажет. Мысал:

int sum (int a, int b)

{ return (a+b); }

sum функциясының екі int типті формальды a және b параметрлері бар және функция атының алдында тұрған сипаттаушы (описатель) жазатын int типті мәнді қайтарады. return операторымен қайтарылатын мән ақиқат параметрлердің қосындысына тең. Мысал:
void prov (int a, double b)

{double c;

if (a<3) return; else if (b>10) return;

else { c=a+b;

if ((2*c-b)==11) return;

}

}



Бұл мысалда return операторы тексерілетін шарттың біреуі орындалған жағдайда шығу үшін пайдаланылады.

goto операторы

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

Бұл оператордың форматы келесідей:

goto белгі-аты;

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


  1. С++ тілінде цикл қалай ұйымдастырылады?

  2. for операторының форматы қандай?

  3. while операторының форматы қандай?

  4. do while операторының форматтары қандай?

  5. continue операторы не үшін қажет?

  6. return операторы не үшін қажет?

  7. goto операторы қандай жағдайда қолданылады?


Дәріс №6

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

типі аты [өлшемі];

түріндегі оператормен жазылады. Программаның мысалы:

# include

# define KO 3

main()


{

int mas[KO], i;

mas[0]=123;

mas[1]=456;

mas[2]=2001;

printf(“Айнымалылар адресі:”);

for (i=0;i

printf(“%p”, &mas[i]);

printf(“\n Айнымалылардың мәндері:”);

for (i=0;i

printf(“%5d”, mas[i]);

printf(“\n”);

}

Массивтің элементтері нөлден бастап нөмірленеді (индекстеледі):



mas[0] mas[1] mas[2]

яғни соңғы элементтің форматы аты [өлшем_1].

Массив үшін сақталатын байттар саны өлшемі *(sizeof (типі)) өрнегімен анықталады.



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




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

    Басты бет