Valentina Vaccaro

Data mining – Algoritmi e programmazione

Archivi per il mese di “ottobre, 2011”

Applicazione del 25-10-2011

Out-put  grafico

Vb.net mette a disposizione tre oggetti per la visualizzazione grafica dell’out-put:

1)   PictureBox

Consente di visualizzare immagini nella propria applicazione, le immagini possono essere già esistenti oppure possono essere create e successivamente caricate; la  proprietà image permette di caricare  immagini  da un file con la funzione fromfile o dalle risorse con la funzione My.Resources.

2)    BitMap

E’  la superficie sulla quale si va a disegnare, è l’immagine fatta di pixel;

  • Creare il Bitmap

                Dim bitmap as new Bitmap (x,y)

–         X è la larghezza del BitMap

–         Y è l’ altezza del BitMap

 

3)   Graphics

E’ l’oggetto che fornisce tutti i metodi per poter disegnare sul BitMap.

  • Creare il Graphics

                Dim g as Graphics= Graphics.FromImage(bitmap)

                g. […] permette di visualizzare tutti i metodi a disposizione del graphics;

 Ad esempio g.DrawRectangles() crea una serie di rettangoli.

Creare una immagine

Per creare una immagine, ad esempio rettangolo, vb.net mette a disposizione diversi metodi, tra i quali:

1.        Dim rettangolo As New Rectangle(10, 10, 100, 50)

        g.DrawRectangle(Pens.DarkBlue, rettangolo)

(10,10) indicano la posizione nel Bitmap dell’angolo in alto a sinistra

100 è la larghezza del rettangolo

50 è la altezza del rettangolo

Pens.DarkBlue è il colore della penna e quindi del rettangolo

 2.         Dim penna As New Pen(Color.Pink, 4)

      g.DrawRectangle(penna, 50, 50, 100, 50)

 Color.Pink è il colore della penna

 – 4 sono i pixel, ossia la grandezza della penna

L’oggetto pen può essere istanziato , come abbiamo visto, oppure si possono usare penne messe già a disposizione dal linguaggio (Pens.blue).

Programma:

–         Si crea un form al quale vengono applicati:

  •  Bottone: utilizzando l’applicazione “Button” dalla casella degli strumenti;
  • PictureBox: utilizzando l’applicazione “PictureBox dalla casella degli strumenti;

         Creazione dell’immagine

 Public Class Form1
     Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
 
        ‘creazione del Bitmap’
        Dim bitmap As New Bitmap(800, 600)
 
        ‘creazione del graphics’
        Dim g As Graphics = Graphics.FromImage(bitmap)
 
        ‘impostazione background: riempe l’area interna di un rettangolo specificato,’
         ‘l’oggetto brush determina le caratteristiche del riempimento, in questo caso il colore’
        g.FillRectangle(Brushes.White, New Rectangle(0, 0, bitmap.Width, bitmap.Width))
 
        ‘creazione dell’rettangolo’
        ‘primo modo:’
        Dim rettangolo As New Rectangle(10, 10, 200, 50)
        g.DrawRectangle(Pens.DarkViolet, rettangolo)
 
        ‘secondo modo:’
       ‘penna personalizzata’
        Dim penna As New Pen(Color.Pink, 4)
        ‘4 sono i pixel ossia la grandezza della penna’
        g.DrawRectangle(penna, 50, 50, 200, 50)
 

Download dell’applicazione

http://www.megaupload.com/?d=GGV2SBIX

Creare una immagine in movimento

Costruire due rettangoli, uno si muove in orizzontale e l’altro in verticale.

Programma:

 

 –         Si crea un form al quale vengono applicati:

  •  Timer: utilizzando l’applicazione “Timer” dalla casella degli strumenti.
  • PictureBox: utilizzando l’applicazione “PictureBox” dalla casella degli strumenti.

 

–       Si crea l’immagine in movimento:

 Imports System.Drawing
 
Public Class Form1
     ‘avvio del timer’ 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         Me.Timer1.Interval = 50
         Me.Timer1.Start()
     End Sub 
 
    ‘quando si avvia il timer si chiama la sub disegna’ 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
         Me.disegna()
     End Sub 
     ‘dichiarazione della variabile xanimata, yanimata e passo’
   Public xanimata As Integer = 10
     Public yanimata As Integer = 10
    Public passo As Boolean
     
Sub disegna()
         ‘creazione del Bitmap’
         Dim bitmap As New Bitmap(400, 350)
          ‘creazione del graphics’
         Dim g As Graphics = Graphics.FromImage(bitmap) 
         ‘impostazione background’
         g.FillRectangle(Brushes.White, New Rectangle(0, 0, bitmap.Width, bitmap.Width)) 
         ‘creazione dell’rettangolo’
         ‘ la dimensione orizzontale dell’vertice in alto a sinistra
         ‘del rettangolo è stata posta uguale alla variabile xanimata
         ‘In modo tale che al variare di questa variabile
         ‘il rettangolo si sposti orizzontalmente
         Dim rettangolo As New Rectangle(xanimata, 50, 200, 100)
         g.DrawRectangle(Pens.DarkViolet, rettangolo)
          ‘secondo modo:’
         ‘penna personalizzata’
         Dim penna As New Pen(Color.Pink, 5)
         ‘5 sono i pixel ossia la grandezza della penna’
          ‘ la dimensione verticale dell’vertice in alto a sinistra
         ‘del rettangolo è stata posta uguale alla variabile yanimata
         ‘In modo tale che al variare di questa variabile
         ‘il rettangolo si sposti verticalmente
         g.DrawRectangle(penna, 50, yanimata, 200, 100)
          ‘visualizza l’immagine nel pictureBox’
         Me.PictureBox1.Image = bitmap 
         If passo Then
             xanimata -= 10
             yanimata -= 10
         Else
             xanimata += 10
             yanimata += 10
         End If 
         ‘se la somma di xanimata e della larghezza del rettangolo sono maggiori
         ‘della dimensione della larghezza del bitmap il rettangolo torna indietro
         If Me.xanimata + rettangolo.Width > bitmap.Width Then Me.passo = True
 
       If Me.xanimata < 0 Then Me.passo = False 
         ‘se la somma di yanimata e dell’altezza del rettangolo sono maggiori
         ‘della dimensione della altezza del bitmap il rettangolo torna sopra
         If Me.yanimata + rettangolo.Height > bitmap.Height Then Me.passo = True
         If Me.yanimata < 0 Then Me.passo = False
End sub

Dowload dell’applicazione:

http://www.megaupload.com/?d=C8HC1SCA

 

Applicazione del 18-10-2011

Ciclo di lettura dei dati

Per leggere il contenuto di un file di testo in una stringa, si utilizza il metodo ReadAllText dell’oggetto My.Computer.FileSystem, specificandone il percorso.

Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText(“C:\test.txt”)

NB. Il file potrebbe anche essere inserito nelle risorse e caricato nel programma

Programma:

      1.  Si crea un form al quale vengono applicati:

  •  Bottone: utilizzando l’applicazione Button dalla casella degli strumenti;
  • Casella di testo: utilizzando l’applicazione TextBox dalla casella degli strumenti;

      2.    Si crea la classe “osservazione_prezzo” con le proprietà :

  • Ora
  • Minuti
  • Millisecondi
  • Tipo di prezzo
  • Prezzo

 

Public Class osservazione_prezzo  
   Public ora As Integer    
 Public minuti As Integer
    Public millisecondi As Integer
    Public tipo_di_prezzo As Boolean   
  Public prezzo As Decimal
End Class

        3.  Lettura del file

 Public Class Form1
‘Evento Click del bottone’
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click  
 
‘Lettura del file’
Dim testo_letto As String
testo_letto = My.Computer.FileSystem.ReadAllText(“C:…”)  
 
‘poichè il file viene visualizzato in una stringa ‘
‘è necessario splittare le righe.’
‘il seguente comando restituisce un array’
 Dim righe() As String = testo_letto.Split(vbCrLf.ToCharArray,StringSplitOptions.RemoveEmptyEntries)  
 
‘vbCrLf.ToCharArray= separa le righe e trasforma le righe in caratteri’ ‘StringSplitOptions.RemoveEmptyEntries= elimina gli spazi vuoti’  
‘legge il file e lo visualizza nel textBox:’
Me.RichTextBox1.Text = testo_letto
 
 ‘creazine della lista lista_osservazioni’
Dim lista_osservazioni As New List(Of osservazione_prezzo)
For Each riga As String In righe
Dim valori As String() = riga.Split(” “.ToCharArray,StringSplitOptions.RemoveEmptyEntries)
Dim oss As New osservazione_prezzo
With oss    
  .ora = CInt(valori(0))
  cint converte in intero visto che prima era una stringa’   
    .minuti = CInt(valori(1))    
   .millisecondi = CInt(valori(2))  
     .tipo_di_prezzo = valori(3)     
  .prezzo = Decimal.Parse(valori(4), System.Globalization.CultureInfo.GetCultureInfo(“EN-US”))
 End With     
    lista_osservazioni.Add(oss)     
    Next
 
  ‘Calcola il prezzo medio e lo visualizza nel textbox’
Dim somma As Integer Dim cont As Integer
For Each oss As osservazione_prezzo In lista_osservazioni
 somma = somma + oss.prezzo
cont = cont + 1
 Next
 Dim media_prezzo As Double = somma / cont
Me.RichTextBox1.Text = media_prezzo    
End Sub
End Class

 

 Download applicazione:

http://www.megaupload.com/?d=B82X4UJD

Lezione del 18-10-2011

Sorgenti di Dati

1)  DBMS

Un Database Management System consente la creazione e la manipolazione di  data base .

Se in passato i DBMS erano diffusi principalmente presso le grandi  aziende e istituzioni , oggi il loro utilizzo è diffuso praticamente in ogni contesto.

Un DBMS può essere costituito da un insieme assai complesso di programmi  software che controllano l’organizzazione, la memorizzazione e il reperimento dei dati (campi, record e archivi) in un database. Un DBMS controlla anche la sicurezza e l’integrità del database.

I  linguaggi di interrogazione del database mediante query (interrogazioni) e i generatori di report permettono agli utenti di interrogare in maniera interattiva il database e di analizzarne i dati.

Se il DBMS fornisce un modo per aggiornare ed immettere nuovi dati nel database, oltre che per interrogarlo, questa capacità permette di gestire database personali. Comunque queste funzionalità non danno la possibilità di mantenere traccia delle revisioni e non forniscono gli strumenti necessari alla gestione di una organizzazione multi-utente. Questi controlli sono disponibili solamente quando un insieme di programmi applicativi sono appositamente costruiti per gestire e coordinare ciascuna funzione di immissione o modifica dei dati.

I tre tipi più comuni sono

  • Modello gerarchico, i dati sono disposti ad albero ogni record è suddiviso in segmenti connessi tra loro;
  • Modello reticolare, i record sono connessi da relazioni logiche;
  •  Modello relazionale, i dati sono organizzati in tabelle dette relazioni.

2)  FILE TEXT

I file di testo furono una delle prime strutture dati ideate per immagazzinare informazioni piuttosto comuni, che prevedevano che i dati fossero distribuiti in un elenco ordinato di righe costituite da caratteri.

Un file di testo contiene solo caratteri di scrittura semplici, senza informazioni sul loroformato (dimensione, colore, ecc) e di solito rappresenta un testo leggibile direttamente dagli utenti senza bisogno di installare programmi appositi a differenza del file binario che è invece un file contenente dati generici non direttamente leggibili dall’utente.

Ci sono alcune limitazioni all’universalità dei file di testo:

  • la codifica non è sempre ovvia, e quando il sistema non la riconosce o non la supporta, il file può diventare illeggibile;
  • i maggiori sistemi usano notazioni diverse per il carattere di “a capo”.

L’estensione dei file di testo destinati alla lettura, quando utilizzata, è generalmente .txt.

I formati di file si dividono in due grandi categorie:

  • Stampabili, li troviamo normalmente visualizzati come  lettere, cifre numeriche, punteggiatura, ecc.

 Di controllo, utilizzati per implementare delle funzionalità “speciali”, come il fine riga, di pagina, dell’intero documento, o per controllare la trasmissione dei dati utilizzati in particolari protocolli ecc., inoltre essi non sono “visualizzabili” (alla loro posizione non corrisponde un simbolo grafico a video o in stampa). Alcuni esempi:

  1.       CSV (comma-separated values) è utilizzato per l’importazione ed esportazione di una tabella di dati. In questo formato, ogni riga della tabella (orecord della base dati) è normalmente rappresentata da una linea di testo, che a sua volta è divisa in campi (le singole colonne) separati da un apposito carattere separatore, ciascuno dei quali rappresenta un valore;
  2.  CR/LF è l’identificatore di fine riga, il primo comportava il ritorno all’inizio della riga (la prima colonna), mentre il secondo l’avanzamento alla riga successiva;
  3. TAB (Tabulazione) Disposizione di una serie di dati in forma di tabella.

 

3)  BINARY FILES

E’  un file che può contenere qualsiasi tipo di dati, codificato in codice binario. Molti formati di file binari contengono parti che possono essere interpretate come testo, ma si distinguono per definizione dai file di testo veri e propri: un file binario è un file che non contiene solo semplice testo.

I file binari sono solitamente concepiti come sequenze di  byte: le singole cifre bit che costituiscono il file sono raggruppate in gruppi di otto.

Alcuni sistemi non permettono l’uso dei file binari (come la posta elettronica). Quindi, in questi casi, si rende spesso necessario convertirli e rappresentarli come file di testo semplici.

 

Il Parsing

In informatica il parcing è un processo di assegnazione di una descrizione strutturale a una stringa di

caratteri. Il  programma che esegue questo compito è detto “parser” il quale, solitamente viene generato attravero dei “ generatori di parser”. Tipicamente il termine italiano viene utilizzato per riferirsi al riconoscimento di una grammatica e alla costruzione di un albero sintattico, che mostra le regole utilizzate durante il riconoscimento dall’ input; l’albero sintattico viene poi visitato durante l’esecuzione di un interprete.

Strategie di Parsing

  • Analisi  top -down Un parser può partire con il simbolo iniziale e cercare di trasformarlo nell’input. Il parser parte dal più grande elemento e lo divide in parti sempre più piccole.
  •  Analisi bottom-up Un parser può partire con l’input e cercare di riscriverlo sino al simbolo iniziale. Il parser cerca di trovare il più elementare simbolo, quindi elabora gli elementi che lo contengono, e così via

 Linguaggi di programmazione: genericamente i parser sono utilizzati con linguaggi di programmazione caratterizzati da grammatiche semplici e regolari. I parser di questo tipo tendono ad essere basati su grammatiche libere dal contesto poiché con queste grammatiche si possono scrivere parser veloci ed efficienti.In realtà, le grammatiche libere dal contesto non riescono a descrivere da sole la maggior parte dei linguaggi di programmazione di uso comune. Tuttavia le grammatiche dipendenti dal contesto, anche se più potenti, perdono in efficienza. Di conseguenza è una strategia comune quella di utilizzare grammatiche libere dal contesto per una versione “rilassata” (con minori vincoli) del linguaggio. Queste grammatiche accetteranno tutti i costrutti validi del linguaggio in considerazione, oltre ad altri costrutti non validi che vengono scartati durante l’analisi semantica dell’input.

Applicazione del 13-10-2010

Esercizio: Creare la “lista studente” con la proprietà “media dei voti”. Creare un form con una lista di 5 studenti e dichiarare per ogni studente la classe “media dei voti”. Aggiungere ogni studente alla classe. Calcolare la media dei voti dei 5 studenti.

1.   Si crea un form al quale vengono applicati: 

  • Bottone: utilizzando l’applicazione Button dalla casella degli strumenti;
  • Casella di testo: utilizzando l’applicazione TextBox dalla casella degli strumenti; 

2.   Si crea la classe studente con la proprietà media

 Public Class studente   
  Public media As Integer
End Class   

3.  Si scrive il programma nell’evento click 

Programma: 

Public Class Form1  
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs.Handles Button1.Click          
 ‘istanziare la lista:’
        Dim lista_studenti As New List(Of studente)  
    
    ‘dichiara lo studente1 e il suo voto medio:’      
   Dim studente1 As New studente   
      studente1.media = 29       
 
    ‘aggiunge lo studente1 alla lista:’     
    lista_studenti.Add(studente1)        
    Dim studente2 As New studente      
    studente2.media = 28   
    lista_studenti.Add(studente2)
 
    Dim studente3 As New studente  
    studente3.media = 24        
    lista_studenti.Add(studente3)  
 
    Dim studente4 As New studente  
    studente4.media = 21
    lista_studenti.Add(studente4)  
    
    Dim studente5 As New studente
    studente5.media = 26  
    lista_studenti.Add(studente5)  
 
  ‘Calcolare la media dei voti’  
   ‘Dichiarare la variabile somma_media e la variabile contatore’  
       Dim somma_media As Double   
      Dim contatore As Integer         
 
‘struttura iterativa: calcola la somma dei voti medi
di ogni studente (For i= 0:num degli studenti’      
‘presenti nella lista_studenti)‘     
    For Each stud As studente In lista_studenti      
       somma_media = somma_media + stud.media        
 
‘implementa il contatore per contare quanti sono gli studenti’      
       contatore = contatore + 1      
   Next      
 
   ‘dichiara la variabile media_tot e calcola la media totale dei voti dividendo’    
    ‘ la somma_media con il contatore che coincide
 con il numero degli studenti’     
    Dim media_tot As Double = somma_media / contatore       
 
 ‘visualizza il risultato nella casella di testo che è stata
inserita nel form’     
    Me.RichTextBox1.Text = media_tot   
  End Sub
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs).Handles MyBase.Load       End Sub End Class    
 
 

Download Applicazione:

http://www.megaupload.com/?d=25M8P5IN

Lezione del 13-10-2011

Le liste

Nei linguaggi tradizionali erano presenti solo degli Array. Gli array sono un insieme ordinato di oggetti indicizzati. La struttura array è costituita da:

  •  un insieme finito di nodi, ciascuno costituito da un’unica componente scalare ( tutte le componenti di un array sono dello stesso tipo e sono memorizzate in voci consecutive);
  •   un metodo di strutturazione, che è la relazione di ordine stretto definita sull’insieme degli indici (ogni indice identifica la posizione occupata dalla componente corrispondente).

Ancora oggi esistono gli array però non sono più usati in quanto sono molto statici. Nei linguaggi moderni sono previsti dei contenitori di oggetti più semplici e dinamici: le liste.

Le liste sono degli insiemi che contengono istanze di una o più classi, in genere della stessa classe che a differenza degli array consentono di aggiungere e togliere oggetti.

  • Per istanziare una nuova lista:

Dim Mylist As New List (of tipo)

–         Mylist  è il nome che viene dato alla lista creata;

–         List è la classe lista;

–         Il tipo può essere di vario genere ( integer, form, String, ecc)

 

  • Per aggiungere elementi ad una lista:

Mylist. Add 

–          Mylist  è il nome dato alla lista;

–         Add è il metodo che aggiunge elementi ad una lista

 

Strutture di controllo

Le strutture di controllo determinano l’ordine con cui devono essere eseguite le istruzioni, sono indipendenti dalla natura delle istruzioni e sono degli strumenti logici universali utilizzabili in qualsiasi problema.

Le strutture di controllo posso essere classificate in:

–         Sequenza;

–         Selezione;

–         Iterazione o ripetizione.

1)   Struttura di selezione

 If  (condizione) Then
Istruzione1
Else
Istruzione2
Endif

Può essere anche del tipo:

If(condizione) Then
Istruzioni
Endif

2)    Struttura di iterazione :

  • Tipo For

For  i=1,N Do
Istruzioni
Endfor
  •  Tipo While

While (condizione) Do
Istruzioni
EndWhile
  •  Tipo Repeat-Until              

Repeat
Istruzioni
Until (condizione)

Strutture iterative a confronto:

–         Il For richiede che sia noto a priori il numero di iterazioni da svolgere da effettuare;

–         Il While e il Repeat non richiedono tale informazione;

–         Nel While se la condizione è falsa non si esegue alcuna istruzione del ciclo;

–         Nel repeat le istruzioni del ciclo sono eseguite almeno una volta;

–         Nel While la condizione determina l’entrata nel ciclo;

–         Nel Repeat-untile  la condizione determina l’uscita dal ciclo.

Le strutture iterative possono essere innestate l’una nell’altra.

Applicazione dell’ 11-10-2011

Esercizio: mostrare un form cariando delle immagini che cambino ogni tot secondi. Creare un secondo form nel quale ci sia un servizio sveglia

1. Si crea un form al quale vengono applicati:

  • Bottone: utilizzando l’applicazione Button dalla casella degli strumenti;
  • Timer: utilizzando l’applicazione Timer dalla casella degli strumenti;
  • Immagine: utilizzando l’applicazione PictureBox dalla casella degli strumenti;
  • Ora: utilizzando l’applicazione “DateTimePicture” dalla casella degli strumenti (modificando nelle proprietà il formato e impostarlo come “Time”);

 2. Si caricano nel programma le immagini che si vogliono far alternare nel form:  

My progetc – Risorse – Aggiungi Risorsa- Aggiungi File esistente

Programma: 

Public Class Form1 

   ‘quando  si carica  il form 1 si mette subito il timer:

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

  ‘comando che fa partire il timer all’avvio del form1:’

 Me.Timer1.Start()
MessageBox.Show(“svegliaaaaaa”, “sveglia”, MessageBoxButtons.OK) 
End Sub 

 ‘dichiarazione del contatore:’

Public contatore As Integer 

‘dichiarazione dell’ evento tick:’

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

‘inizializzazione del contatore:’

       Me.contatore += 1     
   Select Case Me.contatore   
     Case Is = 1

 ‘carica l’immagine che è stata memorizzata nelle risorse:’

        Me.PictureBox1.Image = My.Resources.castel_dellovo_napoli       
 Case Is = 2     
            Me.PictureBox1.Image = My.Resources.napoli_b100824b_big         
    Case Is = 3        
         Me.PictureBox1.Image = My.Resources.Napoli_maschio_angioino        
     Case Is = 4             
    Me.PictureBox1.Image = My.Resources.napoli2

 ‘ per far ricominciare lo scorrimento delle immagini si impone il contatore uguale a zero:’

                Me.contatore = 0  
        End Select    
  End Sub    
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)      
    End Sub    
  Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
     End Sub     
Private Sub PictureBox1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs).Handles PictureBox1.Click  
    End Sub End Class    

Download Applicazione:

http://www.megaupload.com/?d=T7DH6HKN

Applicazione del 6-10-2011

1) Lanciare un Form da un altro Form

  • Creazione del Form2

Public Class Calendario

     Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
     End Sub
End Class
 

E’ stato creato un form nel quale è stato inserito un calendario

  •  Chiamare il Form2 a partire dal Form1

Public Class Form1
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Cal As New Calendario
        Cal.Show()
        Cal.Text = “Calendario”
    End Sub
End Class
  
 

Download Applicazione:

http://www.megaupload.com/?d=6A6G55QM

2)Costruzione di una classe

Public Class Studente

    Public NOME As String
    Public ETA As Integer
    Public E_MASCHIO As Boolean
    Public VOTO_MEDIO As Double
End Class
  
  •   Dichiarazione delle classi

  

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim student As New Studente
        student.NOME = “valentina”
        student.ETA = 23
        student.E_MASCHIO = False
    End Sub
End Class
 
 

 Download Applicazione :

http://www.megaupload.com/?d=5KJGWN0Q

Lezione del 6-10-2011

Programmazione ad Oggetti : le classi

La Programmazione ad Oggetti rappresenta il modello di programmazione più diffuso ed utilizzato degli ultimi dieci anni. Tra i più noti linguaggi di programmazione ad oggetti citiamo: C++, Java, Delphi, C# e Visual Basic .NET.

Il paradigma OOP (Object Oriented Programming) è basato sul fatto che esistono una serie di oggetti che interagiscono vicendevolmente, scambiandosi messaggi ma mantenendo ognuno il proprio stato ed i propri dati. I linguaggi di programmazione ad oggetti:

  •  Sviluppano i programmi intorno ai dati;
  •  Nascondono i dati e la complessità delle operazioni (si inviano messaggi agli oggetti).

Probabilmente, il termine più importante e rappresentativo nella OOP è quello di Classe. Le classi definiscono dei tipi di dati complessi che comprendono nuove strutture dati e le operazioni consentite su di esse. Le classi permettono la creazione degli oggetti secondo le caratteristiche definite nella classe stessa. Grazie alle relazioni di ereditarietà, è possibile creare nuove classi a partire da quelle esistenti, estendendole con caratteristiche aggiuntive.

Una classe rappresenta una categoria particolare di oggetti.

Diremo, inoltre, che un particolare oggetto che appartiene ad una classe costituisce un’ istanza della classe stessa. È anche possibile creare due o più istanze separate di oggetti uguali .

L’univocità di ogni istanza viene definita con il termine di identità (identity): ogni oggetto ha una propria identità ben distinta da quella di tutte le altre possibili istanze della stessa classe a cui appartiene l’oggetto stesso.

Le proprietà di un oggetto possono avere valori che variano nel tempo. Si definisce stato di un oggetto, l’insieme dei valori delle sue proprietà in un determinato istante di tempo.

I membri di una classe sono i seguenti:

  • attributi (analoghi ai membri di un record)
  • metodi (procedure che operano sugli attributi)

I membri di una classe sono privati, cioè non sono accessibili e non sono modificabili.  

Le più comuni relazioni tra classi, in un programma ad Oggetti sono identificabili in tre tipologie:

  • Associazioni
  • Aggregazioni  
  • Specializzazioni

Come detto in precedenza, le classi sono degli aggregati di dati elementari. Le principali tipologie di dati sono le seguenti:

  1. Byte: comprende i numeri interi positivi appartenenti all’intervallo [0, 255];
  2. Boolean: comprende due valori True(-1) e False (0);
  3. Integer: comprende i numeri appartenenti all’intervallo [-32.768, 32.767];
  4. Long: comprende i numeri interi appartenenti all’intervallo [-2.147.483.648 , -2.147.483.647];
  5. Currency: è utilizzato per calcoli monetari oppure nei casi in cui la precisione è fondamentale;
  6. Single: comprende i numeri macchina in singola precisione ;
  7. Double: comprende i numeri macchina in doppia precisone;
  8. Date: comprende i numeri reali utilizzati per memorizzare date e orari;
  9. String: comprende i caratteri alfanumerici. Può contenere stringhe di lunghezza fissa con lunghezzza compresa tra 0 e circa 63 Kb di caratteri;
  10. Object: rappresenta qualsiasi riferimento ad un oggetto;
  11. Variant: quando si omette la dichiarazione di una variabile essa viene implicitamente dichiarata come variant. L’uso dei dati variant è sconsigliata perchè inficia l’efficienza dei programmi sviluppati;

Applicazione del 4-10-2011

Creare un nuovo progetto

“Nuovo progetto – Apllicazione Window Form“

 

Evento Click Buttom

Public Class Form1
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     End Sub
End Class
 
 

MessageBox

E’ una chiamata funzionale. Inserendo il MessageBox nella finestra del codice dell’evento Click Buttom quando si clicca sul bottone del Form1 viene aperto il messaggio “ciao valentina”.

 Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(“ciao valentina”, “benvenuto”, MessageBoxButtons.OK)
    End Sub
End Class
 
 

 NB. “benvenuto” è il titolo del messaggio; MessageBoxButtons.OK è il comando che fa uscire nel messaggio il bottone “ok”.

Download dell’applicazione:

 http://www.megaupload.com/?d=ML96IAK5

 

Lezione del 4-10-2011

Ambiente .NET

Il  .NET Framework è una piattaforma per l’esecuzione e lo sviluppo di applicazioni. La sua architettura rende particolarmente agevole la programmazione “cross language”, cioè , la programmazione con differenti linguaggi orientati ad oggetti. Per citarne alcuni:

  • C# , ispirato ad una sintassi “C like” ma del tutto somigliante a Java;
  • VB.NET, evoluzione del predecessore Visual Basic;
  • C++

 Uno dei principali vantaggi di .NET è l’orientamento “user friendly” che lo rende piuttosto semplice da utilizzare rispetto ad altri linguaggi di programmazione come Java.

E’ bene specificare però che l’uso del .NET Framework al momento è utilizzabile solo su piattaforme prettamente Microsoft.

 

Approfondimenti: analogie e differenze

1) .NET e JAVA

In genere, il .NET Framework si inserisce nel mercato paragonandosi a Java, in quanto essi presentano architetture molto simili.

JAVA ha lo scopo principale di fornire un unico linguaggio per tutte le piattaforme e i sistemi operativi esistenti, Infatti in Java è possibile scrivere un programma in ambiente Linux ed eseguirlo in Windows, senza apportare alcuna modifica al codice sorgente.

.NET ha lì obiettivo di fornire un supporto a più linguaggi di programmazione ma basati su un’unica piattaforma, il .NET Framework appunto.

Tra i due esistono poche analogie, le più significative sono la sintassi simile e la programmazione ad  oggetti.

2) C# e vbNET

Microsoft ha sviluppato i due linguaggi a partire dalla stessa piattaforman di sviluppo . NET.

Essi utilizzano lo stesso linguaggio intermedio (IL) e, anche se ci sono alcune differenze nei costrutti di programmazione , le loro differenze sono principalmente sintattiche. Microsoft mette a disposizione delle  librerie per facilitare la conversione tra i due linguaggi in quanto quasi tutti i comandi in VB hanno un comando equivalente in C # e viceversa.  Di conseguenza, con poche eccezioni, un programma scritto in entrambe le lingue può essere eseguito tramite un convertitore di sintassi semplice per tradurre l’altro. Ci sono molti prodotti open source  disponibile in commercio per questo scopo. Nello specifico la sintassi di VB è una evoluzione di Visual Basic ed è “case insensitive” a differenza di C# il quale distingue tra lettere minuscole e maiuscole.

Navigazione articolo