• Strukturalar va funktsiyalar.
  • Strukturalarga ko’rsatkichlar ustida amallar




    Download 313,45 Kb.
    bet62/89
    Sana16.11.2023
    Hajmi313,45 Kb.
    #100010
    1   ...   58   59   60   61   62   63   64   65   ...   89
    Bog'liq
    @AKT Official C haqida o\'zbekcha darslar majmui

    Strukturalarga ko’rsatkichlar ustida amallar.

    Strukturalarga ko’rsatkichlar ustida amallar oddiy ko’rsatkichlar ustida amallardan farq qilmaydi. Agar ko’rsatkichga strukturalar massivining biror elementi adresi qiymat sifatida berilsa, massiv buyicha uzluksiz siljish mumkin buladi. Misol tariqasida kompleks sonlar massivi summasini hisoblash masalasini ko’rib chiqamiz:


    #include
    void main()
    {
    sruct complex
    {float x;
    float y;} array[]={1.0,2.0,3.0,-4.0,-5.0,-6.0,-7.0,-8.0};
    struct complex summa={0.0,0.0};
    struct complex *point=&array[0];
    int k,I;
    k=sizeof(array)/sizeof(array[0]);
    for(i=0;i{
    summa.x+=point->x;
    summa.y+=point->y;
    point++;
    }
    Cout<<(“\n Summa: real=%f”,\t imag=%f”,summa.x,summa.y);
    }

    Dastur bajarilishi natijasi:


    Summa: real=-8.000000, imag=-16.000000
    Strukturalar va funktsiyalar.

    Strukturalar funktsiyalar argumentlari sifatida yoki funktsiya qaytaruvchi qiymat kelishi mumkin. Bundan tashqari ikkala holda ham strukturaga ko’rsatkichlardan foydalanish mumkindir. Misol uchun kompleks son modulini hisoblash dasturini keltiramiz:


    Double modul(complex a)
    {return sqrt(a.real*a.real+a.imag*a.imag}
    Ikki kompleks son yigindisini hisoblash funktsiyasi:
    Complex add(complex a, complex b)
    { complex c;
    c.real=a.real+b.real;
    c.imag=a.imag+b.imag;
    return c;
    }
    Bu funktsiyani ko’rsatkichlar yordamida qo’yidagicha yozish mumkin
    Complex* add(complex* a, complex* b)
    { complex* c; c=(complex*)malloc(sizeof(complex));
    c->real=(*a).real+(*b).real;
    c->imag=(*a).imag+(*b).imag;
    return c;
    }
    Bu funktsiya complex tipidagi dinamik ob'ekt yaratib adresini qaytaradi. Dasturda bu ob'ekt uchun ajratilgan joyni ozod qilish maqsadga muvofiq. Bu funktsiyaga dasturda qo’yidagicha murojaat qilish mumkin:
    Complex a={0.1,-0.3},b={0.2,-0.5};
    Complex* pa; pa=add(&a,&b);

    Download 313,45 Kb.
    1   ...   58   59   60   61   62   63   64   65   ...   89




    Download 313,45 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Strukturalarga ko’rsatkichlar ustida amallar

    Download 313,45 Kb.