Бақылау сұрақтары:
Жиым түріндегі айнымалылар қалай анықталады?
Жиым элементтерін өңдеу кезінде Си тілінің қандай операторлары қолданылады?
Нұсқауыштың көмегімен жиымның әрбір элементіне қол жеткізу қалай жүзеге асады?
Жиым элементтері экранға қалай шығарылады?
& унарлы операциясының нәтижесі қалай?
* унарлы операциясының нәтижесі қалай?
uk=&a[0][0] өрнегі uk=a өрнегіне тепе-тең бе?
&a[i][j] және a+i+j өрнектері ұқсас па?
2.6 Зертханалық жұмыс №6. Функцияларды пайдаланып программалау. Рекурсивті функция.
Жұмыстың мақсаты: Си программалау тіліндегі функция, рекурсивті функция түсініктерімен танысу, функцияның, рекурсивті функцияның көмегімен жүзеге асатын алгоритмдердің мысалымен программалау дағдыларын бекіту, тәжірибелік программалауда тізбектеп тексеру әдісін қолдануды үйрену, есептерді шешуде функцияларды қолдану.
Осы жұмысты орындамас бұрын функцияны сипаттау ережелерін, параметрлерді беру механизмін, локальді және глобальді айнымалылар түсінігімен танысып, оқу қажет.
Жалпы мағлұмат.
Си тілінде программалаудың ерекшелігі, ол Си тіліндегі программалар функция деп аталатын блоктардан тұрады.
Функция қандай да бір нақты спецификалық есепті орындайтын С тіліндегі программаның атауы бар жеке фрагменті болып табылады. Функцияның өзі С тіліндегі жеке программаны білдіреді.
Функциялардың барлығы екі үлкен категорияға бөлінеді: программалаушылардың өздері жазған функциялар және С тілінің компиляторлар пакетіне кіретін функциялар. Біріншісі қолданушының анықтаған функциялары, екіншісі – кітапханалық функциялар деп аталады. Қайталанатын программаның кодын өңдеу қажет болса немесе көлемді есепті шешу қажет болса, көлемді есептерді шешу кезінде оларды бірнеше қарапайым кішкентай бөліктерге бөлуге болады, сол кезде функцияларды пайдаланған жөн.
Функцияларды хабарлау үшін келесі синтаксисті пайдаланған жөн:
<типі> <функцияның аты> ([параметрлерінің тізімі]) { <функцияның денесі> } Тип функцияның қайтарылатын типін анықтайды. Функцияның аты оны
программада шақыру үшін қолданылады және оны анықтау ережесі айнымалыларды анықтау ережесімен сәйкес келеді. Параметрлер тізімі функцияны шақырған кезде қандай да бір мәліметтерді беруге қажет. Функцияның денесі – функцияны шақырған кезде орындалатын операторлар жиыны.
Функцияны пайдаланудың мысалы.
double square(double x)
{x = x*x;
return x;
}
int main()
{ double sq1, sq2, arg = 5;
sq1=square(arg);
sq2=square(3);
return 0;
41
}
Бұл мысалда square атты функция берілген, ол double типтес бір енгізу параметрін қабылдайды, оны квадраттап, есептелінген мәнді шақырылатын программаға return операторының көмегімен қайтарады.
Функцияның жұмысы return операторын шақырған кезде аяқталатынын ескерген жөн. Егер де осы оператордан кейін тағы да бір операторлар болса да, олар орындалмайды.
тілінде функция өзін өзі шақыра алады. Бұл үрдісті рекурсия деп атайды. Программалаудың кейбір есептерінде мұндай әрекеттер құрылатын программалық кодты анағұрлым қысқартуға мүмкіндік береді. Осы үрдісті келесі мысалда қарастырамыз.
#include
void up_and_down(int ); int main(void) {up_and_down(1); return 0;
}
void up_and_down(int n)
{printf(“Төменгі деңгей %d ”,n); if(n < 4) up_and_down(n+1); printf(“\n”);
printf(“Жоғарғы деңгей %d\n”,n);
}
Осы программаның нәтижесі экранға келесі жолдарды шығарады:
Достарыңызбен бөлісу: |