MSX BASIC – lezione 7

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

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

Operatori matematici, di relazione e logici

Oggi parlerò dei vari operatori che sono fondamentali nei nostri programmi di Basic MSX.
Gli operatori matematici, che tutti conosciamo e usiamo nella nostra vita quotidiana, come la somma (+), la sottrazione (-), la moltiplicazione (*) e la divisione (/), sono la base fondamentale per i nostri calcoli.
PRINT 21+32; oppure PRINT 50-25; oppure PRINT 25*4; per finire PRINT 50/2.
Facendo così, avremo i nostri risultati immediati e come usare una calcolatrice, ma inserendoli nei nostri programmi, possiamo combinare anche più operazioni, usandoli anche con le variabili. Ricordiamoci che moltiplicazioni e divisioni avranno la precedenza su somme e sottrazioni. Ma a questo problema si può ovviare inserendo i calcoli che vogliamo dare precedenza dentro le parentesi tonde.

Per fare un esempio: 100 A=52*(25-10) + (20/2) + 22.
Esaminiamo la riga sopra: per prima verrà calcolato tutto quello che c’è dentro le parentesi: A=52*15+10+22. Poi calcolerà in ordine di priorità di segno:
A=780+10+22 e alla fine il resto, visto che gli operatori sono tutte somme.
Ricordiamoci che tutto quello che sarà in parentesi sarà calcolato in ordine di lettura e non di priorità di segno. Nei casi in cui dentro la stessa parentesi ci sarà una somma o sottrazione e una divisione o moltiplicazione e allora varrà la regola della priorità del segno. Si possono usare anche parentesi dentro altre parentesi, per i calcoli ancora più complessi.

Oltre i 4 operatori che conosciamo ce ne sono altre 3 molto utili per i nostri calcoli.

\ (divisione inversa); usando questo operatore darà il risultato solo dell’intero, eliminando la parte decimale. Esempio: PRINT 18\4, il risultato sarà 4
^ (Elevazione a potenza) Calcola la potenza di 2 numeri o variabili. PRINT 2^3. Risultato sarà 8.
MOD; Restituisce il resto di una divisione intera. Facendo l’esempio di sopra:
PRINT 18 MOD 4, il risultato è 2. Per fare un semplice esempio per far vedere uno dei tanti modi come poterlo utilizzare, manderò in stampa sullo schermo solo i numeri pari in una variabile che sarà incrementata di un numero alla volta.

10 A=0
20 A=A+1: IF A MOD 2 = 0 THEN PRINT A
30 GOTO 20

Anche se non ho ancora parlato della funzione di condizionamento IF/THEN, il programma è molto semplice da capire. Sto dicendo che se il resto è zero allora il numero è pari perciò deve stamparlo, altrimenti è dispari, perché il resto sarà 1 e non verrà stampato.

Gli operatori di relazione mettono a confronto 2 numeri o stringhe e restituiscono –1 se questo è vero, 0 se invece e falso. Vengono usati principalmente con IF/THEN, infatti, capirete meglio quando parlerò di quest’ultima. Per adesso capiamo a cosa servono.

Operatore Relazione
= Uguale
< Minore
> Maggiore
<> Diverso
<= Minore uguale
>= Maggiore uguale

Gli operatori logici sono simili a quelli di relazione, essi mettono a confronto 2 valori che sono veri o falsi. Anche questi sono molto usati con l’istruzione IF/THEN. Essi sono: AND, OR, XOR, EQV, IMP, NOT Per farvi capire meglio creerò uno specchietto con 2 variabili e tutti gli operatori, usando 1 e 0 per VERO o FALSO. Metterò a confronto le 2 variabile con gli operatori per far vedere i loro risultati.

Potrebbe essere un'immagine raffigurante il seguente testo "X XY XANDY XORY XEQVY 11 XIMPY IMP 1 XXORY 1 1 1 0 1 1 01 0 0 0 0 1 1 00 0 0 1 0 1 1 1 0"
AND sarà vero solo se i 2 risultati sono veri
OR sarà vero se 1 dei 2 o tutte e 2 risultati sono veri
EQV sarà vero solo se sono entrambi veri o falsi
IMP sarà vero in tutti i casi tranne quando il primo è vero e il secondo è falso
XOR sarà vero solo quando un dei 2 è vero.
NOT è l’unico operatore unitario. Esso opera solo su un argomento, ed è intuibile da capire. Se è falso diventa vero e viceversa se è vero diventa falso.

Prima di salutare, volevo dire che per qualche settimana, la rubrica andrà in ferie, ci rivedremo a inizio settembre.
Grazie ancora a tutti e arrivederci a presto.

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