![Page 1: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/1.jpg)
PROBLEMA
ALGORITMO
PROGRAMMA
Diagrammi a blocchi Pseudocodifica
LINGUAGGI di PROGRAMMAZIONE
Dim a,b as integer
Private sub cmdcalcola_click()
A=val(…..)
B=val(…..)
…..
End Sub
![Page 2: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/2.jpg)
La successione ordinata di passi elementari che portano alla soluzione di
un problema prende il nome di ALGORITMO.
La successione ordinata di passi elementari che portano alla soluzione di
un problema prende il nome di ALGORITMO.
Un algoritmo, per essere definito tale, deve avere le seguenti caratteristiche:
1. deve possedere un numero finito di passi2. deve essere comprensibile e non ambiguo per chi ne usufruisce3. deve risolvere tutti i problemi di una specifica CLASSE (si definisce CLASSE la totalità dei problemi con le stesse caratteristiche, p.e. la somma di 2 numeri)4. a parità di condizioni iniziali (ossia con gli stessi dati di input ) deve fornire gli stessi risultati ( ossia gli stessi dati di output)
DEFINIZIONEDEFINIZIONE
MA …MA …
![Page 3: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/3.jpg)
Gli algoritmi possono essere rappresentati sostanzialmente in 2 modi: in modo verbale, utilizzando cioè termini e parole del linguaggio comune, utilizzando cioè la cosiddetta pseudocodifica in modo grafico, utilizzando cioè i cosiddetti diagrammi a blocchi (flow chart) che prevedono la seguente simbologia:
Inizio FineBlocchi di inizio e fine algoritmo
Blocco di assegnazione/elaborazione p.e. a b oppure c a+ b
Blocco per l’introduzione e la visualizzazione dei dati
Blocco decisionale per prendere strade diverse all’interno dell’algoritmo
![Page 4: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/4.jpg)
OPPURE
Un algoritmo può essere costituito da passi elementari• Lettura dati / scrittura dati (operazioni di I/O)• Operazioni di assegnazione/elaborazione
da passi strutturati (Complessi) / Strutture di Programmazione• SEQUENZA• SELEZIONE• ITERAZIONE
![Page 5: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/5.jpg)
La struttura sequenziale, detta anche sequenza, è un passo elaborativo costituito da una successione di passi elementari di tipo I/O oppure assegnazione/elaborazione.
In senso più generale si tratta di una successione di passi elementari o complessi.
........... A=B+1 C=B*4 D=B mod 5 .........
![Page 6: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/6.jpg)
La struttura selettiva, detta anche selezione, è un passo elaborativo che prevede l’esecuzione
di istruzioni diverse in base al valore di verità di una certa condizione.
Tale struttura può essere di 2 tipi:
a 1 via
a 2 vie
![Page 7: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/7.jpg)
Struttura selettiva a 1 via
IF condizione then Istruzione 1 Istruzione 2End if
Struttura selettiva a 2 vie …IF condizione then Istruzione 1 Istruzione 2 else istruzione 3 istruzione 4End if
![Page 8: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/8.jpg)
La struttura iterativa, detta anche ciclo o iterazione, è un passo elaborativo che prevede la ripetizione
di un certo numero di istruzioni fino a che una certa condizione cambia di stato.
Tale struttura può essere di 2 tipi:
a condizione finale
a condizione iniziale
![Page 9: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/9.jpg)
Do Istruzione 1 Istruzione 2 Istuzione 3Loop until condizione
Struttura iterativa a condizione finale
![Page 10: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/10.jpg)
Struttura iterativa a a condizione iniziale
Do while condizione Istruzione 1 Istruzione 2 Istuzione 3Loop
![Page 11: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/11.jpg)
In passato non venivano usate unicamente queste strutture di programmazione ma, in particolare per realizzare la struttura iterativa veniva usata una istruzione “malefica”, la GOTO che permetteva di saltare da una istruzione all’altra del programma rendendo il programma stesso difficile da leggere e da modificare.
Fu poi raccomandata la programmazione strutturata che raccomandava l’uso di sole 3
strutture fondamentali.
![Page 12: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/12.jpg)
Il fondamento della programmazione strutturata risulta quindi essere il teorema di Bohm e Jacopini formalizzato nel 1966
Il teorema di Bohm e Jacopini afferma che tutti gli algoritmi possono essere scritti senza nessuna istruzione di salto incondizionato (goto), utilizzando solo le strutture di controllo sequenza, selezione e iterazione.
Un programma strutturato è più chiaro e quindi più facileda leggere, da testare, da correggere e da modificare
Aumenta la leggibilità e la modificabilità dei programmi con conseguente abbattimento dei costi legati alla manutenzione.
![Page 13: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/13.jpg)
Inizio
k <---- 0 ; C<---- 0 ; S<---- 0
N I
NUM I
K <---- K + 1
C <---- C + 1
S <---- S + NUM
C=4 OR K=N
S O
C <---- 0 ; S <---- 0
K=N
FINE
Introdotti N numeri interi NUM; visualizzare la loro somma 4 X 4.
Es. 4 5 2 8 4 9 2 12 -2 0 4
Dim num, n, k, c, s As IntegerDim s As IntegerPrivate Sub cmdcalcola_Click() k = 0 c = 0 s = 0 n = Val(InputBox("inserisci la quantità dei numeri da introdurre", "fase di input")) Do Do num = Val(InputBox("inserisci un numero", "fase di input")) k = k + 1 c = c + 1 s = s + num Loop Until c = 4 Or k = n MsgBox "somma=" + CStr(s), vbInformation, "fase di output *** somme parziali" c = 0 s = 0 Loop Until k = nEnd Sub
![Page 14: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/14.jpg)
TIPI di DATI sono classificati in due categorie:
• tipi elementari (o tipi semplici) in cui i dati non sono costituiti da altri dati, si tratta cioè di dati atomici;
• tipi strutturati, in cui i dati sono rappresentati da aggregazioni dalle quali è possibile estrarre i singoli dati tramite appropriate operazioni.
![Page 15: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/15.jpg)
Ogni linguaggio di programmazione prevede alcuni tipi di dati
sia semplici che strutturati (tipi primitivi).
Per esempio in Visual Basic i TIPI ELEMENTARI o SEMPLICI sono:
INTERO (Dim A as integer)REALE (Dim A as single, Dim B as double)CARATTERE (Dim A as char)BOOLEANO (DIm A as boolean)
Le VARIABILI SEMPLICI sono entità del tipo specificato associate a una locazione di memoria la cui lunghezza è stabilita dal tipo con un NOMEe un CONTENUTO.
![Page 16: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/16.jpg)
In Visual Basic i TIPI ELEMENTARI o SEMPLICI predefiniti sono:
INTERO Dim A as integerREALE Dim A as single, Dim B as doubleCARATTERE Dim A as charBOOLEANO DIm A as boolean
Le VARIABILI SEMPLICI sono entità del tipo specificato associate a una locazione di memoria la cui lunghezza è stabilita dal tipo con un NOMEe un CONTENUTO.
![Page 17: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/17.jpg)
I dati strutturati (STRUTTURA di DATI) corrispondono invece ad un raggruppamento di dati organizzati in base a un criterio, così da poter essere considerati come un unico oggetto.
In Visual Basic i TIPI di DATI STRUTTURATI predefiniti sono:
VETTORE (o ARRAY) Dim A(1 to 10) as integerRECORD …………….
![Page 18: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/18.jpg)
Un VETTORE o ARRAY (a una dimensione) è una struttura di dati di tipo SEQUENZIALE, ossia gli elementi componenti sono disposti uno di fianco all’altrocostituita da un insieme di elementi OMOGENEI tra di loroindividuabili mediante un INDICE che indica la posizione del singolo elemento nella struttura.
Il vettore ha un NOME COLLETTIVO mentre ogni elemento ha un NOME INDIVIDUALE dato dal nome collettivo seguito tra parentesi da un indice.
DIM V(1 TO 10) as INTEGER
![Page 19: PROBLEMA ALGORITMO PROGRAMMA Diagrammi a blocchi Pseudocodifica LINGUAGGI di PROGRAMMAZIONE Dim a,b as integer Private sub cmdcalcola_click() A=val(…..)](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb65497959361e8d02ef/html5/thumbnails/19.jpg)
5 -2 0 5 13 -9 11 10 5 18V
Ci si riferisce al singolo elemento con la sintassi
V(valore dell’indice)
V(1) contiene il dato intero 5V(2) contiene il dato intero -2V(3) contiene il dato intero ……..V(4) contiene il dato intero ……..V(5) contiene il dato intero ……..V(6) contiene il dato intero ……..V(7) contiene il dato intero ……..V(8) contiene il dato intero ……..V(9) contiene il dato intero ……..V(10) contiene il dato intero ……..
1 32 4 5 6 7 8 9 10