Главная страница
Навигация по странице:

  • Функци я атауы Ф ункци я мақсаты

  • //----->

  • ----->

  • 2. Функцияларды қайта анықтау

  • Көрсеткіш т ер Жоспар

  • Жадыны динамикалық орналастыру Жоспар

  • ОББН лекция 2. Си программалау тіліне кіріспе Жоспар


    Скачать 128.11 Kb.
    НазваниеСи программалау тіліне кіріспе Жоспар
    Дата06.08.2020
    Размер128.11 Kb.
    Формат файлаdocx
    Имя файлаОББН лекция 2.docx
    ТипПрограмма
    #135233
    страница2 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Функциялар


    Жоспар

    1. Функциялар

    2. Функцияларды қайта анықтау


    1. Функциялар


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

    Программаны құру үшін алдымен оның жалпы жоспарын және ондағы қажет функциялардың іс-әрекеттерін анықтап алу керек вам следует спроектировать каждую функцию для выполнения определенной задачи. Программада құрылатын әрбір функция ның ерекше атауы болуы тиіс.

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

    Функция атауы

    Функция мақсаты

    Print_test_scores

    Кластың тестік ұпайларын шығару

    Accounts_payable

    Компания счетын есептеу

    Get_user_name

    Қолданушының атуын сұрау

    Print_document

    Көрсетілген құжатты баспаға шығару



    Функция негізгі программадағы main функциясына өте ұқсас. Оның сипатталуы функция типінен, атауынан, жай жақшадағы параметрлер тізімінен және функция денесінен тұрады:

    қайтарылатын_тип функция_ атауы(_параметрлер тізімі)

    {

    айнымалыларды сипаттау;
    операторлар;

    }

    Мысалы: келесі программадағы main функциясы:

    void main (void) //-----> қайтарылатын_тип функция_ атауы(_параметрлер тізімі)

    {
       intcount;//--------------------------->айнымалыларды сипаттау;
       for (count = 0; count < 10; count++) cout << count << ' '; //-----> Оператор
    }

    Келесі операторлар show_message атты функцияны анықтайды, ол cout қолданып экранға хабарлама шығарады:

    void show_message (void)

    {
       cout<<"C++программалау"<}

    енді осы функцияны программада қолданайық:

    #include

    void show_message (void)

    {
       cout<<"C++программалау"<}

    void main (void)

    {
       cout<<"функциянышақырудейін"<   show_message();
       cout<<"функциянышақырғаннанкейін"<}

    Программа mainфункциясынан басталады . Оның ішінде show_message функциясы шақырылады:

    show_message ();

    Мұндағы функция атауынан кейінгі жай жақшалар С++ компиляторына программа функцияны шақыратынын білдіреді белгі. Негізінен функцияға оның орындалатын іс-әрекетіне сай параметрлерді де беруге болады

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

    Функция мүмкіндігін аттыру үшін C++ оған параметрлері арқылы информаци бергу болады. Егер функция параметрлерді қолданса, онда C++ тілінде олардың әрқайсысының типін көрсету қажет, мысалы int, float, char т.б. Келесі функция show_number int типті параметрді қолданады:

    void show_number (int value)

    {
       cout<<"параметрмәні"<}

    Егер программа show_numberфункциясын шақырса, онда міндетті түрде оған параметр беруі тиіс:

    show_number (100); //----------------> функцияға берілетін мән

    C++ берілген мәнді функциядағы value параметрінің орнына қояды:

    show_number (1001)

    void show_number (int value)

    {
       cout<<"параметрмәні"<}

    void show_number (1001)

    {
       cout<<"параметрмәні"<<1001<}

    Жалпы мысал:

    #include

    void show_number (int value)

    {
       cout<<"параметрмәні"<
    void main (void)

    {
       show_number(12);
       show_number(100);
       show_number(-45);
    }

    Функция программада белгілі бір нақты амалды орындайды. Көп жағдайда функция белгілі бір типті есептеулерді жүргізеді. Мәндер есептелінген кейін шақырылған функцияға мән қайтарылады. Функция мән қайтару үшін бізC++ оның типін беруге тиіспізмысалы int, float, char т. б.Мысалы, келесі функция add_values екі бүтін параметрлік мәндерін қосады және int типті шығындыны шақыратын программаға қайтарады:

    int add_values (int а, int b)

    {
       intresult;
       result=а+b;
       return(result);
    }

    Функция шақыратын функцияға мән қайтару үшін return операторын қолданады. Келесі программа add_values функциясын бірнеше мәндерді қосуға қолданады:

    #include

    int add_values (int a, int b)

    {
       return(a+b);
    }

    void main (void)

    {
       cout<<"100+200="<   cout<<"500+501="<<<endl;
       cout<<"-1+1="<}

    Егер функция мән қайтармайтын болса, онда оны voidтипі арқылы сипаттаймыз.

    return;

    Мұнда функция типі void (мән қайтармайды) және return операторы функцияны орындауды аяқтайды.
    2. Функцияларды қайта анықтау

    #include

    void show_message(void)

    {
       cout << "Стандартное сообщение: " << "Учимся программировать на C++" << endl;
    }

    void show_message(char *message)

    {
       cout<}

    void show_message(char *first, char *second)

    {
       cout<   cout<}

    void main(void)

    {
       show_message();
       show_message("Учимся программировать на языке C++!");
       show_message("B C++ нет предрассудков!","Перегрузка - это круто!") ;
    }



    1. Көрсеткіштер


    Жоспар

    1. Көрсеткіштер.

    2. Массивтер.

    3.Жолдар.

    4.Көрсеткіштердің массиві. Көп өлшемді массивтер.

    5.Жолдар және көрсеткіштер.
    1. Көрсеткіштер

    Есте сақтау бөлімі нөмірленген, адрестелген ұялардан тұрады.Си++ программалау тілінде айнымалының адресін сақтайтын объектіні көрсеткіш деп атайды. Көрсеткіш айнымалы болып табылады. Сонымен, көрсеткіш бұл ұяшықтардың тобын анықтайды және онда адрестер сақталады. Көрсеткіштермен жұмыс атқару үшін мынадай екі амал «&,*» қолданылады. Олар сәйкесінше логикалық және адресті алу амалдары деп аталынады. (*)-көрсеткішті ашу операторы. Мысалы: Char C; ал P осы C –ға көрсеткіш болсын, онда

    Char *p;

    Көрсеткіштің адресін алу үшін p=&С; деп жазамыз. Бұл C айнымалысы орналасқан ұяның адресін p айнымалысына меншіктеу болып табылады.

    (*) - көрсеткішті ашу операторы. Сол адрестегі мәнді алу үшін қолданылады.

    Int x=1,y=2,z[10];

    Int * ip;

    Ip=&x;

    y=*ip;

    *cp=0;

    ip=&z[0]

    x пен y –тің алғашқы мәндері анықталып,x=1,y=2 алатын мәндері оң.

    *ip-бүтін мәнге көрсеткіш болып табылады.

    Ip=&x- x ұяшығынын адресін көрсетеді.

    y=1.

    *ip=0

    ip=&z[0]- 0-ші элементтегі адресті анықтауке

    z[0]-ұясының адрестер айнымалысына меншіктеледі.

    x=1

    y=2

    z[0]

    z[0]

    *,&-бұлар унарлық операторлар.

    Олар арифметикалық операторлардан бұрын орындалады .

    y=*ip+1;

    *ip+=1;

    ++*ip;



    1. Массивтер


    Массивтерді жарияланғаннан кейін, оған жадыдан қатар тұрған ұялар бөлінеді.

    Int a[10]; //10 –орын бөлінеді

    Int *pa; //көрсеткішің алаты мәні int

    pa=&a[0];

    x=*pa; // a0өэлементінің мәнінің көшірмесін алу.

    Pa өның мәндері массивтің элементін көрсетсе, pa+1өкелесі элементті;

    Pa+I –Iөші элементті;

    Paө1өалдыңғы элементті;

    PaөIөалдыңғы Iөші элементті анықтайды

    Pa=&a[0]

    *(pa+1) a[1]өмәнін береді.

    *(pa+і) a[i]өші элементі мән береді.

    Массивтің индекстерімен көрсеткіштердің арасында тығыз байланыс болады.

    Анықтама бойынша массивтің түрі ол массивтің нолдік элементінің адресін береді.Яғни программада мына жазулар pa=&a[0]; pa=a; және a[i]; (a+i); эквивалентті болып табылады.


    1. Жолдар


    Си++ программалау тілінде жолдық мәндер тырнақшаның ішіне алып жазылады. Олардың жазылуында Esc- функцияларды қолдануға болады. Транслятор әрбір жолдың ұзындығына сәйкес орын бөледі. Бірақ жолдың соңына міндетті түрде ‘/0’ белгісі орнатылады. Яғни, жолды символдық массивке меншіктеуге болмайды. Жолдармен жұмыс істеу үшін scanf() және printf() функциялары қолданамыз. Символдық жолдарды үшін сипаттау барысында қосымша "%S" спецификатор белгісі қолданылады.

    Мысалы:

    #include

    void show_string(char *string)

    {
       while (*string != '\0')

       {
          cout<<*string;
          string++;
        }
    }

    void main(void)

    {
       show_string("Учимся программировать на языкеC++!");
    }

    Массивтің элементтерін нақты түрде сипаттап беру қажет болса, онда оның элементтері апострофқа алынып беріледі. Мысалы:

    char B[]={‘и’, ‘н’, ‘ф’, ‘о’, ‘р’, ‘м’, ‘а’, ‘т’, ‘и’, ‘к’,‘а','/0’};

    #include

    int string_length(char *string)

    {
       intlength=0;
       while (*string != '\0')

       {
          length++;
          string++;
       }
       return(length);
    }

    void main(void)

    {
       chartitle[]="Учимся программировать на языке C++";
       cout<}

    Мысалы: #include

    void show_string(char *string)

    {
       while(*string)cout<<*string++;
    }

       int string_length(char •string)

    (
       intlength=0;
       while(*string++)length++;
       return(length);
    }

    void main(void)

    {
       chartitle[] = "Учимся программировать на языке C++";
       show_string(title);
       сout<<"содержит"<}
    4. Көрсеткіштердің массиві, көп өлшемді массивтер
    Си++ программалау тілінде массивтерді бір өлшемді вектор ретінде қарастыруға болады. Бірақ оның әрбір элементінің өзі тағы да массив ретінде қарастырылуы м‰мкін. Көп өлшемді массивтермен көрсеткіштер арқылы жұмыс істеу ыңғайлы болады. Нақты өлшемді массивтердің көрсеткіштері былай сипатталады.

    тип*массив аты [өлшем];

    тип*массив аты [ ]=инициализация;(алғашқы мән беру)

    тип*массив аты [өлшем]=инициализация;

    мұндағы тип базалық немесе туынды типтер (int,char). Инициализация [] ішіне алынған мәндердің тізімі.

    Мысалы: int data[6];

    Көрсеткіш ретінде

    {

    int data[6];

    int *pd[6];

    int *pi[]={&data[0], &data[2], &data[9]};

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

    Мысал:Алты элементтен тұратын массив берілсін. Көрсеткіштің массиві арқылы оларды кему және өсу ретімен орналастырайық.

    float*



















    P max[G]

    float

    5.0

    2.0

    3.0

    1.0

    4.0

    6.0

    array [G]

    float*

    p min[G]




















    #include

    void show_float(float *array, int number_of_elements)

    {
       inti;
       for(i=0;i}

    void main(void)

    {
       floatvalues[5]={1.1,2.2,3.3,4.4,5.5);
       show_float(values,5);
    }
    5. Жолдар және көрсеткіштер

    Программада төмендегідей сипаттау берілсін

    char A[20];

    char *B;

    онда, жадыда А массиві үшін 20 байттан тұратын орын бөлінеді, ал В көрсеткішсіне ешқандай орын бөлінбейді. Сондықтан программада мынадай оператор scanf(“%f”,B); операторы қате береді. Себебі, көрсеткішке нақты орын бөлінбегендіктен программа мәнді қай жақтан оқитынын білмейді. Программада В көрсеткішсін қолдану үшін оны жедел жадта алдын-ала белгілі бір бөліммен байланыстыруымыз керек. Көрсеткішті байланыстыру төмендегідей жүргізіледі:

    B=(char*) malloc(80);

    Malloc-орын бөлу. Сhar типіндегі көрсеткіштерді символдық массивтер түрінде болатын жолдарға қолдану өте тиімді болып табылады.

    Мысалы: Жолдардың ұзындықтары әртүрлі болатын массивтер берілсін. Оларды сипаттап қажетті элементтерінің санын анықтап баспаға шығарайық. Массивтің элементтері “отыз”, “қырық”, “елу”, “алпыс” деген сөздерден тұрсын.


    1. Жадыны динамикалық орналастыру


    Жоспар
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта