CyrSyS

Hozzászólások

10 bejegyzés megtekintése - 1-10 / 73
  • Szerző
    Bejegyzés
  • Hozzászólás: C programozás #2016426
    CyrSyS
    Felhasználó

      Sziasztok!

      Köszönöm az ünnep közti segítségeket sikerült rájönnöm a problémára és persze azóta tovább fejlődtem! Vizsgám sajnos nem sikerült még eddig hát így van ez! Itthon 5-re is megcsinálok egy példát de ott meg mindig az időszűke zavar meg! De tovább menve előjött egy haladóbb szintű probléma! Utánjárásom során tényként közölték hogy a C nyelvben egy kicsit macerás az ékezetes betűk kezelése! Hát ezt én is belátom de ha adódik egy olyan feladat hogy ellenőrzött névbekérés ahol akár nagy Á É Í Ő Ú Ű betűk is előfordulhatnak nem tehetek kifogást. A nyelvnek azonban nem nagyon tetszik hogy erőltetem a dolgot! Én már írtam egy névellenőrző fgv-nyt ami csak egy ellenőrzőtt nevet ad vissza! Ezzel a függvénnyel semmi gond nincs csak egyetlenegy! Az hogy ha valaki Édes Péter-nek hívnak akkor azt fogja a függvény hogy é betűvel kezdődik de azt már nem hogy nagy is! Á betűnél nincs ilyen gond! Itt a fgv:

      Code:
      void tulajdonnev(char question[], int min, int max, char textki[]){
      int jo,i, hossz;

      jo=0;
          do{
              printf(question);
      hossz=getline(textki,max+1);
              if (hossz==0) printf(„nNem adtal meg szoveget!n”);
      else if (hosszmax) printf(„nA megadott szovegnek maximum %d karakter lehet!n”,max);
      else {
      for (i=0;i

      FIGYELEM: a for cikluson belüli első ellenőrzésben/feltételben lévő krix krax karakterek nem hibásak ugyanis a turbo C-be betöltve azokat ékezetes betűknek észleli és működnek! GCC nem tudom hogy kezeli!

      Ha valaki pontosan szeretné tudni mit kell ellenőriznie a fgv-nyek akkor ezek a következők:
      – ha a vezetéknevet kis kezdőbetűvel gépeljük rinyáljon és azonnal kérjen be új nevet!
      – ha valamelyik tagnevet kis kezdőbetűvel gépelünk be rinyáljon!
      – És ez mind működjön ékezetes betűknél is!


      > nekem valójában itt a bibi csak!

      köszönöm előre is!

      Hozzászólás: C programozás #2016417
      CyrSyS
      Felhasználó

        Pontosítok! Tehát adj meg mondjuk 123-at! Nem fogja elfogadni! Majd adj meg mondjuk 2-t. Azt se 😀 Itt a mátrixos program:

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

        int getline(char s[],int lim);
        int szambe(char text[], int min, int max);
        int egesze(char s[], int hossz);

        int main(void){

          static char vizsg[2];
          int i,j,vege,ok;
          double sor,oszl, szum, atlag, min, max;
          double matrix[10][10];

          clrscr();

          printf(„tttMatrix elemzo program!n”);
          for(i=0;i<=7;i++) printf("----------");     vege=0;     do{ /*Oszlop bekerese*/   ok=i=0;       do{     printf("nKerem adja meg a matrix oszlopainak szamat(1-4): ");     i=getline(vizsg,2);     if (i==0) printf("nNem adtal meg semmit az oszloperteknek!n");     else if (!egesze(vizsg,i)) printf("nA megadott ertek nem egesz szam vagy negativ ertek!n");     else     {       oszl=(double)atoi(vizsg);       if (oszl<1 || oszl>4) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
              else ok=1;
            }

              } while (!ok);

              if (!vege) {

                /*Sor bekerese*/

          ok=0;

                  do{

                    printf(„nKerem adja meg a matrix sorainak szamat(1-4): „);
            i=getline(vizsg,1);
            if (i==0) printf(„nA sorok sz m t mindenk‚pp megkell adni!n”);
            else if (!egesze(vizsg,i)) printf(„nA megadott ertek nem egesz szam vagy negativ ertek!n”);
            else
            {
              sor=(double)atoi(vizsg);
              if (sor<1.0 || sor>4.0) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
              else ok=1;
            }

                        } while (!ok);

                    }

              if (!vege) {

                /*Matrix feltoltese */

                  ok=0;

                  do{
              for (i=0; imax) max=matrix[i][oszl+1]=matrix[i][j];
              szum+=matrix[i][j];
                    }
          matrix[i][oszl+2]=szum/oszl;
                }

            for (j=0; jmax) max=matrix[sor+1][j]=matrix[i][j];
              szum+=matrix[i][j];
                    }
          matrix[sor+2][j]=szum/sor;
                }
                }
              vege=1;

              } while (!vege);

              /*kiiratas*/

              clrscr();

          printf(”        |”); for(i=1;i<=oszl;i++) printf("%8d",i); printf("    Min    Max  µtlagn");   printf("---------+"); for(i=1;i<=oszl+3;i++) printf("--------");   printf("n");   for(i=0;imax){
        printf(„A bekert adatnak a [%d-%d] intervallumba kell esnie!n”,min,max);
        printf(text);
        getline(sor, 10);
        szam=atoi(sor);
        }
        return(szam);
        }

        int egesze(char s[], int hossz){
        int i=0, kezd;
        while ((s[i]==’ ‘ || s[i]==’n’ || s[i]==’t’) && (i= hossz)
        return 0; /* hol vannak a szamjegyek? */
        kezd=i;
        while((s[i]>=’0′ && s[i]<='9') && (i= hossz)
        return 1; /* ez jo */
        if(i==kezd || s[i]!=’ ‘ && s[i]!=’t’ && s[i]!=’n’ && s [i]!=0) return 0;
        else return 1;
        }

        Hozzászólás: C programozás #2016416
        CyrSyS
        Felhasználó

          Kedves Zoli A mátrixos programomnál is nézd meg! Adj meg oszlopszámnak mondjuk „df” majd adj meg egy 1 és 4 közötti értéket. nem fogja elfogadni! 🙁

          Hozzászólás: C programozás #2016415
          CyrSyS
          Felhasználó

            Megnézem más programjaimnál is ZOli köszönöm!

            Hozzászólás: C programozás #2016413
            CyrSyS
            Felhasználó

              Fájdalmamban bőgök! Itt akkor miért működik! Itt nem oszlopszámot kérek be hane testsúlyt! NEM TÖK MINDE ENNEK A FAXNAK :”(((((((((

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

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

              void main(void){

                int ok,i;
                char vizsg[4];

                clrscr();

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

                    }while(!ok);
              }

              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;}

              Hozzászólás: C programozás #2016411
              CyrSyS
              Felhasználó

                Oszlopszám bekérésnél ha elsőre jó értéket adok meg! Mondjuk 3-at, akkor szépen elfogadja! Kilépek a programból majd ujrafuttatom! Beadom neki „df”-et akkor kijelzi a megfelelő hibát! Új bekérésnél ha megadok egy jó értéket ugyanazt a hibát írja ki! Ez miért van :S

                Hozzászólás: C programozás #2016408
                CyrSyS
                Felhasználó

                  Huh ne komplikáljuk! Nekem így kell a vizsgán csinálni! Ne térjünk el ettől extra PLZ!!!!

                  Hozzászólás: C programozás #2016406
                  CyrSyS
                  Felhasználó

                    Legegyszerűbben a problémám! #302 és  #307-es programot vessétek össze! Mindjárt az ellenőrzött inputnál! Miért nem működik? 2 dolgot vegyetek figyelembe! #302-es kódban Vizsla egész vizsgáló fgv-nyét használtam továbbá a #307-ben javítottam a függvény fejet! #302-es program hibátlanul ellenőriz, míg a MÁTRIX-os egyáltalán nem működik egy egész vizsgáló cucc sem! Na ettől őrülök meg de nagyon! :((((

                    Hozzászólás: C programozás #2016405
                    CyrSyS
                    Felhasználó

                      Szia Vizsla!

                      Még nagyobb a gond mint gondoltam!
                      A hibát javítottam a fgv fejben! De továbbra nevetséges problémám van! Jó lenne ha mondjuk tudnád futtatni te is a programot! Előszőr bekér egy oszlop számot! Adj meg neki mondjuk 2-t! nem fogja elfogadni 😀

                      Hozzászólás: C programozás #2016401
                      CyrSyS
                      Felhasználó

                        Szia Vizsla!

                        Kipróbáltam a te függvényedet is! Nem rossz a BMI-s programomnál szépen működik! De megint röhej mert egy a MÁTRIXOS-nál meg már nem! ezt a MATRIX-os kódot mellékelem ide és jelzem hogy 2 hibát kapok! Az egyik egy warning, méghozzá „Suspicious pointer conversion” és egy Errort hogy type mismatch! Az errort a te fgv-nyednél írja, a warningot pedig a if (!egesz(vizsg))-nél! Na itt a kód itt nem mükszik :S! Kezd már nagyon elegem lenni hogy nemtudom mi a gondja baja! :  

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

                        #define MIN 1
                        #define MAX 4

                        int getline(char s[],int lim);
                        int szambe(char text[], int min, int max);
                        int egesz(char * []);

                        int main(void){

                         char vizsg[4];
                         int i,j,vege,ok;
                         double sor,oszl, szum, atlag, min, max;
                         double matrix[10][10];

                         clrscr();

                         printf(„tttMatrix elemzo program!n”);
                         for(i=0;i<=7;i++) printf("----------");     vege=0;     do{ /*Oszlop bekerese*/  ok=0;       do{    printf("nKerem adja meg a matrix oszlopainak szamat(1-4): ");    i=getline(vizsg,4);    if (i==0) printf("nNem adtal meg semmit az oszloperteknek!n");    else if (!egesz(vizsg)) printf("nA megadott ertek nem egesz szam vagy negativ ertek!n");    else    {      oszl=(double)atoi(vizsg);      if (oszlMAX) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
                             else ok=1;
                           }

                              } while (!ok);

                              if (!vege) {

                                /*Sor bekerese*/

                         ok=0;

                                  do{

                                   printf(„nKerem adja meg a matrix sorainak szamat(1-4): „);
                           i=getline(vizsg,1);
                           if (i==0) printf(„nA sorok sz m t mindenk‚pp megkell adni!n”);
                           else if (!egesz(vizsg)) printf(„nA megadott ertek nem egesz szam vagy negativ ertek!n”);
                           else
                           {
                             sor=(double)atoi(vizsg);
                             if (sorMAX) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
                             else ok=1;
                           }

                                        } while (!ok);

                                   }

                              if (!vege) {

                               /*Matrix feltoltese */

                                 ok=0;

                                  do{
                             for (i=0; imax) max=matrix[i][oszl+1]=matrix[i][j];
                              szum+=matrix[i][j];
                                    }
                         matrix[i][oszl+2]=szum/oszl;
                               }

                           for (j=0; jmax) max=matrix[sor+1][j]=matrix[i][j];
                              szum+=matrix[i][j];
                                    }
                         matrix[sor+2][j]=szum/sor;
                               }
                               }
                              vege=1;

                             } while (!vege);

                              /*kiiratas*/

                             clrscr();

                         printf(”         |”); for(i=1;i<=oszl;i++) printf("%8d",i); printf("     Min     Max   µtlagn");  printf("---------+"); for(i=1;i<=oszl+3;i++) printf("--------");  printf("n");  for(i=0;imax){
                        printf(„A bekert adatnak a [%d-%d] intervallumba kell esnie!n”,min,max);
                        printf(text);
                        getline(sor, 10);
                        szam=atoi(sor);
                        }
                        return(szam);
                        }

                        int egesz(char * str) {
                           int i;
                           for (i = 0; str [i] != ‘’; i ++)
                               if (!isdigit (str [i]))
                                   return 0;
                           return 1;
                        }

                      10 bejegyzés megtekintése - 1-10 / 73