C programozás

Kezdőlap Fórumok Programozás C programozás

10 bejegyzés megtekintése - 291-300 / 352
  • Szerző
    Bejegyzés
  • #2016386
    sipdav
    Felhasználó

      köszi, ez is műk 🙂

      #2016387
      CyrSyS
      Felhasználó

        Sziasztok!

        Óriási gondom akadt és nagyon nagyon fontos hogy rájöjjek mi a hiba!

        Kezdem azzal hogy én is programozgatok C nyelven, de a – muszájból – használt programfejlesztő környezet a Turbo C! A probléma számomra misztikus ugyanis nem kódbeli problémák vannak (sztem) hanem valami rejtélyes valami amitől legszívesebben kitépném a hajam mert annyira dühítő! No akkor miről is van szó:

        Készítettem egy alapprogramot ami bekér egy számot és ellenőrzi hogy egész-e! Ha nem egész kiír valami hibát és leáll a program! Hát ez ultra! Kezdetben meg is írtam működött. Készítettem egy másik programot amibe szintén számot kellett vizsgálni hogy egész-e! Ok hát alkalmaztam ugyanazt a kódsorozatot és bumm! Előjött a relytély! Nem működött! hát mondom ez mi! Nem fejtegetem jöjjön 2 kód ami ugyanaz gyakorlatilag, de hogy poén legyen a dologból az egyik működik, a másik nem 😀

        Íme a működő kód! :

        #include
        #include
        #include
        #include
        #include
        #include

        int getline(char s[],int lim);
        int egesze(char s[]);

        void main(void){

          int i;
          char vizsg[4];

          clrscr();

            printf(„Kerem a testtomeget(kg): „);
            i=getline(vizsg,4);
            if (!egesze(vizsg)) printf(„nA megadott érték nem egész szám!n”);

        }

        int getline(char s[],int lim){
                int c,i;
                for(i=0;i=’0′ && s
        #include
        #include
        #include
        #include

        int getline(char s[],int lim);
        int egesze(char s[]);

        void main(void){

          int i;
          char vizsg[4];

          clrscr();

            i=getline(vizsg,4);
            if (!egesze(vizsg)) printf(„A megadott szám nem egész!”);
        }

        int getline(char s[],int lim){
                int c,i;
                for(i=0;i=’0′ && s
        <='9')++i;
        if(i==kezd || s
        !=’ ‘ && s!=’t’ && s!=’n’ && s !=0) return 0;
        else return 1;}

        Primitív eltérések vannak! És nem működik!  ??? ??? ??? ???
        Aki esetleg jártas a Turbo C-be akkor annyit érdekes módon sikerült felfedeznem hogy ha F8-al (STEP) -el futtatom soronként a kódot akkor működik! Hát uraim én ezt annyira nem értem! Mi lehet a gond? :((((((

        #2016388
        CyrSyS
        Felhasználó

          Bocsánat valamiért rosszul küldte el a getline fgv-t! Itt a – remélhetőleg jó – :

          int getline(char s[],int lim){
                  int c,i;
                  for(i=0;i=c;
                  s=’’;
                  while(c!=EOF&&c!=’n’)c=getchar();
          return(i); }

          #2016389
          kisbetu
          Felhasználó

            (ha esetleg code dobozba tennéd…)

            #2016390
            CyrSyS
            Felhasználó
              Code:
              int getline(char s[],int lim){
                      int c,i;
                      for(i=0;i
              #2016391
              zoltan22
              Felhasználó
                CyrSyS wrote:
                Primitív eltérések vannak! És nem működik!  ??? ??? ??? ???

                Pontosan hol? (a diff kiakadt a sorvege-jelektol:
                -#include
                +#include
                :rolleyes: )

                CyrSyS wrote:
                Aki esetleg jártas a Turbo C-be akkor annyit érdekes módon sikerült felfedeznem hogy ha F8-al (STEP) -el futtatom soronként a kódot akkor működik! Hát uraim én ezt annyira nem értem! Mi lehet a gond? :((((((

                Ilyenbe belefutottam mar en is. Szerintem valami bug. Rendezd at a valtozokat, allitsd at a memoriamodellt (van small, … , extra large). Lehetne meg nem inicializalt valtozok utan kutatni.
                Mondjuk en atirnam ugy, hogy gcc-vel es borland c-vel is leforduljon.

                #2016392
                CyrSyS
                Felhasználó

                  Hát nem értem! Mindent átnéztem és nem jó! A fájl neve BAD.C ezzel sincs gond! Feladom pedig nekem ebből vizsgáznom kell és kötelező Turbo C-t használnom! Amúgy annyit még hozzáteszek hogy van egy csomó fgv amikből feladat alapján kell válogatnom! Mivel vizsgán 90 perc áll rendelkezésre ezért Jegyzettömbbel alkotom meg az alapvető program szerkezetet majd megírom a main törzsét! Esetleg a jegyzettömbbe való kód másolásnál nem figyelek valamire? Komolyan nemtudom! A kódnak hibátlannak kell lennie mert mondom más fájl esetén tökéletesen fut! :(((

                  Code:
                  #include
                  #include
                  #include
                  #include
                  #include

                  int getline(char s[],int lim);
                  int egesze(char s[]);

                  void main(void){

                    int i;
                    char vizsg[4];

                    clrscr();

                      i=getline(vizsg,4);
                      if (!egesze(vizsg)) printf(„Nem számot adtál meg!”);
                  }

                  int getline(char s[],int lim){
                          int c,i;
                          for(i=0;i=’0′ && s[i]<='9')++i; if(i==kezd || s[i]!=' ' && s[i]!='t' && s[i]!='n' && s [i]!=0) return 0; else return 1;}

                  #2016393
                  CyrSyS
                  Felhasználó

                    Kedves zoli!

                    Átállítottam a memória modellt! változó rendezés alatt mit értesz? Tegyem ki őket a Main-en kívül hogy globális tárolási osztállyal rendelkezzen? Előző hozzászólásom alapján további tipp?

                    #2016394
                    CyrSyS
                    Felhasználó

                      Na asszem rájöttem! „char vizsg[4];” deklarált sztring tárolási osztálya lesz a hiba! Ha ezt a stringet a MAIN-en belül deklarálom és eléje biggyeszem mondjuk a register tárolási osztályt mükszik! Legegyszerűbb módon a stringet kiteszem globálisba (MAIN elé) ott mükszik! Nagyon különös. Akkor más fájlba miért fut úgy a kód hogy a string a MAIN-en belül van deklarálva?

                      #2016395
                      zoltan22
                      Felhasználó

                        En meg teszteltem linux alatt, es nem akar mukodni. Szerintem a program logikajaval van egy kis problema: eloszor feltoltod a karakter tombot es visszaadod a hosszat, majd a tesztelo fuggveny nem tudja, hol van a tomb vege. Igy az egesze fuggvenyben nem inicializalt erteket is feldolgozol. Vagy lezarod a vizsg veget -val, vagy meg kell adjad a hosszat, kulonben erdekes dolgok tortenhetnek.
                        Mikor kitetted a vizsg tombot globalisnak, akkor a fordito automatikusan feltolti nullaval, ezert itt mar nem szemet lesz benne.

                      10 bejegyzés megtekintése - 291-300 / 352
                      • Be kell jelentkezni a hozzászóláshoz.