• Amallar
  • 2-ma’ruza mavzu: algoritmlash va dasturlashning asosiy tushunchalari reja




    Download 286,49 Kb.
    bet3/6
    Sana09.12.2023
    Hajmi286,49 Kb.
    #114744
    1   2   3   4   5   6
    Bog'liq
    JLS1mK4JE8xpBizx6WVHiS1sqk6pm5BLfsKMFqou

    ketma-ketlik (chiziqli) , tarmoqlanish, takrorlanish (takrorlash)
    1. Chiziqli algoritm tuzilmasi ketma-ket bajariladigan buyruqlar tizimidan iborat bo‘ladi:
    Amallar
    Blok-sxema

    1-amal

    2-amal. . . .
    .
    n-amal




    2. Tarmoqlanish. Bu tuzilma shart bajarilishi natijasiga qarab (ha yoki yo‘q) algoritmni bajarish yo‘nalishini belgilaydi.


    Tarmoqlanish tuzilmasi to‘rtta ko‘rinishda bo‘lishi mumkin:

    • agar-u holda;

    • agar-u holda-aks holda;

    • shartlar ketma-ketligi agar-u holda;

    • shartlar ketma-ketligi agar-u holda-aks holda.




    Algoritmik til

    Blok-sxema

    1. agar-u holda

    agar shart
    u holda amal
    tamom



    2. agar-u holda-aks holda

    Agar shart
    u holda 1-amal
    aks holda 2-amal
    tamom



    3. tanlash

    Tanlash
    agar 1-shart: 1-amal
    agar 2-shart: 2-amal
    . . . . . . . . . . . .
    agar N-shart: N-amal
    tamom



    4. tanlash-aks holda

    Tanlash
    Agar 1-shart: 1-amal
    Agar 2-shart: 2-amal
    . . . . . . . . . . . .
    agar N-shart: N-amal
    aks holda N+1 amal
    tamom





    Agar buyrugʻiga misollar



    Algoritmni so‘zlar yordamidagi ifodasi

    Blok-sxema ko‘rinishidagi ifodasi

    Agar x > 0
    u holda y := sin(x)
    tamom



    Agar a > b
    u holda a := 2*a; b := 1
    aks holda b := 2*b
    tamom



    Tanlash
    Agar n = 1: y := sin(x)
    Agar n = 2: y := cos(x)
    Agar n = 3: y := 0
    Tamom



    Tanlash
    agar a > 5: i := i+1
    agar a = 0: j := j+1
    aks holda i := 10; j:=0
    tamom



    3. Takrorlash tuzilmasi buyruq, ko‘rsatma va amallarni ko‘p marotaba bajarilishini ta’minlaydi. Takrorlashni ta’minlashning asosiy turlari ushbu jadvalda ko‘rsatilgan:




    Ogʻzaki so‘zlar orqali

    Blok-sxema tilida

    Toki takrorlash turi
    Toki so‘zidan keyin keluvchi shart bajarilgunga qadar takrorlash tanasida ko‘rsatilgan buyruqlar bajariladi.

    Takrorlash boshi toki shart
    Takrorlash tanasi (buyruqlar ketma-ketligi)
    Takrorlash oxiri



    Uchun takrorlash turi
    Takrorlash o‘zgaruvchisi (takrorlash parametri) barcha qiymatlarni qabul qilgunga qadar takrorlash tanasida ko‘rsatilgan buyruqlar bajariladi.

    Takrorlash boshi i uchun 1 dan 2 gacha
    Takrorlash tanasi (buyruqlar ketma-ketligi)
    Takrorlash oxiri






    Toki va uchun buyruqlariga misollar

    So‘zlar orqali

    Blok-sxema orqali

    Takrorlash boshi toki i <= 5
    S := S+A[i]
    i := i+1
    takrorlash oxiri



    Takrorlash boshi i uchun 1 dan 5 gacha
    X[i] := i*i*i
    Y[i] := X[i]/2
    takrorlash oxiri



    Binar amallar additiv ya’ni + qo‘shish va – ayirish amallariga, hamda multiplikativ, ya’ni * ko‘paytirish, / bo‘lish va % modul olish amallariga ajratiladi.
    Butun sonni butun songa bo‘lganda natija butun songacha yaxlitlanadi.
    Misol uchun, 20/3 = 6; (-20)/3 = -6; 20/(-3) = -6.
    Unar amallarga ishorani o‘zgartiruvchi unar minus “–” va unar plyus “+” amallari kiradi. Bundan tashqari inkrement “++” va dekrement “--” amallari ham unar amallarga kiradi.
    (C / C ++) Ternar operatori:
    Ternar operatori quyidagi shaklga ega:
    amal1 : amal2 : amal3
    exp1 ifodasi har doim baholanadi. amal2 va amal3 bajarilishi amal1 natijasiga bogʻliq. Agar exp1 natijasi nolga teng bo‘lmasa, exp2 baholanadi, aks holda exp3 baholanadi.
    Kamchiliklari:
    amal1 har qanday kamchiligi amal2 yoki amal3 dan oldin darhol baholanadi va yangilanadi. Boshqacha qilib aytganda, holatni uchlamchi nuqtai nazardan baholaganingizdan keyin ketma-ketlikda nuqta bor. Agar exp2 yoki exp3 kamchiligi bo‘lsa, ulardan faqat bittasi baholanadi.
    Qaytish turi:
    Ternar operatori qaytish turiga ega. Qaytish turi odatiy \ ortiqcha yuklangan konversiya qoidalariga muvofiq exp2 ga va exp3 ning exp2 ga konvertatsiyasiga bogʻliq. Agar ular o‘zgartirilmasa, kompilyator xato tashlaydi. Quyidagi misollarga qarang.
    Quyidagi dastur xatosiz kompilyatsiya qiladi. Uchlamchi iboraning qaytish turi float(exp2 dagiday) bo‘lishi kutilmoqda va exp3 (ya'ni, haqiqiy nol - turi int) noaniq ravishda float shaklga o‘tkaziladi.
    #include
    using namespace std;
    int main()
    {
    int test = 0;
    float fvalue = 3.111f;
    cout << (test ? fvalue : 0) << endl;
    return 0;
    }
    Quyidagi dastur kompilyatsiya qilmaydi, chunki kompilyator uchlamchi iboraning qaytariladigan turini topa olmaydi, yoki exp2 (belgilar qatori) va exp3 (int) o‘rtasida yashirin konversiya mavjud emas.
    #include
    using namespace std;
    int main()
    {
    int test = 0;
    cout << test ? "A String" : 0 << endl;
    return 0;
    }
    Quyidagi dastur kompilyatsiya qilishi “mumkin” yoki ish vaqtida ishlamay qolishi mumkin. Uchinchi iboraning qaytish turi (char *) turi bilan cheklangan, ammo int ni qaytaradi, shuning uchun dastur xato bilan tugaydi. Haqiqatan ham, dastur ish vaqtida 0-chi manzilga bir qatorni bosib chiqarishga harakat qiladi.
    #include
    using namespace std;
    int main()
    {
    int test = 0;
    cout << (test ? "A String" : 0) << endl;
    return 0;
    }

    Download 286,49 Kb.
    1   2   3   4   5   6




    Download 286,49 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    2-ma’ruza mavzu: algoritmlash va dasturlashning asosiy tushunchalari reja

    Download 286,49 Kb.