La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DAL DIAGRAMMA AL CODICE

Presentazioni simili


Presentazione sul tema: "DAL DIAGRAMMA AL CODICE"— Transcript della presentazione:

1 DAL DIAGRAMMA AL CODICE

2 Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza in cui i blocchi devono essere eseguiti

3 Un diagramma di flusso Esistono 4 tipi di blocchi.
Istruzioni di inizio fine Operazioni di lettura (input) o scrittura(output)‏ Operazioni o assegnazioni Strutture di controllo

4 Istruzioni di inizio e fine

5 Operazioni di lettura (input) o scrittura(output)

6 Operazioni o assegnazioni
calcola A+5

7 Strutture di controllo
Selezione o alternativa IF Iterazione o ripetizione while, do..while, FOR

8 Programma = algoritmo + dati
La struttura del programma consiste in: Una parte in cui si dichiarano tutte le variabili del programma e il loro tipo; Una parte contenente le istruzioni che descrivono l’algoritmo risolutivo utilizzato.

9 Istruzioni Le istruzioni si suddividono in:
Istruzioni di Input (lettura)‏ Istruzioni di Output (scrittura)‏ Istruzioni di Assegnazione Istruzioni di controllo

10 Istruzioni di assegnazione
spesso compaiono espressioni, cioè formule o regole di calcolo che specificano sempre un valore o risultato: sconto=(valoreiniziale*10)/100 prezzoFinale=valoreiniziale-sconto delta = b ^ * a * c x1 = -b - sqrt(delta) / 2 * a ( #include <math.h> ) NB: sqrt(x) è una funzione predefinita che restituisce la radice quadra di x

11 Problematica sul controllo
Le strutture di controllo permettono di definire il percorso (flusso) di ogni istruzione all'interno di un programma; La programmazione strutturata propone tre strutture di controllo: Sequenza Selezione Iterazione

12 Teorema fondamentale TEOREMA (Böhm-Jacopini) :
Dato un programma, ne esiste uno equivalente che utilizza esclusivamente le tre strutture di controllo fondamentali: sequenza, selezione e iterazione.

13 La sequenza La sequenza è il più semplice dei tre costrutti fondamentali e viene utilizzato quando le istruzioni devono essere eseguite ordinatamente, con lo stesso ordine con cui sono scritte, per cui l’istruzione successiva è quella in posizione successiva.

14 Selezione o alternativa
La selezione o alternativa permette di effettuare una scelta fra due possibili alternative. Per effettuare la scelta occorre valutare una condizione. Possiamo distinguere cinque tipi di alternative: a una via a due vie a cascata annidata Multipla

15 Alternativa a una via IF (condizione) istruzione; {istruzione1;
ecc. }

16 Alternativa a due vie IF (condizione) istruzione1; ELSE istruzione2;

17 Selezione in cascata IF (condizione1) istruzione1; ELSE istruzione2;

18 Selezione annidata IF (condizione1) IF (condizione2) istruzione1; ELSE

19 Selezione annidata2 IF (condizione1) istruzione3; ELSE IF condizione2

20 Selezione multipla Switch (scelta){ istruzione1; break; CASE 2
default : istruzione; }

21 Problematica sul controllo
Le strutture di controllo permettono di definire il percorso (flusso) di ogni istruzione all'interno di un programma; La programmazione strutturata propone tre strutture di controllo: Sequenza Selezione Iterazione

22 Teorema fondamentale TEOREMA (Böhm-Jacopini) :
Dato un programma, ne esiste uno equivalente che utilizza esclusivamente le tre strutture di controllo fondamentali: sequenza, selezione e iterazione.

23 Iterazione o Ripetizione
I costrutti di iterazione detti anche di ripetizione o cicli, consentono di eseguire molte volte la stessa istruzione fino al verificarsi di una condizione. Due tipi: Condizionale: la ripetizione viene decisa in base al risultato di un test, da effettuarsi ad ogni iterazione: ripeti Istruzione finchè succede una certa cosa; mentre succede una certa cosa esegui Istruzione; Il test può essere fatto all’inizio o alla fine (controllo in testa o in coda) Enumerativa: ripetizione di un’azione per un numero di volte determinato all’inizio dell’esecuzione dell’istruzione Sono equivalenti ma appropriati in situazioni diverse !

24 Ripetizione con controllo in coda do …while
istruzione1; istruzione2; ecc. while (condizione); Che equivale a: 1 Si eseguono le istruzioni 2 Viene valuta la condizione se il valore è Vero si torna al passo 1 3 Se il valore è Falso si esce dal ciclo while vero falso

25 // ciclo do-while che stampa sullo schermo tutti i numeri pari tra 11 e 23
#include <iostream> using namespace std; int main() { int numero_corrente = 12; do {cout << numero_corrente << endl; numero_corrente = numero_corrente + 2;} while (numero_corrente < 23); }

26 Postcondizionale (controllo in coda)
Con una ripetizione postcondizionale, se la condizione è inizialmente vera, il blocco di istruzioni verrà comunque eseguita almeno una volta. Per essere sicuri che il ciclo termini, esso dovrà contenere qualche istruzione che modifichi il valore di verità dell’espressione.

27 Ripetizione precondizionale while (controllo in testa)
while (condizione) {istruzione1; istruzione2; ...... } Che equivale a: 1 Valuta la condizione 2 Se il valore è VERO si esegue l’istruzione e si torna al passo 1 3 Se il valore è FALSO si esce dal ciclo while

28 // Programma che esegue il countdown da 10 a 0
#include <iostream> using namespace std; int main () { int n = 10; while (n>=0) { cout << n << ", "; --n; } cout << "partenza! \n";

29 // ciclo while che stampa sullo schermo tutti i numeri pari tra 11 e 23
#include <iostream> using namespace std; int main(){ int numero_corrente = 12; while (numero_corrente < 23) { cerr << numero_corrente << endl; numero_corrente = numero_corrente + 2; }

30 Ripetizione enumerativa for (con contatore)
In certi casi si conosce a priori il numero delle iterazioni che devono essere eseguite Esiste una struttura di ripetizione che funziona esattamente in questo modo: utilizza una variabile contatore che viene inizializzata ad un valore particolare e successivamente incrementata fino ad un valore massimo. Per ogni valore che il contatore assume viene ripetuta l’esecuzione di un blocco di istruzioni.

31 Ripetizione enumerativa for
int i; for (i=1; i<=10; i++) Che equivale a: 1 Inizializza il contatore al valore min; 2 Se condizione è FALSA esci, altrimenti incrementa il contatore 3 Esegui l’istruzione / le istruzioni

32 #include <iostream> using namespace std; int main(){ int i; for (i=1; i<=10; i++) // for (i=0; i<10; i++) cout << i << endl; }

33 Fine

34 Selezione multipla: esempi
Alcune istruzioni possibili possono essere: Case “lunedi” per indicare un singolo valore Case 2,4,7 per indicare più valori Case 2 to 7 per indicare i valori compresi in un certo intervallo N.B: la variabile scelta può essere sia di tipo numerico che alfanumerico

35 Esempio sulla selezione multipla creare un’agenda settimanale
INIZIO leggi giorno giorno lun case else dom mar mer mesg “non hai digitato un giorno della settimana!” mesg “vai in 3a” mesg “vai in 5a” mesg “g.libero” mesg “g.festivo” scrivi mesg FINE

36 Operatori di relazione
Diverso da Uguale a <> = maggiore o uguale di >= maggiore di > minore o uguale di <= minore di <

37 Esercizio 1 : Calcolo del massimo tra due numeri
Codice: ' input x=CInt(txtx.text)‏ y=CInt(txty.text)‏ 'blocco selezione a 2 vie if x>y then massimo=x else massimo=y end if 'output lblrisultato.caption=CStr(massimo)‏

38 Esercizio 2: nel seguente algoritmo dire per quali condizioni è eseguita l’istruzione c? e l’istruzione b? e l’istruzione a? falso vero condizione1 vero Istruzione c falso condizione2 Istruzione b Istruzione a

39 Esercizio 3: nel seguente algoritmo dire per quali condizioni è eseguita l’istruzione c? e l’istruzione b? e l’istruzione a? falso vero vero condizione1 condizione2 vero Istruzione b falso falso condizione2 Istruzione d Istruzione c Istruzione a

40 Esercizio 4: il segmento di programma riportato sotto presenta delle istruzioni inutili:
if a=0 then lblmessaggio.caption=“valore nullo” else if a<>0 then lblmessaggio.caption=“valore diverso da zero” end if scritta in questo modo che tipo di struttura è?

41 Esercizio 5: compare nella label lblmessaggio dopo l’esecuzione delle seguenti istruzioni:
if A>B then C=A-B else C=B-A end if lblmessaggio.caption=C A=2 B=7 if A>B then C=A-B else C=B-A end if lblmessaggio.caption=C

42 Eserizio6: Su una certa somma di denaro viene applicata un imposta in base al seguente schema: Somma < 5000 imposta =5% Somma compresa tra 5000 e imposta = 10% Somma >10000 imposta =15% Calcolare la somma finale

43 Eserizio6: Diagramma a blocchi

44 Eserizio6: Codice ' input somma=CDbl(txtsomma.text)‏
'blocco selezione multipla Select case somma case 0 to 5000 somma=somma+(somma*5)/100 case 5000 to 10000 somma=somma+(somma*10)/100 case is >10000 somma=somma+(somma*15)/100 case else somma=0 End select 'output lblrisultato.caption=CStr(somma)‏

45 Esempi

46 Esempio 1: Calcolo dell’area di un rettangolo
Tabella delle variabili Output numerico Area del rettangolo area Input Altezza del rettangolo altezza Base del rettangolo base Utilizzo Tipo Descrizione Nome

47 Esempio 1: Calcolo dell’area di un rettangolo
Interfaccia grafica Diagramma a blocchi

48 Esempio 1: Calcolo dell’area di un rettangolo
In Visual basic 'dichiarazione variabili dim base as integer dim altezza as integer dim area as double Private Sub btcalcola_Click()‏ 'input con text box base=CInt(txtbase.text)‏ altezza=CInt(txtaltezza.text)‏ 'blocco istruzioni area=base*altezza 'output con label lblarea.caption= “Area = ” & CStr(area)‏ End Sub Diagramma a blocchi

49 Esempio 2: Calcolo della media di tre numeri interi
Tabella delle variabili Lavoro numerico Somma dei numeri a,b e c somma Input Terzo numero c Output Media dei numeri a,b e c media Secondo numero b Primo numero a Utilizzo Tipo Descrizione Nome

50 Esempio 2: Calcolo della media di tre numeri
Interfaccia grafica Diagramma a blocchi

51 Esempio 2: Calcolo della media di tre numeri
In Visual Basic 'dichiarazione variabili dim a as integer dim b as integer dim c as integer dim somma as integer dim media as double Diagramma a blocchi Private Sub btcalcola_Click()‏ 'input con text box a=CInt(txta.text)‏ b=CInt(txtb.text)‏ c=CInt(txtc.text)‏ 'blocco istruzioni somma=a+b+c media=somma/3 'output con label lblmedia.caption= “Media = ” & CStr(media)‏ End Sub

52 Anno di nascita della persona
Esempio 3: Dato il nome e l’anno di nascita di una persona, calcolarne l’età Tabella delle variabili Input numerico Anno attuale a-attuale Output Età della persona età Anno di nascita della persona a_nascita alfanumerico Nome della persona nome Utilizzo Tipo Descrizione Nome

53 Esempio 3: Calcolo eta di una persona
Interfaccia grafica Diagramma a blocchi

54 Esempio 3: Calcolo eta di una persona
'dichiarazione variabili dim nome as string dim anno_nascita as integer dim anno_attuale as integer dim eta as integer Private Sub btcalcola_Click()‏ 'input con text box nome=txtnome.text anno_nascita=CInt(txtnascita.text)‏ anno_attuale=CInt(txtattuale.text)‏ 'blocco istruzioni eta=anno_attuale - anno_nascita 'output con label lbleta.caption= “Il sign ” & nome & “ ha ” & CStr(eta)‏ End Sub Diagramma a blocchi

55 Esempio 4: Visualizzare i numeri da 1 a 10
Tabella della variabili Output numerico Numero da visualizzare num Lavoro/ Numero che conta gli elementi visualizzati (contatore)‏ cont costante Numero di elementi da visualizzare n Utilizzo Tipo Descrizione Nome

56 Esempio 4: Visualizzare i numeri da 1 a 10
Diagrammi a blocchi (post, pre, enumerativa)‏

57 Esempio 4: Visualizzare i numeri da 1 a 10
'dichiarazione costanti const n=10 'dichiarazione variabili dim num as integer Diagramma a blocchi Private Sub btvisualizza_Click()‏ 'inizializzazione num=0 'blocco post condizionale Do 'istruzioni num=num+1 'output con label lblnum.caption= Cstr(num)‏ Loop Until num=10 'uscita ciclo End Sub

58 Esempio 4: Visualizzare i numeri da 1 a 10
'dichiarazione costanti const n=10 'dichiarazione variabili dim num as integer Diagramma a blocchi Private Sub btvisualizza_Click()‏ 'inizializzazione num=0 'blocco precondizionale Do while num <= n 'istruzioni num=num+1 'output con print print num Loop 'uscita ciclo End Sub

59 Esempio 4: Visualizzare i numeri da 1 a 10
In Visual Basic 'dichiarazione costanti const n=10 'dichiarazione variabili dim cont as integer Private Sub btvisualizza_Click()‏ 'blocco enumerativa For cont=1 To n Step 1 'output con print print cont Next cont 'uscita ciclo End Sub NB: step 1 e il “cont” del next possono essere omessi Diagramma a blocchi

60 Esercizi: Calcolo dell’area di un quadrato, dato il perimetro
Calcolo del massimo tra due numeri Calcolo la somma tra due numeri Scrivere la somma dei primi n numeri interi

61 Esercizio 2: Calcolo dell’area di un quadrato dato il perimetro
Tabella delle variabili Output numerico Area del quadrato area Lavoro Lato del quadrato lato Input Perimetro del quadrato perimetro Utilizzo Tipo Descrizione Nome

62 Esercizio 2: Calcolo dell’area di un quadrato
leggi perimetro lato perimetro / 4 FINE scrivi area INIZIO area lato * lato Diagramma a blocchi

63 Esercizio 3: Calcolo del massimo tra due numeri
Tabella delle variabili Output numerico Massimo tra X e Y massimo Input Secondo numero Y Primo numero X Utilizzo Tipo Descrizione Nome

64 Esercizio 3: Calcolo del massimo tra due numeri
leggi X,Y FINE scrivi massimo INIZIO X < Y vero massimo Y falso massimo X Diagramma a blocchi

65 Esercizio 1: Somma tra due numeri
Tabella delle variabili Output numerico Somma tra X e Y somma Input Secondo addendo Y Primo addendo X Utilizzo Tipo Descrizione Nome

66 Esercizio 1: Somma tra due numeri
leggi numero X leggi numero Y FINE scrivi somma INIZIO somma X + Y Diagramma a blocchi

67 Esercizio 4: Somma primi n numeri interi
Tabella delle variabili: Output numerico Somma dei numeri (accumulatore)‏ somma lavoro Numero che conta gli elementi sommati (contatore)‏ conta Input Numero di elementi da sommare n Utilizzo Tipo Descrizione Nome

68 Esercizio 4: Diagramma a blocchi conta <= n vero somma 0 conta 1
INIZIO Diagramma a blocchi leggi n somma 0 falso conta 1 conta <= n vero somma = somma+conta conta=conta+1 scrivi somma FINE

69 Input  TextBox In Visul basic le istruzioni di input vengono effettuate tramite alcuni oggetti: TEXTBOX COMBOBOX INPUTBOX

70 Input in Visual Basic Le istruzioni tipiche di input in visual basic sono: variabile=txtnome.text variabile=combo variabile=Inputbox(“testo di input”)‏

71 output  label In Visul basic le istruzioni di output vengono effettuate tramite alcuni oggetti: Label MsgBox ListBox

72 Output in Visual Basic Le istruzioni tipiche di output in visual basic sono: lblnome.caption=“altro testo”& variabile & “altro testo” MsgBox(“messaggio da visualizzare”)‏ ListBox.Items.Add(nomi(i))

73 Convertire Occorre ricordare che gli oggetti del visual basic utilizzati per gli input lavorano con le stringhe e quindi occorre convertire da stringhe in valori numerici se si hanno delle variabili di tipo numerico. Abbiamo alcune funzione predefinite per far questo: Val(da stringa a integer)‏ Cstr(da integer a stringa)‏


Scaricare ppt "DAL DIAGRAMMA AL CODICE"

Presentazioni simili


Annunci Google