Spełnienie warunku wielokrotnego (czy jak to sie tam nazywa).
Ostatnio zmodyfikowano 2011-07-02 16:35
| 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()] :
 #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 );
 
 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. | 
|  | 
| 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?!
 | 
|  | 
| 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
 | 
|  | 
| m4tx | » 2011-07-02 12:25:42 Więc tak: Zamiast całej klasy daj takie coś:  bool Sprawdz( int i ){
 if( numer[ i ] == 0 )
 return( 0 );
 else if( numer[ i ] > 0 )
 return( 1 );
 
 }
Zamiast do...while(warunek) daj  do {[ costam, costam ]for( int i = 0; i < 9; i++ )
 if( Sprawdz( i ) != 1 )
 continue;
 else if( i == 8 )
 break;
 
 } while( 1 );
 | 
|  | 
| 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 | 
|  | 
| m4tx | » 2011-07-02 12:38:27 OK, już wiem. To powinno zaworczyć: 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 );
 | 
|  | 
| 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 | 
|  | 
| SeaMonster131 | » 2011-07-02 13:45:53 ponieważ istnieje taka funkcja jak  void exit( int ) , a jak wiadomo nazwy nie mogą się powtarzać :) | 
|  | 
| « 1 »  2 3 |