MBASIC: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 36:
Per permettere di eseguire programmi molto grandi, le ultime versioni dell'MBASIC introdussero le istruzioni <code>CHAIN</code> e <code>MERGE</code>: la prima passava l'esecuzione ad un altro programma mentre la seconda caricava un programma unendolo a quello presente in memoria. Non c'era però il supporto all'esecuzione di programmi da terminale (l'istruzione <code>SHELL</code> presente in altri dialetti del BASIC), che permetteva di passare temporaneamente il controllo ad un comando del terminale per implementare funzioni del sistema operativo non supportate dall'MBASIC.
===Gestione dei file ed I/O===
<!--▼
I dati potevano essere letti o salvati su disco sia come file sequenziali, delimitati alla fine di ogni riga con la coppia di caratteri CR/LF ("carriage return"/"line feed") tipica del CP/M, sia come file ad accesso causale con campi di dimensione prefissata, che potevano essere utilizzati anche per implementare una rudimentale forma di [[database]]. I [[numero in virgola mobile|numeri in virgola mobile]] venivano salvati in formato MBF (''Microsoft Binary Format''), una codifica proprietaria che Microsoft usava in tutti i suoi BASIC che offriva una rappresentazione più precisa rispetto all'[[IEEE 754]] normalmente adottato dagli altri dialetti BASIC ma incompatibile con esso. I dati salvati in formato MBF potevano perciò essere letti solo su un computer che usava un BASIC Microsoft.
===Variabili
L'MBASIC supportava i seguenti [[Tipo di dato|tipi di dato]]:
* tipo [[Carattere (informatica)|carattere]] ad [[8 bit]], con [[Stringa (informatica)|stringhe]] lunghe massimo 255 caratteri;
* [[Numero intero (informatica)|interi]] a [[16 bit]];
* numeri in virgola mobile a [[32 bit]] (singola precisione), equivalenti a 6 cifre decimali con 2 cifre per l'esponente;
* numeri in virgola mobile a [[64 bit]] (doppia precisione), equivalenti a 16 cifre decimali con 2 cifre per l'esponente.
Gli operatori sulle stringhe includevano la selezione di parti delle stesse, la concatenazione, l'assegnamento, ed i test di uguaglianza.
I [[Array|vettori]] potevano avere fino a 7 dimensioni ma nessuna funzione od operatore poteva operare su di essi: ad esempio, non si potevano eseguire operazioni di assegnamento. A differenza di altri dialetti BASIC di quel periodo, l'MBASIC non supportava le operazioni sulle [[matrice|matrici]] ed i [[Numero complesso|numeri complessi]] né un tipo di [[Binary-coded decimal|dato decimale (BCD)]].
Tutte le operazioni in virgola mobile erano eseguite via software dato che quasi nessun sistema CP/M aveva un [[coprocessore matematico]]: per questo motivo le funzioni matematiche precostituite quali il [[Seno (matematica)|seno]], il [[coseno]], la [[Tangente (trigonometria)|tangente]], il [[logaritmo naturale]], la [[funzione esponenziale]], la [[radice quadrata]], davano solo risultati in singola precisione.
L'MBASIC fornva anche un [[Numeri pseudo-casuali|generatore di numeri pseudo-casuali]], a cui l'utente poteva fornire un "seme" usato per ottenere una sequenza di numeri utili per i giochi o le simulazioni.
L'MBASIC consentiva l'uso della parola chiave <code>LET</code> per la dichiarazione delle variabili, anche se il suo uso non era obbligatorio. A differenza dei primi dialetti BASIC, l'MBASIC non limitava l'uso dei nomi delle variabili a 2 soli caratteri ma permetteva di usarne fino a 40 (MBASIC 5), consentendo così ai programmatori di usare nomi più indicativi del valore che conservavano.
▲<!--
=== Program flow control ===
|