Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Spełnienie warunku wielokrotnego (czy jak to sie tam nazywa).

Ostatnio zmodyfikowano 2011-07-02 16:35
Autor Wiadomość
Johnny
Temat założony przez niniejszego użytkownika
Spełnienie warunku wielokrotnego (czy jak to sie tam nazywa).
» 2011-07-02 11:41:24
Witam, mam problem z pewnym swoim programem a mianowicie nie mogę rozwiązać błędu jaki się w nim znalazł.
Chodzi o warunek w strukturze [do{}while()] :

C/C++
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <ctime>
#include <fstream>

using namespace std;

class Sprawdz
{
public:
    bool zero();
    bool jeden();
    bool dwa();
    bool trzy();
    bool cztery();
    bool piec();
    bool szesc();
    bool siedem();
    bool osiem();
   
};



int test = 0;
int test2 = 0;
int numer[ 9 ];
unsigned char key;


bool Sprawdz::zero()
{
    if( numer[ 0 ] == 0 )
         return( 0 );
    else if( numer[ 0 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::jeden()
{
    if( numer[ 1 ] == 0 )
         return( 0 );
    else if( numer[ 1 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::dwa()
{
    if( numer[ 2 ] == 0 )
         return( 0 );
    else if( numer[ 2 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::trzy()
{
    if( numer[ 3 ] == 0 )
         return( 0 );
    else if( numer[ 3 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::cztery()
{
    if( numer[ 4 ] == 0 )
         return( 0 );
    else if( numer[ 4 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::piec()
{
    if( numer[ 5 ] == 0 )
         return( 0 );
    else if( numer[ 5 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::szesc()
{
    if( numer[ 6 ] == 0 )
         return( 0 );
    else if( numer[ 6 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::siedem()
{
    if( numer[ 7 ] == 0 )
         return( 0 );
    else if( numer[ 7 ] > 0 )
         return( 1 );
   
}

bool Sprawdz::osiem()
{
    if( numer[ 8 ] == 0 )
         return( 0 );
    else if( numer[ 8 ] > 0 )
         return( 1 );
   
}

int main()
{
    Sprawdz suma;
   
    fstream plik;
    plik.open( "data.txt", ios::out | ios::in | ios::app );
    srand( time( NULL ) );
    wybieranie:
   
    do
    {
        srand( time( NULL ) );
        key =(( rand() % 9 ) + 48 );
        test2 =(( rand() % 9 ) + 0 );
        system( "cls" );
       
       
        cout << endl <<
        "    7  8  9 " << endl <<
        "    4  5  6 " << endl <<
        "    1  2  3 " << endl <<
        "    +  0  - " << endl;
        cout << endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
        cout << endl << "   " << suma.zero() << suma.jeden() << suma.dwa() << suma.trzy() << suma.cztery() << suma.piec() << suma.szesc() << suma.siedem() << suma.osiem();
       
        Sleep( 750 );
       
        switch( key )
        {
        case 48: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4  5  6 " << endl <<
            "    1  2  3 " << endl <<
            "    + [0] - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 0; test++;
            Sleep( 250 ); break;
           
           
        case 49: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4  5  6 " << endl <<
            "   [1] 2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 1; test++;
            Sleep( 250 ); break;
           
        case 50: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4  5  6 " << endl <<
            "    1 [2] 3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 2; test++;
            Sleep( 250 ); break;
           
        case 51: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4  5  6 " << endl <<
            "    1  2 [3]" << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 3; test++;
            Sleep( 250 ); break;
           
        case 52: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "   [4] 5  6 " << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 4; test++;
            Sleep( 250 ); break;
           
        case 53: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4 [5] 6 " << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 5; test++;
            Sleep( 250 ); break;
           
        case 54: system( "cls" );
            cout << endl <<
            "    7  8  9 " << endl <<
            "    4  5 [6]" << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 6; test++;
            Sleep( 250 ); break;
           
        case 55: system( "cls" );
            cout << endl <<
            "   [7] 8  9 " << endl <<
            "    4  5  6 " << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 7; test++;
            Sleep( 250 ); break;
           
        case 56: system( "cls" );
            cout << endl <<
            "    7 [8] 9 " << endl <<
            "    4  5  6 " << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 8; test++;
            Sleep( 250 ); break;
           
        case 57: system( "cls" );
            cout << endl <<
            "    7  8 [9]" << endl <<
            "    4  5  6 " << endl <<
            "    1  2  3 " << endl <<
            "    +  0  - " << endl <<
            endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
            numer[ test2 ] = 9; test++;
            Sleep( 250 ); break;
           
            default: Sleep( 250 ); break;
        };
    } while( suma.zero() != 1 ); // Brak pomysłu na rozwiązanie
   
    system( "cls" );
   
    cout << endl <<
    "    7  8  9 " << endl <<
    "    4  5  6 " << endl <<
    "    1  2  3 " << endl <<
    "    +  0  - " << endl;
    cout << endl << "   " << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << endl;
    cout << endl << "   " << suma.zero() << suma.jeden() << suma.dwa() << suma.trzy() << suma.cztery() << suma.piec() << suma.szesc() << suma.siedem() << suma.osiem();
   
   
    wynik:
    plik << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << "   ";
    plik << numer[ 8 ] << numer[ 0 ] << numer[ 7 ] << numer[ 1 ] << numer[ 6 ] << numer[ 2 ] << numer[ 5 ] << numer[ 3 ] << numer[ 4 ] << "   ";
    plik << numer[ 8 ] << numer[ 7 ] << numer[ 6 ] << numer[ 5 ] << numer[ 4 ] << numer[ 3 ] << numer[ 2 ] << numer[ 1 ] << numer[ 0 ] << "   ";
    plik << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << "   ";
    plik << numer[ 8 ] << numer[ 0 ] << numer[ 7 ] << numer[ 1 ] << numer[ 6 ] << numer[ 2 ] << numer[ 5 ] << numer[ 3 ] << numer[ 4 ] << "   ";
    plik << numer[ 8 ] << numer[ 7 ] << numer[ 6 ] << numer[ 5 ] << numer[ 4 ] << numer[ 3 ] << numer[ 2 ] << numer[ 1 ] << numer[ 0 ] << "   ";
    plik << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << "   ";
    plik << numer[ 8 ] << numer[ 0 ] << numer[ 7 ] << numer[ 1 ] << numer[ 6 ] << numer[ 2 ] << numer[ 5 ] << numer[ 3 ] << numer[ 4 ] << "   ";
    plik << numer[ 8 ] << numer[ 7 ] << numer[ 6 ] << numer[ 5 ] << numer[ 4 ] << numer[ 3 ] << numer[ 2 ] << numer[ 1 ] << numer[ 0 ] << "   ";
    plik << numer[ 0 ] << numer[ 1 ] << numer[ 2 ] << numer[ 3 ] << numer[ 4 ] << numer[ 5 ] << numer[ 6 ] << numer[ 7 ] << numer[ 8 ] << "   ";
    plik << numer[ 8 ] << numer[ 0 ] << numer[ 7 ] << numer[ 1 ] << numer[ 6 ] << numer[ 2 ] << numer[ 5 ] << numer[ 3 ] << numer[ 4 ] << "   ";
    plik << numer[ 8 ] << numer[ 7 ] << numer[ 6 ] << numer[ 5 ] << numer[ 4 ] << numer[ 3 ] << numer[ 2 ] << numer[ 1 ] << numer[ 0 ] << endl;
    cout << endl << "   ---------" << endl;
    plik.close();
    Sleep( 500 );
    koniec:
    return( 0 );
}

Chodzi mi o to żeby program kończył losowanie gdy wszystkie pozycje [0/1] zostaną zamienione na [1] i chciałęm zapytać czy można ująć spełnienie wszystkich warunków bo gdy wpisuje
} while( suma.zero() != 1 && suma.jeden() != 1 && suma.dwa() != 1 && suma.trzy() != 1 && suma.cztery() != 1 && suma.piec() != 1 && suma.szesc() != 1 && suma.siedem() != 1 && suma.osiem() != 1 );
program kończy losowanie po wpisaniu pierwszej liczby. Proszę o pomoc i z góry dzięki.
P-35157
m4tx
» 2011-07-02 11:46:55
Możesz dać do...while(1), a tego fora zaraz przed końcem pętli :)

edit: OMG, żeby forum po kliknięciu w Napisz nową wiadomość edytowało starą to naprawdę... Kurde, co to jest?!
P-35158
Johnny
Temat założony przez niniejszego użytkownika
» 2011-07-02 12:07:22
Mało ogarniam to 3 co napisałeś bo nie za bardzo wiem gdzie mam umieścić tego ifa. Btw to ma być funkcja [while] a nie [for] :]

Teraz to to mi znikło co pisałeś ;/ ale nie moge dać tego na koniec bo to jest połączenie pętli [do] z [switch-case] i nie mam jak tam tego wepchnąć ;D
P-35159
m4tx
» 2011-07-02 12:25:42
Więc tak:
Zamiast całej klasy daj takie coś:
C/C++
bool Sprawdz( int i )
{
    if( numer[ i ] == 0 )
         return( 0 );
    else if( numer[ i ] > 0 )
         return( 1 );
   
}

Zamiast do...while(warunek) daj
C/C++
do {[ costam, costam ]
    for( int i = 0; i < 9; i++ )
    if( Sprawdz( i ) != 1 )
         continue;
    else if( i == 8 )
         break;
   
} while( 1 );
P-35161
Johnny
Temat założony przez niniejszego użytkownika
» 2011-07-02 12:32:12
Nie, nie działa, program po zamienieniu wszystkich [0] na ciczby [0 < x > 10] dalej je zamienia. Jednakże program się skompilował ;D
P-35162
m4tx
» 2011-07-02 12:38:27
OK, już wiem. To powinno zaworczyć:
C/C++
bool exit = false;
do {[ costam, costam ]
    for( int i = 0; i < 9; i++ )
    if( Sprawdz( i ) != 1 )
         continue;
    else if( i == 8 )
         exit = true;
   
} while( !exit );
P-35163
Johnny
Temat założony przez niniejszego użytkownika
» 2011-07-02 13:37:09
yyyy ... teraz sprawa wygląda nieco inaczej bo kompilator sie buntuje przy właśnie [ bool exit = false; ]

Compiling: C:\Users\Am\Desktop\C++\Koder.cpp
C:\Users\Am\Desktop\C++\Koder.cpp:14: error: 'bool exit' redeclared as different kind of symbol
c:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/../../../../include/stdlib.h:368: error: previous declaration of 'void exit(int)'
C:\Users\Am\Desktop\C++\Koder.cpp: In function 'int main()':
C:\Users\Am\Desktop\C++\Koder.cpp:160: error: assignment of function 'void exit(int)'
C:\Users\Am\Desktop\C++\Koder.cpp:160: error: cannot convert 'bool' to 'void(int)' in assignment
Process terminated with status 1 (0 minutes, 1 seconds)
4 errors, 0 warnings
 

czasem tego nie ogarniam :D
P-35172
SeaMonster131
» 2011-07-02 13:45:53
ponieważ istnieje taka funkcja jak
void exit( int )
, a jak wiadomo nazwy nie mogą się powtarzać :)
P-35174
« 1 » 2 3
  Strona 1 z 3 Następna strona