Лекция №7 Жады кластары. Модульдік бағдарламалау. Функциялар: жариялау, анықтау, функцияның параметрлері



бет5/7
Дата16.03.2023
өлшемі265,5 Kb.
#74782
түріЛекция
1   2   3   4   5   6   7
Байланысты:
ОП лекция 7 functions

berne().
  • return операторы бірден осы функция жұмысын аяқтап, басқаруды оны шақырған программаға (немесе басқа функцияға) береді, яғни бұл оператор функция жұмысы нәтижесін анықтайды. Функция жұмысын анықтайтын мәтін ішінде (функция тұлғасында) бірнеше return операторы болуы немесе оның бір де бірі болмауы да мүмкін. Соңғы жағдайда оны шақырған программаға кері оралу функция тұлғасындағы ең соңғы оператордан кейін атқарылады.
    • Функцияны шақыру үшін функцияның аты және жақ-шада нақты аргументтері (параметрлері) көрсетіледі.
    • Функцияның нақты параметрлері – оны шақыру кезінде формальды параметрлер орнына қойылатын нақты сан-дар, айнымалылар немесе өрнектер.
    • Функция өз жұмысын аяқтағаннан кейін есептелген нәтижені return операторы арқылы қайтарады. Бұл оператордың жалпы түрі мынадай:
    • return(өрнек);
    • return;
    • return операторы функцияның орындалуын аяқтайды да, функцияны шақырған оператордан кейінгі жолға басқаруды береді.
    • Мысалы, келесі функция void типіндегі мән қайтарады, яғни жұмыс атқарады, бірақ ешқандай мән бермейді:
    • void print(int gg, int mm, int dd)
    • { printf("\n жыл: %d",gg);
    • printf("\t ай: %d",mm);
    • printf("\t күн: %d",gg);
    • }
    • Енді программада осы функцияны төмендегідей түрде шақырсақ,
    • printf(2006, 10, 15);
    • Оның нәтижесі:
    • жыл: 2006 ай: 10 күн:15
    • болады.
    • Келесі функция да ешқандай мән қайтармайды және оның ешқандай параметрлері де жоқ:
    • #include //vremia.cpp
    • void real_time(void)
    • { printf(“\nТекущее время: %s”,_ _TIME_ _ “(час: мин: сек.)”);
    • }
    • main()
    • { real_time();
    • }
    • нәтижесі: 14:16:25 (час:мин:сек.)
    • болады.
    • ТурбоСи
    • Прототипті көрсетуді алдыңғы мысал арқылы былай көрсетуге болады:
    • #include
    • void real_time(void);
    • main()
    • { real_time();
    • }
    • void real_time(void)
    • { printf(“\nТекущее время: %s”, _ _TIME_ _ “(час: мин: сек.)”);
    • }
    • Берілген екі бүтін санның кішісін анықтайтын функцияның ішкі мәтіні мынадай болуы мүмкін:
    • int mini(int x, int y)
    • { int t;
    • if (x
    • else t=y;
    • return t;
    • }
    • Бұл функцияны төмендегідей түрде басқаша да жазуға болад
    • mini(int x, int y)
    • {
    • return (x
    • }
    • Қайтарылатын нәтиже типі көрсетілмесе, ол келісім бойын-ша бүтін сан (int) типі болып саналады.
    • Оң бүтін санның факториалын анықтау функциясын былай жазуға болады:
    • float fakt(int k)
    • { if (k<0) return 0;
    • if (k==0) return 1;
    • long p=1;
    • for (int j=1; j<=k;j++)
    • p*=j;
    • return (p);Теріс сандардың факториалы болмайды, мұндайда функция 0 мәнін береді, ал 0!=1, қалған жағдайлар-да бұл функция цикл ішінде факториалды есептейді.
    • Мысалы: m,n бүтін сандары үшін мынадай өрнекті есептеу керек болсын делік:
    • #include
    • #include
    • #include
    • using namespace std;
    • float fakt(int k)
    • { if (k<0) return 0;
    • if (k==0) return 1;
    • long p=1;
    • for (int j=1; j<=k;j++)
    • p*=j;
    • return (p); }
    • int main ()
    • {int m,n; float c;
    • printf("m,n = : ");
    • scanf("%d%d",&m,&n);
    • c=fakt(m)*fakt(n)/fakt(m+n);
    • printf("c=%f\n",c);
    • getch(); }
    • Функция ішінде орналасқан айнымалылар типтері сипат-талуы осы функцияның ішінде ғана анықталған болып саналады, (мұнда тек қана main функциясы ерекше жағдайда болып саналады). Программа мәтінінде функ-циялар кез келген ретпен орналасуы мүмкін. Функцияны шақыру үшін функцияның аты және жақшада нақты аргументтері көрсетіледі. Функция өз жұмысын аяқта-ғаннан кейін есептелген нәтижені return операторы арқылы қайтарады. Бұл оператордың жалпы түрі мынадай:
    • return(өрнек);
    • return операторы функцияның орындалуын аяқтайды да, функцияны шақырған оператордан кейінгі жолға басқаруды береді.
    • Егер функция ешқандай да мән қайтармайтын болса, онда ол void (бос) типтес функция ретінде сипатталуы тиіс.
    • Функцияның параметрлері болмаған кезде де оның сип-атталу декларациясындағы жақша ішіне void түйінді сөзін көрсеткен дұрыс болып саналады. Мысалы, программадағы ең негізгі функцияның тақырыбын көрсеткенде де, былай етіп жазған дұрыс: void main(void).
    • Си тіліндегі әрбір функция программаның жеке блогы болып табылады, оған кіру тек осы функцияны шақыру арқылы ғана орындалады. Мысалы, goto көшу операторы арқылы функция ішіне кіруге болмайды.
    • Сонымен, функцияны шақыру, яғни оны пайдалану форматы төмендегідей болады:
    • <функция_аты>(аргументтер_тізімі)
    • мұндағы аргументтер ретінде константаларды, айнымалы-ларды, өрнектерді пайдалануға болады (олардың мәндерін функцияны шақыру алдында компилятор анықтап алады).


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




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

        Басты бет