C-fejlesztés, KDevelop, stb…

Kezdőlap Fórumok Programozás C-fejlesztés, KDevelop, stb…

10 bejegyzés megtekintése - 141-150 / 185
  • Szerző
    Bejegyzés
  • #1915683
    kelemengabor
    Felhasználó

      Erre a system(char * s) függvény való, legalábbis a könyv szerint. Az stdlib.h-ban illene lennie, de nem próbáltam.

      #1915684
      kl223
      Felhasználó

        Erre a system(char * s) függvény való, legalábbis a könyv szerint. Az stdlib.h-ban illene lennie, de nem próbáltam.

        kösz. mindjárt kipróbálom.
        kl223

        #1915685
        zehyo
        Felhasználó

          Sziasztok!
          Van 2 kérdésem:

          1.: Mi a leggyorsabb módja annak, hogy megnézzem egy számról, hogy egész-e (a proci terhelése szempontjából)

          2.: Mennyivel lassabb az osztas, mint a szorzas?

          Koszonom, es bocs az ekezetmentesitest, de kulfoldon vagyok, mas a bill.
          Koszi elore is a valaszokat.

          #1915686
          pointux
          Felhasználó

            1.: Mi a leggyorsabb módja annak, hogy megnézzem egy számról, hogy egész-e (a proci terhelése szempontjából)
            Ha azt kérdezted, hogy futási idõben, akkor a kérdés nem helyes, mivel nem lehet eldönteni, ha nem futási idõben, akkor a válaszom nem tudom, de nem is érdekel, hiszen 2 perccel késõbb fordul le.
            Mondok egy példát:
            – van 32 bited, abba kell belepaszírozni egy számot vagy 0-2^32-ig vagy 0,0000-3,8e+38-ig.
            – lebegõpontosnál van valamilyen jelzõbit (nem tudom, hogy van, nem érdekelt), ami „megmutatja”, hol van a tizedesvesszõ (minnél nagyobb a szám, annál kevesebb tizedesjegyet tartalmazhat, vagyis pontatlanabb lesz; vica versa)
            – tegyük fel, hogy xxxxxxxxxxxxxxxxxxxxxxxxxxxxx111-es bináris kód azt jelenti, hogy 0,0000000000009 (most a hasamra ütöttem), ugyanakkor ugyanez 7-et jelent (most nem), ha egészként kezeljük, de egy négy karakteres stringként is kezelhetjük.Ez megy alacsony szinten pl assemblerben. (Ugyanezt a kezelésmódot a c nyelv is megengedi, de ott a fordító elraktározza a típust és minimum figyelmeztet rá, de ezt bizonyos assemblerek is megteszik.)
            Ami megkülönbözteti ezeket, hogy milyen mûveletet végzünk rajta, Persze van olyan terület, mely sohasem lehet más típusú, mint amire számták: processzor regiszterek.

            2.: Mennyivel lassabb az osztas, mint a szorzas?
            Pl a 2-vel ill. hatványaival osztás és szorzás egyforma ideig tart(hat), ha az ember jól írja meg a kódott és nem a multiplikálást, és osztást.
            Ha egyébként a mul, és div assambler utasításokkal végeztetjük el, általában tovább tart:
            mul 70-143 órajel ciklus, a div 0-162 órajel ciklus 32 bites Intel 8086-os processzorok esetén.
            Tehát inkább úgy fogalmaznék, hogy nem helyes a kérdés.

            #1915687
            zehyo
            Felhasználó

              Koszonom a kimerito valaszt.
              Az 1-es probléma a valosagban a kovetkezo: van egy int a-m es egy int b-m.
              Azt szeretnem megtudni, hogy a oszthato-e b-vel. Ennek a leggyorsabb modjara vagyok kivancsi. En ugy csinaltam, hogy ha a/b=x es x*b=a (x int), akkor oszthato, de ez eleg lassunak tunik. Ezert gondoltam esetleg arra, hogy rendesen elosztanam a-t b-vel, es megneznem, hogy a kapott eredmeny egesz-e. (ha x float, akkor 5/2=x eseten ugye x==2.5?)

              A 2. valszbol szamomra az derul ki, hogy nem nagysagrendekkel lassabb az osztas, erre voltam kivancsi, koszonom.
              A jol megirt 2 hatvannyal valo szorzasra/osztasra igy gondoltal: a>=2 ?

              #1915688
              Leslieman
              Felhasználó

                Ha c-ben int számot osztasz int számmal, akkor az eredménye szerintem int lesz, ha csak nem írsz elõ típuskonverziót valahogy.
                Azt, hogy osztható-e egy szám a másikkal meg úgy nézdd meg, hogy van-e az osztásnak maradéka.

                Code:
                maradek = a % b;

                Ha a maradek == 0, akkor osztható a b-vel maradék nélkül.

                #1915689
                pointux
                Felhasználó
                  ” wrote:
                  Koszonom a kimerito valaszt.
                  Az 1-es probléma a valosagban a kovetkezo: van egy int a-m es egy int b-m.
                  Azt szeretnem megtudni, hogy a oszthato-e b-vel. Ennek a leggyorsabb modjara vagyok kivancsi. En ugy csinaltam, hogy ha a/b=x es x*b=a (x int), akkor oszthato, de ez eleg lassunak tunik. Ezert gondoltam esetleg arra, hogy rendesen elosztanam a-t b-vel, es megneznem, hogy a kapott eredmeny egesz-e. (ha x float, akkor 5/2=x eseten ugye x==2.5?)
                  Az lehet a leggyorsabb amit Leslieman mondott: maradek = a % b;, mert feltûnõen hasonlít az assembleri formára. A maradékot a-t és b-t kezelje regiszterként, ha lehet. (16 bites a esetén -ha van szabad ax regiszter – ah = ax % al lesz.)

                  A 2. valszbol szamomra az derul ki, hogy nem nagysagrendekkel lassabb az osztas, erre voltam kivancsi, koszonom.
                  A jol megirt 2 hatvannyal valo szorzasra/osztasra igy gondoltal: a>=2 ?
                  Megint azzal a kiegészítéssel, hogy a-t kezelje registerként(ha van szabad).

                  Tehát legyen a meghatározott tárolási osztály ‘register’ ilyenkor viszont nem lehet globális a láthatósága, viszont nincsen garancia rá, hogy tényleg regiszter lesz, de a lehetõség fennáll és akkor a leggyorsabb mós lesz, a biztosat, csak az assembler jelent.
                  Ha tényleg érdekel a sebesség akkor:
                  http://nasm.sourceforge.net/
                  ‘The Netwide Assembler’ linuxra, és winfosra is ingyenes.

                  #1915690
                  zehyo
                  Felhasználó

                    Koszonom ujra a valaszokat. Az ASM-hez en meg tul kezdo vagyok, de idovel szeretnem kiprobalni..csak elobb menjen rendesen a C.

                    #1915691
                    zehyo
                    Felhasználó

                      Ujra egy kérdés 🙂

                      Code:
                      1   for (i=1;i<10;i++)

                      2      if (i==5)

                      3         <---visszalépni az elso sorba, hogy az megint novelje egy-el i-t---->

                              ….

                      A kerdest sejtitek.
                      Persze meg legetne oldani ugy, hogy az egesz blokkot egy if utasitashoz kotom, de igy elegansabb, vagy nem?
                      i-t azert nem akarom manualisan novelni…na mind1, szal ugy bonyolult lenne, na 🙂

                      #1915692
                      gabcsi
                      Felhasználó

                        Hali!

                        Instrukciót szeretnék kérni, C++ v. Kdevelop-al való programfejlesztéshez!
                        Adatokat szeretnék egy elõre megformázott OpenOffice táblázatba beletenni programból és elmenteni más néven!
                        Merre kutakodjak v. esetleg tud valaki ebben a témában konkrétan segíteni?
                        Nagyon megköszönném!
                        ( Ez lenne az utolsó lépés a cégnél ahol dolgozom az OpenOffice népszerûsítésére.)

                        Elõre is nagyon köszönöm!

                      10 bejegyzés megtekintése - 141-150 / 185
                      • Be kell jelentkezni a hozzászóláshoz.