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

Programmazione strutturata - Lezione 3

 

Visualizzare la tabellina pitagorica sarà il nostro prossimo progetto. Inizialmente, per semplificare, calcoleremo la tabellina del 5 da 5 a 50. Ecco un primo diagramma di flusso.

diagramma di flusso

Questo diagramma di flusso spiega come vengono subito dichiarate due variabili: una di tipo numerico "TB1" e l'altra di tipo testo "TB2"

Il passaggio successivo descrive come le due variabili vengano inizializzate. Dentro "TB1" viene inserito il valore 5 e dentro "TB2" viene inserito il valore che al momento è dentro "TB1" (in questo caso sempre 5, ma attenzione, perché il 5 dentro "TB1" è un numero, mentre il 5 dentro "TB2" è una stringa di testo)

Subito dopo viene fatto un calcolo. Una semplicissima addizione: viene agginto 5 alla variabile "TB1". Come dire: "TB1=TB1+5". Questo vuol dire che dopo il calcolo, la variabile "TB1" contiene il valore numerico 10.

Passaggio successivo: viene concatenata alla variabile "TB2" la variabile "TB1". Concatenare vuol dire sommare una stringa di testo con un'altra strringa di testo. Per esempio, se concateniamo la stringa "Doma" e la stringa "ni", otterremo la stringa "Domani". Nell'ambiente di sviluppo Microsoft® Visual Basic®, le stringhe vengono concatenate tra loro utilizzando l'operatore "&" (la e commerciale). Nella scorsa lezione abbiamo utilizzato queto operatore per concatenare stringhe di testo contenute tra i doppi apici e stringhe di testo contenute in variabili. Per la precisione, lo abbiamo fatto nella fase di visualizzazione del messaggio con la funzione "MsgBox()".

Dopodiché, le ultime due fasi descritte, ossia la aggiunta di un 5 (numero) in "TB1" e l'aggiunta di "TB1" in "TB2" vengono ripetute. In questo modo, la variabile "TB1" adesso contiene il valore numerico 15 mentre la variabile "TB2" contiene la stringa di testo "5 10 15".

Ancora una volta viene ripetuto il blocco delle due azioni sopracitate e poi ancora e ancora, per ben 9 volte in totale (abbiamo messo una freccia tratteggiata per far capire il ripetersi dello stesso blocco istruzioni). Infine viene visualizzato il risultato: il contenuto della variabile "TB2" che contiene "5 10 15 20 25 30 35 40 45 50".

A questo punto la domanda: ma se avessimo voluto calcolare la tabellina del 5 non fino a 50 ma fino a 50.000? Avremmo dovuto scrivere per centinaia di volte sempre lo stesso blocco delle due istruzioni descritte sopra?

Certo che no. Negli ambienti di programmazione esistono istruzioni e cicli condizionali. In questo caso utilizzeremo un cilo.

diagramma di flusso

Ecco il nuovo diagramma di flusso. C'è un simbolo nuovo, il rombo, che rappresenta una domanda, una condizione. La particolarità delle domande racchiuse all'interno di quel simbolo, è che possono avere solo 2 risposte: oppure NO. Le risposte di questo tipo vengono dette LOGICHE grazie ad un certo Boole ed alla sua famosa algebra booleana.

Il simbolo rombo, altresì, rappresenta uno stop al flusso del programma. Il flusso seguirà una delle due strade possibili a condizione che un determinato dato abbia un determinato valore, altrimenti segurà l'altra.

Il nostro diagramma, dopo la fase di dichiarazione, inizializza la variabile "CONT1" mettendo il valore numerico 0 al suo interno. Subito dopo la domanda: "La variabile "CONT1" contiene un valore minore di 9?" Se la risposta è allora il flusso proseguirà verso il basso e verranno eseguite le istruzioni che permettono la aggiunta di un 5 (numero) in "TB1" e l'aggiunta di "TB1" in "TB2", Inoltre, viene incrementato anche il valore di "CONT1" che da 0 diventa 1. Se la risposta è NO il flusso viene dirottato verso l'uscita a destra, che porterà all'ultima istruzione, quella che permeà la visualizzazione del risultato finale.

Quindi è chiaro che il ciclo viene ripetuto 10 volte (da quando "CONT1" vale 0 a quando vale 9), che sono necessarie per ottenre la tabellina del 5 da 5 a 50. Esattamente come prima. La differenza è nel fatto che un diagramma di flusso così espresso (e quindi anche il codice sorgente del programma) è molto più gestibile, più facile da capire, più facile da modificare, più flessibile perché se, per esempio, volessimo generare una tabellina del 5 da 5 100, basterebbe cambiare la domanda all'interno del rombo ed il tutto funzionerebbe subito ("CONT1" è minore di19?).

Proviamo a tradurre con un linguaggio di programmazione, per esempio con Microsoft® Visual Basic®.

listato tabellina del 5 in visual basic

Come possiamo notare, il cuore del listato è nell'istruzione "For Next" che determina un ciclo. All'interno del ciclo una serie di istruzioni vengono ripetute finché la domanda "CONT1 è minore di 10" non darà esito negativo (nel caso del ciclo FOR NEXT, la domanda vera e prorpia è nascosta, dato che il ciclo stesso viene ripetuto 9 volte, ossia da quando CONT1 vale 1 a quando vale 9); a questo punto il flusso del programma esce dal ciclo e prosegue inserendo il valore di TB2 nella casella di testo della maschera come si vede di seguito.

maschera tabellina in visual basic

Quando l'utente fa click sul pulsante viene avviato il programma descritto sopra nel diagramma di flusso e nel listato tratotto in Microsoft® Visual Basic®. Naturalmente il nome del pulsante è Button1, mentre il nome della casella di testo ove compare il risultato è Risultato1. Il nome della maschera è Tabellina1.

Come si vede, il risultato è un testo con caratteri numerici separati da uno spazio, questo grazie all'istruzione " tb2 = tb2 & " " & CStr(tb1)". Ricordiamo che la funzione CStr() è una funzione di conversione e serve per trasformare, per esempio, un numero in un testo.

A questo punto potremmo implementare il programmino facendo scegliere all'utente che tabellina vuole visualizzare. Omettiamo la fase relativa alla modifica del diagramma di flusso e passiamo direttamente al listato:

listato tabellina in visual basic

Abbiamo aggiunto una variabile che serve per memorizzare l'input dell'utente che sceglie il numero di cui vuole ottenere la tabellina pitagorica. La variabile tb1 contiene il numero scelto dall'utente, per esempio 7 (naturalmente dopo la conversione grazie alla funzione CInt() che trasfoma il valore proviene dalla casella di testo in numero intero) , la variabile tb2 viene inizializzata con lo stesso valore, cioè 7. La variamile tb3 idem, seppur tradotto in testo.

All'interno del ciclo nulla è cambiato, salvo che l'incremento necessario al calcolo della tabellina non è più un numero costante (prima c'era un 5), ma una variabile (tb1) che contiene, appunto, il numero scelto dall'utente.

caclolo tabellina pitagorica con visual basic

Come si evince dall'immagine a sinistra, l'utente inserisce un numero a piacere e, dopo aver fatto click sul pulsante, il programma calcola la tabellina pitagorica per il numer scelto (per esempio 7). Naturalmente, la casella di testo che raccoglie l'input si chiama Numtab1, come si vede dal listato.

Infine alcune precisazioni: il programmino in se presenta alcune limitazioni. Per esempio la tabellina viene calcolata solo per i primi 10 passaggi (inizializzazione + ciclo For cont1 = 1 To 9), inoltre non vi è controllo alcuno sull'input utente. Questo per rendere il listato più comprensibile a chi vuole iniziare a programmare.

Sarebbe meglio, infatti, far scegliere all'utente anche i passaggi di calcolo per la tabellina, e allo stesso tempo, controllare i dati inseriti dando per esempio un range e prevedendo un messaggio d'errore nel caso in cui i dati inseriti non siano corrispondenti alla richiesta.

Lo faremo nella prossima lezione.

Antonino Fleres

 

 

lezione precedente - indice lezioni - lezione successiva

 

 

 

PARTNER COMMERCIALI

 

Foto Libere!

 

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