Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Из с++ buildera в visualstudio.net, как это сделать? 
:(
    Опции темы
Гость_Poleno
Дата 4.1.2006, 10:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У мну проблемка не получается переделать програмку из билдера в студию,
не знаю какие .h builder'a на что менять????? +(

  Вверх
azesmcar
Дата 4.1.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Ничего себе запросы...

так, начнем сначала...
Во первыx какой код начнем с этого. Если в билдере программа на VCL написано тогда не отделаешся. Заново писать весь код на Visual C++. Если просто на чистом С/С++ написано (в чем я очень сильно сомневаюсь) тогда особо ничего менять не надо...должен компилироваться, не компилируется? ошибки в студиу...
А если у тебя VCL то лучше забудь об этом.
PM   Вверх
Poleno
Дата 4.1.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Код

#include <vcl.h>
#include <iostream.h>
#include <cstdlib.h>
int n;                                                        //Êîëè÷åñòâî ëèíèé
int *line;                                                    //Óêàçàòåëü íà ìàññèâ çàíÿòûõ ëèíèé

struct sost{                                                  //Îïèñàíèå îäíîé ÿ÷åéêè êàðòû
 bool zan;
 bool chis;
 bool vip;
 int c;
};

class karta{
 private:
  sost (*mas)[9];                                             //Óêàçàòåëü íà ìàññèâ
  int r;                                                      //Ñ÷¸ò÷èê äëÿ ìàññèâà çàíÿòûõ ëèíèé
 public:
  karta (){                                                   //Ïóñòîé êîíñòðóêòîð  (ñîçäàíèå áî÷îíêà)
   mas = new sost[1][9];                                      //Âûäåëÿåì ïàìÿòü ïîä îäíó ñòðî÷êó
   mas[0][0].chis=true;
   mas[0][0].zan=true;
  }
  karta (int n);                                              //Èíèöèàëèçèðóþùèé êîíñòðóêòîð
  karta(const karta&);                                        //Êîïèðóþùèé êîíñòðóêòîð
  friend ostream &operator << (ostream&, const karta&);
  friend istream &operator >> (istream&, karta&);
  friend int proverkasovp (karta&, karta&);
  karta& operator ()(int, int);
  karta& operator ()(int, int, int);
  friend int proverkazan (karta&);
  karta& operator -- (int);
  friend void outputnevip (karta&k1);
  karta& operator =(const karta&);
  ~karta(){
   if (n!=0)
    delete[] mas;
  }
};

karta::karta (int n){                                         //Brutal construKtor!!!
 mas = new sost[n][9];                                        //Âûäåëÿåì ïàìÿòü ïîä n ñòðîê
 for(int str=0; str<n; str++){                                //Öèêë ïî âñåì ñòðîêàì
  for(int i=0; i<9; i++){                                     //Çàäà¸ì âñå êëåòêè êàê íåçàíÿòûå è íåçàïîëíåííûå
   mas[str][i].zan=false;
   mas[str][i].chis=false;
  }
  int pos[5];                                                 //Ìàññèâ çíà÷åíèé "çàíÿòà ëè êëåòêà ÷èñëîì èëè íåò" (íîìåðà êëåòîê)
  for(int g=0; g<5; g++){                                     //Ïðîâåðêà íà çàíÿòîñòü êëåòêè ÷èñëîì
   pos[g]=rand()%9;
   for(int gg=0; gg<g; gg++)                                  //Ïðîâåðêà íåò ëè óæå êëåòêè ñ òàêèì íîìåðîì (êîãäà ãåíåðèðóþòñÿ íîìåðà êëåòîê, â êîòîðûå áóäóò âïèñàíû ÷èñëà, ìîãóò âñòðåòèòüñÿ ïîâòîðåíèÿ)
    if(pos[g]==pos[gg]){
     g--;
     break;
    }
  }
  cout<<"Nomera yacheek, kotorie budut zapolnyat'sya v stroke "<<str+1<<": ";
  for(int g=0; g<5; g++)
   cout<<pos[g]+1<<" ";
  cout<<endl;
  for(int i=0; i<9; i++)                                      //Èä¸ì ïî âñåì êëåòêàì
   for(int j=0; j<5; j++)                                     //Óâåëè÷èâàåì ñ÷¸ò÷èê äëÿ ìàññèâà çàíÿòûõ êëåòîê
    if(i==pos[j]){                                            //Åñëè êëåòêà ïîäõîäèò äëÿ çàïèñè (çàíÿòà), òî çàïèñûâàåì â í帠sost
     mas[str][i].chis=true;
     mas[str][i].zan=false;
     mas[str][i].c=rand()%99;
     for(int q=0; q<j; q++)                                   //Óìåíüøàåì âåðîÿòíîñòü âûïàäåíèÿ äâóõ îäèíàêîâûõ ÷èñåë
      if(mas[str][q].c==mas[str][i].c){
       mas[str][i].c=rand()%99;
      }
    }
  for(int i=0; i<9; i++)                                      //Çàäà¸ì çíà÷åíèÿ ïóñòûõ êëåòîê êàê -1, ÷òîáû íå ìåøàëèñü, ñöóêè!
   if(mas[str][i].chis==false)
    mas[str][i].c=-1;
 }
}

karta& karta::operator =(const karta &k1){
 if(this!=&k1){                                              //Ïðîâåðêà ñèòóàöèè x = x
  delete[] mas;
  mas=NULL;
  mas = new sost[n][9];
  for(int str=0; str<n; str++)
   for(int i=0; i<9; i++){
    mas[str][i].chis = k1.mas[str][i].chis;
    mas[str][i].zan = k1.mas[str][i].zan;
    mas[str][i].c = k1.mas[str][i].c;
   }
 }
 return *this;
}

karta::karta(const karta &k1){
 mas = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++){
   mas[str][i].chis = k1.mas[str][i].chis;
   mas[str][i].zan = k1.mas[str][i].zan;
   mas[str][i].c = k1.mas[str][i].c;
  }
}

istream &operator >> (istream& input, karta& k1){             //Ââîä áî÷îíêà ñ êëàâèàòóðû
 input>>k1.mas[0][0].c;
 return input;
}

ostream &operator << (ostream& output, const karta& k1){      //Âûâîä íà ýêðàí (ñ ïîíòàìè:))
 int w=0;
 cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
 for(int str=0; str<n; str++){
  w=0;
  for(int i=0; i<9; i++)
   if (k1.mas[str][i].c==-1)
    w++;
  if(w!=9)
   for(int i=0; i<9; i++)
    if(k1.mas[str][i].chis==true)
     output<<k1.mas[str][i].c<<" | ";
    else cout<<"--"<<" | ";
  cout<<endl<<"---------------------------------------------------------------------------"<<endl;
 }
 cout<<"---------------------------------------------------------------------------"<<endl;
 return output;
}

karta& karta::operator ()(int str, int i, int v){             //Òðåòèé int ÷òîáû òîëüêî îòëè÷àëîñü îò äðóãèõ ïåðåãðóæåííûõ ñêîáîê
 mas[str][i].zan=true;
 return *this;
}

karta& karta::operator ()(int lin, int kl){
 if(lin<=n && lin>=1 && kl<=9 && kl>=1){
  lin--;
  kl--;
  if(mas[lin][kl].chis==false && mas[lin][kl].zan==false)
   cout<<"Kletka pusta."<<endl<<endl;
  if(mas[lin][kl].chis==true && mas[lin][kl].zan==false)
   cout<<"Kletka svobodna s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
  if(mas[lin][kl].chis==true && mas[lin][kl].zan==true)
   cout<<"Kletka zanyata s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
 }
 else cout<<"Vvedite korrektnie nomera yacheyki i linii!"<<endl<<endl;
 return *this;
}

int proverkasovp (karta& k1, karta& boch1){                   //Ïðîâåðêà íà ñîâïàäåíèÿ ÿ÷åéêè êàðòû è áî÷îíêà, âîçâðàùàåò êîë÷åñòâî ñîâïàäåíèé
 int sovp=0;
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++)
   if(k1.mas[str][i].c==boch1.mas[0][0].c){
    sovp++;
    k1(str,i,0);
   }
 return sovp;
}

int proverkazan (karta &k1){
 int ctr=0;                                                   //Ñ÷¸ò÷èê çàíÿòûõ êëåòîê
 k1.r=0;
 for(int str=0; str<n; str++){
  ctr=0;
  for(int i=0; i<9; i++)
   if(k1.mas[str][i].zan==true)
    ctr++;
  if (ctr==5){
//   cout<<"Liniya "<<str+1<<" polnost'u zanyata! (znacheniya vseh yacheek sovpadali s bochonkami)"<<endl;
   line[k1.r]=str;
   k1.r++;
  }
//  cout<<"Schyotchik dlya stroki "<<str+1<<": "<<ctr<<endl;  //Äëÿ îòëàäêè. Ïðîâåðÿåì êîãäà ñ÷¸ò÷èê áóäåò ðàâåí 5
 }
 return k1.r;
}

karta& karta::operator -- (int g){
 cout<<"Udalenie polnost'u zanyatih liniy."<<endl<<endl;
 sost (*tmp)[9];
 tmp = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++){
   tmp[str][i].chis = mas[str][i].chis;
   tmp[str][i].zan = mas[str][i].zan;
   tmp[str][i].c = mas[str][i].c;
  }
 delete[] mas;
 mas = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int q=0; q<r; q++)
   if (line[q]!=str)
    for(int i=0; i<9; i++){
     mas[str][i].chis = tmp[str][i].chis;
     mas[str][i].zan = tmp[str][i].zan;
     mas[str][i].c = tmp[str][i].c;
    }
   else{
    for(int i=0; i<9; i++){
     mas[str][i].c=-1;
     mas[str][i].zan=false;                                   //Äëÿ ìàññèâà çàïîëíåííûõ ñòðîê, òàê êàê ïðè ïðîâåðêå çàïîëíåííîñòè óæå çàïîëíåííûå ñòðîêè óæå íå íóæíû (à îíè ïðîâåðÿþòñÿ ïî zan), òî äåëàåì çíà÷åíèå zan ëîæíûì
     mas[str][i].chis=false;
    }
    str++;
   }
 return *this;
}

void outputnevip (karta&k1){
 if (n!=0){
  cout<<endl;
  for(int str=0; str<n; str++){
   for(int i=0; i<9; i++)
     if(k1.mas[str][i].zan==false && k1.mas[str][i].chis==true)
      cout<<k1.mas[str][i].c<<" ";
   cout<<endl;
  }
 }
 else cout<<endl<<"Vi ne sozdali kartu! Nazhmite '1'"<<endl;
 cout<<endl;
}

//---------------------------------------------------------------------------

int main(int argc, char* argv[]){
 int sw,sovp,i,r;
 karta k, boch, ish;
 cout<<".:L_O_+_O:. (Ver 2.0 dinamic edition)"<<endl;
 while(sw!=0){
  cout<<"M E N U"<<endl<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
  cout<<"1.Sozdat' kartu."<<endl;
  cout<<"2.Vibrat' bochonok i pokazat' kolichestvo sovpadeniy."<<endl;
  cout<<"3.Proverit' sostoyanie yacheyki."<<endl;
  cout<<"4.Opredelit' sostoyanie karti i esli est' udalit' polnost'u zanyatie linii."<<endl;
  cout<<"5.Pokazat' nevipavshie chisla."<<endl;
  cout<<"6.Vivesti ishodnuyu karty."<<endl;
  cout<<"0.Vihod."<<endl;
  cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
  cout<<endl<<"Vash vibor: ";
  cin>>sw;
  cout<<endl;
  switch(sw){
   default:
    cout<<"Oshibka"<<endl<<endl;
   break;
   case 1:{
    cout<<"Sozdanie karti."<<endl;
    cout<<"Vvedite kolichestvo strok (ot 1 do 10): ";
    cin>>n;
    line = new int[n];
    cout<<endl;
    if (n<=10 && n>=1){
     k=karta (n);
     ish = karta (k);                                      // Êîïèðóþùèé êîíñòðóêòîð
     cout<<endl<<"Karta sozdana!"<<endl<<endl;
     cout<<k<<endl;
    }
    else cout<<"Kolichestvo liniy dolzhno bit' bolshe 1 i men'she 10!"<<endl<<endl;
   };
   break;
   case 2:{
    cout<<k;
    cout<<endl<<"Vibor bochonka.";
    if(n==0)
     cout<<endl<<"Sperva sozdayte kartu! (nazhmite 1)"<<endl<<endl;
    else{
     cout<<endl<<"Vvedite nomer bochonka: ";
     boch=karta();
     cin>>boch;
     sovp=proverkasovp(k,boch);
     cout<<"Kolichestvo sovpadeniy: "<<sovp<<endl<<endl;
    }
   };
   break;
   case 3:{
    int lin,kl;
    cout<<k;
    cout<<endl<<"Opredelenie sostoyaniya yacheyki.";
    if(n==0)
     cout<<endl<<"Sozdayte kartu! (nazhmite 1)"<<endl<<endl;
    else{
     cout<<endl<<"Vvedite nomer linii: ";
     cin>>lin;
     cout<<"Vvedite nomer kletki: ";
     cin>>kl;
     k(lin,kl);
    }
    };
   break;
   case 4:{
    cout<<k;
    cout<<endl<<"Viyavlenie polnost'u zanyatih liniy.";
    if(n==0)
     cout<<endl<<"Chtobi proverit' est' li v karte zanyatie linii, nuzhna sama karta! Nazhmite 1!"<<endl<<endl;
    else{
     r=proverkazan(k);
     if (r>0)
      for(int q=0; q<r; q++)
       cout<<endl<<"Polnost'u zanyata liniya "<<line[q]+1;
     else cout<<endl<<"Polnost'u zanyatih liniy net!";
     cout<<endl<<endl;
     if(r>0){
      k--;
      cout<<k<<endl;
      for(int q=0; q<r; q++)
       line[q]=0;                                            
      r=0;
     }
    }
   };
   break;
   case 5:{
    cout<<k;
    cout<<endl<<"Matrica nevipavshih chisel.";
    outputnevip(k);
    };
   break;
   case 6:{
   cout<<"Ishodnaya karta."<<endl;
   if(n==0)
    cout<<"Sperva kartu nado sozdat'! (Nazhmite 1)"<<endl<<endl;
   else cout<<ish<<endl;
   }
   break;
   case 0:
   break;
  }
 }
 return 0;
}
//---------------------------------------------------------------------------


Это совсем невозможно или возможно но с превеликим трудом?
Добавлено @ 12:55
простите чё т кривова-то
PM MAIL   Вверх
Poleno
Дата 4.1.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Код

#include <vcl.h>
#include <iostream.h>
#include <cstdlib.h>
int n;                                                        //Êîëè÷åñòâî ëèíèé
int *line;                                                    //Óêàçàòåëü íà ìàññèâ çàíÿòûõ ëèíèé

struct sost{                                                  //Îïèñàíèå îäíîé ÿ÷åéêè êàðòû
 bool zan;
 bool chis;
 bool vip;
 int c;
};

class karta{
 private:
  sost (*mas)[9];                                             //Óêàçàòåëü íà ìàññèâ
  int r;                                                      //Ñ÷¸ò÷èê äëÿ ìàññèâà çàíÿòûõ ëèíèé
 public:
  karta (){                                                   //Ïóñòîé êîíñòðóêòîð  (ñîçäàíèå áî÷îíêà)
   mas = new sost[1][9];                                      //Âûäåëÿåì ïàìÿòü ïîä îäíó ñòðî÷êó
   mas[0][0].chis=true;
   mas[0][0].zan=true;
  }
  karta (int n);                                              //Èíèöèàëèçèðóþùèé êîíñòðóêòîð
  karta(const karta&);                                        //Êîïèðóþùèé êîíñòðóêòîð
  friend ostream &operator << (ostream&, const karta&);
  friend istream &operator >> (istream&, karta&);
  friend int proverkasovp (karta&, karta&);
  karta& operator ()(int, int);
  karta& operator ()(int, int, int);
  friend int proverkazan (karta&);
  karta& operator -- (int);
  friend void outputnevip (karta&k1);
  karta& operator =(const karta&);
  ~karta(){
   if (n!=0)
    delete[] mas;
  }
};

karta::karta (int n){                                         //Brutal construKtor!!!
 mas = new sost[n][9];                                        //Âûäåëÿåì ïàìÿòü ïîä n ñòðîê
 for(int str=0; str<n; str++){                                //Öèêë ïî âñåì ñòðîêàì
  for(int i=0; i<9; i++){                                     //Çàäà¸ì âñå êëåòêè êàê íåçàíÿòûå è íåçàïîëíåííûå
   mas[str][i].zan=false;
   mas[str][i].chis=false;
  }
  int pos[5];                                                 //Ìàññèâ çíà÷åíèé "çàíÿòà ëè êëåòêà ÷èñëîì èëè íåò" (íîìåðà êëåòîê)
  for(int g=0; g<5; g++){                                     //Ïðîâåðêà íà çàíÿòîñòü êëåòêè ÷èñëîì
   pos[g]=rand()%9;
   for(int gg=0; gg<g; gg++)                                  //Ïðîâåðêà íåò ëè óæå êëåòêè ñ òàêèì íîìåðîì (êîãäà ãåíåðèðóþòñÿ íîìåðà êëåòîê, â êîòîðûå áóäóò âïèñàíû ÷èñëà, ìîãóò âñòðåòèòüñÿ ïîâòîðåíèÿ)
    if(pos[g]==pos[gg]){
     g--;
     break;
    }
  }
  cout<<"Nomera yacheek, kotorie budut zapolnyat'sya v stroke "<<str+1<<": ";
  for(int g=0; g<5; g++)
   cout<<pos[g]+1<<" ";
  cout<<endl;
  for(int i=0; i<9; i++)                                      //Èä¸ì ïî âñåì êëåòêàì
   for(int j=0; j<5; j++)                                     //Óâåëè÷èâàåì ñ÷¸ò÷èê äëÿ ìàññèâà çàíÿòûõ êëåòîê
    if(i==pos[j]){                                            //Åñëè êëåòêà ïîäõîäèò äëÿ çàïèñè (çàíÿòà), òî çàïèñûâàåì â í帠sost
     mas[str][i].chis=true;
     mas[str][i].zan=false;
     mas[str][i].c=rand()%99;
     for(int q=0; q<j; q++)                                   //Óìåíüøàåì âåðîÿòíîñòü âûïàäåíèÿ äâóõ îäèíàêîâûõ ÷èñåë
      if(mas[str][q].c==mas[str][i].c){
       mas[str][i].c=rand()%99;
      }
    }
  for(int i=0; i<9; i++)                                      //Çàäà¸ì çíà÷åíèÿ ïóñòûõ êëåòîê êàê -1, ÷òîáû íå ìåøàëèñü, ñöóêè!
   if(mas[str][i].chis==false)
    mas[str][i].c=-1;
 }
}

karta& karta::operator =(const karta &k1){
 if(this!=&k1){                                              //Ïðîâåðêà ñèòóàöèè x = x
  delete[] mas;
  mas=NULL;
  mas = new sost[n][9];
  for(int str=0; str<n; str++)
   for(int i=0; i<9; i++){
    mas[str][i].chis = k1.mas[str][i].chis;
    mas[str][i].zan = k1.mas[str][i].zan;
    mas[str][i].c = k1.mas[str][i].c;
   }
 }
 return *this;
}

karta::karta(const karta &k1){
 mas = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++){
   mas[str][i].chis = k1.mas[str][i].chis;
   mas[str][i].zan = k1.mas[str][i].zan;
   mas[str][i].c = k1.mas[str][i].c;
  }
}

istream &operator >> (istream& input, karta& k1){             //Ââîä áî÷îíêà ñ êëàâèàòóðû
 input>>k1.mas[0][0].c;
 return input;
}

ostream &operator << (ostream& output, const karta& k1){      //Âûâîä íà ýêðàí (ñ ïîíòàìè:))
 int w=0;
 cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
 for(int str=0; str<n; str++){
  w=0;
  for(int i=0; i<9; i++)
   if (k1.mas[str][i].c==-1)
    w++;
  if(w!=9)
   for(int i=0; i<9; i++)
    if(k1.mas[str][i].chis==true)
     output<<k1.mas[str][i].c<<" | ";
    else cout<<"--"<<" | ";
  cout<<endl<<"---------------------------------------------------------------------------"<<endl;
 }
 cout<<"---------------------------------------------------------------------------"<<endl;
 return output;
}

karta& karta::operator ()(int str, int i, int v){             //Òðåòèé int ÷òîáû òîëüêî îòëè÷àëîñü îò äðóãèõ ïåðåãðóæåííûõ ñêîáîê
 mas[str][i].zan=true;
 return *this;
}

karta& karta::operator ()(int lin, int kl){
 if(lin<=n && lin>=1 && kl<=9 && kl>=1){
  lin--;
  kl--;
  if(mas[lin][kl].chis==false && mas[lin][kl].zan==false)
   cout<<"Kletka pusta."<<endl<<endl;
  if(mas[lin][kl].chis==true && mas[lin][kl].zan==false)
   cout<<"Kletka svobodna s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
  if(mas[lin][kl].chis==true && mas[lin][kl].zan==true)
   cout<<"Kletka zanyata s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
 }
 else cout<<"Vvedite korrektnie nomera yacheyki i linii!"<<endl<<endl;
 return *this;
}

int proverkasovp (karta& k1, karta& boch1){                   //Ïðîâåðêà íà ñîâïàäåíèÿ ÿ÷åéêè êàðòû è áî÷îíêà, âîçâðàùàåò êîë÷åñòâî ñîâïàäåíèé
 int sovp=0;
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++)
   if(k1.mas[str][i].c==boch1.mas[0][0].c){
    sovp++;
    k1(str,i,0);
   }
 return sovp;
}

int proverkazan (karta &k1){
 int ctr=0;                                                   //Ñ÷¸ò÷èê çàíÿòûõ êëåòîê
 k1.r=0;
 for(int str=0; str<n; str++){
  ctr=0;
  for(int i=0; i<9; i++)
   if(k1.mas[str][i].zan==true)
    ctr++;
  if (ctr==5){
//   cout<<"Liniya "<<str+1<<" polnost'u zanyata! (znacheniya vseh yacheek sovpadali s bochonkami)"<<endl;
   line[k1.r]=str;
   k1.r++;
  }
//  cout<<"Schyotchik dlya stroki "<<str+1<<": "<<ctr<<endl;  //Äëÿ îòëàäêè. Ïðîâåðÿåì êîãäà ñ÷¸ò÷èê áóäåò ðàâåí 5
 }
 return k1.r;
}

karta& karta::operator -- (int g){
 cout<<"Udalenie polnost'u zanyatih liniy."<<endl<<endl;
 sost (*tmp)[9];
 tmp = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int i=0; i<9; i++){
   tmp[str][i].chis = mas[str][i].chis;
   tmp[str][i].zan = mas[str][i].zan;
   tmp[str][i].c = mas[str][i].c;
  }
 delete[] mas;
 mas = new sost[n][9];
 for(int str=0; str<n; str++)
  for(int q=0; q<r; q++)
   if (line[q]!=str)
    for(int i=0; i<9; i++){
     mas[str][i].chis = tmp[str][i].chis;
     mas[str][i].zan = tmp[str][i].zan;
     mas[str][i].c = tmp[str][i].c;
    }
   else{
    for(int i=0; i<9; i++){
     mas[str][i].c=-1;
     mas[str][i].zan=false;                                   //Äëÿ ìàññèâà çàïîëíåííûõ ñòðîê, òàê êàê ïðè ïðîâåðêå çàïîëíåííîñòè óæå çàïîëíåííûå ñòðîêè óæå íå íóæíû (à îíè ïðîâåðÿþòñÿ ïî zan), òî äåëàåì çíà÷åíèå zan ëîæíûì
     mas[str][i].chis=false;
    }
    str++;
   }
 return *this;
}

void outputnevip (karta&k1){
 if (n!=0){
  cout<<endl;
  for(int str=0; str<n; str++){
   for(int i=0; i<9; i++)
     if(k1.mas[str][i].zan==false && k1.mas[str][i].chis==true)
      cout<<k1.mas[str][i].c<<" ";
   cout<<endl;
  }
 }
 else cout<<endl<<"Vi ne sozdali kartu! Nazhmite '1'"<<endl;
 cout<<endl;
}

//---------------------------------------------------------------------------

int main(int argc, char* argv[]){
 int sw,sovp,i,r;
 karta k, boch, ish;
 cout<<".:L_O_+_O:. (Ver 2.0 dinamic edition)"<<endl;
 while(sw!=0){
  cout<<"M E N U"<<endl<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
  cout<<"1.Sozdat' kartu."<<endl;
  cout<<"2.Vibrat' bochonok i pokazat' kolichestvo sovpadeniy."<<endl;
  cout<<"3.Proverit' sostoyanie yacheyki."<<endl;
  cout<<"4.Opredelit' sostoyanie karti i esli est' udalit' polnost'u zanyatie linii."<<endl;
  cout<<"5.Pokazat' nevipavshie chisla."<<endl;
  cout<<"6.Vivesti ishodnuyu karty."<<endl;
  cout<<"0.Vihod."<<endl;
  cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
  cout<<endl<<"Vash vibor: ";
  cin>>sw;
  cout<<endl;
  switch(sw){
   default:
    cout<<"Oshibka"<<endl<<endl;
   break;
   case 1:{
    cout<<"Sozdanie karti."<<endl;
    cout<<"Vvedite kolichestvo strok (ot 1 do 10): ";
    cin>>n;
    line = new int[n];
    cout<<endl;
    if (n<=10 && n>=1){
     k=karta (n);
     ish = karta (k);                                      // Êîïèðóþùèé êîíñòðóêòîð
     cout<<endl<<"Karta sozdana!"<<endl<<endl;
     cout<<k<<endl;
    }
    else cout<<"Kolichestvo liniy dolzhno bit' bolshe 1 i men'she 10!"<<endl<<endl;
   };
   break;
   case 2:{
    cout<<k;
    cout<<endl<<"Vibor bochonka.";
    if(n==0)
     cout<<endl<<"Sperva sozdayte kartu! (nazhmite 1)"<<endl<<endl;
    else{
     cout<<endl<<"Vvedite nomer bochonka: ";
     boch=karta();
     cin>>boch;
     sovp=proverkasovp(k,boch);
     cout<<"Kolichestvo sovpadeniy: "<<sovp<<endl<<endl;
    }
   };
   break;
   case 3:{
    int lin,kl;
    cout<<k;
    cout<<endl<<"Opredelenie sostoyaniya yacheyki.";
    if(n==0)
     cout<<endl<<"Sozdayte kartu! (nazhmite 1)"<<endl<<endl;
    else{
     cout<<endl<<"Vvedite nomer linii: ";
     cin>>lin;
     cout<<"Vvedite nomer kletki: ";
     cin>>kl;
     k(lin,kl);
    }
    };
   break;
   case 4:{
    cout<<k;
    cout<<endl<<"Viyavlenie polnost'u zanyatih liniy.";
    if(n==0)
     cout<<endl<<"Chtobi proverit' est' li v karte zanyatie linii, nuzhna sama karta! Nazhmite 1!"<<endl<<endl;
    else{
     r=proverkazan(k);
     if (r>0)
      for(int q=0; q<r; q++)
       cout<<endl<<"Polnost'u zanyata liniya "<<line[q]+1;
     else cout<<endl<<"Polnost'u zanyatih liniy net!";
     cout<<endl<<endl;
     if(r>0){
      k--;
      cout<<k<<endl;
      for(int q=0; q<r; q++)
       line[q]=0;                                             //Çàíóëÿåì ìàññèâ çàïîëíåííûõ ñòðîê, ïîòîìó ÷òî èõ áîëüøå íåò è ÷òîáû â ñëåäóþùèé ðàç èõ çíà÷åíèÿ óæå íå âûâîäèëèñü.
      r=0;
     }
    }
   };
   break;
   case 5:{
    cout<<k;
    cout<<endl<<"Matrica nevipavshih chisel.";
    outputnevip(k);
    };
   break;
   case 6:{
   cout<<"Ishodnaya karta."<<endl;
   if(n==0)
    cout<<"Sperva kartu nado sozdat'! (Nazhmite 1)"<<endl<<endl;
   else cout<<ish<<endl;
   }
   break;
   case 0:
   break;
  }
 }
 return 0;
}
//---------------------------------------------------------------------------


Добавлено @ 12:57
прошу прощения руки-крюки
PM MAIL   Вверх
_hunter
Дата 4.1.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



а что изменилось? ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
azesmcar
Дата 4.1.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата
Poleno


Если ты использовал библиотеку VCL которой в Visual Studio нет, то невозможно!
Xотя нет, теоретически все возможно, просто надо будет код переписать заново..
Я что-то не смог прочитать твой код, исправь если не трудно, а то на одной строчке неудобно как то smile

Если xочешь переписать на платформе .NET тогда немного с кодом придется поморочиться...
А так все что связано с компонентами и классами VCL все надо писать самому или менять на аналоги в .NET или MFC. Смотря какую платформу выбрал...
PM   Вверх
Poleno
Дата 4.1.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



подскажите как в столбик сделать а?
и мне нуно vcl заменить на соответствующие студии .h так ?
кто-нить подскажите какие это +)
PM MAIL   Вверх
DeadSoul
Дата 4.1.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Poleno, для начала вставь код в читабельном виде. Весь код в одной строчке - это слишком круто


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Guest
Дата 4.1.2006, 14:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











okэ
#include "stdafx.h"
//#include <vcl.h>
//[email protected]
#include <iostream>
//#include <cstdlib.h>
using namespace std;
int n; //Количество линий
int *line; //Указатель на массив занятых линий

struct sost{ //Описание одной ячейки карты
bool zan;
bool chis;
bool vip;
int c;
};

class karta{
private:
sost (*mas)[9]; //Указатель на массив
int r; //Счётчик для массива занятых линий
public:
karta (){ //Пустой конструктор (создание бочонка)
mas = new sost[1][9]; //Выделяем память под одну строчку
mas[0][0].chis=true;
mas[0][0].zan=true;
}
karta (int n); //Инициализирующий конструктор
karta(const karta&); //Копирующий конструктор
friend ostream &operator << (ostream&, const karta&);
friend istream &operator >> (istream&, karta&);
friend int proverkasovp (karta&, karta&);
karta& operator ()(int, int);
karta& operator ()(int, int, int);
friend int proverkazan (karta&);
karta& operator -- (int);
friend void outputnevip (karta&k1);
karta& operator =(const karta&);
~karta(){
if (n!=0)
delete[] mas;
}
};

karta::karta (int n){ //Brutal construKtor!!!
mas = new sost[n][9]; //Выделяем память под n строк
for(int str=0; str<n; str++){ //Цикл по всем строкам
for(int i=0; i<9; i++){ //Задаём все клетки как незанятые и незаполненные
mas[str][i].zan=false;
mas[str][i].chis=false;
}
int pos[5]; //Массив значений "занята ли клетка числом или нет" (номера клеток)
for(int g=0; g<5; g++){ //Проверка на занятость клетки числом
pos[g]=rand()%9;
for(int gg=0; gg<g; gg++) //Проверка нет ли уже клетки с таким номером (когда генерируются номера клеток, в которые будут вписаны числа, могут встретиться повторения)
if(pos[g]==pos[gg]){
g--;
break;
}
}
cout<<"Nomera yacheek, kotorie budut zapolnyat'sya v stroke "<<str+1<<": ";
for(int g=0; g<5; g++)
cout<<pos[g]+1<<" ";
cout<<endl;
for(int i=0; i<9; i++) //Идём по всем клеткам
for(int j=0; j<5; j++) //Увеличиваем счётчик для массива занятых клеток
if(i==pos[j]){ //Если клетка подходит для записи (занята), то записываем в неё sost
mas[str][i].chis=true;
mas[str][i].zan=false;
mas[str][i].c=rand()%99;
for(int q=0; q<j; q++) //Уменьшаем вероятность выпадения двух одинаковых чисел
if(mas[str][q].c==mas[str][i].c){
mas[str][i].c=rand()%99;
}
}
for(int i=0; i<9; i++) //Задаём значения пустых клеток как -1, чтобы не мешались, сцуки!
if(mas[str][i].chis==false)
mas[str][i].c=-1;
}
}

karta& karta::operator =(const karta &k1){
if(this!=&k1){ //Проверка ситуации x = x
delete[] mas;
mas=NULL;
mas = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
mas[str][i].chis = k1.mas[str][i].chis;
mas[str][i].zan = k1.mas[str][i].zan;
mas[str][i].c = k1.mas[str][i].c;
}
}
return *this;
}

karta::karta(const karta &k1){
mas = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
mas[str][i].chis = k1.mas[str][i].chis;
mas[str][i].zan = k1.mas[str][i].zan;
mas[str][i].c = k1.mas[str][i].c;
}
}

istream &operator >> (istream& input, karta& k1){ //Ввод бочонка с клавиатуры
input>>k1.mas[0][0].c;
return input;
}

ostream &operator << (ostream& output, const karta& k1){ //Вывод на экран (с понтами)
int w=0;
cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
for(int str=0; str<n; str++){
w=0;
for(int i=0; i<9; i++)
if (k1.mas[str][i].c==-1)
w++;
if(w!=9)
for(int i=0; i<9; i++)
if(k1.mas[str][i].chis==true)
output<<k1.mas[str][i].c<<" | ";
else cout<<"--"<<" | ";
cout<<endl<<"---------------------------------------------------------------------------"<<endl;
}
cout<<"---------------------------------------------------------------------------"<<endl;
return output;
}

karta& karta::operator ()(int str, int i, int v){ //Третий int чтобы только отличалось от других перегруженных скобок
mas[str][i].zan=true;
return *this;
}

karta& karta::operator ()(int lin, int kl){
if(lin<=n && lin>=1 && kl<=9 && kl>=1){
lin--;
kl--;
if(mas[lin][kl].chis==false && mas[lin][kl].zan==false)
cout<<"Kletka pusta."<<endl<<endl;
if(mas[lin][kl].chis==true && mas[lin][kl].zan==false)
cout<<"Kletka svobodna s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
if(mas[lin][kl].chis==true && mas[lin][kl].zan==true)
cout<<"Kletka zanyata s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
}
else cout<<"Vvedite korrektnie nomera yacheyki i linii!"<<endl<<endl;
return *this;
}

int proverkasovp (karta& k1, karta& boch1){ //Проверка на совпадения ячейки карты и бочонка, возвращает колчество совпадений
int sovp=0;
for(int str=0; str<n; str++)
for(int i=0; i<9; i++)
if(k1.mas[str][i].c==boch1.mas[0][0].c){
sovp++;
k1(str,i,0);
}
return sovp;
}

int proverkazan (karta &k1){
int ctr=0; //Счётчик занятых клеток
k1.r=0;
for(int str=0; str<n; str++){
ctr=0;
for(int i=0; i<9; i++)
if(k1.mas[str][i].zan==true)
ctr++;
if (ctr==5){
// cout<<"Liniya "<<str+1<<" polnost'u zanyata! (znacheniya vseh yacheek sovpadali s bochonkami)"<<endl;
line[k1.r]=str;
k1.r++;
}
// cout<<"Schyotchik dlya stroki "<<str+1<<": "<<ctr<<endl; //Для отладки. Проверяем когда счётчик будет равен 5
}
return k1.r;
}

karta& karta::operator -- (int g){
cout<<"Udalenie polnost'u zanyatih liniy."<<endl<<endl;
sost (*tmp)[9];
tmp = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
tmp[str][i].chis = mas[str][i].chis;
tmp[str][i].zan = mas[str][i].zan;
tmp[str][i].c = mas[str][i].c;
}
delete[] mas;
mas = new sost[n][9];


for(int str=0; str<n; str++)
for(int q=0; q<r; q++)
if (line[q]!=str)
for(int i=0; i<9; i++){
mas[str][i].chis = tmp[str][i].chis;
mas[str][i].zan = tmp[str][i].zan;
mas[str][i].c = tmp[str][i].c;
}
else{
for(int i=0; i<9; i++){
mas[str][i].c=-1;
mas[str][i].zan=false; //Для массива заполненных строк, так как при проверке заполненности уже заполненные строки уже не нужны (а они проверяются по zan), то делаем значение zan ложным
mas[str][i].chis=false;
}
//str++;
}
return *this;
}

void outputnevip (karta&k1){
if (n!=0){
cout<<endl;
for(int str=0; str<n; str++){
for(int i=0; i<9; i++)
if(k1.mas[str][i].zan==false && k1.mas[str][i].chis==true)
cout<<k1.mas[str][i].c<<" ";
cout<<endl;
}
}
else cout<<endl<<"Vi ne sozdali kartu! Nazhmite '1'"<<endl;
cout<<endl;
}

//---------------------------------------------------------------------------

int main(int argc, char* argv[]){
int sw= 10,sovp,i,r;
karta k, boch, ish;
cout<<".:L_O_+_O:. (Ver 2.0 dinamic edition)"<<endl;
while(sw!=0){
cout<<"M E N U"<<endl<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
cout<<"1.Sozdat' kartu."<<endl;
cout<<"2.Vibrat' bochonok i pokazat' kolichestvo sovpadeniy."<<endl;
cout<<"3.Proverit' sostoyanie yacheyki."<<endl;
cout<<"4.Opredelit' sostoyanie karti i esli est' udalit' polnost'u zanyatie linii."<<endl;
cout<<"5.Pokazat' nevipavshie chisla."<<endl;
cout<<"6.Vivesti ishodnuyu karty."<<endl;
cout<<"0.Vihod."<<endl;
cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
cout<<endl<<"Vash vibor: ";
cin>>sw;
cout<<endl;
switch(sw){
default:
cout<<"Oshibka"<<endl<<endl;
break;
case 1:{
cout<<"Sozdanie karti."<<endl;
cout<<"Vvedite kolichestvo strok (ot 1 do 10): ";
cin>>n;
line = new int[n];
cout<<endl;
if (n<=10 && n>=1){
k=karta (n);
ish = karta (k); // Копирующий конструктор
cout<<endl<<"Karta sozdana!"<<endl<<endl;
cout<<k<<endl;
}
else cout<<"Kolichestvo liniy dolzhno bit' bolshe 1 i men'she 10!"<<endl<<endl;
};
break;
case 2:{
cout<<k;
cout<<endl<<"Vibor bochonka.";
if(n==0)
cout<<endl<<"Sperva sozdayte kartu! (nazhmite 1)"<<endl<<endl;
else{
cout<<endl<<"Vvedite nomer bochonka: ";
boch=karta();
cin>>boch;
sovp=proverkasovp(k,boch);
cout<<"Kolichestvo sovpadeniy: "<<sovp<<endl<<endl;
}
};
break;
case 3:{
int lin,kl;
cout<<k;
cout<<endl<<"Opredelenie sostoyaniya yacheyki.";
if(n==0)
cout<<endl<<"Sozdayte kartu! (nazhmite 1)"<<endl<<endl;
else{
cout<<endl<<"Vvedite nomer linii: ";
cin>>lin;
cout<<"Vvedite nomer kletki: ";
cin>>kl;
k(lin,kl);
}
};
break;
case 4:{
cout<<k;
cout<<endl<<"Viyavlenie polnost'u zanyatih liniy.";
if(n==0)
cout<<endl<<"Chtobi proverit' est' li v karte zanyatie linii, nuzhna sama karta! Nazhmite 1!"<<endl<<endl;
else{
r=proverkazan(k);
if (r>0)
for(int q=0; q<r; q++)
cout<<endl<<"Polnost'u zanyata liniya "<<line[q]+1;
else cout<<endl<<"Polnost'u zanyatih liniy net!";
cout<<endl<<endl;
if(r>0){
k--;
cout<<k<<endl;
for(int q=0; q<r; q++)
line[q]=0; //Зануляем массив заполненных строк, потому что их больше нет и чтобы в следующий раз их значения уже не выводились.
r=0;
}
}
};
break;
case 5:{
cout<<k;
cout<<endl<<"Matrica nevipavshih chisel.";
outputnevip(k);
};
break;
case 6:{
cout<<"Ishodnaya karta."<<endl;
if(n==0)
cout<<"Sperva kartu nado sozdat'! (Nazhmite 1)"<<endl<<endl;
else cout<<ish<<endl;
}
break;
case 0:
break;
}
}
return 0;
}


  Вверх
Guest
Дата 4.1.2006, 14:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











о боже

  Вверх
Poleno
Дата 4.1.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



простите не знаком с работой на форумах
Добавлено @ 14:07
#include "stdafx.h"
//#include <vcl.h>
//[email protected]
#include <iostream>
//#include <cstdlib.h>
using namespace std;
int n; //Количество линий
int *line; //Указатель на массив занятых линий

struct sost{ //Описание одной ячейки карты
bool zan;
bool chis;
bool vip;
int c;
};

class karta{
private:
sost (*mas)[9]; //Указатель на массив
int r; //Счётчик для массива занятых линий
public:
karta (){ //Пустой конструктор (создание бочонка)
mas = new sost[1][9]; //Выделяем память под одну строчку
mas[0][0].chis=true;
mas[0][0].zan=true;
}
karta (int n); //Инициализирующий конструктор
karta(const karta&); //Копирующий конструктор
friend ostream &operator << (ostream&, const karta&);
friend istream &operator >> (istream&, karta&);
friend int proverkasovp (karta&, karta&);
karta& operator ()(int, int);
karta& operator ()(int, int, int);
friend int proverkazan (karta&);
karta& operator -- (int);
friend void outputnevip (karta&k1);
karta& operator =(const karta&);
~karta(){
if (n!=0)
delete[] mas;
}
};

karta::karta (int n){ //Brutal construKtor!!!
mas = new sost[n][9]; //Выделяем память под n строк
for(int str=0; str<n; str++){ //Цикл по всем строкам
for(int i=0; i<9; i++){ //Задаём все клетки как незанятые и незаполненные
mas[str][i].zan=false;
mas[str][i].chis=false;
}
int pos[5]; //Массив значений "занята ли клетка числом или нет" (номера клеток)
for(int g=0; g<5; g++){ //Проверка на занятость клетки числом
pos[g]=rand()%9;
for(int gg=0; gg<g; gg++) //Проверка нет ли уже клетки с таким номером (когда генерируются номера клеток, в которые будут вписаны числа, могут встретиться повторения)
if(pos[g]==pos[gg]){
g--;
break;
}
}
cout<<"Nomera yacheek, kotorie budut zapolnyat'sya v stroke "<<str+1<<": ";
for(int g=0; g<5; g++)
cout<<pos[g]+1<<" ";
cout<<endl;
for(int i=0; i<9; i++) //Идём по всем клеткам
for(int j=0; j<5; j++) //Увеличиваем счётчик для массива занятых клеток
if(i==pos[j]){ //Если клетка подходит для записи (занята), то записываем в неё sost
mas[str][i].chis=true;
mas[str][i].zan=false;
mas[str][i].c=rand()%99;
for(int q=0; q<j; q++) //Уменьшаем вероятность выпадения двух одинаковых чисел
if(mas[str][q].c==mas[str][i].c){
mas[str][i].c=rand()%99;
}
}
for(int i=0; i<9; i++) //Задаём значения пустых клеток как -1, чтобы не мешались, сцуки!
if(mas[str][i].chis==false)
mas[str][i].c=-1;
}
}

karta& karta::operator =(const karta &k1){
if(this!=&k1){ //Проверка ситуации x = x
delete[] mas;
mas=NULL;
mas = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
mas[str][i].chis = k1.mas[str][i].chis;
mas[str][i].zan = k1.mas[str][i].zan;
mas[str][i].c = k1.mas[str][i].c;
}
}
return *this;
}

karta::karta(const karta &k1){
mas = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
mas[str][i].chis = k1.mas[str][i].chis;
mas[str][i].zan = k1.mas[str][i].zan;
mas[str][i].c = k1.mas[str][i].c;
}
}

istream &operator >> (istream& input, karta& k1){ //Ввод бочонка с клавиатуры
input>>k1.mas[0][0].c;
return input;
}

ostream &operator << (ostream& output, const karta& k1){ //Вывод на экран (с понтами)
int w=0;
cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
for(int str=0; str<n; str++){
w=0;
for(int i=0; i<9; i++)
if (k1.mas[str][i].c==-1)
w++;
if(w!=9)
for(int i=0; i<9; i++)
if(k1.mas[str][i].chis==true)
output<<k1.mas[str][i].c<<" | ";
else cout<<"--"<<" | ";
cout<<endl<<"---------------------------------------------------------------------------"<<endl;
}
cout<<"---------------------------------------------------------------------------"<<endl;
return output;
}

karta& karta::operator ()(int str, int i, int v){ //Третий int чтобы только отличалось от других перегруженных скобок
mas[str][i].zan=true;
return *this;
}

karta& karta::operator ()(int lin, int kl){
if(lin<=n && lin>=1 && kl<=9 && kl>=1){
lin--;
kl--;
if(mas[lin][kl].chis==false && mas[lin][kl].zan==false)
cout<<"Kletka pusta."<<endl<<endl;
if(mas[lin][kl].chis==true && mas[lin][kl].zan==false)
cout<<"Kletka svobodna s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
if(mas[lin][kl].chis==true && mas[lin][kl].zan==true)
cout<<"Kletka zanyata s chislom "<<mas[lin][kl].c<<"."<<endl<<endl;
}
else cout<<"Vvedite korrektnie nomera yacheyki i linii!"<<endl<<endl;
return *this;
}

int proverkasovp (karta& k1, karta& boch1){ //Проверка на совпадения ячейки карты и бочонка, возвращает колчество совпадений
int sovp=0;
for(int str=0; str<n; str++)
for(int i=0; i<9; i++)
if(k1.mas[str][i].c==boch1.mas[0][0].c){
sovp++;
k1(str,i,0);
}
return sovp;
}

int proverkazan (karta &k1){
int ctr=0; //Счётчик занятых клеток
k1.r=0;
for(int str=0; str<n; str++){
ctr=0;
for(int i=0; i<9; i++)
if(k1.mas[str][i].zan==true)
ctr++;
if (ctr==5){
// cout<<"Liniya "<<str+1<<" polnost'u zanyata! (znacheniya vseh yacheek sovpadali s bochonkami)"<<endl;
line[k1.r]=str;
k1.r++;
}
// cout<<"Schyotchik dlya stroki "<<str+1<<": "<<ctr<<endl; //Для отладки. Проверяем когда счётчик будет равен 5
}
return k1.r;
}

karta& karta::operator -- (int g){
cout<<"Udalenie polnost'u zanyatih liniy."<<endl<<endl;
sost (*tmp)[9];
tmp = new sost[n][9];
for(int str=0; str<n; str++)
for(int i=0; i<9; i++){
tmp[str][i].chis = mas[str][i].chis;
tmp[str][i].zan = mas[str][i].zan;
tmp[str][i].c = mas[str][i].c;
}
delete[] mas;
mas = new sost[n][9];


for(int str=0; str<n; str++)
for(int q=0; q<r; q++)
if (line[q]!=str)
for(int i=0; i<9; i++){
mas[str][i].chis = tmp[str][i].chis;
mas[str][i].zan = tmp[str][i].zan;
mas[str][i].c = tmp[str][i].c;
}
else{
for(int i=0; i<9; i++){
mas[str][i].c=-1;
mas[str][i].zan=false; //Для массива заполненных строк, так как при проверке заполненности уже заполненные строки уже не нужны (а они проверяются по zan), то делаем значение zan ложным
mas[str][i].chis=false;
}
//str++;
}
return *this;
}

void outputnevip (karta&k1){
if (n!=0){
cout<<endl;
for(int str=0; str<n; str++){
for(int i=0; i<9; i++)
if(k1.mas[str][i].zan==false && k1.mas[str][i].chis==true)
cout<<k1.mas[str][i].c<<" ";
cout<<endl;
}
}
else cout<<endl<<"Vi ne sozdali kartu! Nazhmite '1'"<<endl;
cout<<endl;
}

//---------------------------------------------------------------------------

int main(int argc, char* argv[]){
int sw= 10,sovp,i,r;
karta k, boch, ish;
cout<<".:L_O_+_O:. (Ver 2.0 dinamic edition)"<<endl;
while(sw!=0){
cout<<"M E N U"<<endl<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
cout<<"1.Sozdat' kartu."<<endl;
cout<<"2.Vibrat' bochonok i pokazat' kolichestvo sovpadeniy."<<endl;
cout<<"3.Proverit' sostoyanie yacheyki."<<endl;
cout<<"4.Opredelit' sostoyanie karti i esli est' udalit' polnost'u zanyatie linii."<<endl;
cout<<"5.Pokazat' nevipavshie chisla."<<endl;
cout<<"6.Vivesti ishodnuyu karty."<<endl;
cout<<"0.Vihod."<<endl;
cout<<"---------------------------------------------------------------------------"<<endl<<"---------------------------------------------------------------------------"<<endl;
cout<<endl<<"Vash vibor: ";
cin>>sw;
cout<<endl;
switch(sw){
default:
cout<<"Oshibka"<<endl<<endl;
break;
case 1:{
cout<<"Sozdanie karti."<<endl;
cout<<"Vvedite kolichestvo strok (ot 1 do 10): ";
cin>>n;
line = new int[n];
cout<<endl;
if (n<=10 && n>=1){
k=karta (n);
ish = karta (k); // Копирующий конструктор
cout<<endl<<"Karta sozdana!"<<endl<<endl;
cout<<k<<endl;
}
else cout<<"Kolichestvo liniy dolzhno bit' bolshe 1 i men'she 10!"<<endl<<endl;
};
break;
case 2:{
cout<<k;
cout<<endl<<"Vibor bochonka.";
if(n==0)
cout<<endl<<"Sperva sozdayte kartu! (nazhmite 1)"<<endl<<endl;
else{
cout<<endl<<"Vvedite nomer bochonka: ";
boch=karta();
cin>>boch;
sovp=proverkasovp(k,boch);
cout<<"Kolichestvo sovpadeniy: "<<sovp<<endl<<endl;
}
};
break;
case 3:{
int lin,kl;
cout<<k;
cout<<endl<<"Opredelenie sostoyaniya yacheyki.";
if(n==0)
cout<<endl<<"Sozdayte kartu! (nazhmite 1)"<<endl<<endl;
else{
cout<<endl<<"Vvedite nomer linii: ";
cin>>lin;
cout<<"Vvedite nomer kletki: ";
cin>>kl;
k(lin,kl);
}
};
break;
case 4:{
cout<<k;
cout<<endl<<"Viyavlenie polnost'u zanyatih liniy.";
if(n==0)
cout<<endl<<"Chtobi proverit' est' li v karte zanyatie linii, nuzhna sama karta! Nazhmite 1!"<<endl<<endl;
else{
r=proverkazan(k);
if (r>0)
for(int q=0; q<r; q++)
cout<<endl<<"Polnost'u zanyata liniya "<<line[q]+1;
else cout<<endl<<"Polnost'u zanyatih liniy net!";
cout<<endl<<endl;
if(r>0){
k--;
cout<<k<<endl;
for(int q=0; q<r; q++)
line[q]=0; //Зануляем массив заполненных строк, потому что их больше нет и чтобы в следующий раз их значения уже не выводились.
r=0;
}
}
};
break;
case 5:{
cout<<k;
cout<<endl<<"Matrica nevipavshih chisel.";
outputnevip(k);
};
break;
case 6:{
cout<<"Ishodnaya karta."<<endl;
if(n==0)
cout<<"Sperva kartu nado sozdat'! (Nazhmite 1)"<<endl<<endl;
else cout<<ish<<endl;
}
break;
case 0:
break;
}
}
return 0;
}


PM MAIL   Вверх
DeadSoul
Дата 4.1.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Все понятно. Тег КОДЕ глючит

Это сообщение отредактировал(а) DeadSoul - 4.1.2006, 14:10


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
_hunter
Дата 4.1.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



особо не читал ( не получилось smile )
но похоже там чистый с++ ( без VCL ) поэтому перенестись должно без вопросов...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
azesmcar
Дата 4.1.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата
особо не читал ( не получилось  ) но похоже там чистый с++ ( без VCL ) поэтому перенестись должно без вопросов...

Вопрос только в том на что надо перевести...на С++ или на С#??
Добавлено @ 14:42
Цитата
подскажите как в столбик сделать а? и мне нуно vcl заменить на соответствующие студии .h так ? кто-нить подскажите какие это +)


А зачем тебе VCL если ты его не используешь???
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.