> > Vuoi dirmi che se applico il casting su una variabile int > > *la variabile* diventa una variabile float?! > > No, il *valore* diventa di tipo float. Tu hai detto > "compatibile con una > variabile float". Se intendevi "tipo float" allora siamo d'accordo. Su questo allora siamo d'accordo. > Ma allora perché non dire, appunto, "tipo float"? Perche' volevo essere chiaro sul fatto che mi riferivo al valore della variabile e non alla variabile in se'. > > * Tipo di dato = oggetto astratto che identifica un insieme > > di valori (es. numeri interi, caratteri alfanumerici, numeri) > > * Valore = contenuto di una variabile > > * Variabile = istanza di un tipo dato > > > 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. Se poi internamente il Clipper sia in grado di gestire anche altri tipi di dato, in fase di definizione delle variabili non e' rilevante. > > Ripeto il mio punto di vista: non è necessario che esista la > dichiarazione sintattica di tipo di dato perché esistano > diversi tipi di > dato in un linguaggio. 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. 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'. 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)." 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 ripeto anche l'analogia del cast: > > LET b = INT( 123.456 ) > > converte il valore in intero troncando la parte decimale ma converte > anche il tipo, dato che la variabile b sarà gestita come variabile > intera dal calcolatore interno. 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. Come ha scritto Roberto, se vogliamo trovare un'analogia con il cast, mi sembra meglio la funzione VAL. Che dici, abbiamo annoiato gli altri a sufficienza? :^) Rispondero' eventualmente lunedi' perche' devo scappare... :^P Cesare.