krwq napisał(a)
- w borland C++ używaj AnsiString zamiast String
ok :)
krwq napisał(a)
- w borland C++ używaj AnsiString zamiast String
- to co wyzej zapisales, mozna napisac tak:
if(liczba%2==0)
Label2->Caption = "parzysta";
else
Label2->Caption = "nieparzysta";
w ten sposób wywalało mi błąd: [C++ Error] Unit1.cpp(26): E2379 Statement missing ;
ale to i tak jest tylko funkcja testowa programu, w zasadzie ma mieć inne działanie ;)
krwq napisał(a)
- jesli chcesz sprawdzic czy dany tekst jest liczba, to albo sprawdzasz czy kazdy znak tekstu jest liczba albo probujesz konwertwoac na liczbe (tak jak masz w kodzie), z tym ze kod ktory moze wywolac blad opatulasz w try catch:
int liczba;
bool blad = false;
try
{
liczba ==StrToInt(Edit1->Text);
}
catch(...)
{
blad = true;
ShowMessage("Nie udalo sie skonwertowac!"); // <-- to mozesz wywalic
}
spróbowałem tak
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int liczba;
bool blad = false;
try
{
liczba ==StrToInt(Edit1->Text);
}
catch(...)
{
blad = true;
ShowMessage("zla tekst");
}
String para="parzysta";
String niepara="nieparzysta";
if(liczba>36) warn->ShowModal();
if(liczba%2==0) Label2->Caption = para;
else (liczba%2==1) Label2->Caption = niepara;
Edit1->Text="los";
}
ale też mi wywaliło błędy
[C++ Error] Unit1.cpp(40): E2379 Statement missing ;
nie widze nigdzie żeby mi średnika brakowało ;/
i
[C++ Warning] Unit1.cpp(44): W8004 'blad' is assigned a value that is never used
<- a to drugi błąd
krwq napisał(a)
- kod maina jest dostepny, ale w borlandzie najczesciej si go nie edytuje (chyba ze są warunki dla których nie chcesz tworzyć okna, chcesz je ukryc przy wlaczaniu lub cos w tym stylu). mozna go zobaczyc chyba tu: view->units albo cos takiego
Dzięki wielkie - znalazłem, ale nic tam nie ruszam
krwq napisał(a)
- aplikacje wizualne najczesciej dzialaja na zasadzie: zdarzenie->reakcja, zatem zaznaczasz komponent ktory ma cos robic, szukasz w properties/events na co ma reagowac, klikasz dwa razy i piszesz co ma sie dziac. jesli potrzebujesz zmienne to albo dopisujesz je w klasie okna w main.h (czy jak tam sobie nazwales plik z klasa okna) albo gdzies na gorze kodu w main.cpp
ok. mniej więcej łapie, tylko jeśli mam program podobny do tego gdzie podaje liczbę, naciskam przycisk, i w labelu dostaje wynik, to akcje prawidlowo przeprowadzam w labelu a za pomocą przycisku przekazuje dane? czy w przycisku i przekazuje tylko wyniki ?
Ale jakieś funkcji operacyjne(przetwarzające tylko dane z działania programu) moge oczywiście dopisać wyżej w programie?
ogolnie to chodzi o taki projekt- kiedys napisalem w c taki prosty wspomagacz gry w ruletke i chciał bym mu dodać jeszcze jeden system obstawiania (fibbonaciego) i zrobić go graficznie .
int fkolor(int los){
int i ;
int czerwone[19]={1,3,5,7,9,12,14,16,19,18,21,23,25,27,30,32,34,36};
int czarne[19]={2,4,6,8,10,11,13,15,17,20,24,26,28,29,31,33,35};
int k;
int p=3;
for(i=0;i<18;i++){
if((los==czerwone[i])&&(los!=0)) k=1;
if((los==czarne[i])&&(los!=0)) k=2;
}
return k;
}
int analiza(int tw[6],int tryb){
int p; /*minimalna ilosc podobnych trafien potrzebna do obstawiania*/
if(tryb==1)p=3;
if(tryb==2)p=4;
/* sprawdzenie warunku obstawiania
if((tw[0]<=p)&&(tw[1]<=p)&&(tw[2]<=p)&&(tw[3]<=p)&&(tw[4]<=p)&&(tw[5]<=p)){
printf("\nzakrec kolem, nie obstawiajac " );
*/ }
if(tw[0]>p){
printf("\npostaw na czarne");
if(tw[0]>(p+1)) printf(" ,podwoj stawke");
}
else if(tw[1]>p) {
printf("\npostaw na czerwone ");
if(tw[1]>(p+1)) printf(" ,podwoj stawke");
}
if(tw[2]>p){
printf("\npostaw nieparzyste");
if(tw[2]>(p+1)) printf(", podwoj stawke");
}
else if(tw[3]>p){
printf("\npostaw na parzyste");
if(tw[3]>(p+1)) printf(",podwoj stawke");
}
if(tw[4]>p){
printf("\npostaw na od 19 do 36");
if(tw[4]>(p+1)) printf(", podwoj stawke");
}
else if(tw[5]>p){
printf("\npostaw na od 1 do 18");
if(tw[5]>(p+1)) printf(", podwoj stawke");
}
}
int main(){
int tw[6];/* tablica wynikow 0.ilosc powturzen 1.czerwone 2.czarne 3.parzyste 4.nieparzyst 5.od 1 do 18 6.od 19 do 36 */
system ("color F0");
int i,j;
int los;
int kolor;
int tryb,ilosc;
printf("Podaj ilosc planowanych gier,\npamietaj nie graj za dlugo i\nnie wygrywaj za wiele bo kasyno \nzablokuje Ci konto: ");scanf("%d",&ilosc);
printf("\nWybierz rodzaj gry: \t 1.RYZYKOWNY SZYBKI \t|\t 2.PEWNY: ");scanf("%d",&tryb);
for (i=0;i<6;i++) tw[i]=0;
printf("\nZakrec kolem bez obstawiania\n");
for(j=0;j<ilosc;j++){
do{
printf("\n\n\n\n podaj wylosowana liczbe: ");
scanf("%d",&los);
if(los>36) printf("Zla liczba, sproboj jeszcze raz");
}while (los>36);
if(los==0) printf("\n \t ZERO- jeśli obstawiales podwajaj stawke. ");
else
kolor=fkolor(los);
if (kolor==1){
tw[0]++;
tw[1]=0;
}
if (kolor==2){
tw[0]=0;
tw[1]++;
}
if((los%2==0)&&(los!=0)){
tw[2]++;
tw[3]=0;
}
if (los%2==1){
tw[2]=0;
tw[3]++;
}
if(los<=18){
tw[4]++;
tw[5]=0;
}
if(los>=19){
tw[4]=0;
tw[5]++;
}
/* if(tw[0]>=1) printf("red x %d \t",tw[0]);
if(tw[1]>=1) printf("black x %d \t", tw[1]);
if(tw[2]>=1) printf("even x %d \t",tw[2]);
if(tw[3]>=1) printf("odd x %d \t",tw[3]);
if (tw[4]>=1) printf("od 1 do 18 x %d \n\n",tw[4]);
if( tw[5]>=1) printf("od-19-do-36 x %d \n\n",tw[5]); */
analiza(tw,tryb);
}
getch();
}
wiem, kiepsko zakomentowany, sam się nie mogłem ostatnio w nim połapać ;)