• 2-misol.
  • 5-misol.
  • 6-misol.
  • 7-misol.
  • Savollar va mustaqil bajarish uchun topshiriqlar
  • Massivlar haqida tushuncha.
  • Massivlarni tavsiflash va ulardan foydalanish.
  • Bir o‘lchovli massivlar.
  • C++ dasturlash tilida
  • -misol. 1 kg konfetning narxi haqiqiy sonda berilgan. 1, 2, …, 10 kg konfetning bahosini chiqaruvchi dastur. 1-usul. for




    Download 14,73 Mb.
    bet67/178
    Sana13.05.2024
    Hajmi14,73 Mb.
    #230019
    1   ...   63   64   65   66   67   68   69   70   ...   178
    Bog'liq
    Darslik 01.05.2023

    1-misol. 1 kg konfetning narxi haqiqiy sonda berilgan. 1, 2, …, 10 kg konfetning bahosini chiqaruvchi dastur.
    1-usul. for takrorlash operatoridan foydalanilsa, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    float b;
    cout<<"b= "; cin>>b;
    for (int i=1; i<=10; i++)
    cout<
    return 0;
    }
    2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    float b;
    cout<<"b= "; cin>>b;
    int i=1;
    while (i<=10){
    cout<
    i++;
    }
    return 0;
    }
    3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    float b;
    cout<<"b= "; cin>>b;
    int i=1;
    do {
    cout<
    i++;
    } while (i<=10);
    return 0;
    }
    2-misol. 1 dan n gacha bo‘lgan, 4 ga karrali sonlar yig‘indisini hisoblash dasturi.
    1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, s=0;
    cout<<"n= "; cin>>n;
    for (int i=1; i<=n; i++)
    if (i%4==0) s+=i;
    cout<
    return 0;
    }
    2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, s=0;
    cout<<"n= "; cin>>n;
    int i=1;
    while (i<=n){
    s+=i;
    i++;
    }
    cout<
    return 0;
    }
    3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, s=0;
    cout<<"n= "; cin>>n;
    int i=1;
    do {
    s+=i;
    i++;
    } while (i<=n);
    cout<
    return 0;
    }
    3-misol. a va n butun sonlari berilgan (n>0). 1+ a + a2 + a3 + ... + an . Bitta sikldan foydalanib, yig‘indisini hisoblash dasturi.
    1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    #include
    using namespace std;
    int main(){
    int n, a; float s=0;
    cout<<"a= "; cin>>a;
    cout<<"n= "; cin>>n;
    for (int i=0; i<=n; i++)
    s+=pow(a,i);
    cout<
    return 0;
    }
    2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    #include
    using namespace std;
    int main(){
    int n, a; float s=0;
    cout<<"a= "; cin>>a;
    cout<<"n= "; cin>>n;
    int i=0;
    while (i<=n){
    s+=pow(a,i);
    i++;
    }
    cout<
    return 0;
    }
    3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    #include
    using namespace std;
    int main(){
    int n, a; float s=0;
    cout<<"a= "; cin>>a;
    cout<<"n= "; cin>>n;
    int i=0;
    do {
    s+=pow(a,i);
    i++;
    } while (i<=n);
    cout<
    return 0;
    }


    4-misol. n (n>0) butun son berilgan. Butunga bo‘lish va qoldiqni aniqlash amallaridan foydalanib, n sonida 3 ga karrali raqam borligini aniqlovchi dastur.
    1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    if (n>0)
    {
    for (int i=1; ; i++){
    if ((n%10)%3==0) k++;
    n=n/10;
    if (n==0) break;
    }
    cout<
    } else cout<<"Butun va musbat son kiriting";
    }
    2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    if (n>0)
    {
    int i=1;
    while (n>0){
    if ((n%10)%3==0) k++;
    n=n/10;
    }
    cout<
    } else cout<<"Butun va musbat son kiriting";
    return 0;
    }
    3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    if (n>0)
    {
    int i=1;
    do {
    if ((n%10)%3==0) k++;
    n=n/10;
    } while (n>0);
    cout<
    } else cout<<"Butun va musbat son kiriting";
    return 0;
    }
    5-misol. n (n>1) butun son berilgan. Agar u tub son bo‘lsa true, aks holda false jumlasini chiqaruvchi dastur.
    1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    for (int i=1; i<=n; i++)
    if (n%i==0) k++;
    if (k==2) cout<<"true";
    else cout<<"false";
    return 0;
    }
    2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    int i=1;
    while (i<=n){
    if (n%i==0) k++;
    i++;
    }
    if (k==2) cout<<"true";
    else cout<<"false";
    return 0;
    }
    3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0;
    cout<<"n= "; cin>>n;
    int i=1;
    do {
    if (n%i==0) k++;
    i++;
    } while (i<=n);
    if (k==2) cout<<"true";
    else cout<<"false";
    return 0;
    }
    6-misol. Barcha uch xonali sonlar ichida raqamlarining yig‘indisi 21 ga teng bo‘lgan birinchi sonni topish dasturi.
    Berilgan misolni break operatoridan foydalanib, hisoblashning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n;
    for(int i=100; i<=999; i++) {
    int a=i%10;
    int b=i/10;
    int c=b/10;
    int d=b%10;
    if (a+c+d==21) { cout<
    }
    return 0;
    }
    7-misol. n butun son berilgan (n>0). 1 va n oralig‘idagi tub sonlarni chiqarish dasturi.
    Berilgan misolni continue operatoridan foydalanib, hisoblashning dastur kodi quyidagicha bo‘ladi:
    #include
    using namespace std;
    int main(){
    int n;
    cout<<"n= "; cin>>n;
    bool division=false;
    for (int i=2; i<=n; i++)
    {
    for (int j=2; j
    {
    if (i%j) continue;
    else
    {
    division=true; break;
    }
    }
    if (!division) cout<
    division=false;
    }
    return 0;
    }
    Savollar va mustaqil bajarish uchun topshiriqlar
    1. 1 dan n gacha bo‘lgan butun sonlarning ko‘paytmasini topish dasturini tuzing.
    2. Quyidagi yig‘indini hisoblash dasturini tuzing:  . Bunda n>0.
    3. 1,1-1,2+1,3-… Ifodaning qiymatini topish dasturini tuzing.
    4. Quyidagi misolni dasturini tuzing:
    5. n butun soni berilgan (n>0). 1!+2!+…+n! ni bitta sikldan foydalanib, yig‘indisini hisoblash dasturini tuzing.
    6. Quyidagi yig‘indini hisoblash dasturini tuzing: 1n+2n-1+…+n1. Bunda n>0.
    7. n (n>1) butun son berilgan. 1+2+…+k yig‘indining n dan katta yoki teng bo‘lishini ta’minlaydigan eng kichik k butun soni va yig‘indining qiymatini chiqaruvchi dastur tuzing.
    8. n (n>1) butun son berilgan. Butunga bo‘lish va qoldiqni aniqlash amallaridan foydalanib, uning raqamlari yig‘indisini va raqamlari sonini chiqaruvchi dastur tuzing.
    9. n (n>1) butun son berilgan. Agar u tub son bo‘lsa true, aks holda false jumlasini chiqaruvchi dastur tuzing.
    10. a va b sonlar oralig‘idagi butun sonlardan iborat bo‘lgan uchburchakning tomonlari berilganda, uning yuzasi butun son bo‘ladigan tomonlarni topuvchi dastur tuzing.


    2.4-§. C++ dasturlash tilida massivlar bilan ishlash




    Massivlar haqida tushuncha. Massiv – bu bitta nom ostida birlashtirilgan, bir xil tipdagi elementlar guruhi sifatida taqdim etilgan ma’lumotlar to‘plamidir.
    Bir xil turdagi, katta hajmdagi ma’lumotlarni qayta ishlashda massivlardan foydalanish qulay hisoblanadi. Massiv ma’lumotlarining bitta yacheykasi massiv elementi deyiladi. Massiv elementlari har qanday turdagi ma’lumotlar bo‘lishi mumkin (Butun yoki haqiqiy sonlar, satrlar, sanalar va boshqalar). Massivlar bir yoki bir nechta o‘lchovlarga ega bo‘lishi mumkin, ya’ni bir o‘lchovli, ikki o‘lchovli, uch o‘lchovli va n o‘lchovli massivlarga bo‘linadi. Dasturlashda ko‘pincha bir o‘lchovli va ikki o‘lchovli massivlardan foydalaniladi. Ushbu mavzuda bir va ikki o‘lchovli massivlar bilan ishlashni ko‘rib chiqamiz.
    Massivlarni tavsiflash va ulardan foydalanish. 2.4.1 - jadvalda 8 ta elementdan iborat bo‘lgan haqiqiy qiymatlar keltirilgan. Ushbu jadvaldagi ma’lumotlar bir o‘lchovli massivga misol bo‘ladi. Massivning ma’lum bir elementida saqlangan ma’lumotlariga massiv nomini va indeksi yordamida murojaat qilinadi.
    2.4.1 -jadval.
    Bir o‘lchovli massiv

    Tartib raqam

    0

    1

    2

    3

    4

    5

    6

    7

    qiymat

    8.21

    -0.52

    6.71

    1.09

    -21.76

    7.07

    3.13

    -15.11

    Agar massivni tavsiflashda uning o‘lchami aniq berilsa, u holda massiv statik deb nomlanadi. Quyida C ++ dasturlash tilidagi bir o‘lchovli statik massivlar bilan tanishib chiqamiz.


    Bir o‘lchovli massivlar. Bir o‘lchamli massivni e’lon qilish quyidagi ko‘rinishda yoziladi:
    [ elementlar_soni ] = { boshlang‘ich qiymatlar };
    Quyida massivlarni e’lon qilishga oid bir necha misollar keltirilgan:
    1) float jadval[7]; // 7 ta haqiqiy elementli massiv;
    2) int vektor[6]; // 6 ta butun sonli massiv;
    3) bool ab[15]; // 15 ta mantiqiy elementli massiv.
    Massiv o‘lchami va uning elementlari tipi massivni saqlash uchun zarur bo‘lgan xotira hajmini aniqlaydi. Massivni tavsiflashning yana bir usulini ko‘rib chiqamiz:
    const int k=15; // Butun sonli o‘zgarmasni e’lon qilish;
    double A[k]; // 15 ta haqiqiy sonli massiv;
    Statik massivni tavsiflashda o‘lchov sifatida musbat butun sondan yoki oldindan belgilangan o‘zgarmasdan foydalanish mumkin.
    C++ dasturlash tilidagi massiv elementlari noldan raqamlangan. Birinchi element har doim nol indeksga ega va oxirgi element indeksi, uning tavsifida ko‘rsatilgan o‘lchovdan bitta kam bo‘ladi:
    char z[4]; // bunda 4 ta belgili massiv, elementlari 0 dan 3 gacha raqamlangan.
    Massiv elementlariga murojaat qilish oddiy o‘zgaruvchilarga murojaat qilishdan biroz farqli bo‘lgan jihati mavjud. Massiv elementiga murojaat qilish, uning indeksi orqali amalga oshiriladi. Masalan:
    max[1] = 20; // max massivning 1- elementi 20 qiymat o‘zlashtirish;
    max[2] = min[3]; // max massivni 2- elementiga min massivning 3-elementini o‘zlashtirish;
    max[5] > min[6]; // max massivni 5- elementi bilan min massivning 6-elementini taqqoslash;
    Massivni e’lon qilishda, uning elementlariga boshlang‘ich qiymat berish mumkin va buni bir nechta usullari mavjud.
    1) O‘lchami ko‘rsatilgan massivni to‘liq e’lon qilish:
    int a[4] = { 5, 6, 7, 8};
    Bu yerda 4 ta elementdan iborat bo‘lgan a massivi e’lon qilingan va massivning barcha elementlariga boshlang‘ich qiymat berilgan.
    2) O‘lchami ko‘rsatilgan massivni to‘liqmas e’lon qilish:
    int b[6] = { 7, 5, 3 };
    Bu yerda 6 ta elementdan iborat bo‘lgan b massivi e’lon qilingan va massivning dastlabki 3 ta elementlariga boshlang‘ich qiymat berilgan.
    3) O‘lchami ko‘rsatilmagan massivni to‘liq e’lon qilish:
    int x[] = { 5, 3, 2, 1, 8, 0};
    Agar massiv o‘lchami ko‘rsatilmasa, uni to‘liq e’lon qilish talab etiladi. Bu holda massiv o‘lchami kompilyatsiya jarayonida elementlari soniga qarab aniqlanadi. Bunda massivning o‘lchami 6 ga teng bo‘ladi.
    4) O‘lchami ko‘rsatilgan massivning barcha elementlariga boshlang‘ich qiymatda 0 berish: int y[4] = { 0 };
    Bir o‘lchamli massivlar uchun ishlatilgan o‘zgaruvchilar bir хil tipdagi berilganlarni хotirada saqlashda foydalaniladi.
    Yuqorida bayon qilingan fikrlarni tekshirib ko‘rish uchun C++ dasturlash tilida bir nechta dasturlarni ko‘rib o‘tamiz.
    1-misol. n (n>0) butun son berilgan. Dastlabki n ta musbat juft sonlarni saqlaydigan n o‘lchamli butun sonli massiv tashkil etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n; cout<<"n = "; cin>>n;
    int a[n];
    for(int i=0,k=2; i<=n; i++,k+=2)
    a[i]=k;
    for(int i=0; i
    cout<
    }


    2-misol. Butun n (n>1) soni, arifmetik progressiyaning birinchi hadi a va uning ayirmasi d berilgan. Ulardan foydalanib, o‘zida arifmetik progressiyaning dastlabki n ta hadini saqlovchi massiv tashkil etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int a,d,n; cout<<"n = "; cin>>n;
    int b[n];
    cout<<"a = "; cin>>a;
    cout<<"d = "; cin>>d;
    for(int i=0,k=a; i<=n; i++,k+=a)
    b[i]=k;
    for(int i=0; i
    cout<
    }


    3-misol. n (n>2) butun soni berilgan. f1=1, f2=1, fk=fk-2+fk-1, k=3,4, ... .
    fk Fibonachchi sonlar ketma-ketligida birinchi n ta elementni o‘z ichiga oladigan n o‘lchamli butun sonli massivni ifodalash va chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n; cout<<"n = "; cin>>n;
    int a[n];
    a[0]=1; a[1]=1;
    for(int i=2; i
    a[i]=a[i-1]+a[i-2];
    for(int i=0; i
    cout<
    }


    4-misol. n (n>2), a va b butun sonlar berilgan. 1-elementi a ga, 2-elementi b, har bir keyingi elementi barcha avvalgi elementlar (o‘zidan oldingi barcha element) yig‘indisiga teng bo‘lgan n o‘lchamli butun sonli massivni ifodalash va chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n; cout<<"n = "; cin>>n;
    int x[n];
    int a, b;
    cout<<"a = "; cin>>a;
    cout<<"b = "; cin>>b;
    x[0]=a; x[1]=b;
    int s=a;
    for(int i=2; i
    s=s+x[i-1];
    x[i]=s;
    }
    for(int i=0; i
    cout<
    }


    5-misol. n o‘lchamli nol bo‘lmagan butun tipli a massiv berilgan. Uning akn tengsizlikni qanoatlantiradigan birinchi ak elementining qiymatini chiqaruvchi dastur.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n; cout<<"n = "; cin>>n;
    int a[n];
    for(int i=1; i<=n; i++)
    cin>>a[i];
    for(int i=1; i<=n; i++)
    if (a[i]
    cout<
    break;
    }
    }


    6-misol. n o‘lchamli butun sonli a massiv berilgan. Massivdagi barcha juft sonlar yangi butun tipli b massivga yozilsin. Hosil qilingan b massivning o‘lchami hamda uning elementlarini chiqarish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k=0; cout<<"n = "; cin>>n;
    int a[n], b[n];
    for(int i=1; i<=n; i++)
    cin>>a[i];
    for(int i=1; i<=n; i++)
    if (a[i]%2==0){
    k++;
    b[k]=a[i];
    }
    cout<
    for(int i=1; i<=k; i++)
    cout<
    }


    7-misol. n o‘lchamli butun tipli massiv berilgan. Birinchi juft sonning dastlabki qiymatini massivdagi barcha juft sonlarga ko‘paytirish (Agar massivda juft son bo‘lmasa, massiv o‘zgartirishsiz qoldirilsin) dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, k; cout<<"n = "; cin>>n;
    int a[n], b[n];
    for(int i=1; i<=n; i++)
    cin>>a[i];
    for(int i=1; i<=n; i++)
    if (a[i]%2==0) {
    k=a[i];
    break;
    }
    for(int i=1; i<=n; i++)
    if (a[i]%2==0) a[i]=k*a[i];
    for(int i=1; i<=n; i++)
    cout<
    }



    Download 14,73 Mb.
    1   ...   63   64   65   66   67   68   69   70   ...   178




    Download 14,73 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    -misol. 1 kg konfetning narxi haqiqiy sonda berilgan. 1, 2, …, 10 kg konfetning bahosini chiqaruvchi dastur. 1-usul. for

    Download 14,73 Mb.