[zxspectrum] Re: usare le variabili intere

  • From: "FALCO CESARE (BAM - 00541)" <cesare.falco@xxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Fri, 12 Mar 2004 17:42:43 +0100

 
> > 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.

Other related posts: