User Tag List

Էջ 13 36-ից ԱռաջինԱռաջին ... 39101112131415161723 ... ՎերջինըՎերջինը
Ցույց են տրվում 181 համարից մինչև 195 համարի արդյունքները՝ ընդհանուր 536 հատից

Թեմա: C++

  1. #181
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Տրված է եռանիշ թիվ: Հաշվել և արտածել եռանիշ թվի թվանշանների գումարի և եռանիշ թվի հարաբերության արժեքը, եթե միավորների թվանշանը մեծ է տասնավորների թվանշանից, հակառակ դեպքում կարտածի եռանիշ թիվը:

    Այս խնդրի մեջ էլ ՈՉ-ի պայմանը կատարվում է, իսկ ԱՅՈ-ի պայմանը չի կատարվում: Խնդրում եմ օգնեք

    #include <iostream>
    using namespace std;
    void main()
    {
    int a,b,c,n;
    double k;
    cout<<"Mutqagreq eranish tiv"<<endl;
    cin>>n;
    a=n/100;
    b=(n-a*100)/10;
    c=n%10;
    if(c>b)
    {
    k=(a+b+c)/n;
    cout<<"k="<<k<<endl;
    }
    else
    cout<<"n="<<n<<endl;
    }

  2. #182
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Շատ, շատ շնորհակալ են:

    Քանի որ ես սկսնակ եմ, խնդրում եմ եթե դժվար չի, բացատրեք աս վերջին տողը ինչ է նշանակում

    std::cout << n << '\n';
    return 0;
    }
    cout<< և cin>> հրամանները նախատեսված են ինֆորմացիայի մուտքի/ելքի համար (պարզագույն տարբերակով` էրանին արտածելու և ստեղնաշարից կարդալու) ու հանդիսանում են std ստանդարտ գրադարանի անդամներ:
    Քանի որ #incude-ում կոնկրետ հայտարարված չէ, ապա տվյալ հրամաններին դիմելու համար նախապես գրվում է std::` ցույց տալու համար, թե որտեղից պիտի կոմպիլյատորը կարդա այդ հրամանների կատարման կարգը :
    Կատարվում են ստանդարտ դրադարանի մեջ ընդգրկված հրամանները:
    Կարելի էր ուղղակի գրել cout<<, քանի որ cout-ը նկարագրված է iostream.h--ում
    http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
    http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
    Լոխ մունք ենք, մնացածը` լոխ են...

  3. #183
    Պատվավոր անդամ armen9494-ի ավատար
    Գրանցման ամսաթիվ
    01.03.2010
    Տարիք
    31
    Գրառումներ
    1,242
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Տրված է եռանիշ թիվ: Հաշվել և արտածել եռանիշ թվի թվանշանների գումարի և եռանիշ թվի հարաբերության արժեքը, եթե միավորների թվանշանը մեծ է տասնավորների թվանշանից, հակառակ դեպքում կարտածի եռանիշ թիվը:

    Այս խնդրի մեջ էլ ՈՉ-ի պայմանը կատարվում է, իսկ ԱՅՈ-ի պայմանը չի կատարվում: Խնդրում եմ օգնեք

    #include <iostream>
    using namespace std;
    void main()
    {
    int a,b,c,n;
    double k;
    cout<<"Mutqagreq eranish tiv"<<endl;
    cin>>n;
    a=n/100;
    b=(n-a*100)/10;
    c=n%10;
    if(c>b)
    {
    k=(a+b+c)/n;
    cout<<"k="<<k<<endl;
    }
    else
    cout<<"n="<<n<<endl;
    }
    Խորհուրդ կտամ նախապես փորձեք բլոկ սխեման գծել, որից հետո նոր ծրագրի կոդը գրել:

  4. #184
    Պատվավոր անդամ armen9494-ի ավատար
    Գրանցման ամսաթիվ
    01.03.2010
    Տարիք
    31
    Գրառումներ
    1,242
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    [LIST=1][*]
    1. #include <iostream>
    2. using namespace std;
    3. void main()
    4. {
    5. int a,b,c,n;
    6. double k;
    7. cout<<"Mutqagreq eranish tiv"<<endl;
    8. cin>>n;
    9. a=n/100;
    10. b=(n-a*100)/10;
    11. c=n%10;
    12. if(c>b)
    13. {
    14. k=(a+b+c)/double(n);
    15. cout<<"k="<<k<<endl;
    16. }
    17. else
    18. cout<<"n="
    19. <<n<<endl;
    20. }
    Ահա լուծումը:
    Պռոբլեմը 14-րդ տողում էր: Ուրեմն քանի որ ձեր a,b,c,n թվերը int տիպի են, ապա (a+b+c)/n-ը նույնպես int տիպի է ( (int+int+int)/int=int ): Քանի որ ձեր ստացվող թիվը 1-ից փոքր էր և 0-ից մեծ (օրինակ 0,0243), ձեր էկրանին արտածվում էր 0:
    Ի՞նչ է նշանակում իմ գրածը
    k=(a+b+c)/double(n);
    double(n)-ը նշանակում է, որ այս պարագայում ծրագիրը n-ին նայի որպես double տիպի թիվ:
    Հետևաբար՝ (int+int+int) / double = double
    Կարող էինք նաև գրել այսպես՝
    k=(double(a)+b+c)/n;
    k=double(a+b+c)/n;
    ..........................

    բայց ոչ այսպես՝
    k=double((a+b+c)/n);

    քանի որ սկզբում հաշվվում է (a+b+c)/n , որը լինում է int տիպի և հավասար 0, որից հետո վերածվում է double տիպի, արդյունքում սխալ

  5. #185
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Շնորհակալ եմ շատ

  6. #186
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում armen9494-ի խոսքերից Նայել գրառումը
    Խորհուրդ կտամ նախապես փորձեք բլոկ սխեման գծել, որից հետո նոր ծրագրի կոդը գրել:
    Ես հենց էդպես էլ անում եմ հարգելի Արմեն, որովհետև աշակերտներս էլ առանց բլոկսխեմայի չեն պատկերացնում: Նոր եմ սկսել սովորել այս ծրագիրը, որորհետև ափսոսում եմ, որ իրենց ժամանակը վատնել Պասկալի վրա:

    Եվ անչափ շնորհակալ եմ ինձ աջակցելու ու օգնելու համար:

  7. #187
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Խնդրում եմ օգնեք: Խնդրի լուծման մեջ ոտեղ է իմ սխալը:

    Տրված է N բնական թիվը: Ստանալ և տպել N-ic մեծ այն ամենափոքր թիվը, որը 2-ի աստիճանն է հանդիսանում:

    #include <iostream>
    using namespace std;
    void main()
    {
    double x,m;
    int n;
    cout<<"n=";
    cin>>n;
    x=1;
    m=2;
    while (pow(2,x)==m)
    {
    if (m>n)
    {
    x+=1;
    m+=2;
    }
    cout<<"m="<<m<<endl;
    }
    cout<<"m="<<m<<endl;
    }

  8. #188
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Խնդրում եմ օգնեք: Խնդրի լուծման մեջ ոտեղ է իմ սխալը:

    Տրված է N բնական թիվը: Ստանալ և տպել N-ic մեծ այն ամենափոքր թիվը, որը 2-ի աստիճանն է հանդիսանում:

    #include <iostream>
    using namespace std;
    void main()
    {
    double x,m;
    int n;
    cout<<"n=";
    cin>>n;
    x=1;
    m=2;
    while (pow(2,x)==m)
    {
    if (m>n)
    {
    x+=1;
    m+=2;
    }
    cout<<"m="<<m<<endl;
    }
    cout<<"m="<<m<<endl;
    }
    while-ի մեջ սխալ ես գրել` անվերջ ցիկլ կստացվի, քանի որ ըստ քո գրածի pow(2,x)-ը միշտ հավասար կլինի m:
    Փոխի սենց`

    #include <iostream>
    using namespace std;
    void main()
    {
    double x, m;
    int n;
    cout<<"n=";
    cin>>n;
    x = 1;
    m = 2;
    while ( m <= n )
    {
    x+=1;
    m = pow(2, x);
    }
    cout<<"m="<<m<<endl;
    }
    Վերջին խմբագրող՝ Varzor: 20.02.2012, 11:15:
    Լոխ մունք ենք, մնացածը` լոխ են...

  9. #189
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Անչափ շնորհակալ եմ

    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    while-ի մեջ սխալ ես գրել` անվերջ ցիկլ կստացվի, քանի որ ըստ քո գրածի pow(2,x)-ը միշտ հավասար կլինի m:
    Փոխի սենց`

    #include <iostream>
    using namespace std;
    void main()
    {
    double x, m;
    int n;
    cout<<"n=";
    cin>>n;
    x = 1;
    m = 2;
    while ( m <= n )
    {
    x+=1;
    m = pow(2, x);
    }
    cout<<"m="<<m<<endl;
    }

  10. #190
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Խնդրում եմ, մի հատ էս խնդիրն էլ նայեք:

    Տրված է n բնական թիվը, որը 2-ի որևէ աստիճան է հանդիսանում՝ n=2k :
    Հաշվել և արտածել k-ի արժեքը:

    #include <iostream>
    using namespace std;
    void main()
    {
    double k;
    int n;
    cout<<"n=";
    cin>>n;
    n = 2;
    k = 1;
    while (n==(pow(2,k)))
    {
    n+=2;
    k+=1;
    }
    cout<<"k="<<k<<endl;
    }

  11. #191
    Պատվավոր անդամ armen9494-ի ավատար
    Գրանցման ամսաթիվ
    01.03.2010
    Տարիք
    31
    Գրառումներ
    1,242
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Խնդրում եմ, մի հատ էս խնդիրն էլ նայեք:

    Տրված է n բնական թիվը, որը 2-ի որևէ աստիճան է հանդիսանում՝ n=2k :
    Հաշվել և արտածել k-ի արժեքը:

    #include <iostream>
    using namespace std;
    void main()
    {
    double k;
    int n;
    cout<<"n=";
    cin>>n;
    n = 2;
    k = 1;
    while (n==(pow(2,k)))
    {
    n+=2;
    k+=1;
    }
    cout<<"k="<<k<<endl;
    }
    Ճիշտն ասած ձեր գրածի ալգորիթմը չհասկացա, նամանավանդ էն պահը, որ n-ը ներմուծելուց հետո նրան 2 եք վերագրում
    Քանի որ ասեցիք, որ սովորելու նպատակով եք այս խնդիրները ուսումնասիրում, ասեմ մի քանի բան, որ ձեր խնդրի մեջ սխալ են (ալգորիթմը մի կողմ դրած):
    Նախ քանի որ դուք օգտագործում եք pow-ը, պետք է ծրագրին կցված լինի math.h-ը՝
    #include <math.h>
    k թիվը պետք չէ double տիպի հայտարարել, քանի որ այն միայն ամբողջ արժեքներ կարող է ընդունել:
    k+=1-ի փոխարեն ավելի ճիշտ է գրել k++ կամ ++k

    Այս պահը սխալ չէ, բայց ճիշտ կանեք հակառակը գրել (ինքս էլ եմ հաճախ էս ձևով գրում ու ուզում եմ իմ մեջ փոխել սա)
    while (n==(pow(2,k)))
    while ((pow(2,k))==n)
    որովհետև հաճախ սխալվում ենք ու ==-ի փոխարեն դնում ենք =
    while (n=(pow(2,k))) էս դեպքում ծրագիրը error չի տա, ու սխալ արդյունք կստանանք, իսկ մյուս դեպքում սխալ կտա, քանի որ pow(2,k)-ին չի կարող վերագրել n-ի արժեքը:


    Մի հարց՝ մեզ տրված թիվը հաստատ 2-ի աստիճան է, թե կարող է ուրիշ թիվ էլ լինել: Լավ, հիմա կգրեմ էն տարբերակը, երբ հաստատ 2-ի աստիճան է, եթե մյուսը լինի, ասեք, մյուս տարբերակի համար էլ կսարքեմ այնպես, որ ուրիշ թիվ ներմուծելու դեպքում ասի կրկին ներմուծեք:

    Կառաջարկեմ այս եղանակը. բացում ենք նախապայմանով ցիկլ, ցիկլի մեջ n-ը բաժանում ենք երկուսի և k-ն մեկով ավելացնում ենք: Ցիկլի պայմանը n!=1-ն է: Այսինքն թիվը այնքան ենք բաժանում 2-ի վրա, մինչև դառնա մեկ:


    1. #include <iostream.h>
    2. void main()
    3. {
    4. unsigned int n,k=0;
    5. cin>>n;
    6. while(n!=1)
    7. {
    8. n/=2;
    9. k++;
    10. }
    11. cout<<k;
    12. }
    ___

  12. #192
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Խնդրում եմ, մի հատ էս խնդիրն էլ նայեք:

    Տրված է n բնական թիվը, որը 2-ի որևէ աստիճան է հանդիսանում՝ n=2k :
    Հաշվել և արտածել k-ի արժեքը:


    #include <iostream>
    using namespace std;
    void main()
    {
    double k;
    int n;
    cout<<"n=";
    cin>>n;
    n = 2;
    k = 1;
    while (n==(pow(2,k)))
    {
    n+=2;
    k+=1;
    }
    cout<<"k="<<k<<endl;
    }
    Էլի սխալը While-ի մեջ է: Չեմ հասկանում` ինչի համար էս ցիկլի ներսում n-ի արժեքը փոխում? Չէ որ այն արդեն նախորոշված թիվ է?
    Պետք չի երկար ցիկլեր գրել այս խնդրի համար` ընդհանրապես ցիկլ պետք չի:
    Մի հրամանով կարելի է գտնել:

    #include <iostream.h>
    #include <stdlib.h>
    include <string.h>
    int main()
    {
    /*k-ն չի կարող լինել կոտորակային թիվ */
    int k;
    int n;
    char strBin [32];
    cout<<"n=";
    cin>>n;
    /* n_ը վերածում ենք երկուական տեսքի տեքստի */
    itoa(n, strBin, 2);
    /* քանի որ n-ը 2-ի աստիճան է, ապա նրա երկուական տեսքի առաջին սիմվոլը k+1 -ն է` օր 4=22=100 (bin); strLen("100")=3; 3-1=2 */
    k = strlen(strBin) - 1;
    cout<<"k="<<k<<endl;
    return 0;
    }
    Լոխ մունք ենք, մնացածը` լոխ են...

  13. #193
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում armen9494-ի խոսքերից Նայել գրառումը
    Մի հարց՝ մեզ տրված թիվը հաստատ 2-ի աստիճան է, թե կարող է ուրիշ թիվ էլ լինել: Լավ, հիմա կգրեմ էն տարբերակը, երբ հաստատ 2-ի աստիճան է, եթե մյուսը լինի, ասեք, մյուս տարբերակի համար էլ կսարքեմ այնպես, որ ուրիշ թիվ ներմուծելու դեպքում ասի կրկին ներմուծեք:

    Կառաջարկեմ այս եղանակը. բացում ենք նախապայմանով ցիկլ, ցիկլի մեջ n-ը բաժանում ենք երկուսի և k-ն մեկով ավելացնում ենք: Ցիկլի պայմանը n!=1-ն է: Այսինքն թիվը այնքան ենք բաժանում 2-ի վրա, մինչև դառնա մեկ:
    Արմ ջան, եթե արդեն իսկ սկզբից հայտնի է, որ թիվը 2-ի աստիճան է, ապա ավելորդ հաշվարկներ անել էլ պետք չի:
    Ի դեպ math.h-ի պահը լավ նկատեցիր` ուշադիր չէի եղել
    Լոխ մունք ենք, մնացածը` լոխ են...

  14. #194
    Պատվավոր անդամ armen9494-ի ավատար
    Գրանցման ամսաթիվ
    01.03.2010
    Տարիք
    31
    Գրառումներ
    1,242
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Էլի սխալը While-ի մեջ է: Չեմ հասկանում` ինչի համար էս ցիկլի ներսում n-ի արժեքը փոխում? Չէ որ այն արդեն նախորոշված թիվ է?
    Պետք չի երկար ցիկլեր գրել այս խնդրի համար` ընդհանրապես ցիկլ պետք չի:
    Մի հրամանով կարելի է գտնել:

    #include <iostream.h>
    #include <stdlib.h>
    include <string.h>
    int main()
    {
    /*k-ն չի կարող լինել կոտորակային թիվ */
    int k;
    int n;
    char strBin [32];
    cout<<"n=";
    cin>>n;
    /* n_ը վերածում ենք երկուական տեսքի տեքստի */
    itoa(n, strBin, 2);
    /* քանի որ n-ը 2-ի աստիճան է, ապա նրա երկուական տեսքի առաջին սիմվոլը k+1 -ն է` օր 4=22=100 (bin); strLen("100")=3; 3-1=2 */
    k = strlen(strBin) - 1;
    cout<<"k="<<k<<endl;
    return 0;
    }
    Վարզոր ջան, չեմ կարծում որ Ռուզանը բան հասկացավ այս գրածից. մի մոռացի, որ նոր է սկսել ուսումնասիրել ծրագրավորումը, իսկ խնդիրը իմ կարծիքով հենց ցիկլերի բաժնից է: Ինքս նման բաներ դեռ չեմ անցել:
    Ճիշտը որ ասեմ՝ ես էլ էդքան լավ չհասկացա գրածդ, բայց կփորձեմ նորից նայել:

    Հասկացա
    Իրոք որ հոյակապ լուծում է, թվերի համակարգերը իմանալու դեպքում շատ հեշտ հասկանալի

    Մի հարց ունեմ՝ եթե խնդիրը լիներ 3-ի աստիճանի համար, ապա պիտի անցնեիք երեքական տեսքի՞:
    Վերջին խմբագրող՝ armen9494: 20.02.2012, 16:09:

  15. #195
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում armen9494-ի խոսքերից Նայել գրառումը
    Վարզոր ջան, չեմ կարծում որ Ռուզանը բան հասկացավ այս գրածից. մի մոռացի, որ նոր է սկսել ուսումնասիրել ծրագրավորումը, իսկ խնդիրը իմ կարծիքով հենց ցիկլերի բաժնից է: Ինքս նման բաներ դեռ չեմ անցել:
    Ճիշտը որ ասեմ՝ ես էլ էդքան լավ չհասկացա գրածդ, բայց կփորձեմ նորից նայել:
    Ճիշտ է, գրածս ցիկլերի հետ կապ չունի: Կապ ունի տիպերի կոնվերտացիաների, երկուական համակարգի հատկությունների և տեքստային ֆունկիցաների հետ:
    Բայց բարդ չի: Ցանկացած 2-ի աստիճան երկուական տեսքով իրենից ներկայացնում է 1 և հետևից էլ աստիճանի քանակով զրոների հավաքածու: Դու դա հաստատ անցել ես: Օրինակ` 8=23; 810=10002 a այսինքն` 1 հատ 1 ու պոչից 3 հատ 0: Բնական է, որ 2-ի աստիճան հանդիսացող թվի երկուական տեսքի սիմվոլների երկարության քանակը աստիճանից մեկով ավել է: եհնց այդ հատկության վրա էլ հիմնվել եմ լուծում տալուց:
    Լոխ մունք ենք, մնացածը` լոխ են...

Էջ 13 36-ից ԱռաջինԱռաջին ... 39101112131415161723 ... ՎերջինըՎերջինը

Թեմայի մասին

Այս թեման նայող անդամներ

Այս պահին թեմայում են 2 հոգի. (0 անդամ և 2 հյուր)

Էջանիշներ

Էջանիշներ

Ձեր իրավունքները բաժնում

  • Դուք չեք կարող նոր թեմաներ ստեղծել
  • Դուք չեք կարող պատասխանել
  • Դուք չեք կարող կցորդներ տեղադրել
  • Դուք չեք կարող խմբագրել ձեր գրառումները
  •