Corso di AMOS
Torna all'elenco delle lezioni LEZIONE 8: Le Finestre

Con Amos è possibile fare un largo utilizzo delle finestre potendone aprire un numero elevatissimo memoria permettendo; è possibile spostarle, ridimensionarle e ad esse si può aggiungere titoli sulla riga superiore od inferiore, inoltre è possibile tracciarle con o senza bordo, ecc.


Border n,paper,pen
Cambia il bordo della finestra numero n, specificandone il colore di background e di foreground.


Clw
Cancella il contenuto della finestra corrente.


Title Bottom b$
Permette di inseriure un titolo (la stringa B$) sul burdo inferiore della finestra corrente.


Title Top t$
Permette di inseriure un titolo (la stringa T$) sul burdo superiore della finestra corrente.


Wind Open n,x,y,w,h[,bor[,set]]
Apre la finestra numero n con angolo superiore sinistro (x,y) di larghezza e altezza specificate in caratteri; si può specificare anche il tipo di cornice da un archivio di 16 stili tutti diversi.


Wind Close
Chiude la finestra corrente; per non sporcare la finestra sottostante usare prima il comando Wind Save.


Wind Move x,y
Muove l'angolo superiore sinistro della finestra corrente di x pixels in larghezza y in altezza. Anche qui, per non sporcare le finestre sottostanti, si fa necessario l'uso del comando Wind Save.


Window n
Rende attiva la finestra numero n.


=Window
Ritorna il numero della finestra corrente.


Wind Save
Salva la parte di schermo sottostante la finestra attiva in modo che, una volta chiusa, sia possibile ripristinare la zona di schermo che altrimenti resterebbe sporca dalla finetra appena chiusa o spostata.


Wind Size w,h
Permette di reimpostare l'altezza e la larghezza (in caratteri) della finestra corrente.


-FUNZIONI MATEMATICHE E MANIPOLAZIONE DI NUMERI E SEQUENZE-

Amos offre una grande varietà di comandi per qualsiasi tipo di calcolo matematico. C'è da precisare che Amos usa, per default, variabili intere in modo da accelerare ulteriormente la velocità dei calcoli; tuttavia è sufficiente aggiungere un # al nome della variabile per farla considerare REALE. Ad esempio la variabile CONT è intera mentre CONT# è reale.
La costante PI-GRECO è disponibile per default.
Le quattro operazioni sono espresse dai seguenti caratteri: +, -, *, /, mentre l'elevato a potenza è espresso da ^. Ad esempio 3 alevato alla seconda è uguale a: 3^2.


Degree
Imposta la misura degli angoli in gradi sessagesimali.


Radian
Imposta, per la misura degli angoli, i radianti (è settato di default).


a#=Pi#
Assegna ad A# il valore di Pi-Greco (3.14...).


=Sin(a[#])
Ritorna il seno dell'angolo a, o del reale a#; si deve assegnare ad una variabile reale.


=Cos(a[#])
Ritorna il coseno dell'angolo a, o del reale a#; si deve assegnare ad una variabile reale.


=Tan(a[#])
Ritorna la tangente dell'angolo a, o a#; si deve assegnare ad una variabile reale.


=Acos(n#)
Ritorna l'arcocoseno dell'angolo n#; si deve assegnare ad una variabile reale.


=Asin(n#)
Ritorna l'arcooseno dell'angolo n#; si deve assegnare ad una variabile reale.


=Atan(n#)
Ritorna l'arcotangente dell'angolo n#; si deve assegnare ad una variabile reale.


=Hsin(a[#])
Ritorna il seno iperbolico dell'angolo a o a#.


=Hcos(a[#])
Ritorna il coseno iperbolico dell'angolo a o a#.


=Htan(a[#])
Ritorna la tangente iperbolica dell'angolo a o a#.


=Log(v[#])
Ritorna il logaritmo in base 10 dell'espressione v o v#.


=Exp(e#)
Ritorna l'esponenziale del reale e#.


=Ln(l#)
Ritorna il logaritmo naturale, o neperiano, del reale l#.


=sqr(v[#])
Calcola la radice quadrata dell'espressione intera v o reale v#.


=Abs(v[#])
Ritorna il valore assoluto dell'espressione v o v#.


=Int(v#)
Ritorna il valore intero dell'espressione reale v#


=Sgn(v[#])
Ritorna il segno dell'espressione v[#]: -1 se è negativa, 1 se è positiva.


=Rnd(n)
Genera un numero casuale fra 0 e n; se n non si specifica viene usata come 1. Ad es.: A=RND(3) assegna ad A un numero casuale compreso fra 0 e 3.


Randomize Seed/Timer
Premette di scegliere il seme (seed) di partenza per le funzioni casuali; per generare un seme veramente casuale utilizza come seme la funzione Timer la cui unità è di 50' di secondo.


=Max(x,y)
Ritorna il numero maggiore tra x e y.


=Max(x#,y#)
Ritorna il numero reale maggiore tra x# e y#.


=Max(x$,y$)
Ritorna la stringa maggiore fra x$ e y$, utile ovviamente per programmare ordinatori alfabetici.


=Min(x,y)
Ritorna il numero minore tra x e y.


=Min(x#,y#)
Ritorna il numero reale minore tra x# e y#.


=Min(x$,y$)
Ritorna la stringa minore fra x$ e y$, utile ovviamente per programmare ordinatori alfabetici.


Swap x,y/x#,y#/x$,y$
Scambia il contenuto dellevariabili x e y a prescindere dal tipo usato.


Fix(n)
Permette di stabilire il numero di cifre decimali che saranno visualizzate o stampate per i numeri decimali.
Ci sono 4 possibilità:
0 < n < 16: Stabilisce il numero di cifre decimali dopo la virgola; n > 16: il risultato sarà proporzionale a n e tutti gli zeri sarammo rimossi;
n = 16: viene ripristinato il formato normale;
n < 16: Forza il modo esponenziale e tante cifre dopo la virgola pari al valore assoluto di n.


Def Fn f$ [(lista)]=esp
Crea una funzione di nome f$, che accetta i parametri contenuti in lista. Altrimenti f$ è una funzione fissa, che si può definire tramite l'espressione esp


Fn f$ [(lista)]
Chiama la funzione f$ e gli passa come parametri quelli della lista.

Es.:

Def FN SUP=(B*H)/2
Input"Digita il valore della base: ";BASE
Input"Digita il valore dell'altezza: ";ALTEZZA
Print "L'area del triangolo è: ";FN SUB(BASE,ALTEZZA)


-LA TASTIERA-

Con Amos anche la gestione della tastira diventa veramente facile e veloce.
E' possibile controllare tutti i tasti compresi quelli speciali, generare stati d'attesa, costruire le macro più impensabili e addirittura rallentare la velocità di ripetizione dei tasti.


=Inkey$
Controlla se un tasto della tastiera è stato premuto e lo fornisce come risultato. Non riconosce tasti come DEL, HELP e i tasti funzione, i quali vengono comunque gestiti dal comando Scancode. Non generando uno stato d'attesa, il suo contenuto si perde subito, quindi è necessario assegnarlo ad una variabile stringa.


=Scancode
Ritorna il codice di scansione dell'ultimo tasto premuto. A differenza di Inkey$, riconosce i tasti funzione, DEL ed HELP.


=Key State(s)
Controlla lo stato del tasto, che corrisponde al codice di scansione s. Ritorna True se quel tasto è stato premuto, altrimenti ritorna False.


Keys=Key Shift
Ritorna lo stato dei tasti speciali tramite i valori:


x$=Input(n)
Permette di inserire solo n caratteri dalla tasatiera, che non saranno visualizzati, ma immessi nella variabile x$.


Wait Key
Attende che sia premuto un tasto della tastiera. Da usare mettendo in precedenza il comando Clear Key.


Key Speed lag,speed
Permette di inserire in 50' di secondo il tempo d'attesa necessario per la ripetizione di un tasto (lag), e la velocità con cui lo stesso viene ripetuto (speed); incrementando i valori la velocità diminuisce.


Clear Key
Inizializza il buffer della tastiera;è utilissimo per il comando Wait Key.


Put Keya$
Immette una stringa a$ (lunga massimo 31 caratteri) nel buffer di tastiera; ad un successivo Input verrà ritornata la stringa a$; è possibile immettere anche il carattere ascii 13, che corrisponde al tasto INVIO, per avere un input automatico.


Input var[;]
Permette di introdurre, durante l'esecuzione del programma, dei dati che saranno assegnati alla variabile var; con il ; finale si attacca il cursore alla posizione corrente.


Input "Promt";var[;]
A differenza di Input stampa la stringa "Promt" prima di accettare l'immissione da tastiera.


Line Input"Promt";var,var...[;]
Permette di inserire, a differenza di input, più variabili separate dal tasto INVIO. Da usare per l'input di più variabili, come ad esempio le tre misure dei lati di un triangolo ecc.


-CONTROLLO DEGLI OGGETTI-


Hide [On]
Nasconde il puntarote del mouse.
L'opzione On fa si che il comando abbia effetto su tutti gli schermi aperti e questo, naturalmente è valido anche per Show.


Show [On]
Torna a visualizzare il puntatore del mouse.


Change mouse m
Carica come puntatore del mouse lo sprite m. Sono predefiniti tre sprite.
Se m è maggiore di 3 sarà caricata dal banco degli sprite l'immagine numero m-3: per caricare la prima immagine si deve immettere m=4.


=Mouse Key
Legge lo stato dei bottoni del mouse; ritorna 1 se viene premuto il tasto sinistro, 2 per il tasto destro e 3 per entrambi i tasti premuti.


=Mouse Click
Controlla se è stato premuto un tasto del mouse; ritorna 0 se nessun tasto è stato premuto, 1 per il sinistro, 2 per il destro e 4 per il terzo tasto; sono anche possibili le combinazioni.


=X Mouse=
Legge o stabilisce la posizione del mouse nell'asse delle X.


=Y Mouse=
Legge o stabilisce la posizione del mouse nell'asse delle Y.


=Joy(n)
Permette di controllare lo stato del joystick, o del mouse, collegato nella porta destra se n=1 o nella porta sinistra se n=0. Ritorna il valore 1 per il joystick mosso verso l'alto, 2 per il basso, 4 per sinistra, 8 per destra e 16 per il tasto di fuoco.


=Jleft(n)
Ritorna True se il joystick è stato mosso verso sinistra. (n=0 per la porta sinistra e 1 per la destra).


=Jright(n)
Ritorna True se il joystick è stato mosso verso destra. (n=0 per la porta sinistra e 1 per la destra).


=Jup(n)
Ritorna True se il joystick è stato mosso verso l'alto. (n=0 per la porta sinistra e 1 per la destra).


=Jdown(n)
Ritorna True se il joystick è stato mosso verso il basso. (n=0 per la porta sinistra e 1 per la destra).


=Fire(n)
Ritorna True se è stato premuto il tasto di Fuoco. (n=0 per la porta sinistra e 1 per la destra).


=Mouse Screen
Ritorna il numero dello screen in cui si trova il puntatore del mouse.

Bene! L'ottava lezione termina qui, dalla prossima finalmente tratteremo un degli argomenti più interessanti: gli screen, dove si parlerà di come si apre uno screen, quali caratteristiche vi possiamo attribuire, caricare schermate di nostra fattura dentro ad uno screen ed ulteriori comandi per creare effetti grafici e scrolls.


 Il corso di AMOS è scritto da:   Impaginazione by:
Barbieri Adriano
& Joseph Lombardo
Trombini Davide

[Index]    [7° Lezione]


Copyright AMiWoRLD