A.F.S.I. di Antonino Fleres - Servizi Informatici Torino - Lezioni informatica

Programmazione strutturata - Lezione 2

 

Abbiamo visto come il ruolo delle variabili sia importante nella programmazione strutturata. Le variabili possono essere viste come dei contenitori che hanno un nome identificativo (univoco) e che contengono qualcosa (anche "nulla" è qualcosa). Il tipo di valori contenuti dalle variabili appartengono a due grandi macrocategorie (testo e numerico) che si sviluppano ulterirmente a seconda dei linguaggi di programmazione usati: per esempio esistono variabili di tipo data/ora (per trattare le date e gli orari), di tipo logico (per gestire un sì o un no), ecc.

Anche le variabili (i contenitori) appartengono a due categorie: quelle statiche e quelle dinamiche. Ovvero quelle il cui contenuto non cambia mai durante l'esecuzione del programma (dette anche "costanti") e quelle il cui contenuto può cambiarù volte (oppure mai...) a seconda delle strade che vengono percorse dal programma in escuzione.

Un ruolo molto importante, deve essere riconosciuto alla fase di inserimento dati. Spesso la fase di input dei dati viene eseguita a mano attraverso la compilazione di un modulo (o maschera o form), ma può avvenire anche in modo automatico (grazie ad altri programmi scritti appositamente o grazie a sensori di vario tipo come un sensore di temperatura o una telecamera).

Naturalmente i primi approcci con la programmazione avverranno utilizzando l'input manuale attraverso i moduli. I dati inseriti nelle caselle di testo dei moduli verranno posti all'interno di variabili e saranno poi processati grazie alle istruzioni e ai calcoli che costituiscono l'algoritmo del programma in esecuzione.

Anche la fase di output è simile per importanza e per trattamento dati a quella di input. In questi primi approcci tratteremo l'output come stampa dei dati (risultati) a video.

diagramma di flusso

A questo punto possiamo azzardare un primo programmino scritto con un linguaggio di programmazione, per esempio Microsoft® Visual Basic®, che abbia una fase di inserimento dati, una di elaborazione ed una di uscita dei risultati (fase di output su video).

Prima di tutto il diagramma di flusso:

A differenza dei diagrammi di flusso della scorsa lezione, qui notiamo la fase della "dichiarazione" (all'interno del simbolo esagonale), molto importante per la traduzione del flusso logico in linguaggio di programmazione. Gli ambienti di sviluppo vogliono sapere quante variabili abbiamo intenzione di utilizzare e di che tipo esse sono (numero, testo, ecc.).

L'algoritmo qui rappresentato è molto semplice: viene chiesto all'utente di inserire il proprio nome ed una cifra numerica rappresentante un ipotetico importo espresso in Euro. Quindi i dati inseriti vengono memorizzati ogniuno nelle rispettive variabili. Il passaggio successivo è quello del calcolo (per passare da euro in lire basta moltiplicare per 1936,27) che permetterà di conoscere il rispettivo importo in Lire. Infine la fase di output: Visualizzeremo sia il risultato del calcolo (importo in Lire), sia un messaggio personalizzato con il nome dell'utente (per esempio: "Bene Giuseppe, l'importo in Euro che ci hai fornito corrispeonde al seguente importo in lire:... ecc.").

Nel diagramma di flusso abbiamo scritto tutti i testi con il carattere maiuscolo. Ciò per permettere una migliore visione, quando scriveremo il codice in un ambiente di sviluppo, utilizzeremo di norma caratteri minuscoli, e solo di rado quelli maiuscoli, per esempio per alcune parole chiave.

Per tradurre il codice del programmino (sopra descritto) in Microsoft® Visual Basic®, bisogna aprire l'ambiente di sviluppo e disegnare la maschera come rappresentata nella figura sotto.

La maschera è un "oggetto" molto utilizzato nell'ambiente di sviluppo "visuale"; nella maschera (form) è possibile disegnare ulteriori oggetti che saranno gli strumenti di controllo del programma che verrà scritto. Nel nostro casoà possibile controllare il nostro programma grazie a caselle di testo su cui scriveremo dei dati, altre caselle di testo su cui verranno scritti i risultati e sopratutto grazie ad un bottone che lancerà il programma vero e proprio, o meglio: il sottoprogramma o subroutine.

microsoft visual basic 2005

Per disegnare la mascera così come si vede, occoore utilizzare gli strumenti "etichetta", "casella di testo" e "bottone". Per esempio, le tre etichette sono state inserite nella maschera grazie al controllo "Label", poi, sono state modificate alcune proprietà, per esempio la propà "Text" che rappresenta, per l'appunto, il testo dell'etichetta. Il bottone è stato generato grazie al controllo "Button", ma i controlli più importanti di questo Form, sono le caselle di testo.

microsoft visual basic 2005

Le caselle di testo vengono disegnate con lo strumento "TextBox", esse rappresentano lo strumento per permettere all'utente di inserire i dati e di visualizzare i risultati. Cosa molto importante, quindi, è assegnare un nome a questi strumenti di input e output. Ciò è possibile modificando lo stato della proprietà "Name" di ogni casella di testo. La prima verrà chiamata "tuonome1", la seconda "impeuro1" e la terza "implire1".

microsoft visual basic 2005

Ed ecco finalmente il "codice", il "listato", "il sorgente"... ovvero il codice sorgente del nostro programmino. Come si vede, il programma è diviso in due blocchi di codice, due sottoprogrammi, due subroutine. La prima riferita all'oggetto mascera (form1) in cui abbiamo dichiarato le 3 variabili. La seconda riferita all'oggetto bottone (button1) che, quando viene "cliccato" (evento "onclick") lancia il codice ad esso abbinato.

L'algoritmo abbinato al click del bottone, è molto semplice e si commenta da solo: viene inserito il testo contenuto nella casella di testo chiamata tuonome1 nella variabile nom1. Viene inserito il testo contenuto nella casella di testo chiamata impeuro1 nella variabile imp1. Viene eseguito il calcolo (una moltiplicazione) del valore contenuto nella variabile imp1 con un numero costante (1.936,27) ed inserito nella variabile imp2. Viene inserito nella casella di testo denominata implire1 il valore della variabile imp2. Vine inviato un messaggio a video con l'istruzione (funzione) MsgBox() di Visual Basic.

Il testo all'interno della funzione MsgBox() è il seguente: MsgBox("Bene " & nom1 & ", l'importo in Euro che ci hai fornito (" & imp1 & " Euro) corrispeonde al seguente importo in lire: " & imp2 & " Lire", MsgBoxStyle.OkOnly, "Messaggio")

La e commerciale (&) serve per sommare le stringhe di testo tra di loro, in questo caso alcune stringhe sono contenute nelle variabili ed altre inserite a mano tra gli "apici" (").

Le "virrgole", invece, servono per separare i vari argomenti all'interno della funzione (come capita anche in Excel®): in questo caso, possiamo notare 3 argomenti. IL primo è il messaggio (che comparirà nella finestra), il secondo è il tipo di "finestra del messaggio" (questa da noi utilizzata avrà solo il bottone "OK"), il terzo è il "titolo" del messaggio (che comparirà sulla barra del titolo della finestra).

microsoft visual basic 2005

Ecco il risultato finale una volta che il programmino viene lanciato: L'utente inserisce il proprio nome, un importo in Euro e poi clicca sul bottone "Calcola". Il programma elabora e quindi scrive il risultato nella casella di testo dell'importo in Lire. Infine compare il messaggio che descrive la buona riuscita dell'operazione.

Naturalmente, essendo questo il primo programmino di prova, esso è un po' incompleto: manca infatti la parte (importante) relativa al controllo ed alla gestione degli errori. Per esempio: cosa capiterebbe se l'utente inserisse dei dati non congrui? Un testo anziché un numero? Oppure il proprio nome lungo migliaia di caratteri?

Manca anche la parte relativa alla formattazione dei dati, per esempio, manca il puntino della separazione delle migliaia sui dati numerici... Per ultimo ricordiamo che utilizzare numeri nelle formule è concettualmente sbagliato, perciò, il fattore di moltiplicazione 1.936,27 deve essere assegnato ad una variabile (nell'esempio sotto la chiameremo cos1) dato che parliamo di variabile statica ovvero di una costante.

La gestione degli errori verrà trattata nelle prossime lezioni. Questa lezione, invece, la concludiamo con la spiegazione relativa alla formattazione dei dati, cercando di non confondere il testo con i numeri.

microsoft visual basic 2005

Come si vede, le variabili nom1 e imp3 sono state dichiarate string ovvero testo, mentre le variabili imp1, imp2 e cos1 sono state dichiarate single ovvero numero a precisione singola. Le caselle di testo del Form, come dice la parola stessa, accettano testo (sia in input che in output), quindi va da se che occorre convertire i dati.

La funzione CSng() converte infatti il testo in numero (precisione singola). Non abbiamo utilizzato la funzione Val(), che pur converte il testo in numero, perché non considera la virgola quale separtore decimale). La funzione Format() converte il numero in testo (ed inoltre imposta un formato). Avremo potuto utilizzare la funzione Str() se non avessimo voluto impostare anche un formato estetico.

Il messaggio è anch'esso cambiato: MsgBox("Bene " & nom1 & ", L'importo in Euro che ci hai fornito" & (Chr(13)) & "(" & imp1 & " Euro) corrispeonde al seguente importo in lire: " & imp3 & " Lire", MsgBoxStyle.OkOnly, "Messaggio").

Da notare che abbiamo utilizzato la funzione Chr() per andare a capo (13 è il carattere ASCII che rappresenta il carriage return).

microsoft visual basic 2005

Adesso il numero che rappresenta l'importo in Lire è formattato e permette una visione estetica migliore data la presenza del punto separatore delle migliaia. Nel listato si nota che il separatore delle migliè una virgola e non un punto, ma questo solo perché le parole chiave del listato devevono essere "originali" ossia in lingua anglosassone. Questo vale anche per il calcolo con la costante 1927,36 che nel listato è rappresentata con il punto al posto della virgola.

Anche le istruzioni sono parole chiave e quindi in lingua anglosassone. Vedi MsgBox che vuol dire Scatola con un messaggio... e tutto il resto come String oppure Single ecc. Comunque, a parte l'intoppo della lingua, il programmino funziona ed il listato del codice sorgente è comprensibile da capire. Scopo raggiunto.

 

Antonino Fleres

 

 

lezione precedente - indice lezioni - lezione successiva

 

 

 

PARTNER COMMERCIALI

 

per vendere o comprare materiale informatico usato - i privati possono inserire un annuncio gratis - guarda questo annuncio!

 

Ricerca personalizzata

Link sponsorizzati

Link sponsorizzati

 

 

 

 

AFSI .IT

prima - mappa - contatti
occasioni usato - configurazioni e prezzi - info HW e SW
commercio - consulenza - assistenza

Attenzione

Questo sito è soggetto alle leggi vigenti sul copyright
Pertanto è vietata qualsiasi appropriazione indebita anche solo parziale.

Tutti i diritti riservati © 2003 - 2010 afsi.it copyright.

A.F.S.I. di Antonino FLeres Servizi Informatici Torino - P.I.08660180012

Per qualsiasi informazione vai alla pagina dei contatti

Leggi qui le informative sulla PRIVACY dei DATI SENSIBILI: Informativa sulla privacy dei dati sensibili