Toon posts:

[Ti 83+]Gegevens handig opslaan

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu een beetje bezig een redelijk groot programma te maken in basic voor op de Ti 83 plus. Het is de bedoeling dat hier redelijk veel tekst in komt te staan, en dat er ook snel tekst kan worden toegevoegd.

Om dit allemaal ordelijk weer te geven en te structureren zat ik te denken aan een soort "array" van tekst. Ik ben al bekend met "lijsten", daar kun je hele mooie dingen mee doen, alleen een nadeel; lijsten zijn alleen geschikt voor getallen.

Verder weet ik dat tekst in "strings" opgeslagen kunnen worden, maar er zijn maar 9 strings, dus dan houd het snel op.

Wat ik dus wil is tekst zo op kunnen slaan:

iets(1) = "hoi"
iets(2) = "ja leuk"

Maar hier heb ik geen geschikte functie voor kunnen vinden.

Natuurlijk moet ik zelf iets geprobeerd hebben, en dat heb ik ook gedaan.
Eerst dacht ik dat dit gewoon met lijsten kon, maar na het proberen van onderstaande regel kwam ik erachter dat lijsten alleen voor getallen zijn.
code:
1
2
3
4
5
6
7
{"bla","woei"} -> Ltest

geeft:

ERR:DATA TYPE
1:Quit
2:Goto



Nu vraag ik of iemand weet hoe ik tekst in een soort van "array" op kan slaan.

Verwijderd

ik heb zoiets wel eens gedaan op de gewone ti83. gewoon lappen text in aparte programma's gezet. als je zo'n stuk text nodig hebt even recall doen.

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 01:27

pietje63

RTFM

misschien mogelijk om de tekst de encoderen naar getallen? (a=01 tm z=26) en dan in een lijst te zetten

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Verwijderd

Dit wil ik ok al een tijdje voor mijn casio, want k heb geen idee hoe ik strings op kan slaan op mijn casio

Verwijderd

Je kan ontiegelijk veel tekst in je strings kwijt. met substring kan je stukken uit die string oproepen. substring, dan de desbetreffende string het character in de string van 1 eerste to oneindig. en dan hoeveel letters.

Kijk eens in de gebruiksaanwijzing, die is er niet voor niks. ;)

Edit:
Je kan het best imho gaan proggen met de ti-83 als je niks beters te doen hebt (school of onderweg).

[ Voor 16% gewijzigd door Verwijderd op 29-06-2003 12:17 ]


Verwijderd

Topicstarter
Verwijderd schreef op 29 June 2003 @ 01:06:
ik heb zoiets wel eens gedaan op de gewone ti83. gewoon lappen text in aparte programma's gezet. als je zo'n stuk text nodig hebt even recall doen.
Dit is niet echt wat ik zoek, ik ben van plan een soort database programma te maken met allerlei formules voor bepaalde vakken. Deze formules wil ik wel in aparte programma's gaan zetten, en dan via prgmVAK laten "includen".
Ik kan best allemaal aparte stukjes met text(y,x,"bla") gaan schrijven, maar dat zie ik niet zo zitten naarmate het programma groter wordt.

Daarom wil ik het eigelijk in een soort "array", dan kan ik het mooi doorlopen met allerlei lusjes ;)
pietje63 schreef op 29 June 2003 @ 01:51:
misschien mogelijk om de tekst de encoderen naar getallen? (a=01 tm z=26) en dan in een lijst te zetten
Ik denk niet dat dat haalbaar is, het kan op zich wel maar dan wordt het omzetten een zeer tijdrovend karwei...en het komt de performance ook niet ten goede. (dr zit een 6 MHz proc. in zo'n ding ;))
Verwijderd schreef op 29 June 2003 @ 11:42:
Je kan ontiegelijk veel tekst in je strings kwijt. met substring kan je stukken uit die string oproepen. substring, dan de desbetreffende string het character in de string van 1 eerste to oneindig. en dan hoeveel letters.

Kijk eens in de gebruiksaanwijzing, die is er niet voor niks. ;)

Edit:
Je kan het best imho gaan proggen met de ti-83 als je niks beters te doen hebt (school of onderweg).
Heeft de TI een substr functie? Zoja, waar staat die dan ergens in de handleiding...ik ben em nog niet tegen gekomen.
Want zo'n functie zou wel handig zijn als "tijdelijke" oplossing.
(ik zie toch liever een soort array, ivm met toevoegen en doorlopen)

edit: hmmja, ik zie nu de functie "sub()" op blz 15-9 (tekenreeksfuncties en -instructies in CATALOG)... maar dit is niet helemaal wat ik zoek.
Dit betekend dat ik per string die ik invoer ook nog eens de beginpositie en de lenge moet gaan opslaan ergens...dit zou natuurlijk met lijsten kunnen, maar ik zie er toch een beetje tegen op ;)

edit2: nu ik zo heel hoofdstuk 15 van mn handleiding ff doorlees zie ik toch wel wat handige functies...dit gaat nog wel lukken. (maar ik blijf natuurlijk altijd wachten op een betere manier)

[ Voor 21% gewijzigd door Verwijderd op 29-06-2003 13:00 ]


Verwijderd

Substrings: 15-9 in "het" boek.

Verwijderd

Topicstarter
Verwijderd schreef op 29 June 2003 @ 12:54:
Substrings: 15-9 in "het" boek.
Ja, ik had het al gevonden, de search is heilig...ook in boeken! :D
Verder ziet h. 15 er wel interessant uit, hier zal ik binnenkort eens mee aan de slag gaan.

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

De TI heeft niet echt veel functies voor strings..

Paar mogelijkheden:

code:
1
2
3
If Ans=1:"String1"
if Ans=2:"String2"
if Ans=3:"String3"

Je kan dan iets in trand van 3:prgmSTRING:Ans->Str0 gebruiken om de juiste op te vragen. Toevoegen moet je dan wel met de hand doen. Ik weet niet hoe vaak je iets moet toe voegen, maar dit lijkt me de makkelijkste manier..

Verder zou je kunnen proberen met inString en sub een string te exploden op een bepaald teken. Je kan dan wel makkelijk dingen toevoegen, maar onderhouden word een flinke klus. Bovendien word het leuk als je dan het laatste element wilt opvragen en je super snelle GR die hele lijst door moet (en dan mag je nog hopen dat er genoeg ruimte vrij is).

Andere manier is natuurlijk assembly ;)
En volgens mij was er ook een programmatje waarmee je strings kon opslaan in arrays (heb het nooit uitgeprobeerd, dus pin me er niet op vast). Moet je even zoeken op ticalc.org

Verwijderd

Topicstarter
Hmm, ik zat zelf ook aan ASM te denken, enige probleem is dat ik daar noppes ervaring mee heb. (wel een link kabel, dus dat is geen probleem)

En jou systeem lijkt me niet zo handig, want ik wil alle elementen uit de string in een soort menu structuur weergeven...

Ik ben nu al wat aan de slag gegaan met exploden op bepaalde tekens, en dat lukt al aardig (bij mn test dan ;) )

Hier ff een klein voorbeeldje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
"NAT" -> str1
str1 + "'WIS" -> str1
str1 + "'SK" -> str1

prgmTEST
NAT'WIS'SK

inString(str1,"'",1) -> A
4
inString(str1,"'",A+1) -> B
8
sub(str1,A+1,B-A-1) 
WIS

Bij het zien werken van deze code was slindenau toch wel ff blij ;)


Edit: Oki, dit principe heb ik ff verder uitgewerkt, om alle elemten te displayen.
Zo ziet mn programma er uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"'NAT"->Str1
Str1+"'WIS"->Str1
Str1+"'SK"->Str1
Str1+"'"->Str1
1->C
1->A
1->X
0->dim(LSB)
While C=1
inString(Str1,"'",A)->A
If A>0:Then
A->LSB(X)
A+1->A
X+1->X
Else
0->C
End
End
Disp LSB
dim(LSB)->D
1->E
While E<D
Output(E,1,E
Output(E,2,":"
Output(E,3,sub(Str1,LSB(E)+1,LSB(E+1)-LSB(E)-1)
E+1->E
End

en dit is de output:
code:
1
2
3
1:NAT   {1,5,9,12}
2:WIS
3:SK

Ben toch best tevreden ;)

Enige nadeel, dit zuigt dus dubbel zoveel geheugen....
Het programma en de string :)
Misschien is het een idee om de sting aan het eind van het programma leeg te gooien, dan blijft het geheugengebruik beperkt.

[ Voor 75% gewijzigd door Verwijderd op 29-06-2003 19:32 ]

Pagina: 1