User Tag List

Էջ 25 36-ից ԱռաջինԱռաջին ... 1521222324252627282935 ... ՎերջինըՎերջինը
Ցույց են տրվում 361 համարից մինչև 375 համարի արդյունքները՝ ընդհանուր 536 հատից

Թեմա: C++

  1. #361
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում soultaker-ի խոսքերից Նայել գրառումը
    Իսկ ոչի՞նչ որ համակարգչի վրա ուրիշ ծրագրեր էլ են աշխատում ու կարողա տենց գնա իրանց բաժին հիշողությունը լրիվ վարի տա, եթե թույլատրված լիներ դա անել: Կամ ասենք էտ հասցեի արժեքը ի՞նչ թիվա իրանից ներկայացնում, կոնկրետ ինչի՞ վրայա ցույց տալիս: Բոլոր նորմալ օպերացիոն համակարգերում ամեն ծրագիր ունի իր բաժին հիշողությունը, ու դրանից դուրս հիշողության դիմելիս ՕՀ-ը ավտոմատ կերպով ծրագիրը ավարտում է Runtime Error-ով: Իսկ թե սկզբում հասցեն կոնկրետ որտեղ է ցույց տալիս, դա էլ ոչ ոք չի կարող ասել, որովհետև առանց սկզբնական արժեք տալու ուր ասես կարող է ցույց տալ:
    Բայց տալիս եմ չէ`
    int x[]={0};
    int *k=x;
    Չնայած` համամիտ եմ քեզ հետ, երբ ծրագրին հատկացված ստեկից դուրս ես գալիս` Runtime Error-ը պատրաստ է: Սխալը հասկացա Եթե գրեի
    int x[10];
    int *k=x;
    ապա ոչ մի սխալ էլ չէր տա, քանի որ x-ի հայտարարման ժամանակ արդեն իսկ հասցեների տիրույթը ռեզերվացվում է, որն էլ չի ազդում արդեն k-ի վրա` նույն չափով էլ k-ին է հասնում:
    Բայց փաստը մնում է փաստ` VS 6.0-ով աշխատում է
    Բա էդ պարագայում ինչի VBA-ն Runtime Error չի տալիս? Կարողա Redim-ը ուրիշ ձևա աշխատում:
    Ի դեպ կհուշես C++-ում ոնց ենք միաչափ զանգվածի ինդեքսը մեծացնում/փոքրացնում? Redim-ի նման մի բան էլ ընդեղ կար ոնց որ: C-ից malloc-ն եմ հիշում, սա պիտի որ C++-ում էլ աշխատի: Բայց անկեղծ ասած` չեմ փորձել:
    Ոնց են անում?
    Լոխ մունք ենք, մնացածը` լոխ են...

  2. Գրառմանը 1 հոգի շնորհակալություն է հայտնել.

    soultaker (13.04.2012)

  3. #362
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում narek7007-ի խոսքերից Նայել գրառումը
    Ես օգտագործում եմ Microsoft Visual Studio 2010
    Դրան դեռ չեմ հասել` չեմ կարող օգտակար լինել:
    Լոխ մունք ենք, մնացածը` լոխ են...

  4. #363
    Պատվավոր անդամ Lusina-ի ավատար
    Գրանցման ամսաթիվ
    06.12.2010
    Տարիք
    35
    Գրառումներ
    1,186
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Lusina-ի խոսքերից Նայել գրառումը
    Ժող,մի հատ սենց հարց.Ի՞նչ ա նշանակում հղում հղման վրա. c++ -ի ստանդարտն ասում ա, որ չի թույլատրվում, ու տրամաբանական էլ ա, որովհետև հղումը օբյեկտի վրա պետք ա լինի, իսկ ինքը հղումը օբյեկտ չի,ուղղակի լրացուցիչ անուն ա օբյեկտի համար.Հիմա հարցն էն ա, թե որ դեպքերում ա հնարավոր ունենալ T&& տիպ, որովհետև boosti-i remove_reference-ի մեջ էդ տարբերակն էլ ա հաշվի առած.
    Թարմացում՝ ոնց որ մի քանի &-ը մի հատ ա սարքում , օր.՝ int&& int& -ն ա, բայց մեկ ա ընդգծածս մասի հարցը մնում ա + թարմացած ինֆորմացիաս, խի՞ ա տենց արվում

  5. #364
    Ինժեներ soultaker-ի ավատար
    Գրանցման ամսաթիվ
    13.05.2010
    Գրառումներ
    221
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Ի դեպ կհուշես C++-ում ոնց ենք միաչափ զանգվածի ինդեքսը մեծացնում/փոքրացնում?
    Զանգվածը C++ում իրենից ներկայացնում է ֆիքսված չափի տիրույթ, մեծացնել փոքրացնել հնարավոր է միայն անուղղակի կերպով` արդեն գոյություն ունեցող զանգվածը ջնջելով ու դրա փոխարեն նոր չափի զանգված վերցնելով (բնականաբար եթե զանգվածը դինամիկ կերպով է ստեղծվել, հակառակ դեպքում այն ջնջել հնարավոր չէ): Ընդհանրապես որոշ դեպքերում ավելի հարմար է վերցնել միանգամից մեծ չափի զանգված, այնպես որ ընթացքում մեծացնելու կարիք չլինի, իսկ եթե այնուամենայնիվ չափը ընթացքում փոխելը պետք է գալիս, ամենահարմար տարբերակը STL-ի վեկտորն է(vector): Այն իր մեջ պահում է դինամիկ զանգված, ու նոր էլեմենտներ ավելացնելիս հենց եղած տեղը վերջանում է, եղած հիշողությունը փոխարինում է նոր` ավելի մեծ հիշողությամբ, իսկ հինը ջնջում է(բնականաբար այդ ընթացքում հին հիշողության պարունակությունը տեղափոխում է նորի մեջ), և հակառակը` երբ որ օգտագործվող մասի չափը քչանում է վերցված հիշողության չափի ինչ-որ մասից, կատարվում է հակառակ գործողությունը, և վերցվում է նոր` ավելի փոքր չափի հիշողություն, իսկ հինը ջնջվում է: Եթե ավելի ցածր մակարդակի տեսանկյունից նայենք, vector-ը ինչքան գիտեմ օգտագործում է C++ի new/delete-ը, որոնք էլ իրենց հերթին հիմնված են C-ի malloc/free հրամանների վրա:

  6. Գրառմանը 1 հոգի շնորհակալություն է հայտնել.

    Varzor (13.04.2012)

  7. #365
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում soultaker-ի խոսքերից Նայել գրառումը
    Զանգվածը C++ում իրենից ներկայացնում է ֆիքսված չափի տիրույթ, մեծացնել փոքրացնել հնարավոր է միայն անուղղակի կերպով` արդեն գոյություն ունեցող զանգվածը ջնջելով ու դրա փոխարեն նոր չափի զանգված վերցնելով (բնականաբար եթե զանգվածը դինամիկ կերպով է ստեղծվել, հակառակ դեպքում այն ջնջել հնարավոր չէ): Ընդհանրապես որոշ դեպքերում ավելի հարմար է վերցնել միանգամից մեծ չափի զանգված, այնպես որ ընթացքում մեծացնելու կարիք չլինի, իսկ եթե այնուամենայնիվ չափը ընթացքում փոխելը պետք է գալիս, ամենահարմար տարբերակը STL-ի վեկտորն է(vector): Այն իր մեջ պահում է դինամիկ զանգված, ու նոր էլեմենտներ ավելացնելիս հենց եղած տեղը վերջանում է, եղած հիշողությունը փոխարինում է նոր` ավելի մեծ հիշողությամբ, իսկ հինը ջնջում է(բնականաբար այդ ընթացքում հին հիշողության պարունակությունը տեղափոխում է նորի մեջ), և հակառակը` երբ որ օգտագործվող մասի չափը քչանում է վերցված հիշողության չափի ինչ-որ մասից, կատարվում է հակառակ գործողությունը, և վերցվում է նոր` ավելի փոքր չափի հիշողություն, իսկ հինը ջնջվում է: Եթե ավելի ցածր մակարդակի տեսանկյունից նայենք, vector-ը ինչքան գիտեմ օգտագործում է C++ի new/delete-ը, որոնք էլ իրենց հերթին հիմնված են C-ի malloc/free հրամանների վրա:
    Շնորհակալ եմ, էդ Vector օբյեկտը պրակտիկայում երբեք չեմ օգտագործել: Ոնց հասկանում եմ` դա class է:
    Լոխ մունք ենք, մնացածը` լոխ են...

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


    Հաշվել և արտածել տրված n տարր պարունակող միաչափ զանգվածի այն տարրերի միջին թվաբանականը, որոնց ինդեքսը բազմապատիկ է տրված K ամբողջ թվին:

    #include <iostream>
    using namespace std;
    void main()
    {
    int x[10], i,n,k, qanak;
    double s;
    cout<<"k=";
    cin>>k;
    do
    {
    cout<<"mutqagreq zangavtsi chapy"<<endl;
    cin>>n;
    }
    while(1>n||n>10);
    for(i=0; i<n; i++)
    {
    cout<<"x["<<i<<"]=";
    cin>>x[i];
    }
    s=0;
    qanak=0;
    for(i=0; i<n; i++)
    {
    if(i%k==0)
    {
    s=s+x[i];
    qanak++;
    }
    }
    s=s/qanak;
    cout<<"s="<<s<<endl;
    }

  9. #367
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Իսկ ինչն ա սխալ անում?
    Devision by zero ես ստանում?
    Լոխ մունք ենք, մնացածը` լոխ են...

  10. #368
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Իսկ ինչն ա սխալ անում?
    Devision by zero ես ստանում?
    Օրինակ գրում եմ
    k=3
    զանգվածի չափը վերցնում եմ 9
    x[0]=1
    x[1]=2
    x[2]=2
    x[3]=3
    x[4]=4
    x[5]=1
    x[6]=5
    x[7]=7
    x[8]=8
    ստացվում է
    s=3

    պիտի ստացվեր s=4

  11. #369
    Ինժեներ soultaker-ի ավատար
    Գրանցման ամսաթիվ
    13.05.2010
    Գրառումներ
    221
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Օրինակ գրում եմ
    k=3
    զանգվածի չափը վերցնում եմ 9
    x[0]=1
    x[1]=2
    x[2]=2
    x[3]=3
    x[4]=4
    x[5]=1
    x[6]=5
    x[7]=7
    x[8]=8
    ստացվում է
    s=3

    պիտի ստացվեր s=4
    (x[0] + x[3] + x[6]) / 3 = (1 + 3 + 5) / 3 = 9 / 3 = 3

  12. Գրառմանը 2 հոգի շնորհակալություն են հայտնել.

    Ruzanna Stepanyan (16.04.2012), Varzor (17.04.2012)

  13. #370
    Պատվավոր անդամ Lusina-ի ավատար
    Գրանցման ամսաթիվ
    06.12.2010
    Տարիք
    35
    Գրառումներ
    1,186
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Lusina-ի խոսքերից Նայել գրառումը
    Թարմացում՝ ոնց որ մի քանի &-ը մի հատ ա սարքում , օր.՝ int&& int& -ն ա, բայց մեկ ա ընդգծածս մասի հարցը մնում ա + թարմացած ինֆորմացիաս, խի՞ ա տենց արվում
    Ավարտին հասցնեմ մենախոսությունս
    Ուղղակի c++-ի նոր ստանդարտում մտցված ա rvalue reference գաղափարը, մանրամասն բնականաբար չեմ գրի, ուղղակի եթե ինչ-որ մեկի մոտ նույն հարցը ծագի, արդեն կիմանա, թե ինչ ա պետք փնտրել գուգլում.

  14. #371
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Օրինակ գրում եմ
    k=3
    զանգվածի չափը վերցնում եմ 9
    x[0]=1
    x[1]=2
    x[2]=2
    x[3]=3
    x[4]=4
    x[5]=1
    x[6]=5
    x[7]=7
    x[8]=8
    ստացվում է
    s=3

    պիտի ստացվեր s=4
    Soultaker-ի գրածը հասկանալի՞ է:
    x[0] էլէմենտի պարագայում 0%k=0 պայմանը տեղի է ունենում ու համ S-ն է աճում, համ qanak-ը:
    Ու ցանկացած քանակի էլէմենտների պարագայում այդ պայամը միշտ աշխատելու է: Նույնիսկ եթե ընդամենը մեկ տարր ունենաս՝ x[0], ապա ցանկացած k-ի դեպքում միջին թվաբանականը կստանաս նույն x[0]-ի արժեքը:
    Դրանից խուսափելու համար կա 2 տարբերակ.
    1. կարող ես զանգվածի տարրերի ներմուծումն ու միջին թվաբանականի հաշվարկը սկսել x[1]-ից:
    2. կարող ես լրացուցիչ պայման մտցնել` if(i>0) ու միայն այդ պայմանի կատարման դեպքում դիտարկել if(i%k=0) պայմանը:
    Լոխ մունք ենք, մնացածը` լոխ են...

  15. Գրառմանը 1 հոգի շնորհակալություն է հայտնել.

    Ruzanna Stepanyan (18.04.2012)

  16. #372
    Լիարժեք անդամ Ruzanna Stepanyan-ի ավատար
    Գրանցման ամսաթիվ
    11.02.2012
    Գրառումներ
    81
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Soultaker-ի գրածը հասկանալի՞ է:
    x[0] էլէմենտի պարագայում 0%k=0 պայմանը տեղի է ունենում ու համ S-ն է աճում, համ qanak-ը:
    Ու ցանկացած քանակի էլէմենտների պարագայում այդ պայամը միշտ աշխատելու է: Նույնիսկ եթե ընդամենը մեկ տարր ունենաս՝ x[0], ապա ցանկացած k-ի դեպքում միջին թվաբանականը կստանաս նույն x[0]-ի արժեքը:
    Դրանից խուսափելու համար կա 2 տարբերակ.
    1. կարող ես զանգվածի տարրերի ներմուծումն ու միջին թվաբանականի հաշվարկը սկսել x[1]-ից:
    2. կարող ես լրացուցիչ պայման մտցնել` if(i>0) ու միայն այդ պայմանի կատարման դեպքում դիտարկել if(i%k=0) պայմանը:

    Շատ շնորհակալ եմ բացատրության համար:
    Իսկ եթե հաշվարկը սկսեմ x[1]-ից , դա նշանակում է որ զանգվածի առաջին անդամը x[0]-ն է, թե x[1]-ը, որովհետև ընդունված է չէ առաջին անդամը համարել x[0]-ն
    Վերջին խմբագրող՝ Ruzanna Stepanyan: 17.04.2012, 12:27:

  17. #373
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Ruzanna Stepanyan-ի խոսքերից Նայել գրառումը
    Շատ շնորհակալ եմ բացատրության համար:
    Իսկ եթե հաշվարկը սկսեմ x[1]-ից , դա նշանակում է որ զանգվածի առաջին անդամը x[0]-ն է, թե x[1]-ը, որովհետև ընդունված է չէ առաջին անդամը համարել x[0]-ն
    Ոչ թե ընդունված է, այլ տենց էլ կա տեխնիկապես` զանգվածի ինդեքսների համարակալումը սկսվում է 0-ից:
    Ավելի գագետ տարբերակ է ուղղակի i=0 դեպքը բացառելը` պայմանով ստուգելը:
    Բանը նրանումն է, որ սովորաբար խնդիրներն ունիվերսալ են ու պարտադիր չի որ հենց C++-ով լուծվեն: Իսկ որոշ ծրագրավորման լեզուներում առաջին էլէմենտի ինդեքսը ոչ թե 0-ն է, այլ 1-ը:

    Ի դեպ.
    Որոշ դեպքերում հնարավոր է կամայականորեն որոշել առաջին էլեմենտի ինդեքսը: Այն կարող է լինել նաև բացասական:
    Վերջին խմբագրող՝ Varzor: 17.04.2012, 17:54:
    Լոխ մունք ենք, մնացածը` լոխ են...

  18. Գրառմանը 1 հոգի շնորհակալություն է հայտնել.

    Ruzanna Stepanyan (18.04.2012)

  19. #374
    Պատվավոր անդամ armen9494-ի ավատար
    Գրանցման ամսաթիվ
    01.03.2010
    Տարիք
    31
    Գրառումներ
    1,242
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ժողովուրդ ջան մոտս սենց մի "խնդիր" կա: Չնայած էս պահը էդքան շատ լուրջ կարևոր չի, ուղղակի որ ծրագիր գրելուց հանդիպեցի, ասեցի հարցնեմ, միգուցե ես մի բան էն չեմ անում:
    C++-ում երկու հատ double տիպի մեծ երկչափ զանգված հայտարարելու դեպքում ծրագիրը չի աշխատում, գրում ա
    Cpp1.exe has stopped working
    Windows is checking for a solution to the problem...
    Ի՞նչ ա C++-ում էդքան մեծ ծրագիր սարքել չի՞ կարելի
    #include <iostream.h>

    void main()
    {
    double y[100][1000], b[100][500];
    cout<<"s=";
    }
    Փորձեք double-ի փոխարեն գրել int, float կամ long int՝ ճիշտ կաշխատի, բայց double-ի կամ long float-ի դեպքում "կախվում" ա:

  20. #375
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում armen9494-ի խոսքերից Նայել գրառումը
    Ժողովուրդ ջան մոտս սենց մի "խնդիր" կա: Չնայած էս պահը էդքան շատ լուրջ կարևոր չի, ուղղակի որ ծրագիր գրելուց հանդիպեցի, ասեցի հարցնեմ, միգուցե ես մի բան էն չեմ անում:
    C++-ում երկու հատ double տիպի մեծ երկչափ զանգված հայտարարելու դեպքում ծրագիրը չի աշխատում, գրում ա
    Ի՞նչ ա C++-ում էդքան մեծ ծրագիր սարքել չի՞ կարելի
    Փորձեք double-ի փոխարեն գրել int, float կամ long int՝ ճիշտ կաշխատի, բայց double-ի կամ long float-ի դեպքում "կախվում" ա:
    Որ կոմպիլյատորով ես աշխատում?
    Փորձել ես առանձին-առանձին նկարագրել?` double y[100][1000]; double b[100][500];
    Բայց պիտի աշխատի` տենց սահմանափակում չկա: Մտածում ես հայտարարածդ փոփոխականի զբաղեցրած հիշողության չափերը գերազանցում են ծրագրի ստեկը?
    կարող ես հաշվել` 150.000 հատ double տիպի արժեքների պահպանման համար անհրաժեշտ հիշողության ծավալը: Այն չի գերազանցում 1ՄԲ-ն: Ուստի հիշողության ծավալի խնդիր չի:
    Ի դեպ, նույն քո կոդը գրում եմ MSGM-ի տված հղումով` նորմալ կատարվում է:
    http://codepad.org/7qUslqjo
    Լոխ մունք ենք, մնացածը` լոխ են...

Էջ 25 36-ից ԱռաջինԱռաջին ... 1521222324252627282935 ... ՎերջինըՎերջինը

Թեմայի մասին

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

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

Էջանիշներ

Էջանիշներ

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

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