Het grote programmeertips topic

Dit forum is voor het voortgezetonderwijs (of 2de/3de graad ASO), als je in de bovenbouw zit. We gaan er vanuit dat je een Grafische Rekenmachine hebt.
Plaats reactie
Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Het grote programmeertips topic

Bericht door Marco » 07 mar 2005, 19:06

Hier kun je al tips kwijt als het gaat om programmeren op je GR.
Groeten, Marco

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Bericht door Marco » 07 mar 2005, 19:11

Bewegende tekst
Als je bewegende tekst wilt is dat niet zo moeilijk, maak maar eens dit programmaatje:
For(X,1,6)
Output(X,1," Hallo")
End

Door de operator For te gebruiken kun je heel makkelijk tekst laten bewegen over het basis scherm. Dit werkt natuurlijk ook in het draw scherm. Hierdoor kun je ook pixels laten bewegen.

Extra tips
  • Als je het scherm leeg wilt maken achter de tekst dan kun je er een spatie voor zetten, hier door wordt de tekst ook weer gewist
  • Als je een beetje creatief bent dan kun je ook bewegende spelletjes hiermee maken.
  • Meestal zal de tekst zo snel bewegen dat het lijkt of het er in een keer staat. Je kunt dit vertragen door een extra For er in te zetten, bijv:
    For(D,1,50)
    End
Laatst gewijzigd door Marco op 10 mar 2005, 08:44, 1 keer totaal gewijzigd.
Groeten, Marco

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Bericht door Marco » 08 mar 2005, 09:13

Mooi menu
Als je de tag Menu gebruikt dan is het slim om even paar spaties voor en na de titel te zetten. Hierdoor wordt de menu balk bovenaan helemaal zwart.
Bijvoorbeel:
Menu(" Hoger of Lager ","Lager",00,"Hoger",99)
Door de extra spatie(s) ervoor en erachter lijkt het menuutje veel mooier.
Groeten, Marco

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Bericht door Marco » 09 mar 2005, 09:09

Programma verkleinen
De ruimte op een Ti is meestal erg beperkt, het is dus slim om je porgrammaatje zo klein mogelijk te maken. Even wat tips:
  • Laat sluit haaksjes weg, zoals " ). Deze zijn overbodig, want de rekenmachine let er niet op. Laat ook overbodige lege regels weg.
  • Gebruik zo weinig mogel if. Dit neemt meestal erg veel ruimte in. For is, als het kan, korter.
  • Onzin is altijd leuk aan het begin (bijv. made by) maar besef wel dat dat erg veel ruimte neemt, en mensen vinden het meestal ook niet mooi, alleen irritant.
Groeten, Marco

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Bericht door Marco » 09 mar 2005, 12:34

Programma versnellen
Soms kan een programmaatje wat je hebt gemaakt erg traag zijn. Dit kun je meestal wel verbeteren, waardoor je programma wat sneller gaat lopen. Wat tips:
  • Gebruik zo weinig mogelijk "if". De if operator is erg traag in basic. For of while is veel sneller
  • Laat de output zo weinig mogelijk komen. Als je de tekst twee keer output dan is dat zonde van de snelheid.
Groeten, Marco

eleruin
Nieuw lid
Nieuw lid
Berichten: 8
Lid geworden op: 17 jun 2008, 15:19

Re: Het grote programmeertips topic

Bericht door eleruin » 26 jun 2008, 09:12

Pauzeren

Om je programma even te vertragen (zie: bewegende tekst) kan je ook Random getallen laten berekenen.
De functie RandInt staat bij MATH.

Voorbeeld: Neem "RandInt(0,1,5)" op in je programmacode. De 5 (staat voor aantal getallen dat hij moet genereren) kan je aanpassen naar gelang de duur.

Negatief

Je beeldscherm heeft 94 op 62 pixels. Hiermee kan je een code maken om je graphs/tekeningen negatief te maken. Dit is volledig zinloos, maar wel leuk.

Code: Selecteer alles

for(x,0,94)
for(y,0,62)
pxl-Change(y,x)        // Als je met pixels werkt zet je eerst de y en dan de x
end
end

ti-wereld.nl
Vergevorderde
Vergevorderde
Berichten: 247
Lid geworden op: 24 aug 2008, 16:20
Contacteer:

Re: Het grote programmeertips topic

Bericht door ti-wereld.nl » 24 aug 2008, 17:06

eleruin schreef:Pauzeren
Om je programma even te vertragen (zie: bewegende tekst) kan je ook Random getallen laten berekenen.
De functie RandInt staat bij MATH.

Voorbeeld: Neem "RandInt(0,1,5)" op in je programmacode. De 5 (staat voor aantal getallen dat hij moet genereren) kan je aanpassen naar gelang de duur.
je kan ook Rand(x) gebruiken!

@Marco if is iets heel anders dan For of While!
als je een alternatief wil aan geven wat veel beter is:
booleans
even voorbeeld:
(x=1)*3+(x=2)*6->C

als x==1 is komt er 3 in C te staan als x==2 is komt er 6 in C te staan.

als jullie nog meer willen weten over de GR kijk eens naar mijn site, als je vragen hebt stel ze gerust :wink:

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Re: Het grote programmeertips topic

Bericht door Marco » 25 aug 2008, 10:58

Het is zo dat IF anders werkt, maar toch gebruiken sommige mensen de IF-functie om een soort van FOR of WHILE constructie te maken. Dat is niet handig want IF is heel erg traag ;)
Groeten, Marco

ti-wereld.nl
Vergevorderde
Vergevorderde
Berichten: 247
Lid geworden op: 24 aug 2008, 16:20
Contacteer:

Re: Het grote programmeertips topic

Bericht door ti-wereld.nl » 26 aug 2008, 10:00

ook vooral geen Goto's gebruiken :P

Repeat is volgens mij nog sneller

Gebruikersavatar
Marco
Beheerder
Beheerder
Berichten: 831
Lid geworden op: 19 feb 2005, 12:50
Locatie: Leeuwarden
Contacteer:

Re: Het grote programmeertips topic

Bericht door Marco » 28 aug 2008, 18:15

Misschien wel sneller dan WHILE, maar FOR is echt de snelste geloof ik...
Groeten, Marco

Zap
Nieuw lid
Nieuw lid
Berichten: 10
Lid geworden op: 18 dec 2008, 18:23

Re: Het grote programmeertips topic

Bericht door Zap » 18 dec 2008, 20:35

In veel programma's zie ik één hélé grote fout.

Code: Selecteer alles

If (blablabla)
Then
Goto (ergens)
End
Doe dit nooit! Probeer de volgende code maar eens uit:

Code: Selecteer alles

While 1
Lbl 1
If 1
Then
Goto 1
End
End
Als je het programma een tijdje laat lopen, krijg je na een tijdje het volgende
ERR:MEMORY
1:Quit
2:Goto
Wat in feite gebeurt is dat het End deel van het If statement nooit bereikt wordt. Daardoor wordt de code hierboven als het ware gekopieërd in het if deel zelf. Dit zou er dus gebeuren in het geheugen:

Code: Selecteer alles

While 1
Lbl 1
If 1
Then
While 1
Lbl 1
If 1
Then
Goto 1
End
End
End
End
En dat gaat door totdat het geheugen vol is. De meeste programma's crashen niet door dit, maar doordat het programma steeds meer geheugen gebruikt wordt het steeds trager en trager.

Zap
Nieuw lid
Nieuw lid
Berichten: 10
Lid geworden op: 18 dec 2008, 18:23

Re: Het grote programmeertips topic

Bericht door Zap » 18 dec 2008, 20:43

Nog een handige tip waar ik net aan dacht. Veel programma's werken met lijsten. Als je niet weet hoe lang een lijst gaat worden, gebruik je gewoon 0->dim(L1 [of L2 of wat dan ook]). De lijst wordt vanzelf groter als je iets nieuws toevoegd.

ti-wereld.nl
Vergevorderde
Vergevorderde
Berichten: 247
Lid geworden op: 24 aug 2008, 16:20
Contacteer:

Re: Het grote programmeertips topic

Bericht door ti-wereld.nl » 06 mar 2009, 22:49

Marco schreef:Misschien wel sneller dan WHILE, maar FOR is echt de snelste geloof ik...
seq() is nog sneller ;)

Gebruikersavatar
barto
Vergevorderde
Vergevorderde
Berichten: 654
Lid geworden op: 07 jun 2011, 16:02

Re: Het grote programmeertips topic

Bericht door barto » 28 dec 2011, 13:29

Vensterinstellingen
Als je handig wilt werken is het niet slecht van dit te gebruiken:

Code: Selecteer alles

0   ->YMax
-62 ->YMin
0   ->XMin
94  ->XMax
Hierdoor zal pxl-off(5,8) hetzelfde doen als pt-off(8,-5). Handig als je lijnen wilt tekenen, die maken gebruik van je window instellingen, terwijl pixels dat niet doen. pxl-off(100,200) geeft een error, maar pt-off(200,-100) niet.
Given that, by scientifical reasons, the state of an object is completely determined by the physical influence of its environment, the probability to roll six with a dice is either one or zero.

Plaats reactie