Anonymní profil David2563 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil David2563 – Programujte.comAnonymní profil David2563 – Programujte.com

 

Příspěvky odeslané z IP adresy 85.71.215.–

Pepa512
C / C++ › kopírovací konstruktor (deep…
2. 1. 2012   #151894

a destruktor? delete [] pstring; ?

Pepa512
C / C++ › kopírovací konstruktor (deep…
2. 1. 2012   #151886

#2 KIIV
No toto jsem ještě schopen napsat, ale nevím jak třeba inicializovat string *pstring v kopírovacím konstruktoru atd...

Pepa512
C / C++ › kopírovací konstruktor (deep…
2. 1. 2012   #151881

Ahoj, mám následující fragment kódu. Potřeboval bych dopsat kopírovací konstruktor (hluboká kopie), destruktor a operátor přiřazení. Ale fakt nějak nevím jak. ( Byl to příklad v písemce a pokoušel sem si to doma napsat, ale fakt to nějak nechápu).

struct NoName{
NoName():pstring(new::std string); i(0),d(0){}
private:
  std::string *pstring;
  int i;
  double d;
};

Jana24
C / C++ › cin a poté nefungující getli…
30. 12. 2011   #151798

Ahoj,

v prvním kroku jsem si načetla číslo, pomocí cin, protože kontroluju pomocí cin.fail(), že jde skutečně o číslo jinak se musí číslo načíst znovu. V druhém kroku chci načíst string pomocí funkce getline(cin,string). Jenže getline se tváří, že v sobě již něco má a tak se přeskočí a celý program se ukončí... Nevíte v čem to je a jak to opravit?

while(1)
    {
        int hodnota;

        cin >> hodnota;
        if(cin.fail()  )
        {
            cin.clear();
            string pom;
            getline(cin, pom);
            cout<<"Zadal jsi spatny vstup. Zkus to znova: ";
        }
        else
        {
           break;
        }
    }

        string zk;
        cout<<"pis: ";
        cin.clear();
        zk.clear();
        getline(cin,zk);
        cout<<zk<<endl;

Jana24
C / C++ › Použití přetíženého operátor…
30. 12. 2011   #151788

Super, díky  

Jana24
C / C++ › Použití přetíženého operátor…
30. 12. 2011   #151785

Ahoj, mám třídy Person, od které si vytvořím dynamickou instanci. Příkazem cin >> person bych chtěla načíst jméno osoby. Bohužel nevím jak to zapsat. Když to inicializuju staticky tak lehce zadám cin >> person, ale takto nevím. Poradíte někdo prosím? :-)

class Person
{

public:
    string jmeno;

    Person(){}
    ~Person(void){}

    void ulozeniDoSouboru();

    friend istream &operator>>(istream &stream, Person o);


};


istream &operator>>(istream &stream, Person &o)
{
    cout << "Zadej sve jmeno: ";
    stream >> o.jmeno;
    return stream;

}

void Person::ulozeniDoSouboru()
{
    ofstream myfile ("skore.txt", ios::app );
    if (myfile.is_open())
    {
        myfile<< setw (23) << left << jmeno   << "ahoj"<< endl;


        myfile.close();
    }
}

int main()
{
Person *person=new Person();
cin >>person;
person->ulozeniDoSouboru();
delete person;
    return 0;
}

Jana24
Java › Strom ze vstupu
28. 12. 2011   #151724

Super díky

Jana24
C / C++ › virtual metoda a soubor .h
27. 12. 2011   #151691

Dobře, ale toto taky nefunguje:

class Porazeny:public Hrac
{
public:

    Porazeny( int _pocetOdkrytychPoli,int _pocetSpravneVlajek,string _vysledek);
    virtual void vypis()const;
};
    void Porazeny:: vypis()const
    {
        cout << "Zasahl jsi minu...GAME OVER"<<endl;
        cout<<jmeno<<endl;
        cout<<"Pocet odkrytych poli "<<pocetOdkrytychPoli<<endl;
        cout<<"Pocet spravne umistnenych vlajek: "<<pocetSpravneVlajek<<endl;
    }

Říká to: multiple definition of Porazeny::vypis() const....

Jana24
C / C++ › virtual metoda a soubor .h
27. 12. 2011   #151688

Ahoj,

implementuje abstraktni metodu vypis ve tride Porazeny.cpp, ktera dědí z abstratrkni tridu Hrac, chtěla bych jí ale dát hlavičkového souboru Porazeny.h. Bohužel mi to křicí, že error: virtual outside class declaration. Nevíte prosím co s tím?

class Porazeny:public Hrac
{
public:

    Porazeny( int _pocetOdkrytychPoli,int _pocetSpravneVlajek,string _vysledek);
    virtual void vypis()const;
};

Já bych chtěla něco takového:

virtual void Porazeny::vypis()const
    {
        cout << "Zasahl jsi minu...GAME OVER"<<endl;
        cout<<jmeno<<endl;
        cout<<"Pocet odkrytych poli "<<pocetOdkrytychPoli<<endl;
        cout<<"Pocet spravne umistnenych vlajek: "<<pocetSpravneVlajek<<endl;
    }

Dave265
Java › Strom ze vstupu
26. 12. 2011   #151664

Ahoj,

potřeboval bych poradit. Mám vytvořit strom, kde rodič má max. 2 potomky a číslo rodiče je vždy nižší než číslo potomka. Na vstup mi přichází vždy dvojice čísel např:

4 2

2 5

2 1

1 3

3 6

Pokud mám např. čísla 3 1 znamená to, že 1 je rodič (nižší číslo) a 3 je potomek do leva.

Pokud mám např čísla 1 3 znamená to, že 1 rodič a tři je potomek do prava.

Vymyslel jsem následující kód, ale nevím jak to napsat tak, aby se mi vytvořil pomocí alogitmu komplet celý kód:

class Node {

    int key;
    Node parent; // Někdy není potřeba.
    Node left, right;

    Node(){}
   
    Node(int k) {
        key = k;
    } // Konstruktor.

    public void preorder(Node u) {
        if (u == null) {
            return;
        } else {
            System.out.println(u.key); //1. koren
            preorder(u.left); //2. L podstrom
            preorder(u.right); //3. P podstrom
        }
    }


}

public static void main(String[] args) {
        Node root1 = new Node(2);
        root1.left = new Node(4);
        root1.right = new Node(5);
        root1.parent =new Node(1);
       
        Node root2 = new Node(1);
        root2.left = root1;
        root2.right = new Node(3);
        root2.right.right = new Node(6);


        root1.preorder(root1);

}

David2563
C / C++ › Hledání min (nul)
29. 11. 2011   #150650

Ahoj, mám dvojrozměrné pole (9x9), kde se nacházejí tři oblasti nul:
0 0 0 0 1 1 1 0 0
0 0 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0 0
0 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1
Vyberu například pozici [0][0] a chci aby se všechny nuly, které jsou součástí této oblasti nakopírovali do pole1 (9x9), které bude, ale jinak naplněné 9. Vymyslel jsem následují kód, ale bohužel se mi odkryjí všechny nuly, ale já bych potřeboval ke hře hledání min, odkrýt jen to jednu oblast nul. Samozřejmě  pozice 0 se mění, toto je pouze pole vytvořené pro zkoušku. Prosím poraďte...
#include <iostream>

using namespace std;

int pole[9][9];
int poleHrac[9][9];


void jsem1(int radek, int sloupec)
{
    for(int i=(radek-1); i<=(radek+1); i++)//radky
    {
        for(int j=(sloupec-1); j<=(sloupec+1); j++)//sloupce
        {
            // if(i>(radek-1)&&i<(radek+1))
            //    if(j>(sloupec-1)&&j<(sloupec+1))
            if (i > -1 && j > -1 && i < 9 && j < 9)
                if(pole[i][j] ==0)
                    poleHrac[i][j]=0;

        }
    }
}

void jsem(int radek, int sloupec)
{
    poleHrac[radek][sloupec] = 0;
    for(int i=0; i<9; i++)//radky
    {
        for(int j=0; j<=9; j++)//sloupce
        {
            if (i > -1 && j > -1 && i < 9 && j < 9)
                if(i>(radek-1)&&i<(radek+1))
                    if(j>(sloupec-1)&&j<(sloupec+1))
                        if(pole[i][j] <1)
                            poleHrac[i][j]=0;
            jsem1(i,j);

        }
    }
}


int main()
{

    for(int i =0; i < 9; i++)
    {
        for(int j =0; j < 9; j++)
        {
            pole[i][j]=1;
        }
    }

    for(int i =0; i < 9; i++)
    {
        for(int j =0; j < 9; j++)
        {
            poleHrac[i][j]=9;
        }
    }

    pole[0][0] = 0;
    pole[0][1] = 0;
    pole[0][2] = 0;
    pole[0][3] = 0;
    pole[1][0] = 0;
    pole[1][1] = 0;
    pole[2][0] = 0;
    pole[3][0] = 0;
    pole[4][0] = 0;
    pole[8][0] = 0;
    pole[8][1] = 0;
    pole[8][2] = 0;
    pole[7][2] = 0;
    pole[8][3] = 0;
    pole[8][4] = 0;
    pole[0][7] = 0;
    pole[0][8] = 0;
    pole[1][7] = 0;
    pole[1][8] = 0;
    pole[2][6] = 0;
    pole[2][7] = 0;
    pole[2][8] = 0;
    pole[3][7] = 0;
    pole[3][8] = 0;
    pole[4][7] = 0;
    pole[4][8] = 0;
    pole[5][7] = 0;
    pole[5][8] = 0;


    int radek = 0;
    int sloupec =0;

    if(pole[radek][sloupec]==0)   {

       jsem(radek,sloupec);
    }


    for(int i =0; i < 9; i++)
    {
        for(int j =0; j < 9; j++)
        {
            cout << pole[i][j]<<" ";
        }
        cout <<endl;
    }

    cout<<endl;
    for(int i =0; i < 9; i++)
    {
        for(int j =0; j < 9; j++)
        {
            cout << poleHrac[i][j]<<" ";
        }
        cout <<endl;
    }

}

David2563
C / C++ › Načítání do prázdného řádku
16. 11. 2011   #150087

Ahoj,

mám následující problém. Načítám z textového souboru po řádcích, mám načítat dokud se nebojeví prádzný řádek. Vymyslel jsem toto:

string line;
ifstream myfile;

myfile.open ("promenne.txt");
  if (myfile.is_open()) {
       while (line.empty()){
        getline(myfile,line);
        cout << line <<endl;
     }

  }

Bohužel toto načítá pouze první řádek a dále již nenačítá. Nevíte jak na to ?

Lido
C / C++ › Osekání stringu
15. 11. 2011   #150054

Ahoj,
pomocí funkce getline načítám ze souboru řádek
string radek;
getline(prikazovySoubor,radek);",
který je v podstatě deklarace proměnné v tomto tvaru:
promenna a 0x 0a 23 4e 6b ab

Tento řetězec mám tedy uložený ve string radek. Pro další část programu,ale potřebuji pouze tuto část : 0a 23 4e 6b ab. Problém ovšem nastává v tom, že mezer může být mezi jednotlivými částmi víc (tím odpadá možnost odmazat prvních 10 pomocí for cyklu). Neporadíte mi jak na to? ( Vím o funkce strtok(), ale ta je na chary..., takže to asi není řešení.)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý