Купил себе MSVS 2005 professional edition (не бета) и пытаюсь там запустить программу (обычную консольную) написанную под билдер и работавшую там. кое что пришлось изменить, ошибок кода не выдаёт но не работает всё равно. ошибка с дебаггером какая то походу. не подскажете что это может быть? | Код | //--------------------------------------------------------------------------- #include <iostream> using namespace std; #include <conio.h> #include <windows.h> unsigned long A=0; unsigned long B=0; int bit; bool check (int bit1) { if (bit1>31) { cout<<"Maksimal'noe chislo eto 31."<<endl<<endl; return true; } else return false; } void set_bit( unsigned long& data, long n ) { if( n>=0 ) data |= (1<< n); }
void reset_bit( unsigned long& data, long n ) { if( n>=0 ) data &= ~(1<< n); }
void flip_bit( unsigned long& data, long n ) { if( n>=0 ) data ^= (1<< n); }
bool test_bit( unsigned long data, long n ) { return ( n<0 ? false : (data>>n)&1 ); }
void print ( unsigned long& data1, unsigned long& data2) { cout<<endl<<"---------------------------------------------------------------------------"<<endl; cout<<"Informatsiya o mnozhestvah:"<<endl; cout<<"---------------------------------------------------------------------------"<<endl; cout<<"Mnozhestvo A: "; for (int i=0; i<32; i++) if( test_bit(data1, i) ) cout <<i<<" "; cout<<endl; cout<<"Mnozhestvo B: "; for (int i=0; i<32; i++) if( test_bit(data2, i) ) cout <<i<<" "; cout<<endl; cout<<"Ob'edinenie A i B: "; unsigned long f1 = data1 | data2; for (int i=0; i<32; i++) if( test_bit(f1, i) ) cout <<i<<" "; cout<<endl; cout<<"Peresechenie A i B: "; unsigned long f2 = data1 & data2; for (int i=0; i<32; i++) if( test_bit(f2, i) ) cout <<i<<" "; cout<<endl; cout<<"Raznost A i B: "; unsigned long f3 = data1 & ~data2; for (int i=0; i<32; i++) if( test_bit(f3, i) ) cout <<i<<" "; cout<<endl; cout<<"Raznost B i A: "; unsigned long f4 = data2 & ~data1; for (int i=0; i<32; i++) if( test_bit(f4, i) ) cout <<i<<" "; cout<<endl; cout<<"Simmetricheskaya raznost A i B: "; unsigned long f5 = data1 ^ data2; for (int i=0; i<32; i++) if( test_bit(f5, i) ) cout <<i<<" "; cout<<endl; cout<<"Proverka A i B na ravenstvo: "; if(data1==data2) cout<<"mnozhestva ravni"; else cout<<"mnozhestva ne ravni"; cout<<endl; cout<<"Proverka na podmnozhestvo: A v B: "; if( !(data1 & ~data2) ) cout << "da"; else cout<<"net"; cout<<endl; cout<<"Proverka na podmnozhestvo: B v A: "; if( !(data2 & ~data1) ) cout << "da"; else cout<<"net"; cout<<endl; cout<<"Proverka ravenstva: (A-B)+(A*B)=A: "; unsigned long f6 = (data1 & ~data2)|(data1 & data2); if( f6==data1 ) cout << "da"; else cout<<"net"; cout<<endl; cout<<"Dopolnenie A do universal'nogo: "; unsigned long f7 = ~data1; for (int i=0; i<32; i++) if( test_bit(f7, i) ) cout <<i<<" "; cout<<endl; cout<<"Dopolnenie B do universal'nogo: "; unsigned long f8 = ~data2; for (int i=0; i<32; i++) if( test_bit(f8, i) ) cout <<i<<" "; cout<<endl; bool log1=true; for (int i=0; i<32; i++) if( test_bit(data1, i) && i%2==0) log1=true; else if ( test_bit(data1, i) && i%2!=0) { log1=false; break; } if (log1) cout<<"(Variant 3): Mnozhestvo A soderzhit tolko chotnie chisla"; else cout<<"(Variant 3): Mnozhestvo A soderzhit ne tolko chotnie chisla / ne soderzhit chotnih"; cout<<endl; bool log2=true; for (int i=0; i<32; i++) if( test_bit(data2, i) && i%2==0) log2=true; else if ( test_bit(data2, i) && i%2!=0) { log2=false; break; } if (log2) cout<<"(Variant 3): Mnozhestvo B soderzhit tolko chotnie chisla"; else cout<<"(Variant 3): Mnozhestvo B soderzhit ne tolko chotnie chisla / ne soderzhit chotnih"; cout<<endl<<"---------------------------------------------------------------------------"<<endl<<endl; }
//---------------------------------------------------------------------------
void main(int argc, char* argv[]) { int sw=0; while( sw != 0 ) { while (!_kbhit()) system("cls"); cout<<"M E N U"<<endl<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl; cout<<"1.Dobavit' elementi k A."<<endl; cout<<"2.Dobavit' elementi k B."<<endl; cout<<"3.Udalit elementi iz A."<<endl; cout<<"4.Udalit elementi iz B."<<endl; cout<<"5.Ochistit A."<<endl; cout<<"6.Ochistit B."<<endl; cout<<"0.Exit"<<endl; cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl; cout <<endl<<"Vash vibor: "; cin >> sw; switch( sw ){ case 1: { cout<<"Kakoy element vi hotite dobavit' v A?: "; cin>>bit; if (check (bit)) break; if (test_bit (A,bit)) cout<<"Takoy element uzhe est."<<endl; else set_bit (A,bit); print (A,B); } break; case 2: { cout<<"Kakoy element vi hotite dobavit' v B?: "; cin>>bit; if (check (bit)) break; if (test_bit (B,bit)) cout<<"Takoy element uzhe est."<<endl; else set_bit (B,bit); print (A,B); } break; case 3: { cout<<"Kakoy element vi hotite udalit' iz A?: "; cin>>bit; if (check (bit)) break; if (!test_bit (A,bit)) cout<<"Takogo elementa net."<<endl; else reset_bit (A,bit); print (A,B); } break; case 4: { cout<<"Kakoy element vi hotite udalit' iz B?: "; cin>>bit; if (check (bit)) break; if (!test_bit (B,bit)) cout<<"Takogo elementa net."<<endl; else reset_bit (B,bit); print (A,B); } break; case 5: { for (int i=0;i<32;i++) if(test_bit (A,i)) reset_bit (A,i); cout<<"Mnozhestvo ochisheno."<<endl; print (A,B); } break; case 6: { for (int i=0;i<32;i++) if(test_bit (B,i)) reset_bit (B,i); cout<<"Mnozhestvo ochisheno."<<endl; print (A,B); } break; case 0: break; default: cout<<"Vvedite verniy punkt menu!"<<endl<<endl; break; } } } //--
|
это прога. | Код | 'ewr.exe': Loaded 'C:\Documents and Settings\Student\Мои документы\Visual Studio 2005\Projects\ewr\Debug\ewr.exe', Symbols loaded. 'ewr.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded. 'ewr.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded. 'ewr.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcp80d.dll', Symbols loaded. 'ewr.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded. 'ewr.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded. The program '[3636] ewr.exe: Native' has exited with code 0 (0x0).
|
А вот это он выдаёт после компилляции. чёрное окошко только мелькает и всё хотя должна ждать нажатия кнопки и выдавать меню. Надеюсь на помощь) Это сообщение отредактировал(а) OberonTSM - 7.12.2006, 21:17
|