Allmänt meddelande

Collapse
No announcement yet.

codning - förhålla sig?

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • codning - förhålla sig?

    Hej,

    Jag behöver veta hur man ska koda för att skripten ska bli rätta?

    Problem:
    När man skriver skript eller utgår från befintliga t.ex. Tracker. så upptäcker man efter många timmar med Bänken och gjorda småförändringar att resultatet kan variera på ett alldeles förunderligt sätt.

    Det verkar t.ex. som det har betydelse i vilken ordning variabler är skrivna.
    Jag har t.ex. haft variabler som jag hoppat över i slutvillkoret då jag testat saker, men ändrar jag dess värden så ändras också resultatet, det borde ju inte spela någon roll vad värdet av en variabel har om den inte ingår i slutvillkoret.

    Senast har jag suttit med Tracker skript där jag lagt till fladder filter. signalen i bänken kom oftast 2-10 perioder senare än vad grundvillkoret gjorde i grafen (separat skript med signalvillkor utritade). Detta var jag på väg att rapportera som en bugg. Men upptäckte att om jag rensade upp och ändrade koden så blev plötsligt signalerna rätt, alltså var det några variabler/referenser/kod tidigare i koden som gjorde att skriptet fungerade på ett oönskatt sätt.

    Jag antar att skriptet är väldigt känsligt och att man behöver förhålla sig till någon slags kodningsregel för att det ska vara pålitliga?

    I manuallen har jag bara hittat instruktioner om tilldelade namn ":=" ska komma före referenser "=" men inga andra grundförutsättningar




  • #2
    Man måste hålla hårt på regeln att inga variabelnamn får vara delnamn av andra variabel namn. "Köp" och "köpa" är förbjudet. "Köp1" och "köp2" är OK.
    mvh
    Bertil

    Comment


    • #3
      Ursprungligen postat av Bertil Visa inlägg
      Man måste hålla hårt på regeln att inga variabelnamn får vara delnamn av andra variabel namn. "Köp" och "köpa" är förbjudet. "Köp1" och "köp2" är OK.
      mvh
      Bertil
      Tänk även på att det kan bli signal i bänken, men inte i diagrammet. Ritning sker i slutet av varje period.

      Comment


      • #4
        Tack för tipsen.

        Ska gå igenom det där med delnamn av namn, inte helt omöjligt att jag har t.ex. datum, datum_ok, signal, signal2 och liknande som jag får fixa.

        Gäller det både namngivna variabler ":=" och "=" referenser?

        Finns det några andra egenheter ni känner till?

        Jag funderade till exempel på om det spelar någon roll vilken ordning variablerna förväntas bli sant, dvs om ordningen på variabler spelar roll?

        finns det någon begränsning i hur många ":=" namngivna variabler man kan använda, det var lite oklart för mig när man ska ha ":=" och "="?
        Vissa skript har ju många (bara?) ":=" behöver man räkna dem och se till att de inte överskrider något visst antal?

        med parentesdjup antar jag det är max 10 parenteser år vardera håll
        (((((((((( <-- max 10 st --> )))))))))) ?

        Comment


        • #5
          Lite kommentarer inlagt i rött.

          Ursprungligen postat av jimmy Visa inlägg
          Tack för tipsen.

          Ska gå igenom det där med delnamn av namn, inte helt omöjligt att jag har t.ex. datum, datum_ok, signal, signal2 och liknande som jag får fixa.

          Gäller det både namngivna variabler ":=" och "=" referenser?
          Det är bäst att du kolla båda.

          Finns det några andra egenheter ni känner till?
          Det finns en del, får se om jag orkar göra en sammanställning sedan. Det som du kan titta på i detta skedet är om du har många köp1, köp2 osv, det går bra upp till 9 sedan blir det problem. Ett annat vanligt fel är om man råkat trycka på enter mitt i en klammerrad {....} så att man får en tvåradig sådan.

          Jag funderade till exempel på om det spelar någon roll vilken ordning variablerna förväntas bli sant, dvs om ordningen på variabler spelar roll?
          Inte annat än att variabeln måste ha beräknats innan den sätts in i nästa uttryck.

          finns det någon begränsning i hur många ":=" namngivna variabler man kan använda,
          Har för mig att det finns en begränsning men jag har inte antalet aktuellt, det är många i alla fall.

          det var lite oklart för mig när man ska ha ":=" och "="?
          Vissa skript har ju många (bara?) ":=" behöver man räkna dem och se till att de inte överskrider något visst antal?
          := använder man mest i början av ett script för att tilldela en variabel en siffra eller ett uttryck som skall beräknas senare. Fördelen med := är att NAT enbart ser uttrycket som ren text ända till dess att uttrycket skall beräknas, det är alltså processorsnålt att använda := om man vill testa en massa olika alternativ som inte skall används samtidigt. Använder man istället minnesceller = görs en beräking för varje rad en sådan påträffas.

          Normanlt behöver du inte räkna antalet := och finns det bara := i scriptet samt något beräkningsuttryck så körs scriptet i dagsupplösning.


          med parentesdjup antar jag det är max 10 parenteser år vardera håll
          (((((((((( <-- max 10 st --> )))))))))) ?
          Ja, det är det som åsyftas, max 10 parentespar alltså. Det är bara tilldelade namn := som berörs i detta fall, minnesreferenser = kan ha "obegränsat" antal.

          Comment


          • #6
            Hej,

            stort tack för hjälpen, mycket uppskattat!

            Comment


            • #7
              Det finns även problem med cirkelreferenser
              v=v+1
              Har inte undersökt djupare utan undviker dessa.
              Må gott
              **Vincent

              Comment


              • #8
                Det stämmer, man får skriva:

                v2 = add(v1,1)

                istället så fungerar det fint.

                Comment


                • #9
                  Man kan även få för många parenteser om man kombinerar variabler, om jag förstått saken rätt.

                  Ex.
                  v1:=((((( <-- 5 st --> )))))
                  v2:=(((((( <-- 6 st --> ))))))
                  v3:=add(v1,v2) -->11 st paranteser
                  Må gott
                  **Vincent

                  Comment


                  • #10
                    Stämmer, skriv i så fall som minnesreferenser.

                    Comment


                    • #11
                      Ursprungligen postat av Vincent Visa inlägg
                      Man kan även få för många parenteser om man kombinerar variabler, om jag förstått saken rätt.
                      Läs sista kommentaren i inlägg #5

                      Comment

                      Working...
                      X