Novità

Omaggio a Joe91

Riferendomi alla stessa immagine :

inon.jpg


La Chiamata (CALL) nella linea di script: Call Scrivi ("Pippo")

OBBLIGA l' Interprete del BASIC a valutare il contenuto del nostro comando: SCRIVI e ...

... degli eventuali parametri opzionali contenuti tra le parentesi ("Pippo", ....)

In questo caso gli apici ("") come è nell'uso comune, stanno ad indicare che si desidera "comunicare" un contenuto preciso.

Ad esempio:

("") .... Nulla .... tra gli apici

("Pippo") .... che, in questo caso viene interpretato come essere ... Pippo.

Scritto di lettere Maiuscole e minuscole senza spazi ecc.. ecc.. esattamente, Pippo.

Ho scritto interpretato perchè l'esecuzione di questa semplice linea di script

non è la risposta-pura ad un comando, ma l'interpretazione del comando in essa contenuto.

Ad esempio se la linea dello script fosse Call Scrivi ( 2 + 3 ) ...

Call Scrivi ( 2+3 ) viene interpretato come Scrivi il risultato di una somma e ... ottiene come risultato 5.

Dimostrando evidente che, in questo caso, la linea dello script viene scomposta nella chiamata ... Call ...

nel comando ... Scrivi ... ed il contenuto tra le parentesi viene riconosciuto come

esssere composto dell' operatore della somma ... + ... posto tra due-numeri.

Infine ... viene scritto il RISULTATO 5 alias non più un qualcosa di riferito o scritto ... letteralmente,

ma alter ego del risultato di una operazione o somma.

Se ordiniamo un qualcosa di "sbagliato" o meglio non vero ... otteniamo una sorta di rifiuto. Mi spiego:

Call Scrivi (2 = 3) ottiene come risultato "False".

Perchè col segno uguale comunichiamo che intendiamo comparare

(che è l'equivalente del chiedere al PC: 2 e 3 sono uguali? ) ...

La risposta NON può essere VERO ... che si traduce in True... ma sarà False ovvero FALSO

Falso che due è uguale a tre.
 
NUOVE ISTRUZIONI

NUOVE ISTRUZIONI


Qualcuno si dirà ...


chissa cosa ci sarà ancora da dire di un programmino così semplice?

Semplice. Qualcosa.

Abbiamo visto che la linea di istruzioni Call Scrivi ("Pippo") ... viene eseguita ... in una sorta di ALTROVE .

In questo ALTROVE, la linea dello script è scomposta, interpretata, analizzata, nei dettagli ed in ultimo, eseguita ...

scriverà "Pippo" nella finesta di OutPut.

L'istruzione SCRIVI è RICONOSCIUTA ed è ESEGUITA con i sui paramatri,

a noi, basta impartirla, o richiamarla, con Call SCRIVI (ed i suoi parametri).

L' interprete del Basic, trovandola scritta tra le linee del codice ... esegue la chiamata (Call)

all'indirizzo di questo ALTROVE chiamato SCRIVI allegando i parametri.

ESEGUE il comando SCRIVI ... e poi ... ritorna ad analizzare il resto dello script.

SCRIVI è una (SUB)Routine ... già scritta ... un COMANDO ovvero una ISTRUZIONE che basta ri-chiamare.

Ma se volessimo aggiungere Chiamate a Routine Nuove, non ancora scritte, non ancora previste ... si puo?

La Risposta è: Si.

Supponiamo di volere calcolare "Area" / "Perimetro" / "Diagonale" dei quadrati e/o dei rettangoli.

Lo script, per il Lotto, ha istruzioni per questo scopo specifico ... con questi nomi?

Probabilmente No.

Si possono scrivere? Si. (Già detto!)

Vediamo come.

Sappiamo che (nei quadrati e nei rettangoli) ci sono coppie di lati uguali. 2 a 2. E...

Il RISULTATO (Area/Perimetro/Diagonale) è in funzione della misura di questi 2 Lati. Di un Lato_A e di un Lato_B.

Risultato è che, possiamo far-calcolare il Risultato ... per mezzo di 3 CHIAMATE ad altrettante nuove

SubRoutine dal nome: Area / Perimetro / Diagonale scritte ... da noi stessi.

Esse naturalmente, una ad una, conterranno "le formule" per calcolare Area / Perimetro / Diagonale.

Così:
Codice:
Sub Perimetro(Lato_A,Lato_B,Risultato)
	Risultato = ( 2 * Lato_A ) + ( 2 * Lato_B )
End Sub

Codice:
Sub Area(Lato_A,Lato_B,Risultato)
	Risultato = ( Lato_A * Lato_B )
End Sub

Codice:
Sub Diagonale(Lato_A,Lato_B,Risultato)
	Risultato = Sqr ( ( Lato_A * Lato_A ) + ( Lato_B * Lato_B ) )
End Sub

Di strano ... in queste TRE nuove-istruzioni, mi permetto di evidenziare la presenza di un nome per ognuna di esse e ...

SQR (che si tratuce in "Radice Quadrata").

Pertanto, questo terzo script, risponderà quando verrà ri-chiamato da "Diagonale".

Esso è semplicemente una applicazione del "Teorema di Pitagora".

Dove, il Risultato/Diagonale, è anche sinonimo ed è coincidente, con l' Ipotenusa di un triangolo-rettangolo.

:)
 
Ultima modifica:
4elz.jpg


Eccoci ad un esempio completo.

che eseguito produce:

Codice:
Lato_A = 15
Lato_B = 20

Perimetro = 70
Area = 300
Diagonale = 25

ove evidentemente nella variabile che abbiamo definito essere "Risultato",

a seconda della istruzione ri-chiamata di volta in volta ci sono ... Perimetro / Area / Diagonale.

:)
 
Chi ... ha provato a digitare e poi lanciare lo script ... osserva che funziona.

Le "Call" alle nuove ISTRUZIONI funzionano.

Le variabili vengono inviate ... alle Sub Presenti Altrove ...

qui sono elaborate ed i Risultati ... ritornano, esatti, alla Sub Main.

Ma, non è efficiente.

E come se un treno Roma-Torino (un treno dal nome Risultato) da Torino venisse inviato fino a Roma vuoto ...

per poi ritornare a Torino con il suo "Passeggero Risultato".

Così pure è evidente che la Variabile-Risultato diventa ed è molto generica.

Non è semplice sapere cosa contiene.

Potrebbe conservare il valore del Perimetro oppure di una Area oppure ancora essere la lunghezza di una Diagonale.

Quindi più che di nuove istruzioni ... in un caso come questo avevamo bisogno di nuove FUNZIONI.

Ove è il nome-stesso della Funzione che rappresenta ... il valore ... che essa ha, di se stessa.

Vedremo pertanto come trasformare le Sub ... in Function, rendendo lo script più semplice ed efficiente.

:)
 
Ultima modifica:
Nello stesso script notiamo che la Parola "Area" ora è riconosciuta al pari delle altre istruzioni,

E ... l' Aiuto alla sintassi, ci suggerisce che per calcolare L' Area, occorre specificare la misura dei Lati (_A e _B).

Nel secondo riquadro evidenziato in Rosso, invece, si nota come ho sostituito scambiando, tra loro, Sub e Function.

Idem per chiudere ... End Sub con End Function.

iono.jpg


Provando lo Script ... Funziona ... come prima.

:)
 
Ultima modifica:
Nell'ultima parte dell' ottimizzazione ...

ho eliminato la variabile Risultato (una su tre) e di conseguenza rimodulando il codice,

s'è ottenuta una versione più compatta, elegante, efficiente, facile ...

72ij.jpg


:)
 
Ciao Nicotina,

Ti chiederei cortesemente di cancellare la richiesta da qui .... trasferendola alla sezione metodi,

ove ti potrei realizzare ... almeno, questa prima parte della richiesta,

che in prima lettura mi appare abbastanza semplice.

:) Grazie e buona giornata.
 
Nessun problema.

E' solo per facilitare ... il lavoro di raccolta a Domenico, evitandogli di dover scegliere ... pezzi qua e là.

Grazie.
 
Ciao Cinzia.

Grazie.

Rabberto ha fatto un grande lavoro a mettere assieme tante tessere sparse e disorganizzate.

Purtroppo oggi non è più possibile editare / migliorare / correggere / integrare ...

Dunque con tutti i suoi pregi e difetti difficilmente si potrà progredire.

Oltre ... c'è la nuova guida al Visual Basic, che sempre l'insuperabile Luigi ha creato,

a cavallo di questo sito e quello dell'amico Gam.

:)
 
Buongiorno caro joe. I video relativi alla nuova guida Visual Basic non sono più accessibili, c'é un modo per ottenerli? Sarei molto interessato a studiarli :)
 
Ciao Edoardo,

come dicevo, si cerca di distribuire qualcosa di nuovo e utile,

che spesso si rovina o va perso.

Per esempio qui sono andate perse molte immagini a corredo e non si possono più correggere sostituendole.

Non saprei. Forse chi ha un sito web potrebbe ricaricarli e renderli disponibili ospitandoli.

Per ovvie ragioni non posso consigliarti a chi

fare richiesta.

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 23 novembre 2024
    Bari
    33
    80
    86
    52
    25
    Cagliari
    67
    57
    59
    05
    80
    Firenze
    31
    32
    58
    88
    77
    Genova
    40
    39
    23
    36
    81
    Milano
    28
    58
    45
    25
    38
    Napoli
    20
    82
    23
    44
    57
    Palermo
    76
    56
    88
    62
    31
    Roma
    12
    81
    59
    74
    72
    Torino
    46
    53
    72
    45
    23
    Venezia
    04
    12
    42
    64
    20
    Nazionale
    63
    44
    78
    10
    55
    Estrazione Simbolotto
    Torino
    43
    42
    12
    39
    22

Ultimi Messaggi

Indietro
Alto