[zxspectrum] Re: usare le variabili intere

  • From: Roberto Montaruli <rmontaruli@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Fri, 12 Mar 2004 06:02:36 -0800 (PST)

--- Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx> wrote:
> 
> 
> Roberto Montaruli wrote:
> > 
> > In programmazione si parla di tipi di variabili diversi quando oltre al
> > linguaggio che le usa internamente, anche il programmatore si deve porre
> dei
> > problemi al riguardo.
> 
> Se intendi dire che il tipo di una variabile deve sempre essere
> esplicitamente dichiarato allora sei in errore. Come ho già accennato,
> esistono linguaggi strong-typed nei quali il controllo di tipo avviene a
> compile-time in base alla dichiarazione del programmatore ma esistono
> anche linguaggi weak-typed nei quali il tipo di dato è dinamico e cambia
> in runtime a seconda del valore assegnato. Il Basic dello Spectrum è
> proprio uno di questi ultimi.

Non sono daccordo.
Ci sono linguaggi in cui la dichiarazione delle variabili deve essere
esplicitata, altri come il basic in cui questa e' semi esplicita, visto che le
variabili hanno dei suffissi che sottintendono il tipo.

Prendiamo il basic per i PC per esempio:
a$ : stringa
a% : intero corto (16 bit)
a& : intero lungo (32 bit)
a  : float (virgola mobile)
a! : real (virgola mobile ma con mantissa piu' lunga)

Lo spectrum usa il suffisso $ per le stringhe e nessun suffisso per le
variabili numeriche.

In quanto basic non e' obbligatorio dichiarare il tipo in anticipo, e
l'interprete deduce il tipo dal suffisso.
 
> > Cioe' io programmatore, ben sapendo l'uso che faccio di una certa variabile
> e i
> > valori che questa potra' assumere, la definisco intera oppure reale oppure
> > stringa o data o quel cavolo che il linguaggio mi permette...
> 
> In Spectrum Basic come faresti a dichiarare una variabile? Eppure i tipi
> diversi esistono (basta pensare alle stringhe e ai numeri). E', appunto,
> un diverso modo di intendere la tipizzazione.

In spectrum basic non si dichiara, si assegna.
L'assegnazione LET a=10 implica una dichiarazione della variabile allo stesso
tempo.

Se tu provi a fare 
PRINT a 
senza aver prima fatto 
LET a=10
lo spectrum non ti risponde 0 come certi basic ma esce l'errore 2 Variable not
Found.
 
> > Se teniamo conto di questa definizione, che mi pare essere quella
> maggiormente
> > accettata e che comunque io ritengo quella corretta, in questo caso non
> > possiamo assolutamente dire che lo spectrum gestisca il tipo numerico
> intero.
> 
> Se la tua definizione fosse corretta (e non lo è) allora dovremmo dire
> che lo Spectrum non gestisce *alcun* tipo di dato in quanto non esiste
> dichiarazione. Cosa che ovviamente non è.

Qui non ti seguo.
Pero' ho capito una cosa: che tu hai la tua opinione, io ho la mia, non credo
che nessuno dei due voglia cambiare idea e in ogni caso non mi sembra una
questione di grave importanza.
Chi aveva posto la questione iniziale si sara' fatto spero a questo punto una
sua idea.


=====
//
//   In a world without walls and fences
//     you would not need windows and gates. 
//                               (Confucio)
==
P'n'P: http://maicrosoft.italiamac.com

__________________________________
Do you Yahoo!?
Yahoo! Search - Find what you?re looking for faster
http://search.yahoo.com

Other related posts: