1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

C - функции, помош

Дискусија во форумот 'C // C++' започната од goodboy, 23 Март 2009.

  1. goodboy

    goodboy
    Intern

    849
    21
    12 Јануари 2008
    Се надевам дека на форумов ке најдам соработка односно помош од ваша страна во овој случај. Дечки, може да ми објасните нешто околу функциите ? Ако ми објаснува некој нека ми објаснува со некоја попроста задачка и со код. Да биде благословен секој што ке ми помогне :D
     
  2. whoeverest

    whoeverest
    Intern

    30
    3
    13 Април 2008
    Океј ќе пробам да ти објаснам најпросто што може за најлесно да го сфатиш..

    Замисли ја функцијата како некое апаратче (машина, направа, сеедно) што има задача за некаков даден влез да даде некаков излез. Пример да земеме една машина што кога ќе и дадеме 2 броја има функција да ни го каже збирот на тие два броја. Оваа машна ќе има влезни параметри (броевите кои сакаме да ги собереме), тело или структура (механизмот внатре во машината кој го прави пресметувањето) и некаков излез кој нас ни е од корист (збирот на броевите).

    Како е ова имплементирано во C ? Синтаксата за декларирање на една функицја е следната:

    ТИПОТ_НА_ПОДАТОК_КОЈ_ГО_ ВРАЌА_ФУНКЦИЈАТА Име_на функцијата( Влезен_параметар_А, Влезен_параметар_Б ... )
    {
    СТРУКТУРАТА_НА_ФУНКЦИЈАТА;
    ВРАТИ_ПОДАТОК Нешто;
    }

    Типот на податок кој го враќа функцијата може да биде различен.. integer ако треба да врати цел број, float или double за децимални броеви, char, pointer, практично функцијата може да врати било каков податок. Ако функцијата не треба да врати никаков податок (пример функција што треба да испише текст) тогаш пред функцијата ќе стои void.

    Името на функцијата е рандом и по твој избор.. Може да ја крстиш прасе, тоа е стално кул. :D

    Влезните параметри се.. влезни параметри. Нив ги дефинираме во мали загради и ги одделуваме со запирка. Пред секој влезен параметар мора да го дефинираме типот на променливата, тоа веќе го знаеш од програмирање. Сите променливи овде дефинирани може подоцна да ги користиме во телото на функцијата.

    Структурата на функцијата е делот каде што дефинира што ќе прави функцијата.. Дали ќе собира броеви, дали ќе пишува текст или ќе црта прасиња. Ова е главниот код на функцијата, телото, корот. :)

    На крајот на секоја функција што враќа некаков податок (односно не е void функција) стои командата return која наредува податокот (во горниот случај "Нешто", во подолниот "zbirot") да биде излезот на функцијата.

    Вака би изгледал кодот на една функција за собирање на 2 броја како во примерот:

    int zbir ( int a, int b )
    {
    int zbirot;
    zbirot=a+b;
    return zbirot;
    }


    Се надевам дека сега ти е појасно што се функции.. Главно се користат за да не се пишува по 100 пати еден ист код што врши една иста работа со различни влезни параметри за програмерите да имаат барем малку социјален живот, а не да куцаат код по 41 саат дневно. :)
     
    1 person likes this.
  3. goodboy

    goodboy
    Intern

    849
    21
    12 Јануари 2008
    :bravo::bravo::bravo:
    Сега ми е многу појасно. Ако те запознаам некогаш сакал несакал ке мора да се опиеш :))
    Уште една мала молба ...
    Значи те замолувам, чекам да ми објасниш како се повикува функцијата.
    Фала однапред. :)
     
  4. whoeverest

    whoeverest
    Intern

    30
    3
    13 Април 2008
    За да ја повикаш функцијата од main програмата треба да го напишеш името и да зададеш влезни параметри. На пример, за да ја повикаш горната функција и да и кажеш да пресмета збир на 2 и 5, и истиот да го зачува во некоја променлива x ќе ти треба следниот код:


    int x;
    x=zbir(5,2);


    А за пиење стално може, се дур ти частиш. :D
     
  5. goodboy

    goodboy
    Intern

    849
    21
    12 Јануари 2008
    Хм, а нели треба
    x=zbirot(a,b);
    Значи прво ке ја зададеме променливата во која што сакаме да ја зачуваме функцијата и после го напишеме тоа. Само пишав zbirot бидејки, нели горе ја означивме променливата zbirot, не zbir. Така е ?
    Ако е така :bravo::bravo::bravo: ке одиш право на гликоза :D:D

    Измена :

    int zbir ( int a, int b )
    {
    int zbirot;
    zbirot=a+b;
    return zbirot;
    }

    Нели треба и двете променливи да се исти ? Зборувам за zbir и zbirot.
     
  6. Aleks

    Aleks
    Gaining Experience

    5,753
    289
    18 Мај 2007
    Може и директно вредности да внесеме немора преку променлива.
     
  7. Stefan.Taz

    Stefan.Taz
    Intern

    285
    31
    30 Април 2008
    Имате грешка овдека.
    При повикување на финкцијата треба да пишеш
    Код:
    x=zbir(a,b);
    бидејки,
    функцијата што си ја пишал се вика zbir и ти ја повикуваш функцијата по нејзиното име. Внатре во неа како се викаат членовите не е воопшто битно, бидејки zbirot е само локална променлива која може да се вика и z, zbirciste, RepublikaMakedonijaSkopje ако сакаш, но при повикување на функција го користиш името на функцијата, а не името на променливата што ги собира во овој случај променливите.
    позз
     
  8. maximilian

    maximilian
    Gaining Experience

    1,064
    74
    26 Март 2008
    Точно така, и исто така требе да знаете, се додека влезните променливи на функцијата не се псевдоними или покажувачи, функцијата не работи директно со променливите а и b, а работи со нивни копии. По завршувањето на функцијата, тие копии се бришат.

    ЕДИТ: Молба до модератори/админи - да се префрли темата во програмирање за С/С++ ако може :)
     
    1 person likes this.
  9. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,269
    24,710
    28 Февруари 2008
    Машко
    Experienced Web Developer
    @maximilian средено братче:bravo:
     
Слични теми
  1. AMD_fan
    Одговори:
    19
    Прегледи:
    2,291
  2. dimitars
    Одговори:
    9
    Прегледи:
    1,247
  3. DaDo|BT
    Одговори:
    9
    Прегледи:
    4,784
  4. Xenor
    Одговори:
    6
    Прегледи:
    1,260
  5. &YL
    Одговори:
    11
    Прегледи:
    1,027
Вчитување...

Сподели

Вчитување...