MSX BASIC – lezione 14

da | Nov 20, 2023 | MSX BASIC | 0 commenti

RUBRICA “MSX BASIC” a cura di Orazio Cacciola (parte 14)

Funzioni per lavorare con le stringhe (2°parte)

Riprendiamo con le altre funzioni, dopo questa puntata, non ci saranno più segreti per manipolare le nostre stringhe.

STR$
Restituisce una stringa da un valore numerico. Può essere stampata direttamente sullo schermo o memorizzata in una variabile alfanumerica: PRINT STR$(10) oppure A$=STR$(10). In Entrambi i casi verrà stampata o memorizzata una stringa di 3 caratteri. Questo succede perché un valore numerico sia positivo che negativo a sempre il segno d’avanti, ma quando si tratta di un valore positivo viene omesso il segno più(+), lasciando uno spazio vuoto. Se invece utilizzo: A$=STR$(-10), il segno negativo(-) viene visualizzato e non ci sarà nessuno spazio vuoto nella variabile A$: A$=”-10″. Come detto sopra possiamo usare anche variabili numeriche: A=150: A$=STR$(A). In quest’altro caso i caratteri dentro la variabile A$ sono 4.
Sintassi: STR$(Variabile Numerica)

LEFT$
Restituisce una stringa determinata dal valore che è stato inserito dentro la funzione, leggendo da sinistra verso destra. PRINT LEFT$(“Ciao a tutti”,4), stamperà a video i primi 4 caratteri e cioè: Ciao. Possiamo usare anche una variabile a stringa: C$=”Ciao a tutti”: PRINT LEFT$(C$,4), farà la stessa cosa di sopra. Il numero dei caratteri nel secondo argomento non deve superare i 255. Se, parlando sempre del secondo argomento, supera il numero dei caratteri della stringa dove si sta ricercando, non sarà segnalato nessun errore, verrà stampata l’intera stringa e nulla più. Può anche essere salvata in una variabile alfanumerica: A$=LEFT$(C$,4). La variabile A$ ha memorizzato i primi 4 caratteri della C$ e cioè la parola “Ciao”.
Sintassi: LEFT$(Variabile Alfanumerica, Numero Caratteri).

RIGHT$
Ha le stesse capacità della funzione LEFT$, l’unico punto che li distingue è che legge da destra verso sinistra. Facendo l’esempio di sopra: C$=”Ciao a tutti”: PRINT RIGHT$(C$,5), stamperà la frase “tutti”. La parola verrà stampata così com’è nella variabile C$ e non al contrario. Essa legge da destra a sinistra ma senza modificare la frase.
Sintassi: RIGHT$(Variabile Alfanumerica, Numero Caratteri)

MID$
E’ uno dei più potenti comandi per la manipolazione delle stringhe. Può copiare, modificare, salvare o ricercare dentro una stringa, cioè tutto quello che vi viene in mente è fattibile. Esso ha tre parametri; il primo è la variabile alfanumerica o stringa dove si vuole lavorare, il secondo è un valore numerico o variabile per sapere da che posizione dovrà partire la ricerca ed infine il terzo, sempre un valore numerico o variabile, quanti sono i caratteri da ricercare o memorizzare, se quest’ultimo viene omesso, verranno memorizzati tutti i caratteri rimanenti della stringa. Facciamo qualche esempio per capire meglio. Iniziamo a copiare una parte della stringa dentro un’altra. A$=”ORAZIO E ANDREA”: MID$(A$,1,6)=B$. Abbiamo estratto il nome ORAZIO dalla variabile A$ e lo abbiamo copiato nella variabile B$. Infatti, gli abbiamo detto di prendere i primi 6 caratteri della variabile A$ e copiarli nella B$. Con quest’altro esempio modificheremo una stringa. A$=”AUTOVEDETTA”: MID$(A$,1,4)=”MOTO”. La variabile A$ che prima aveva memorizzato la parola AUTOVEDETTA, dopo la modifica con MID$ è diventata MOTOVEDETTA. Ammettiamo di voler creare un gioco con le parole, indovina la lettera alfabetica. Una seconda persona inserirà una parola e tu dovrai indovinare se dentro c’è la lettera scelta da te.

10 INPUT "Inserire la frase"; F$: CLS
20 INPUT "Inserisce la lettera"; L$
30 L=LEN(F$): FOR N=1 TO L
40 IF MID$(F$,I,1)=L$ THEN PRINT "BRAVO HAI INDOVINATO": END
50 NEXT N: PRINT "MI DISPIACE, HAI PERSO": END

Dopo aver inserito la frase e la lettera nelle linee 10 e 20, non sapendo la lunghezza della frase, la troveremo con la funzione LEN. Sapendo questa, facciamo partire il ciclo scansionando un carattere alla volta. Infatti nella linea 40 la IF controllerà tramite MID$ carattere per carattere della variabile F$ con L$, se una di questi sarà uguale, stamperà il messaggio della stessa linea, se no quello di fine ciclo, linea 50.
Possiamo anche usare prima la variabile: A$=”MOTOCICLETTA”:B$=MID$(A$,1,4). La B$ sarà “MOTO”.
La MID$ non segnalerà messaggi d’errore se si supera la lunghezza della stringa, in entrambi i casi, sia nella partenza della ricerca, sia del numero di caratteri da stampare o memorizzare, salverà o stamperà stringhe vuote. Ma segnalerà l’errore se si supera in entrambi i casi il 255, che è il numero massimo di memorizzazione delle stringhe.
Sintassi: MID$(Variabile$, Valore di partenza, Quantità di caratteri)

Grazie a tutti. Alla prossima

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

Buongiorno a tutti, In questa puntata parlerò di un interrupt importante, specialmente per i giochi, quando vogliamo far apparire un nemico all'improvviso o un oggetto utile, ma anche per creare un cronometro o un orologio e tante altre cose. Il COMANDO sfrutta il...

it_ITIT_IT