Címkézve: ,

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • gezatata
    Tag
    Bejegyzések száma: 20

    Szia Radu

    szeretném feltölteni a tömböt az a-k értékeivel for ciklusba, de a StringConcatenate(„a”,q) parancs nem megfelelő, van esetleg valami parancs ami ide passzolna, vagy fogjak neki bepötyögtetni ;o)

    string a0, a1, ….. a37,
    tomb[4,38];

    a0=”e”; a1=”t”; …….. a37=”v”;

    for(int q=0; q<=37; q++)
    tomb[0,q]=StringConcatenate("a",q);

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Ha leírod pontosan a feladatot, lehet hogy könnyebben átlátom mit szeretnél.

    A fenti kód alapján sejtelmem sincs, mi a végcél :)

    gezatata
    Tag
    Bejegyzések száma: 20

    szörnyű a fogalmazó készségem, ezért előre elnézést is kérek.

    vannak string változók 38 darab, a0-tol a37-ig,
    ezeknek az értékeit szeretném beíratni egy 38soros 4 oszlopos tömb első oszlopába, egymás alá.
    írtam neki egy for ciklust de nem müködik.
    úgy gondoltam, hogy a0 értékét(ami „e”) beírja a tomb[0,0] első sor első oszlopába , a1 értékét (ami t) beírja a tomb[0,1]második sor első oszlopába, és így tovább a37 ig.
    úgy gondoltam, hogy StringConcatenate(„a”,q); paranccsal ha kialakítom az „a0” formát, akkor azt úgy ismeri fel mintha a0 változó lenne aminek az értéke „e”, és beírná a tömbbe az „e” értéket. DE „e” helyet „a0” beírás lett.
    tehát következtetésem szerint a0 nem egyenlő „a0” val. És így nem tudom használni a for ciklust a tömbbe írásra.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Már értem a kérdésed.

    Sajnos ilyen megoldást nem tudsz elkövetni, mégpedig amiatt hogy az MQL4 nyelvben nincsen lehetőséged a változónévben (változót használni (pl. PHP-ben van). Ezutóbbi megállapításból természetesen csak a tömbök képeznek kivételt, hiszen ott a kulcsokra lehet hivatkozni változóval.

    A tomb[0, q] megoldás még működik, de a fixen elnevezett változók (a1, a2, stb.) nem tehetőek dinamikussá.

    A következő megoldást tudod alkalmazni: a fejlécben létrehozol egy adattömböt, amit init-ben feltöltesz a string adataiddal (kézzel kell sajna mind a 38 sort megadnod).

    Tehát fejlécben:

    string
       adattomb[38];

    Init-ben:

    adattomb[0] = a1;
    adattomb[1] = a2;
    adattomb[2] = a3;
     
    // satöbbi

    Mivel ezután már dinamikusan használhatod a 38 adatodat, meg tudod oldani a feladatod az egyébként jól indult megoldásoddal.

    gezatata
    Tag
    Bejegyzések száma: 20

    Köszönöm szépen válaszod

    gezatata
    Tag
    Bejegyzések száma: 20

    szia

    szeretném megkérdezni, hogy van e arra lehetőség, hogy a for ciklusban több FELTÉTEL-t és több KIFEJEZÉS-t írjunk?

    az „atomb” tartalmát akartam átirni a „tomb”-be,
    és én így képzeltem el, de nem működik

     for(int v=0, int q=0;      q<=39;       q++, v++)           
          tomb[v,q]=atomb[v,q];
    

    szép napot.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    A v változó kapcsán nem írtál értéknövelést.

    A két ciklust simán egymásba ágyazhatod: a külső lefut 40 alkalommal, a belső meg 40 alkalomszor annyi alkalommal, ahányat megadsz a v-nek.

    gezatata
    Tag
    Bejegyzések száma: 20

    ez nem csak egy darab for ciklus?
    a v++ gondoltam értéknövelésnek.
    ha igy írom be a for ciklus fejlécét for(int v=0, int q=0; q<=39; q++, v++) akkor hiba üzenetet ad "variable expected"-el

    gezatata
    Tag
    Bejegyzések száma: 20

    közben rá jöttem miről írtál nekem
    ez lesz a megoldás ugye?

    for(int o=0; o<=5; o++)
         {   for(int=s; s<=10; s++)
                    tomb[o,s]=a[o,s];       } 

    bocs hogy teleirkálom az oldalad gyerekes kérdéseimmel.
    ismét köszönöm szépen az irányadó válaszod

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Valami ilyesmi, igen!

10 bejegyzés megtekintése - 1-10 / 10
  • Be kell jelentkezni a hozzászóláshoz.