Keresés

Hirdetés

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

  • ktg3

    őstag

    vki pls help me :U
    mindjárt leverem a gépet az asztalról mert nem megy és 1szerűen nem tudom h hol a hiba :O

    //main

    #include ''fifo.h''
    #include <stdio.h>



    void main ()
    {
    int array[]={0,1,2,3,4,5,6,7,8,9};

    fifo m;
    for(int i=0;i=9;i++)
    m.push(array);

    printf (''%d\n'', m.pop());


    }


    //fifo.h

    #ifndef FIFO_H
    #define FIFO_H


    class fifo
    {
    int *t,elementnum;


    public:

    fifo () {t=0,elementnum=0;}
    void push (int n);
    int pop ();
    ~fifo (){delete []t;}

    };


    #endif

    //fifo fgvk

    #include <stdio.h>
    #include ''fifo.h''


    void fifo::push (int n)
    {
    int *tmp,i;
    tmp=new int [elementnum+1];
    for (i=0;i<elementnum;i++)
    tmp
    =t;
    tmp[elementnum-1]=n;
    delete []t;
    elementnum++;
    t=tmp;

    }


    fifo::pop ()
    {
    int *tmp,i,x;
    tmp=new int [elementnum-1];
    for (i=0;i<elementnum-1;i++)
    tmp
    =t;
    x=t[elementnum];
    delete []t;
    elementnum--;
    t=tmp;
    return x;
    }

  • ktg3

    őstag

    sziasztok

    aki nekem megmondja h mi a hiba leírja és el is magyarázza annak 1-2 heineken jár bp-n!
    itt a link ahol van a progi:[link]

    üdv:ktg

    mod:ja és persze csak az 1. segítőnek jár sör :U
    megoldást püben várok :R

    [Szerkesztve]

  • ktg3

    őstag

    válasz Jester01 #66 üzenetére

    az direkt volt 12
    azzal akartam tesztelni az exceptionst..
    de ezt nem értem..
    mi az h nincs copy konstruktora amikor ottvan ..
    más is ezt mondta de nem értem.
    mit kell változtatni h jó legyen?

  • ktg3

    őstag

    vki segítesen legyen szíves!!!

    combos kis hsz lesz...
    szokásszerint megint nem tudom h hol a hiba
    biztos lesz benne egy rahedli..

    amig nem írtam meg az utólsó 4 fgv-t addig működött jól..
    szal ott keresendő a hiba!

    köszönöm!

    //string.h


    #ifndef STRING_H
    #define STRING_H
    #include <iostream>
    namespace TheUltimateString
    {
    class String
    {
    // A karakterek aktuális száma:
    unsigned int elementsNum;

    // A karaktereket tartalmazó memóriaterületre mutató pointer:
    char*pData;
    public:
    // Argumentum nélküli konstruktor:
    String();

    // Másoló konstruktor:
    String(const String&string);

    // Egy NULL végu sztringet váró konverziós konstruktor
    // Ez felel a char*-> String konverzióért
    String(const char* str);

    // Egy karaktert és egy elojel nélküli egészet (times) váró konstruktor,
    // amely times darab c karakterrel inicializálja a stringet:
    String(char c, unsigned int times);

    // A destruktor:
    ~String(){delete[]pData;}

    // Visszatér a sztring hosszával
    unsigned int getLength()const{return elementsNum;}

    // Kiírja a sztringet a megadott kimeneti adatfolyamba (a 'cout' ostream típusú):
    void print(std::ostream& os);

    // Visszaadja a megadott pozícióban lévo karaktert, egyébként nullát:
    char& operator[](unsigned int pos);
    // Konstans objektumokat is le szeretnénk kérdezni
    const char& operator[](unsigned int pos)const;

    // Összefuz két Stringet
    String operator+(const String& theOther)const;
    const String& operator+=(const String &theOther);
    const String& operator=(const String& theOther);
    bool operator==(const String& theOther)const;
    bool operator!=(const String& theOther)const;


    // Visszaad egy csak olvasható hozzáférést a stringhez
    operator const char*()const;

    // --- Statikus függvények. Ezek két stringen végeznek muveletet. ---

    // Összefuz két sztringet, és visszatér vele:
    static String concatenate(const String& string1, const String& string2);

    // Összehasonlít két sztringet:
    static bool compare(const String& string1, const String& string2);

    // A második sztringet az elso sztringbe másolja:
    static void copy(String& string1, const String &string2);

    unsigned int strlen(const String& s);

    int strchr(const String& s,char c);

    bool strcmp(const String& s1,const String& s2);

    char* strstr(const String& s1,const String& s2);
    };
    }
    #endif /* STRING_H */





    //string.cpp


    #include ''String.h''
    using namespace std;
    using namespace TheUltimateString;
    // Argumentum nélküli konstruktor:
    String::String()
    {
    elementsNum=0;
    pData=new char[1];
    pData[0]='\0';
    }
    // Másoló konstruktor:
    String::String(const String& string)
    {
    *this=string;
    }
    // Egy NULL végu sztringet váró konverziós konstruktor
    // Ez felel a char*-> String konverzióért
    String::String(const char* str)
    {
    elementsNum=strlen(str);
    pData=new char[strlen(str)+1];
    for(unsigned int i=0;i<strlen(str)+1;i++)
    pData=str;

    }
    // Egy karaktert és egy elojel nélküli egészet (times) váró konstruktor,
    // amely times darab c karakterrel inicializálja a stringet:
    String::String(char c, unsigned int times)
    {
    elementsNum=times;
    pData=new char[elementsNum+1];
    for(unsigned int i=0;i<elementsNum;i++)
    pData=c;
    pData[elementsNum]='\0';
    }
    // Kiírja a sztringet a megadott kimeneti adatfolyamba (a 'cout' ostream típusú):
    void String::print(ostream& os)
    {
    os<<pData<<endl;
    }
    // Visszaadja a megadott pozícióban lévo karaktert, egyébként nullát:
    char& String::operator[](unsigned int pos)
    {
    return pData[pos];
    }
    // Konstans objektumokat is le szeretnénk kérdezni
    const char& String::operator[](unsigned int pos)const
    {
    return pData[pos];
    }
    // Összefuz két Stringet
    String String::operator+(const String& theOther)const
    {
    String s;
    s.pData=new char[elementsNum+theOther.elementsNum+1];
    for(unsigned int i=0;i<elementsNum;i++)
    s.pData
    =pData;
    for(i=0;i<theOther.elementsNum;i++)
    s.pData[i+elementsNum]=theOther.pData
    ;
    s.elementsNum=elementsNum+theOther.elementsNum;
    s.pData[s.elementsNum]='\0';
    return s;
    }
    const String& String::operator+=(const String &theOther)
    {
    char* tmp=new char[elementsNum+theOther.elementsNum+1];
    for(unsigned int i=0;i<elementsNum;i++)
    tmp=pData;
    for(i=0;i<theOther.elementsNum;i++)
    tmp[i+elementsNum]=theOther.pData;
    this->elementsNum+=theOther.elementsNum;
    tmp[elementsNum]='\0';
    delete[]pData;
    this->pData=tmp;
    return *this;
    }
    const String& String::operator=(const String& theOther)
    {
    elementsNum=theOther.elementsNum;
    pData=new char[theOther.elementsNum+1];
    for(int i=0;i<theOther.elementsNum;i++)
    pData
    =theOther.pData;
    pData[elementsNum]='\0';
    return *this;
    }
    bool String::operator==(const String& theOther)const
    {
    if(elementsNum!=theOther.elementsNum)
    return false;
    else
    {
    int not=0;
    for(int i=0;i<elementsNum;i++)
    {
    if(pData
    !=theOther.pData)
    {not=1; break;}
    }
    if(not) return false;
    else return true;
    }
    }
    bool String::operator!=(const String& theOther)const
    {
    if(theOther==*this)
    return false;
    else return true;
    }
    // Visszaad egy csak olvasható hozzáférést a stringhez
    String::operator const char*()const
    {
    return pData;
    }
    // --- Statikus függvények. Ezek két stringen végeznek muveletet. ---
    // Összefuz két sztringet, és visszatér vele:
    String String::concatenate(const String& string1, const String& string2)
    {
    String s;
    s.elementsNum=string1.elementsNum+string2.elementsNum;
    s.pData=new char[s.elementsNum+1];
    for(int i=0;i<string1.elementsNum;i++)
    s.pData
    =string1.pData;
    for(i=0;i<string2.elementsNum;i++)
    s.pData[string1.elementsNum+i]=string2.pData
    ;
    return s;
    }
    // Összehasonlít két sztringet:
    bool String::compare(const String& string1, const String& string2)
    {
    if(string1.elementsNum!=string2.elementsNum)
    return false;
    else
    {
    int not=0;
    for(int i=0;i<string1.elementsNum;i++)
    {
    if(string1.pData!=string2.pData)
    {not=1; break;}
    }
    if(not) return false;
    else return true;
    }
    }
    // A második sztringet az elso sztringbe másolja:
    void String::copy(String& string1, const String &string2)
    {
    string1.elementsNum=string2.elementsNum;
    string1.pData=new char[string2.elementsNum+1];
    for(int i=0;i<string2.elementsNum+1;i++)
    string1.pData=string1.pData;
    }

    unsigned int String::strlen(const String& s)
    {
    return s.elementsNum;
    }
    int String::strchr(const String& s,char c)
    {
    for (int i=0;i<s.elementsNum;i++)
    if (s.pData==c)
    return i+1;
    }
    bool String::strcmp(const String& s1,const String& s2)
    {
    if (s1.elementsNum==s2.elementsNum)
    for (int i=0;i<s1.elementsNum;i++)
    {
    if (s1.pData
    !=s2.pData)
    return false;
    if (i==s1.elementsNum-1)
    return true;
    }
    else return false;
    }
    char* String::strstr(const String& s1,const String& s2)
    {
    char* s=''nincs benne/0'';
    char* string2=new char [s2.elementsNum+1];
    for (int i=0;i<s2.elementsNum;i++)
    string2
    =s2.pData;
    string2[s2.elementsNum]='/0';


    for (i=0;s1.elementsNum;i++)
    {
    if (s1.pData
    ==s2.pData[0])
    {
    for (int j=0;j<s2.elementsNum;j++)
    {
    if (s1.pData[j]!=s2.pData[j])
    return s;
    if (j==s2.elementsNum-1)
    return string2;
    }
    }
    }
    }



    //theultimatesample.cpp


    #include <iostream>
    #include ''String.h''

    using namespace std;
    using namespace TheUltimateString;


    int main()
    {
    String str1=''Hello Moneypenny.'';
    printf(str1);
    str1=''My name is Bond. '';
    str1+=''James Bond.'';
    printf(''\n%s\n'',(const char*)str1);

    if(str1==(String)''My name is Bond. James Bond.''
    &&!(str1!=(String)''My name is Bond. James Bond.''))
    {
    cout<<''Oh, Mr. Bond!''<<endl;
    }

    return 0;
    }


    belefért :U

  • ktg3

    őstag

    válasz Jester01 #127 üzenetére

    nekem összesen 2 db hibaüzit dob..
    az a baja h nem működik meg annyira nem is értem h h működik ez a template..
    elvileg le kéne h fusson ez a baja: D
    mmint a tudásom szerint :B


    mert ugyen aza akar lenni h a vector osztály tudjon megadott típussal működni..
    szal azokat az inteket ( eredetileg inteket tárolt) írtam át tre ahol sztem kellett..

    szal annyira konkrétan a szintaktikát sem tudom

    annyit találtam róla ha a headeren belül implementálod a fgv-eket akkor mindegyik elé kell az a temlate <class T>...

  • ktg3

    őstag

    helló

    újabb problémába ütköztem
    szokásosan nem tudom h hol a hiba...

    ez a feladat:

    Írd meg az alábbi függvényeket a String osztályban:

    strlen(const String& s);

    strchr(const String& s, char c);

    strcmp(const String& s1, const String& s2);

    strstr(const String& s1, const String& s2);

    A függvények legyenek statikusak! A működésük egyezzen meg az azonos nevű C könyvtári függvényekével!


    itt van fent a kód:[link]


    előre is thx

  • ktg3

    őstag

    válasz Jester01 #216 üzenetére

    őőő elmondanád h melyik mit csinál?
    mert igazából nem nagyon tudom h mit csinálnak ezek a default parancsok..

    magyarul most nagyon noob voltam? :B
    lehet h nem ezzel kéne foglalkoznom:DDD

  • ktg3

    őstag

    válasz Jester01 #218 üzenetére

    de mondom ez a feladatkiírás!amit az 1. hszemben írtam mmint a témával kapcsolatban
    azt kell csinálni

    ihazából fogalmam sincs h akkor mivan.

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