prolog progi kéne

Kezdőlap Fórumok Programozás prolog progi kéne

6 bejegyzés megtekintése - 1-6 / 6
  • Szerző
    Bejegyzés
  • #1938630
    pointux
    Felhasználó

      Két C függvény kell hozzá:

      long strtol(const chsr *s, char **e, int radix)
      vagyis:
      value: maga a szám
      e: hibás karakterre mutató
      radix: hanyas számrendszer (2-36)
      visszatérés: szám

      char *ltoa(int value, char *string, int radix);
      vagyis:
      value: maga a szám
      string: mutató ahova a string kerül
      radix: hanyas számrendszer (2-36)
      visszatérés: stringre mutat

      A programot ezekkel a paraméterekkel futtatva:
      (convert yx p1
      p2
      )

      1. paraméterek beolvasása
      2. bd; bh stb. paraméter átkonvertálása 2,10; 2,16 számokká
      (mivel összesen 16 db kombináció van egy case utasítással:
      case: „bd”
      x=2;
      y=10;
      break;
      case: „bh”
      )

      3. konvertálás
      long l=strtol(P1, e, x);
      ltoa(l, P2, y);

      4. kiiratás

      A beolvasást, hibaellenõrzést, kiíratást nem írtam le!

      #1938631
      pointux
      Felhasználó

        /*
        Itt a teljes program!
        Program hívása: convert xy number
        x ill y lehet: b, B, o, O, d, D, h, H
        */

        #include

        #ifdef linux
        char *ltoa(long val, char *buf, int base) {
        ldiv_t r;

        if (base > 36 || base 0)
        buf = ltoa ( r.quot, buf, base);

        *buf++ = „0123456789abcdefghijklmnopqrstuvwxyz”[(int)r.rem];
        *buf = ”;
        return buf;
        }
        #endif

        int main(int argc, char *argv[]) {

        int iradix, oradix;
        long lbuf;
        char ip, op;
        char **e;
        char *sbuf;

        sbuf = (char *)strdup(argv[2]);

        // *** a bemenet bin., okt., de., vagy hex.?
        switch (argv[1][0] | 0x20) {
        case ‘b’:
        iradix = 2;
        break;
        case ‘o’:
        iradix = 8;
        break;
        case ‘d’:
        iradix = 10;
        break;
        case ‘h’:
        iradix = 16;
        break;
        default:
        printf(„Hibás paraméter: %cn”, argv[1][0]);
        }

        // *** a kimenet bin., okt., de., vagy hex.?
        switch (argv[1][1] | 0x20) {
        case ‘b’:
        oradix = 2;
        break;
        case ‘o’:
        oradix = 8;
        break;
        case ‘d’:
        oradix = 10;
        break;
        case ‘h’:
        oradix = 16;
        break;
        default:
        printf(„Hibás paraméter: %cn”, argv[1][1]);
        }

        // *** a bemeneti string átkonvertálása digitálissá számmá (iradixnak megfelelõen)
        lbuf = strtol(sbuf, e, iradix);

        // *** digitális szám átkonvertálása a kimeneti stringgé
        ltoa(lbuf, sbuf, oradix);

        // *** kiíratás
        printf(„%sn”, sbuf);

        return 0;
        }

        /*
        További információkat találsz az interneten:
        kulcsszavak: c function reference; stdlib.h; case; printf; ltoa; strtol; main; c nyelv

        Ha valamit nem értesz, írj!
        */

        #1938632
        pointux
        Felhasználó

          Miért nem tudja ez a sz*r a tabulátorokat megjeleníteni?

          #1938633
          gkeresz
          Felhasználó

            hol ebben a prolog?

            #1938634
            GFSoldier
            Felhasználó

              Tud valaki valami magyar prolog leírást kezdõknek?
              Megköszönném.

              #1873687
              csaba
              Felhasználó

                Sziasztok! egy nagy szivességet kérek, aki tud segítsen nekem megoldani ezt a feladatoit, nagyon nem vágom a prologot Lécci kommentezzétek is, mert anélkül biztos nem fogom érteni.
                23] Szamrendszer-konvertalo program =========================================
                A 2,8,10,16-os szamrendszerek kozti konverziot valositja meg.

                input:
                – konverzios eloiras, 2 karakter amely megadja, hogy honnan hova valtunk at (bo,
                bd, bh, ob, od, oh, db, do, dh, hb, ho, hd)
                – atvaltando szam

                pelda1: input: bd 1001 – output: 9
                pelda2: input: db 12 – output: 1100

                Elõre is kösz!!!!!!!! 😥

              6 bejegyzés megtekintése - 1-6 / 6
              • Be kell jelentkezni a hozzászóláshoz.