Tablica

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
fxBobi
Gaduła
Gaduła
Posty: 244
Rejestracja: 20 sie 2008, 18:43

Tablica

Nieprzeczytany post autor: fxBobi »

Jak możecie mi podpowiedzieć po wypadło mi z głowy.

W jaki sposób przypisywać pewna wartość do danego idexu tablicy .

Kod: Zaznacz cały

  tab[2]=10;
  int xf=tab[2];
  Comment(xf);
Ale ciągle pojawia mi sie "0" zamiast 10.

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

a zadeklarowałeś wielkość tablicy? np:

Kod: Zaznacz cały

int tab[20];
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
fxBobi
Gaduła
Gaduła
Posty: 244
Rejestracja: 20 sie 2008, 18:43

Nieprzeczytany post autor: fxBobi »

Tak

Cały kod

Kod: Zaznacz cały


int tab[2];

tab[1]=10;
int x=tab[1];

Comment(x);


Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

A u mnie działa.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
fxBobi
Gaduła
Gaduła
Posty: 244
Rejestracja: 20 sie 2008, 18:43

Nieprzeczytany post autor: fxBobi »

OK dzięki .

To przyczyna musi leżeć gdzieś indziej (nie w kodzie).
Czasami MT4 potrafi świrować.
Pozdrawiam

Dodano po 1 godzinach 59 minutach:

Jeszcze dodam , bo sprawdzałem

Sam Comment czy Alert jeżeli ma wyświetlić wartość tablicy to wyświetla nie poprawnie , ale np. podczas eksportu danych z tablicy do pliku.txt jest wszystko ok .

lekarz2
Gaduła
Gaduła
Posty: 172
Rejestracja: 17 cze 2010, 16:30

Nieprzeczytany post autor: lekarz2 »

A jak mam następujące wyrażenie "1,2,3,4,5"
i chciałbym utworzyć z niego:

tab[1] =1
tab[2] =2
tab[3] =3
tab[4] =4
tab[5] = 5

to jak to mam zrobić?

Awatar użytkownika
fxBobi
Gaduła
Gaduła
Posty: 244
Rejestracja: 20 sie 2008, 18:43

Nieprzeczytany post autor: fxBobi »

Jeżeli dobrze zrozumiałem twoją intencje. Możesz to wykonać w pętli "for"

Kod: Zaznacz cały

for(int i=0;i<=5;i++)
    {
    tab[i]=i;
   }

lekarz2
Gaduła
Gaduła
Posty: 172
Rejestracja: 17 cze 2010, 16:30

Nieprzeczytany post autor: lekarz2 »

No nie. Chodzi mi o coś innego.
Chciałbym rozbić ciąg znaków na tablicę.


A mianowicie mam sobie plik o zawartości:
"1,2,3,4,5".
Chciałbym go rozbić na następującą tablicę:
tab[1] =1
tab[2] =2
tab[3] =3
tab[4] =4
tab[5] = 5

Jeśli znasz php to chodzi mi dokładnie o to:
http://funkcje.net/view/4/28/2430/

Awatar użytkownika
fxBobi
Gaduła
Gaduła
Posty: 244
Rejestracja: 20 sie 2008, 18:43

Nieprzeczytany post autor: fxBobi »

@lekarz2
Ufff :607:

Prosze bardzo , mam nadzieje że załapiesz idee:)

Kod: Zaznacz cały

#property copyright ""
#property link      ""

#property indicator_chart_window

int init()
  {

   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
  int x=1234567;
  spraw(x);
  
   return(0);
  }

void spraw(int x)
   {
   
   int r;
   int rr=0;
   int tab[10];
   ilosc(x,rr);
   int rrr=rr;
   for(int i=0;i<=10;i++)
      {
      r=x%10;
      if(r>0)
        {
        x=x-r;
        x=x/10;
        tab[rr]=r;
        rr=rr-1;
        }else{
             break;
             }
      }
   int test=FileOpen("test.txt",FILE_WRITE|FILE_CSV);
   for(int ii=1;ii<=rrr;ii++)
      {
      FileWrite(test,"tab["+ii+"]: "+tab[ii]);
      }
   FileClose(test);
   }

void ilosc(int x,int & rr)
   {
   int r;
   for(int i=0;i<=10;i++)
      {
      r=x%10;
      if(r>0)
        {
        x=x-r;
        x=x/10;
        rr=rr+1;
        }else{
             break;
             }
        
      }
   }
Umieściłem dodatkowo export do pliku aby zobaczyć wynik pracy :).
Aby zadziałało musisz utworzyć pliczek "test.txt" w folderze "../expert/files/"

lekarz2
Gaduła
Gaduła
Posty: 172
Rejestracja: 17 cze 2010, 16:30

Nieprzeczytany post autor: lekarz2 »

Przejrzałem Twój algorytm. Widzę, że się napracowałeś:). Wrzuciłem to do testera i dla liczb działa ( konkretnie wyławia ostatnią liczbę). Ale co jeśli bym chciał rozbic coś bardziej skomplikowanego. Coś co zawiera nie tylko liczby ale także wyrazy?

załóżmy, że mam coś takiego:

1,2345; kup; MMA; 3,24

i chciałbym to rozbić na:

1,2345
kup
MMA
3,24

elementem rozdzielającym w tym przypadku jest ";"

Czy coś takiego w ogóle da się zrobić?

ODPOWIEDZ