Keresés

Új hozzászólás Aktív témák

  • Miracle

    senior tag

    válasz kisfurko #753 üzenetére

    valojaban az a jobb, ha csak a ciklusban lathato, mert igy tisztabbak maradnak a nevterek. ha meg neked megis kivul is kell akkor elotte deklaralod es kesz. szoval jobb a szabvanyos megoldas. (eheh sajnos valamely ceget a szabvanyok nem erdeklik, sztem amikor SOAP melle allt a pici & puha mar akkor is fejek hullottak erte ;];] )

    értelmező késziszótár :: rekurzió --> lásd : rekurzió

  • Miracle

    senior tag

    válasz kisfurko #756 üzenetére

    na akkor most leirom azt amit az elobb is leirtam: :U
    van 2 lehetoseg:

    szukebb lathatosag : ekkor nem szemeteled tele a nevtereket feleslegesen valtozonevekkel, amik novelik a kod erthetoseget, a kodolast, es konnyitik a debuggolast. Ha megis kell neked a valtozo erteke a cikluson kivul is, akkor elotte 1 sorral deklaralod, szoval GYAKORLATILAG 0 MUNKAVAL MEG LEHET OLDANI.

    tagabb lathatosag: bizonyos esetekben szukseg van a ciklusvaltozo ertekere a cikluson kivul is, de ilyenkor nem _illik_ for-ciklust hasznalni, es ezzel tobb szuksegtelen valtozo is bele kerulhet a tagabb nevterbe, ami kis problemat jelenthet, ha mondjuk 1 blokkban 6 ciklus kellene egymas utan. tehat _neha_ sporolhatnal ezzel egy sort, es _mindig_ teleszemeteled a nevtered, ezzel nehezitve a debugolast.

    ezt nem kivanom tovabb magyarazni, szerintem ebbol siman ertheto, hogy miert az elso valtozat kerult szabvanyba. (azert mert a tapasztalat szerint _is_ az a hatekonyabb megoldas es jobban illeszkedik a c++ filozofiahoz)

    értelmező késziszótár :: rekurzió --> lásd : rekurzió

  • flugi

    tag

    válasz kisfurko #760 üzenetére

    :D

    no akkor kicsit más szemszögből: a kód biztonságának egyik kulcsa, hogy észreveszed a hibát a kódban. Sokan (köztük én is) i nevű ciklusváltozót szeretünk használni. Ha van egy programom, amiben van egymás után két ciklus, akkor mindkettőben az i nevű változót használom, de egymáshoz nincs semmi közük. Amikor elírok valamit, és az értékadásban a ciklusaim után véletlenül az i változót akarom használni, akkor hibaüzenetet fogok kapni. Ami persze nagyon jó, mert annak ott tényleg semmi értelme nincs. (ha nem tudnám hol áll meg a ciklus, akkor while-t használok)

    A C++ alapkönyvben (Stroustrup) a legelső alapelv a C programozóknak akik C++-ban akarnak programozni, hogy deklaráljuk a változókat ott, ahol szükség van rájuk, úgy, hogy csak addig éljenek, amíg kellenek. A legelső példák egyike a for ciklus fejlécében deklarált ciklusváltozó.

    A hatékonyság pedig nem változik meg, kipróbáltam ezt a két kódot:


    for (int j=0;j<1000000000;j++) {
    int i;
    for (i=0;i<10;i++)
    {
    }
    }



    meg:


    for (int j=0;j<1000000000;j++) {
    for (int i=0;i<10;i++)
    {
    }
    }



    és nem volt észrevehető különbség, holott eléggé felnagyítottam volna :D
    (G++ DevC++ IDE-ben)

    kompaktabb kód, biztonságosabb kód, hatékonysági áldozat nélkül. Tiszta nyereség.

    flugi

Új hozzászólás Aktív témák