User Tag List

Էջ 24 36-ից ԱռաջինԱռաջին ... 1420212223242526272834 ... ՎերջինըՎերջինը
Ցույց են տրվում 346 համարից մինչև 360 համարի արդյունքները՝ ընդհանուր 536 հատից

Թեմա: C++

  1. #346
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Զանգվածի մեծությունը փաստորեն տվյալ տարվա դրությամբ երբևիցե ապրած կենդանիների քանակն ա, չէ? Բայց մի քանի 100 տարուց ապրող կենդանիների քանակը էնքան մեծ ա դառնում, որ 64 բիտանոց long long-ն էլ չի հերիքում քանակը պահելու համար: Այսինքն ուղղակի սիմուլյացիա ես անում ու պատասխանը շատ հեշտ ստացվում ա, բայց մի քիչ մեծ թվերի համար համ շատ երկար ա աշխատում, համ էլ էդքան հիշողություն չի գտնվի բոլորի տարիքները հիշելու համար:

    Հա, ճիշտ ես հասկանում` գրածս ծրագրում n-ը (k զանգվածի տարրերի քանակը) երբևէ ապրած կենդանիների քանակն է:
    Որպես օպտիմիզացիա կարելի է ընդամենը ամեն տարի 0-ական տարրերը զանգվածից հեռացնել` կմնան մենակ չսատկած կենդանիները:
    Կարելի է երկրորդ զանգվածը պահել` ոչ սեռահասուն կենդանիների համար:
    Եղբայր էդ ինչ թիվա, որ 64 բիտանոց long-ը չի հերիքի? 2-ի 63 Աստիճանից մեծ` 8x10246? էսի քո ասած 1012-ից հաստատ մեծ թիվ ա
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Իմ վերջին լուծումը (կոդով), օրինակ, հիշողություն շատ քիչ ա օգտագործում ու օգտագործումն էլ N-ից կախված չի, բայց համեմատաբար դանդաղ ա աշխատում (N=1,000,000,000-ի համար մոտ 450 վրկ.): Իսկ էս ամենավերջին նկարագրածս լուծումը 0.5 վրկ.-ի մեջ կտեղավորվի նույնիսկ N=10^12-ի դեպքում:
    Ի դեպ, էդ ցուցիչի հետ սխալ ես աշխատում: Ցուցիչը հայտարարելուց, իրա արժեքը ինչ-որ անկապ թիվ ա (հիշողության մեջ անկապ տեղ ա ցույց տալիս), հաշվի առնելով էլ, որ զանգվածի երկարությունը ուզում ես դինամիկ փոխել, լավ կլինի std::vector-ից օգտվես.
    vector<int> vi;
    vi.push_back(a);

    Dictionary-ն էլ C++ ում std::map-ն ա`
    map<string, int> m;
    m["tandz"] = 121;
    m["khndzor"] = 367;
    cout << m["tandz"] + m["khndzor"] << endl;
    Ցուցիչի հետ հեչ էլ սխալ չեմ աշխատում` դասական աշխատելու ձևն է: Ինչ կապ ունի, թե ինչ թիվա? փոփոխական է, կարևորը որ հետո արժեք տաս: Մի քանի գրառում առաջ Դեյտելի գրքից նույնիսկ մեջբերում եմ արել դրա հետ կապված
    Հեչ իմաստ չեմ տեսնում vector օբյեկտից օգտվելու մեջ` ցուցիչը լիովին բավարար է:
    Dictionary-ն էլ հեչ էլ map-ը չի:
    Dictionary-ն Microsoft Scripting Runtime գրադարանի օբյեկտ է` որ լեզուն հնարավորութուն ունի այդ գրադարանին դիմելու` կարող ես հայտարարել:
    Կառուցվածքն էլ հետևյալն է.
    D (key, value) ու value-ն կարող են լինել ցանկացած տիպի, նույնիսկ այլ օբյեկտ:
    Չեմ կարծում, որ մատրիցաների բազմապատկումը մեծ թվերի պարագայում կարող է այդքան արագ լինել` 900 անգամ:
    Ամեն դեպքում քո առաջարկած տարբերակը շատ հետաքրքիր ու ուսանելի տարբերակ է:
    Ի դեպ 100 տարում կենդանիների քանակը ստացվում է 1703208 հատ` կենդանի, չսատկած: Ու հաշվում ա 73 վայրկյանում:
    Էս էլ կոդը` VBA-ի համար, կարող ես Excel-ի կամ Word-ի մեջ աշխատացնել: Ընդ որում սա Dictionary-ով տարբերակը չի
    Կոդ:
    Sub Test1()
    
        Dim tari, qanak, n, i, j As Long
        Dim k() As Variant
        Dim StartTime As Date
        Dim EndTime As Date
        Dim delta As Date
        Dim s As String
        
        tari = 100
        ReDim k(1) As Variant
        k(0) = 15
        qanak = 1
        n = 1
        StartTime = Now
        For i = 1 To tari
            For j = 0 To n - 1
                If k(j) > 0 Then
                    If (k(j) >= 15 And k(j) <= 35) Then
                        n = n + 1
                        ReDim Preserve k(n) As Variant
                        k(n - 1) = 1
                        qanak = qanak + 1
                    ElseIf k(j) = 35 Then
                        k(j) = 0
                        qanak = qanak - 1
                    End If
                    k(j) = k(j) + 1
                End If
            Next j
        Next i
        EndTime = Now
        delta = EndTime - StartTime
        s = CStr(Hour(delta) * 3600 + Minute(delta) * 60 + Second(delta))
        MsgBox (CStr(qanak) & " kendani <->" & s & " seconds")
    
    End Sub
    Լոխ մունք ենք, մնացածը` լոխ են...

  2. #347
    Լիարժեք անդամ MSGM-ի ավատար
    Գրանցման ամսաթիվ
    02.09.2008
    Գրառումներ
    131
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Եղբայր էդ ինչ թիվա, որ 64 բիտանոց long-ը չի հերիքի? 2-ի 63 Աստիճանից մեծ` 8x10246? էսի քո ասած 1012-ից հաստատ մեծ թիվ ա:
    N=360-ի համար, պատասխանը (այսինքն` 360-րդ տարում ապրողների քանակը) 8,508,275,536,357,516,150 ա: N=370-ի պատասխանը long long-ում տեղ չի անում: Էտքան հիշողություն էլ, բնականաբար, չկա:
    Ցուցիչի հետ հեչ էլ սխալ չեմ աշխատում` դասական աշխատելու ձևն է: Ինչ կապ ունի, թե ինչ թիվա? փոփոխական է, կարևորը որ հետո արժեք տաս: Մի քանի գրառում առաջ Դեյտելի գրքից նույնիսկ մեջբերում եմ արել դրա հետ կապված
    Հեչ իմաստ չեմ տեսնում vector օբյեկտից օգտվելու մեջ` ցուցիչը լիովին բավարար է:
    Ո՞նց սխալ չես աշխատում, եթե իմ մոտ runtime error ա տալիս քո կոդը: Ասում եմ` քո ցուցիչ-փոփոխականին նույնիսկ արժեք չես տալիս, գոնե գրեիր.
    int *k = new int[2000];
    Բայց մեկ ա շատ շուտ ապրող կենդանիների քանակը 2000-ից անցնելու ա (ու հասնելու ա վերոհիշյալ long long-ում չտեղավորվող թվերի) ու էդ դեպքում k[j] արտահայտությունը, որտեղ j >= 2000 runtime error ա: Էդ դեպքում էլ պիտի նոր հիշողություն վերցնես ու հնից copy անես նորը.
    Կոդ:
    int *t = k;
    k = new int[4000];
    memcpy(k, t, sizeof(int)*2000);
    delete[] t;
    Dictionary-ն էլ հեչ էլ map-ը չի:
    Dictionary-ն Microsoft Scripting Runtime գրադարանի օբյեկտ է` որ լեզուն հնարավորութուն ունի այդ գրադարանին դիմելու` կարող ես հայտարարել:
    Կառուցվածքն էլ հետևյալն է.
    D (key, value) ու value-ն կարող են լինել ցանկացած տիպի, նույնիսկ այլ օբյեկտ:
    Ես ի նկատի չունեի, որ std::map-ը Microsoft Scripting Runtime-ի Dictionary ա, այլ որ std::map-ը dictionary տեսակի data structure ա, էլի ունի map<key, value> տեսքը ցանկացած տիպի key-ի ու value-ի համար (պայմանով, որ key-ի վրա համեմատության օպերատոր կա սահմանած):
    Չեմ կարծում, որ մատրիցաների բազմապատկումը մեծ թվերի պարագայում կարող է այդքան արագ լինել` 900 անգամ:
    KxK չափի երկու մատրիցների բազմապատկումը տրիվիալ ալգորիթմով O(K^3) ժամանակային բարդություն ունի: Մեր խնդրում K-ն կոնստանտ ա (K=35), իսկ հենց "մատրիցի բազմապատկում" գործողությունների քանակը O(logN) ա (N=10^12-ի դեպքում մոտ 40): Այսինքն պետք ա լինում 40 անգամ (35^3)*ինչ-որ-ոչ-շատ-մեծ-կոնստանտ քանակի գործողություններ կատարել, որը հանգիստ կտեղավորվի 0.5 վրկ-ի մեջ: Իսկ եթե ի նկատի ունես կենդանիների քանակը նկարագրող թվերի մեծ լինելը, ապա soultaker-ի առաջարկած խնդրում պետք ա տալ (պատասխան MOD 1000003), ինչը նշանակում ա, որ բոլոր միջանկյալ բազմապատկումներից ու գումարումներից հետո կարելի ա MOD 1000003 անել ու չանհանգստանալ մեծ թվերի մասին:

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

    Varzor (10.04.2012)

  4. #348
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    N=360-ի համար, պատասխանը (այսինքն` 360-րդ տարում ապրողների քանակը) 8,508,275,536,357,516,150 ա: N=370-ի պատասխանը long long-ում տեղ չի անում: Էտքան հիշողություն էլ, բնականաբար, չկա:
    Հա, տենց մեծ թվերի պարագայում արդեն long-երը խիստ Short են դառնում
    Բայց ստեղ մի ուրիշ հարց է գալիս` թե կուզ հիշողությունը հերիքի, էդ թիվը որպես ինչ փոփոխական պիտի հայտարարվի, որ մի հատ էլ հետո տպվի?
    Օրինակ` հաջորդ փորձս` 110 տարվա համար 1020վրկ-ում հաշվեց 6,517,962 կենդանի
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Ո՞նց սխալ չես աշխատում, եթե իմ մոտ runtime error ա տալիս քո կոդը: Ասում եմ` քո ցուցիչ-փոփոխականին նույնիսկ արժեք չես տալիս, գոնե գրեիր.
    int *k = new int[2000];
    Բայց մեկ ա շատ շուտ ապրող կենդանիների քանակը 2000-ից անցնելու ա (ու հասնելու ա վերոհիշյալ long long-ում չտեղավորվող թվերի) ու էդ դեպքում k[j] արտահայտությունը, որտեղ j >= 2000 runtime error ա: Էդ դեպքում էլ պիտի նոր հիշողություն վերցնես ու հնից copy անես նորը.
    Ընգեր չգիտեմ դու որ միջավայրում ես գրում, բայց VS 6.0-ի տակ ոչ մի խնդիր էլ չունեմ` Console W32 ռեժիմով էլ աշխատում է
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Ես ի նկատի չունեի, որ std::map-ը Microsoft Scripting Runtime-ի Dictionary ա, այլ որ std::map-ը dictionary տեսակի data structure ա, էլի ունի map<key, value> տեսքը ցանկացած տիպի key-ի ու value-ի համար (պայմանով, որ key-ի վրա համեմատության օպերատոր կա սահմանած):
    Հաա, դե տենց էլ ասա Ուրիշ ձև էիր գրել ,ես էլ հասկացել էի, թե համարժեքության մասին ես գրել:
    Լոխ մունք ենք, մնացածը` լոխ են...

  5. #349
    Լիարժեք անդամ MSGM-ի ավատար
    Գրանցման ամսաթիվ
    02.09.2008
    Գրառումներ
    131
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Հա, տենց մեծ թվերի պարագայում արդեն long-երը խիստ Short են դառնում
    Բայց ստեղ մի ուրիշ հարց է գալիս` թե կուզ հիշողությունը հերիքի, էդ թիվը որպես ինչ փոփոխական պիտի հայտարարվի, որ մի հատ էլ հետո տպվի?
    Օրինակ` հաջորդ փորձս` 110 տարվա համար 1020վրկ-ում հաշվեց 6,517,962 կենդանի
    Դե Hermsbir-ի ձևակերպած խնդրում պետք էր N=1000-ի համար պատասխան տալ, դրա համար պետք էր "երկար հանրահաշիվ" գրել (այսինքն` սահմանում ենք օբյեկտ, որը ունի թվանշանների կամայական երկարության զանգված, ու դրա վրա +,-,*,/ գործողությունները սահմանում ենք տարրական դպրոցի ձևերով, որոշ լեզուներում տենց պատրաստի օբյեկտ կա(Java, Python, ևն)): Իսկ soultaker-ի խնդրում, ինչպես ասացի, MOD 1000003-ով պատասխանը տալը ազատում ա մեծ թվերի հետ աշխատելու խնդրից: Թե չէ, N=1,000,000,000-ի պայմաններում նենց մեծ թվեր են ստացվում, որ էտ թվերով մի հատ բազմապատկման գործողությունն ա արդեն շատ երկար տևում:

    Ընգեր չգիտեմ դու որ միջավայրում ես գրում, բայց VS 6.0-ի տակ ոչ մի խնդիր էլ չունեմ` Console W32 ռեժիմով էլ աշխատում է
    Եթե debug ռեժիմ ա, կարող ա աշխատի, համ էլ էտ VS 6.0-ից ամեն ինչ սպասելի ա :

    http://ideone.com/O9BoG
    Հեսա, օնլայն բազմալեզու կոմպիլյատոր ա: N=100 եմ դրել, runtime error ա տալիս (ամենաներքևում): Դե համ էլ, իհարկե, էտ օգտագործումը անտրամաբանական ա ու պարզապես սխալ: Դու փաստորեն փորձում ես օգտագործել հիշողություն, որը նախօրոք չես ուզել ՕՀ-ից քո ծրագրի համար (օր. new օպերատորով կամ malloc ֆունկցիայով): Հլը հերիք չի, հենց քո ցուցիչին (որը հասցե ա` 4 կամ 8 բայթանով թիվ) ոչ մի արժեք չես տալիս, իսկ C++-ում ինիցիալիզացիա չարած լոկալ փոփոխականների արժեքը էտ պահին RAM-ի էտ դիրքում հայտնված ինչ-որ զիբիլ ա (դրան հակառակ` գլոբալ փոփոխականները, զանգվածները զրոյացվում են հայտարարելիս):

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

    Varzor (10.04.2012)

  7. #350
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Հեսա, օնլայն բազմալեզու կոմպիլյատոր ա: N=100 եմ դրել, runtime error ա տալիս (ամենաներքևում): Դե համ էլ, իհարկե, էտ օգտագործումը անտրամաբանական ա ու պարզապես սխալ: Դու փաստորեն փորձում ես օգտագործել հիշողություն, որը նախօրոք չես ուզել ՕՀ-ից քո ծրագրի համար (օր. new օպերատորով կամ malloc ֆունկցիայով): Հլը հերիք չի, հենց քո ցուցիչին (որը հասցե ա` 4 կամ 8 բայթանով թիվ) ոչ մի արժեք չես տալիս, իսկ C++-ում ինիցիալիզացիա չարած լոկալ փոփոխականների արժեքը էտ պահին RAM-ի էտ դիրքում հայտնված ինչ-որ զիբիլ ա (դրան հակառակ` գլոբալ փոփոխականները, զանգվածները զրոյացվում են հայտարարելիս):
    Դե եթե Դեյտելն ու Ստրաուստրուպը սխալ են, ուերմն` սխալ ա
    Բնական է, որ սկզբից հայտարարագրված հիշողույթունն ավելի արագ է աշխատում (երեք մակարդակ կա` 1. պրոցի քեշի չափերից մեծ չի, 2. ծրագրի ստեկի չափերից մեծ չի, 3. RAM-ից մեծ չի ): Բայց դինամիկ հիշողության մասին լսած կլինես
    VS 6.0-ն լավ էլ երկար տարիներ ծառայել է ու որոշ հարեցրում շատ ավելի ռապիդ է, քան .NET-ը:
    Բա ոնցա VBA-ի տաբերակում հստակ աշխատում?
    Նույն կոդն ա, ուղղակի թարգմանած:

    Հ.Գ.
    Էդ հզումով նայում եմ` սխալ ա տալիս դեռ չաշխատած, նույնիսկ քո ասած դասական տարբերակով` ցուցիչը նախապես արժեք տալով http://ideone.com/NwXPG
    Ոնց հասկացա gcc-ի տակ է անում:
    Վերջին խմբագրող՝ Varzor: 10.04.2012, 19:46:
    Լոխ մունք ենք, մնացածը` լոխ են...

  8. #351
    Լիարժեք անդամ MSGM-ի ավատար
    Գրանցման ամսաթիվ
    02.09.2008
    Գրառումներ
    131
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Դե եթե Դեյտելն ու Ստրաուստրուպը սխալ են, ուերմն` սխալ ա
    Բնական է, որ սկզբից հայտարարագրված հիշողույթունն ավելի արագ է աշխատում (երեք մակարդակ կա` 1. պրոցի քեշի չափերից մեծ չի, 2. ծրագրի ստեկի չափերից մեծ չի, 3. RAM-ից մեծ չի ): Բայց դինամիկ հիշողության մասին լսած կլինես
    VS 6.0-ն լավ էլ երկար տարիներ ծառայել է ու որոշ հարեցրում շատ ավելի ռապիդ է, քան .NET-ը:
    Բա ոնցա VBA-ի տաբերակում հստակ աշխատում?
    Նույն կոդն ա, ուղղակի թարգմանած:

    Հ.Գ.
    Էդ հզումով նայում եմ` սխալ ա տալիս դեռ չաշխատած, նույնիսկ քո ասած դասական տարբերակով` ցուցիչը նախապես արժեք տալով http://ideone.com/NwXPG
    Ոնց հասկացա gcc-ի տակ է անում:
    Ի՞նչ տարբերություն [] թե *, զանգված, ցուցիչ նույն բանն ա: Իմ ասածը էն ա, որ ՕՀ-ից քո ծրագրի համար չհատկացված հիշողությանը դիմել ա արգելվում ա (runtime error ա): Հիմա էս կոդում էլ արդեն ցուցիչին արժեք տալիս ես, բայց ցուցիչի արժեքով դիրքում (RAM-ի հասցեում) ընդամենը 1 էլեմենտ (4 բայթ) ա հատկացված ծրագրիդ, հետևաբար k[1]-ը runtime error ա: Իմ ասած ձևով, ՕՀ-ից պետք է վերցնես կոնկրետ քանակությամբ հիշողություն, նոր օգտագործես (այն, որ այդ քանակությունը կարող է որոշվել ծրագրիդ գործողության ընթացքում, այլ ոչ թե պետք է հայտնի լինի կոմպիլյացիայի պահին, հիմք է այդ հիշողությունը "դինամիկ" անվանելու համար):
    http://ideone.com/rjMUj
    Հեսա, իմ ասած ձևով նորմալ աշխատում ա (իհարկե եթե ապրող կենդանիների քանակը 2000-ից մեծ չի):
    Ի դեպ, լուծմանդ մեջ սխալ կա վոնցոր: Ում սատկացնում ես, իրա տարիքը 0 ես դնում, բայց հետո 0 տարիք ունեցողներին էլ ես ամեն տարի մեծացնում ու վախտը գալիս ա` նորից սատկացնում : Օրինակ N=10-ի համար սխալ ա ստացվում (qanak=-18??):

  9. #352
    Ինժեներ soultaker-ի ավատար
    Գրանցման ամսաթիվ
    13.05.2010
    Գրառումներ
    221
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Ի դեպ, լուծմանդ մեջ սխալ կա վոնցոր: Ում սատկացնում ես, իրա տարիքը 0 ես դնում, բայց հետո 0 տարիք ունեցողներին էլ ես ամեն տարի մեծացնում ու վախտը գալիս ա` նորից սատկացնում : Օրինակ N=10-ի համար սխալ ա ստացվում (qanak=-18??):
    Տենց առասպելական թռչուն կա` Ֆենիքս, մեռնելուց հետո վերակենդանանումա, փաստորեն Վարզորի լուծումը ֆենիքսների համարա

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

    Varzor (11.04.2012)

  11. #353
    Անդամության թեկնածու
    Գրանցման ամսաթիվ
    15.01.2012
    Գրառումներ
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    c++ -ic մի հարց ունեմ :
    ես ծրագիր եմ կազմում ,, որը բաղկացած է մի շարք տարբեր ֆորմատի ֆայլերից(*.txt , *.jpg ,..,..)
    Երբ ես ծրագիրը ստեղծում եմ դրանք մի ֆայլում չեն պահպանվում:
    Ինչպես կարող եմ այդ ֆայլերը պահպանել մի ՝ project.exe ֆայլում

  12. #354
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Հեսա, իմ ասած ձևով նորմալ աշխատում ա (իհարկե եթե ապրող կենդանիների քանակը 2000-ից մեծ չի):
    Ի դեպ, լուծմանդ մեջ սխալ կա վոնցոր: Ում սատկացնում ես, իրա տարիքը 0 ես դնում, բայց հետո 0 տարիք ունեցողներին էլ ես ամեն տարի մեծացնում ու վախտը գալիս ա` նորից սատկացնում : Օրինակ N=10-ի համար սխալ ա ստացվում (qanak=-18??):
    Դե կոմպիլյատորների տարբերություն ա` ուրիշ ոչինչ:
    սխալ չկա` տարիքը մեծացնում եմ մենակ նրանց, ով որ արդեն սատկած չի` կոդը ուշադիր նայի Պայման կա k[j]>0 էդ որ քանակը տալիս ա -18 ուղղակի նրա արդյունքն ա, որ հիշողությունում էդ պահին ինչ կա, էդա բերում` ծրագիրը իսկի չի էլ կատարում:
    Լոխ մունք ենք, մնացածը` լոխ են...

  13. #355
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում soultaker-ի խոսքերից Նայել գրառումը
    Տենց առասպելական թռչուն կա` Ֆենիքս, մեռնելուց հետո վերակենդանանումա, փաստորեն Վարզորի լուծումը ֆենիքսների համարա
    Մեռնելուց հետո չէ` վառվելուց հետո մոխիրներից վերակենդանանում ա
    Կոդը սխալ ա նայել` մի պայման բացա թողել
    Լոխ մունք ենք, մնացածը` լոխ են...

  14. #356
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում narek7007-ի խոսքերից Նայել գրառումը
    c++ -ic մի հարց ունեմ :
    ես ծրագիր եմ կազմում ,, որը բաղկացած է մի շարք տարբեր ֆորմատի ֆայլերից(*.txt , *.jpg ,..,..)
    Երբ ես ծրագիրը ստեղծում եմ դրանք մի ֆայլում չեն պահպանվում:
    Ինչպես կարող եմ այդ ֆայլերը պահպանել մի ՝ project.exe ֆայլում
    Էդ կոմպիլյացիայի ձևից ա` Project-ի տեսակից:
    Որ վերսիայով ես սարքում?
    Լոխ մունք ենք, մնացածը` լոխ են...

  15. #357
    Լիարժեք անդամ MSGM-ի ավատար
    Գրանցման ամսաթիվ
    02.09.2008
    Գրառումներ
    131
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    սխալ չկա` տարիքը մեծացնում եմ մենակ նրանց, ով որ արդեն սատկած չի` կոդը ուշադիր նայի Պայման կա k[j]>0 էդ որ քանակը տալիս ա -18 ուղղակի նրա արդյունքն ա, որ հիշողությունում էդ պահին ինչ կա, էդա բերում` ծրագիրը իսկի չի էլ կատարում:
    Հա ճիշտ ա, չէի նկատել, տեսա բացասական ա, ասի դրանից կլինի: Իրականում նույն տիպի սխալ եմ արել, ինչ որ քո մոտ ա: Պետք ա անպայման զրոյացնել զանգվածը.
    http://ideone.com/f9kqs

    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Դե կոմպիլյատորների տարբերություն ա` ուրիշ ոչինչ:
    Նայի դու ասում ես, որ Դեյտելի ու Ստրաուստրուպի ասածով ես անում, բայց էդ ոնց ա՞, որ gcc-ի նման կոմպիլյատորը (կամ իմ մոտի VS .NET-ի կոմպիլյատորը) runtime error-ով ծրագիր են սարքում:
    http://codepad.org/PeJ1Dl1C
    Էս կոմպիլյատորը սկի կոմպիլյացիա չի անում` ասում ա` k փոփոխականը ինիցիալիզացիա արած չի (էն վերևում նշած սխալս): Դա ո՞նց կբացատրես: Բացի դրանից դու կոդիդ մեջ դիմում ես հիշողության, որը քո ծրագրին հատկացված չի: Դա արգելվում ա, runtime error ա, հիշողության հետ աշխատելու պարզագույն սկզբունքի խախտում: Էլ ի՞նչ կոմպիլյատորների տարբերության մասին ա խոսքը:

  16. #358
    Կեցցե թագավորը Varzor-ի ավատար
    Գրանցման ամսաթիվ
    16.03.2009
    Հասցե
    Երկիր մոլորակ, ՀՀ ք. Երևան
    Տարիք
    43
    Գրառումներ
    7,503
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում MSGM-ի խոսքերից Նայել գրառումը
    Նայի դու ասում ես, որ Դեյտելի ու Ստրաուստրուպի ասածով ես անում, բայց էդ ոնց ա՞, որ gcc-ի նման կոմպիլյատորը (կամ իմ մոտի VS .NET-ի կոմպիլյատորը) runtime error-ով ծրագիր են սարքում:
    http://codepad.org/PeJ1Dl1C
    Էս կոմպիլյատորը սկի կոմպիլյացիա չի անում` ասում ա` k փոփոխականը ինիցիալիզացիա արած չի (էն վերևում նշած սխալս): Դա ո՞նց կբացատրես: Բացի դրանից դու կոդիդ մեջ դիմում ես հիշողության, որը քո ծրագրին հատկացված չի: Դա արգելվում ա, runtime error ա, հիշողության հետ աշխատելու պարզագույն սկզբունքի խախտում: Էլ ի՞նչ կոմպիլյատորների տարբերության մասին ա խոսքը:
    Եղբայր, սկզբից ես հայտարարում եմ int տիպի ցուցիչ փոփոխական: Դա նշանակում է, որ այդ k-ի համար հիշողությունում առանձին հասցե է հատկացվում, որի արժեքը դեռ հայտնի չէ` ինչպես հախասահմանված չափով զանգվածի բարագայում: Հետո ես այդ փոփոխականին վերագրում եմ արժեք` k-ին հատկացված բջջում գրանցում եմ x զանգվածի առաջին էլէմենտի հասցեն
    Ես ոչ մի հիշողության էլ չեմ դիմում, ես դիմում եմ հասցեի` հաջորդ հասցեին, անկախ նրանից, թե դրանում ինչ է գրված ու փոխում եմ դրա արժեքը:
    Ուղղակի որոշ կոմպիլյատորներ նախպապես են ստեկը սարքում ու չեն կարող դա անել դինամիկ, դրա համար էլ VS 6.0-ում սխալ չեմ ստանում:
    Ոնց ա արգելվում, եթե դասագրքում գրված ա?
    Լոխ մունք ենք, մնացածը` լոխ են...

  17. #359
    Ինժեներ soultaker-ի ավատար
    Գրանցման ամսաթիվ
    13.05.2010
    Գրառումներ
    221
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Ես ոչ մի հիշողության էլ չեմ դիմում, ես դիմում եմ հասցեի` հաջորդ հասցեին, անկախ նրանից, թե դրանում ինչ է գրված ու փոխում եմ դրա արժեքը:
    Իսկ ոչի՞նչ որ համակարգչի վրա ուրիշ ծրագրեր էլ են աշխատում ու կարողա տենց գնա իրանց բաժին հիշողությունը լրիվ վարի տա, եթե թույլատրված լիներ դա անել: Կամ ասենք էտ հասցեի արժեքը ի՞նչ թիվա իրանից ներկայացնում, կոնկրետ ինչի՞ վրայա ցույց տալիս: Բոլոր նորմալ օպերացիոն համակարգերում ամեն ծրագիր ունի իր բաժին հիշողությունը, ու դրանից դուրս հիշողության դիմելիս ՕՀ-ը ավտոմատ կերպով ծրագիրը ավարտում է Runtime Error-ով: Իսկ թե սկզբում հասցեն կոնկրետ որտեղ է ցույց տալիս, դա էլ ոչ ոք չի կարող ասել, որովհետև առանց սկզբնական արժեք տալու ուր ասես կարող է ցույց տալ:

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

    Varzor (12.04.2012)

  19. #360
    Անդամության թեկնածու
    Գրանցման ամսաթիվ
    15.01.2012
    Գրառումներ
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Մեջբերում Varzor-ի խոսքերից Նայել գրառումը
    Էդ կոմպիլյացիայի ձևից ա` Project-ի տեսակից:
    Որ վերսիայով ես սարքում?
    Ես օգտագործում եմ Microsoft Visual Studio 2010

Էջ 24 36-ից ԱռաջինԱռաջին ... 1420212223242526272834 ... ՎերջինըՎերջինը

Թեմայի մասին

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

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

Էջանիշներ

Էջանիշներ

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

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