Novità

Le classi in vbscript per spaziometria

L

LuigiB

Guest
Ciao a tutti , come mi è stato chiesto da Joe apro questo thread per dare
qualche accenno di teoria , l'argomento che andro a proporre riguarda le
CLASSI in vbscript.
Questo argomento non l'ho scelto a caso ma ne parlo proprio perche
Joe mi ha chiesto di farlo ed eccomi qui.


L'utilizzo delle classi preseuppone un altro modo di approcciare la risoluzione di un
problema informatico.

In questo modello di programmazione definito PROGRAMMAZIONE AD OGGETTI si individuano delle
entità che vengono appunto definite OGGETTI.
L'interazione tra oggetti differenti serve a risolvere il problema di quel momento.
Dato che l'uso degli oggetti consente una maggiore astrazione , questo modello di programmazione
è maggiormente utile in situazioni complesse.



Le classi sono oggetti
Negli ambienti di programmazione ad oggetti è l'ambiente stesso che mette a disposizione decine e
decine di oggetti con le piu disparate funzionalita, altri oggetti invece li puo creare se necessario
il programmatore stesso.
E' cosi che funzina da quel poco che ho visto anche visual lotto.
Anzi devo dire che il linguaggio di script usato da visual lotto è davvero molto potente ,infatti
si basa sul vb.net e offre pure lui un bel po di funzionalità precostituite.


C'è da dire che in vbscript (linguaggio usato da spaziometria e lottodesk) non si possono sfruttare
tutte le vere potenzialità della programamzione ad oggetti del vb.net ,
però cosa molto utile , è comunque possibile usare le classi il che non è poco.



Ho detto che le classi sono oggetti quindi dobbiamo subito individuare cosa si intenda per OGGETTO.
Diciamo che un oggetto è un entità unica che dispone di proprietà e metodi .
Di questa entita unica si possono creare istanze differenti , creare l'istanza dell'oggetto è necessario
per poterlo usare.



Facciamo un esempio :

l'achivio delle estrazioni è un oggetto
l'estrazione è un oggetto appartenente all'oggetto archivio
l'estratto è un oggetto appartenente all'oggetto estrazione

ognuno di questi oggetti è unico perche differente dagli altri , ognuno di loro ha delle specifiche proprieta
e degli specifici metodi.

Cosa sono le proprietà ?
le proprietà sono semplicemente delle interfacce che si usano per accedere alle variabili interne
dell'oggetto (si le stesse variabili che gia conosiamo)

Cosa sono i metodi ?
i metodi sono niente altro che le Sub e le Function gia note , dato però che in questop contesto
appartengono ad un oggetto prendono il nome di Metodi


Per la nostra spiegazione abbiamo individuato i tre suddetti oggetti , l'archivio , l'estrazione , l'estratto
abbiamo detto che sono oggetti unici e che tutti hanno specifiche proprieta e metodi.
Questi oggetti non sono forniti dall'ambiente ma li andremo a creare noi attraverso l'uso delle classi
quindi la classe ci consente definire un oggetto con proprietà e metodi specifici

Vi ricordate tutti che una routine (sub o function che sia) segue un preciso schema per la sua scrittura

Codice:
Sub NomeRoutine

End Sub


naturalmente anche per definire una classe ci si deve attenere ad un determinato schema cioè il seguente.

Codice:
Class NomeClasse

End Class


all'interno del blocco Class..End Class scriveremo il nostro codice , che comprende sia la definizione delle
proprieta sia la scrittura dei metodi.
La struttura della classe non è necessario scriverla a mano dato che Spaziometria ha un utility che serve per
costruirla.




Parliamo del primo oggetto : L'archivio.


L'oggetto archivio è quello che dovrà interfacciarsi alla base dati e fornirci le estrazioni che ci servono
nella forma che ci serve.
Atttraverso l'uso di apposite proprietà definiremo il comportamento del nostro oggetto archivio
per esempio quando gli chiederemo le estrazioni da darci.
Sempre attraverso le proprietà potremo interrogare l'oggetto per conoscere determinate informazioni.

dato che ho intenzione di fare le cose molto semplici metteremo giusto qualche proprieta e qualche metodo
lo scopo è far capire i concetti , ma una classe puo eventualmente contenere decine di proprieta e metodi.

ragioniamo ora su quello che deve fare l'oggetto archivio secondo i nostri piani (ho premesso che faremo cose molto semplici)

1) Deve essere possibile specificare a quale livello di archivio ci interfacciamo
2) Deve essere possibile specificare se accettiamo solo le estrazioni di un determinato giorno (per esempio il sabato) oppure tutte
2) Ci deve restituire il numero totale di estrazioni che contiene
4) Deve fornirci le estrazioni di un determinato range che potremmo richiedergli di volta in volta

vediamo come si implementano i 4 punti nella classe Archivio

1) useremo una proprieta che chiameremo Livello
2) useremo una proprieta che consentira di specificare i giorni della settimana da accettare la chiameremo GiorniAmmessi e sara un vettore
3) useremo una proprietà di sola lettura che ci restituirà il numero di estrazioni disponibili la chiameremo QEstrazioni
4) Useremo un metodo che attraverso una collection ci restituira un insieme di oggetti ESTRAZIONE , questo metodo sara una funzione
perche per comodita tornera il numero di estrazioni restituite e avra due parametri Inizio e Fine per specificare il range

Ora che sappiamo quali siano le caratyteristiche di cui vogliamo dotare il nostro oggetto possiamo passare
all'utility che ho menszionato piu su.



host immagini



upload immagini gratis


come si vede la struttura della classe l'ha scritta spaziometria.

notate che come avevo anticipato le proprietà sono delle interfacce per accedere alle variabili interne
della classe che sono quindi dichiarate private

esempio :


url immagine


image share


url immagine

bene seguiranno altri post dove proseguiremo l'argomento.. intanto eventualmente qualcosa non fosse chiaro fatemi sapere.
 
Ultima modifica di un moderatore:

surmang

Super Member >PLATINUM<
Ciao a tutti voi.
Se è rimasto un posto, mi aggrego come studente (oggetto) alla classe creata dal prof.LuigiB (grazie per le lezioni gratis) su istanza di Joe91.

Provo a sintetizzare con parole mie, così se vi va, mi confermate se ho capito o no il concetto.

Le Estrazioni formano una Classe di Eventi che condividono delle Propietà che si distinguono in Oggetti:

Oggetto.PropietaLivello..................da 0 a n
Oggetto.PropietaRange..................da n a n+x
Oggetto.PropietaSelezione..............algoritmo di selezione
Oggetto.PropietaQuantitificazione.....sommatoria estrazioni selezionate


:)
 
Ultima modifica:
L

LuigiB

Guest
bene ,bene la nostra classe virtuale è sempre aperta e i posti non mancano ...l'argomento verrà affrontato in piu post dato che è abbastanza lungo, ma non difficile.

in sintesi gli oggetti possono essere paragonati agli oggetti della vita reale , avete presente un frullatore ?
E' composto da un bicchiere , una lama , un motore ... tutto molto semplificato non costruisco elettrodomestici.

ognuno di questi ha delle proprieta e dei metodi e la loro interazione fa funzionare l'intero meccanismo.

Andiamo nel dettaglio della metafora , magari facendo paragoni con la vita quotidiana è piu facile capire.

il bicchiere potrebbe avere le seguenti proprietà
: Capacita in litri
: colore Trasparente /Opaco
: Forma cilindrica/poligonale

e i seguenti metodi

: Riempi serve per rieempirlo
: Svuota serve per svuotarlo


la lama potrebbe avere le seguneti proprietà

: materiale di composizione
: forma
: numero lame

e il seguente metodo

: Frulla che ovviamente serve per frullare

Il motore potrebbe avere le seguenti proprieta

: Voltaggio
: Amperaggio

e i seguenti metodi

: accendi
: spegni



Tornando ai nostri oggetti informatici diciamo che tutto cio che sono azioni vengono trasformati in metodi , tutte le caratteristiche invece sono definite dalle proprietà.

proseguiremo appena mi confermerete che quanto detto è chiaro

ciao a tutti
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao a Tutti!

Naturalmente ci sono anch'io, questo è quello che avrei voluto ma non osavo chiedere.
 

surmang

Super Member >PLATINUM<
proseguiremo appena mi confermerete che quanto detto è chiaro
ciao a tutti

Questo è quello che ho capito io:

Definizione caratteristiche , e modalità di azione che l’ Oggetto deve avere per appartenere alla Classe

Esempio definizione generica Classe Frullatori:

-Il frullatore è un utensile da cucina usato per frullare, montare o impastare due o più ingredienti..

-I primi modelli di frullatore erano manuali. Attualmente si usano modelli elettrici, dove il movimento delle fruste è ottenuto con un motore elettrico, hanno fruste estraibili di diversi tipi e la possibilità di regolare la velocità.


CLASSE frullatori

Oggetto frullatore xyz :

- propietà del frullatore xyz o caratteristiche:
1)rotazione lame con manovella ,
2)rotazione con motore elettrico a volt=x ,con potenza sviluppata di watt= y, n°di giri/min =z, ecc),
3)capienza “bicchiere” in litri x

- metodo(o metodologie) che il frullatore xyz applica per ottenere il risultato
1) tipo di fruste o lame
2) tempo
3) inversione senso rotazione,velocità,ecc.
 
Ultima modifica:
L

LuigiB

Guest
ciao Surmang , non vorrei avervi confuso le idee con le mie metafore ..
si puo riassumenre tutto cosi come avevo detto

le caratteristiche di un oggetto sono le sue proprieta
le azioni che un oggetto puo compiere (o subire ) sono metodi

ciao
 

lotto_tom75

Advanced Premium Member
Mi siedo... quatto quatto... in fondo... e ascolto... o meglio guardo... le incredibili e fantastiche lezioni del Grandissimo Professore Alieno (nel senso di bravura e generosità ovviamente!) ;) Grazie Luigi anche per questa nuova bellissima iniziativa! :eek:
 

surmang

Super Member >PLATINUM<
Grazie LuigiB, no non sei tu che mi hai confuso:confused: le idee, ....le ho già confuse per mio conto fin dalla nascita :D

Ho detto che le classi sono oggetti quindi dobbiamo subito individuare cosa si intenda per OGGETTO.
Diciamo che un oggetto è un entità unica che dispone di proprietà e metodi .
Di questa entita unica si possono creare istanze differenti , creare l'istanza dell'oggetto è necessario
per poterlo usare.

Avevo interpretato male quello che hai scritto , mi era parso di capire che propietà e metodo dell' oggetto sono due peculiarità differenti .
 
L

LuigiB

Guest
ciao Surmang ..no no le proprietà sono delle caratteristiche di un oggetto i metodi sono le azioni che puo compiere o subire.
Sono gli oggetti stessi ad essere unici essendo uno differente dall'altro (archivio , estrazioni , estratto) ma di ognuno di loro si possono creare
piu istanze .. capirai meglio quando proseguiremo l'argomento

ciao ...
Lottotom benvenuto anche a te .. l'idea di proporre l'argomento come dicevo è stata di Joe.
 

salvo50

Advanced Member >PLATINUM PLUS<
Oggetto o Classe

L'oggetto dispone di proprietà e metodi
le proprietà sono le variabili che si usano per accedere alle variabili interne dell'oggetto, forse qua ho capito male.
I metodi sono le funzioni e le sub funzioni
 
L

LuigiB

Guest
ciao Salvo

attraverso le classi si definiscono gli oggetti con i loro metodi e proprietà.

le proprietà non sono variabili ma interfacce che servono per accedere alle variabili interne della classe , non puoi leggere o modificare uan variabile interna di una classe
al di fuori della classe stessa se non usando le proprietà che gli consentono di comunicare con l'esterno ovvero con le procedure che la usano.

abbiamo gia creato la classe clsArchivio anche se dobbiamo ancora scrivere il codice che faccia le varie cose.
Tuttavia gia cosi si potrebbe scrivere

Codice:
dim c 

set c = new clsArchivio

in pratica abbiamo creato un 'istanza della classe archivio .. ovvero un oggetto archivio.

come si nota si usa la parola chiave SET e la parola chiave NEW seguita dal nome della classe di cui si vuole creare l'istanza.

vedremo meglio in seguito non appena avro conferma che le cose fin ora dette siano chiare
 

surmang

Super Member >PLATINUM<
ciao Surmang ..no no le proprietà sono delle caratteristiche di un oggetto i metodi sono le azioni che puo compiere o subire.

Ok ,Luigi grazie per la pazienza, continuo a seguire cosi' le cose mi si chiariranno ,cmq
mi pare che avessi espresso lo stesso concetto, anche se articolato in modo diverso.
ciao :)

Oggetto frullatore xyz :

- propietà del frullatore xyz o caratteristiche:
1)rotazione lame con manovella ,.....in questo caso la caratteristica è la manualità
2)rotazione con motore elettrico a volt=x ,con potenza sviluppata di watt= y, n°di giri/min =z, ecc), .....in questo caso la caratteristica è la rotazione automatica con le caratteristiche specifiche del motore
3)capienza “bicchiere” in litri x...........caratterizza il contenuto max

- metodo(o metodologie) che il frullatore xyz applica per ottenere il risultato ....' quindi azioni'
1) tipo di fruste o lame........in questo caso l'inter-azione tra tipo di lame,velocità,alternanza di senso e tempo di frullaggio sono le azioni
2) tempo
3) inversione senso rotazione,velocità,ecc.
 

i legend

Premium Member
Ciao a Tutti.
questo pezzo di codice lo inseriamo nella sub_Initialize?
Scusa una domanda,se devo utilizzare la variabile c per fare riferimento all'archivio, posso dargli un nome che mi faccia capire a cosa mi serve?
quando lo utilizzero sara tipo:
mGiorniammessi.c oppure mGiorniammessi.clsArchivio.
scusa se la domanda è stupida:)
ciao a dopo
 
L

LuigiB

Guest
Ciao Legend .. non abbiamo ancora parlato dei due eventi Initialize e Terminate , tuttavia non servono a fare quello che dici.Per ora tralasciamoli, anzi cancellandoli il tutto funzionerebbe lo stesso.

Vengo alla tua domanda , gli oggetti prodotti come istanze di classi vengono memorizzati in una variabile , quindi il nome della variabile è sottoposto alle medesime regole che gia conosciamo , li puoi chiamre come ti pare.

ovviamente il pezzo d i codice
Codice:
dim c 

set c = new clsArchivio
va scritto nella sub main o in qualsiasi sub o function dello script che abbia bisogno di usare un'istanza della classe


x surmang ..
si l'importante è capire i concetti che io ho ribadito apposta. tutto sara piu chiaro non appena continueremo e soprattutto alla fine qundo avremo finito
 
Ultima modifica di un moderatore:

Joe91

Advanced Member >PLATINUM PLUS<
Ciao Luigi ...

in premessa, GRAZIE.

Poi ... si ok ... per ora, anche se m'è difficile rimanere "in sintonia".

Domandina appunto per non introdurre la presenza di false interpretazioni.

Il wizard scrive il codice ... che naturalmente potrebbe essere scritto o modificato manualmente.

In esso è presente parecchie volte "m_". cosa significa? Ovvero perchè "m" ?

Grazie ancora. Buona Serata a tutte/i. (Facendo finta che non sia una Classe-Maschile)

:)
 
L

LuigiB

Guest
Ciao Joe , il codice scritto dal wizard è solo lo scheletro formale della classe , potrebbe essere scritto a mano e sicuramente va modificato perche dovremo scrivere il
codice necessario ad eseguire le varie funzionalita che abbiamo previsto.

Le variabili private di una classe per convenzione vengono chiamate m_xxxx , niente di speciale .

Quello che stiamo facendo è creare un componente , con il prossimo post creeremo anche gli altri .. in pratica stiamo costruendo
i pezzi del nostro frullatore .
 

xabio

Super Member >GOLD<
Saluti a tutti .

Mi aggiungo alla classe e ringrazio il Maestro Luigi .
Anche se ho poca esperienza di programmazione vi seguo con molto interesse .

Grazie e Saluti.
Xabio
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 23 aprile 2024
    Bari
    47
    22
    34
    20
    50
    Cagliari
    33
    14
    86
    02
    62
    Firenze
    61
    22
    44
    19
    26
    Genova
    21
    12
    57
    82
    55
    Milano
    66
    05
    11
    70
    30
    Napoli
    05
    23
    25
    52
    73
    Palermo
    23
    44
    49
    71
    65
    Roma
    82
    37
    59
    34
    71
    Torino
    26
    42
    66
    15
    58
    Venezia
    57
    06
    68
    54
    84
    Nazionale
    21
    79
    49
    03
    01
    Estrazione Simbolotto
    Genova
    24
    02
    19
    03
    27
Alto