"FALCO CESARE (BAM - 00541)" wrote: > > > E la conseguenza di questo modo di pensare sarebbe, continuando con > > l'esempio che avevo già introdotto, che il Clipper ha un solo tipo di > > dato in quanto non ha dichiarazioni di tipo, il che è palesemente errato > > in quanto quel linguaggio ha quattro tipi di dato ben diversi (stringa, > > numerico, logico e data). > > No, nel tuo esempio il Clipper ha 4 tipi di dato che posso utilizzare per > dichiarare variabili di tipo adatto a contenere determinati valori. Esattamente come sullo Spectrum. Se scrivo LET i = 1 ottengo una variabile intera (gestita dal calcolatore interno in modo appropriato). Ma se scrivo LET fp = 123.456 ottengo una full fp. Due tipi di dato diversi dei quali, lo ammetto, il principiante che legge il manuale dello Spectrum non si avvede. > Questo e' il punto. Il Sinclair Basic tratta una variabile il > cui contenuto sia un numero intero in modo diverso da come tratta > una variabile il cui contenuto sia un numero in virgola mobile. > E anche qui sono d'accordo. Bene. > Ma io non posso creare una variabile nella quale inserire > *solo* numeri interi (come ad esempio in C), perche' l'interprete > del linguaggio non consente questa possibilita'. Certo, no. Appunto avevo detto che Stefano (flydream) aveva *quasi* ragione. > La domanda originale era: > "Vorrei sapere se è possibile definire sullo spectrum > le variabili numeriche in intere, in modo che il programma > giri più velocemente, sugli MSX si usa DEFINTA-Z > (definisci tutte le variabili intere)." Ma io non rispondevo a quella. Rispondevo a Stefano (flydream) che portava la funzione INT come esempio. > Come hai detto anche tu, non stiamo parlando di opinioni, > ma di regole sintattiche di un linguaggio di programmazione. > L'unica risposta corretta alla domanda e' che non si puo' > perche' si puo' solo definire una variabile che contenga numeri. E no, qui ancora non siamo d'accordo. Quella è forse la risposta corretta per un principiante ma non per uno che conosce approfonditamente il calcolatore fp dello Spectrum, ti pare? > Vedi sopra. Per quello che hai detto prima, la tua affermazione > e' corretta, ma se pensi a come sono dichiarate le variabili, la > funzione INT non fa altro che prendere un numero e restituirti > un altro numero la cui parte decimale e' pari a 0. Invece pare proprio che non sia così, a quanto dice Stefano Bodrato. > Come ha scritto Roberto, se vogliamo trovare un'analogia con il > cast, mi sembra meglio la funzione VAL. Assolutamente no! Un cast è una conversione di tipo. E non è possibile convertire un tipo stringa in un tipo numerico. E' possibile convertire una stringa di cifre nel valore corrispondente ma questo non è un cast in nessun senso. Ad esempio in C char stringa[] = "123"; int n = ( int ) stringa; è sintatticamente corretto ma non dà affatto il risultato sperato. Ci vuole una funzione di conversione (atoi()) non un cast che sono due cose concettualmente molto diverse. > Che dici, abbiamo annoiato gli altri a sufficienza? :^) Ma se non parliamo di queste cose di cosa dobbiamo parlare? > Rispondero' eventualmente lunedi' perche' devo scappare... :^P Ok. EMG -- EMAG Software Homepage: http://www.emagsoftware.it The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum The Best of Spectrum Games: http://www.emagsoftware.it/tbosg