Lezione 5 - Facoltà di Psicologia

Document Sample
Lezione 5 - Facoltà di Psicologia Powered By Docstoc
					        Informatica
CdL Psicologia Generale Sperimentale



          Lezione 5
                        Sommario


 Diagramma a blocchi

 Analisi strutturata

 Esercizi




Informatica              Andrea Frosini   2
                  Diagrammi a blocchi

E’ un linguaggio formale di tipo grafico per rappresentare gli algoritmi




Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine
   di esecuzione delle istruzioni.

Un particolare simbolo grafico detto blocco elementare è associato ad
   ogni tipo di istruzione elementare

I blocchi sono collegati tra loro tramite frecce che indicano il
    susseguirsi delle istruzioni



 Informatica                   Andrea Frosini                         3
                   Diagrammi a blocchi

I blocchi elementari sono:




      begin                       leggi x                 A


 blocco iniziale             blocco di lettura    blocco di azione



                                                  vero          falso
                                 scrivi x                 C
       end


  blocco finale          blocco di scrittura      blocco di controllo

 Informatica                     Andrea Frosini                    4
                      Diagrammi a blocchi
Un diagramma a blocchi descrive un algoritmo se:

 ha un blocco iniziale e uno finale

 è costituito da un numero finito di blocchi azione e/o blocchi
  lettura/scrittura e/o blocchi di controllo

 ciascun blocco elementare soddisfa le seguenti condizioni di validità:

     ciascun blocco azione, lettura/scrittura ha una sola freccia entrante e una sola
      freccia uscente
     ciascun blocco di controllo ha una sola freccia entrante e due uscenti
     ciascuna freccia entra in un blocco o si innesta su una altra freccia
     ciascun blocco è raggiungibile dal blocco iniziale
     il blocco finale è raggiungibile da qualsiasi altro blocco


    Informatica                     Andrea Frosini                              5
                                Esercizio


Scrivere un algoritmo e rappresentarlo tramite un diagramma a blocchi per i
   seguenti problemi:

   attraversare la strada
   preparare la pasta
   calcolare l’area del triangolo
   determinare le radici di una eq. di 2° grado
   determinare la somma di due numeri




     Informatica                  Andrea Frosini                      6
                     Analisi strutturata
Analisi volta alla stesura di descrizioni di algoritmi tramite diagrammi a
   blocchi di tipo strutturato

Un diagramma a blocchi strutturato è più comprensibile e modificabile

In un diagramma strutturato non apparirà mai una istruzione di salto
   incondizionato

Teorema di Bohm-Jacopini
   Ogni diagramma a blocchi non strutturato è sempre trasformabile in
   un diagramma a blocchi strutturato ad esso equivalente

Due diagrammi sono equivalenti se partendo dagli stessi dati iniziali
  producono gli stessi risultati



   Informatica                   Andrea Frosini                         7
                     Analisi strutturata

Una descrizione è di tipo strutturato se i blocchi sono collegati tramite
  i seguenti schemi di flusso strutturato:

 schema di sequenza

 schema di selezione

 schema di iterazione




  Informatica                   Andrea Frosini                          8
 Analisi strutturata: schema di sequenza

Schema di sequenza:
due o più schemi di flusso
                                                 begin
sono eseguiti in successione


                                                  S1

Nota: lo schema di sequenza
è strutturato se e solo se lo                     S2
sono i blocchi S1 e S2

                                                 end




  Informatica                   Andrea Frosini           9
  Analisi strutturata: schema di selezione

                                            begin                   begin
Schema di selezione:
esiste un blocco di controllo
                                    falso           vero    falso           vero
che permette di scegliere                     C                       C
quale schema di flusso
debba essere eseguito tra                             S1   S2                    S1
due schemi, in funzione
del valore di verità
del controllo
                                             end                     end




   Informatica                  Andrea Frosini                              10
Analisi strutturata: schema di iterazione

 Schema di iterazione (ciclo o loop):
 modo conciso per descrivere azioni che devono essere ripetute


               begin                            begin



                  S1                                        S1

                       vero                             falso
                  C                               C

              falso                            vero

                 end                             end

Informatica                   Andrea Frosini                     11
Analisi strutturata: schema di iterazione
Nota:
I due schemi non sono equivalenti: in un caso lo schema S1 è eseguito
almeno una volta e nell’altro potrebbe non essere mai eseguito

La condizione vero/falso per il controllo possono essere invertite: si parla di
   iterazione per vero quando S1 è eseguito finché la condizione su C è vera
   e iterazione per falso nell’altro caso


Quando è necessario eseguire lo stesso insieme di operazioni per un numero
  specificato di volte si adotta un particolare schema di iterazione:
     inizia con una sequenza di azioni di assegnazione dette istruzioni di
      inizializzazione
     possiede sequenza di azioni (iterazione) che viene ripetuta per un numero
      specificato di volte




Informatica                       Andrea Frosini                                  12
                         Analisi strutturata


    inizializzazione                                inizializzazione



       iterazione
                                                 falso   condizione
                                                         di fine ciclo



                        falso                             vero
        condizione
        di fine ciclo
                                                         iterazione

         vero




Informatica                     Andrea Frosini                           13
                    Analisi strutturata

Condizione di fine ciclo:
viene controllata dopo l’esecuzione di ogni blocco di iterazione, può
   essere con controllo in coda al ciclo o in testa

Un ciclo è detto enumerativo quando è noto a priori il numero di volte
   che deve essere eseguito

Si usa un contatore di ciclo per controllarne l’esecuzione: si usa cioè
    una variabile che viene incrementata (o decrementata) fino a
    raggiungere un valore prefissato




 Informatica                  Andrea Frosini                          14
                      Analisi strutturata


Un ciclo è indefinito quando non è noto a priori il numero di volte che deve
   essere eseguito

Questo accade quando la condizione di fine ciclo dipende dal valore di una o
  più variabili che
     o dipendono dall’interazione con l’esterno
     o vengono modificate all’interno dell’iterazione in modo complesso




Informatica                       Andrea Frosini                           15
Svolti:
                                 Esercizi
1. Ricerca di un elemento in un vettore
2. Determinare il massimo numero in un vettore
3. Media di un vettore
4. Fare il prodotto tra due numeri in ingresso utilizzando solo la somma
5. Stampa del resto della divisione intera tra due numeri (senza la funzione
    mod)
Da svolgere:
6. Stampa dei multipli di un numero in ingresso minori di 100
7. Stampa della massima potenza minore di 100 di un numero in ingresso
8. Approssimazione intera, per eccesso, della radice quadrata di un numero in
    ingresso
9. Stampa il quoziente della divisione intera tra due numeri utilizzando solo la
    funzione differenza
10. Preso un numero x in input, se x<10 allora stampa “ciao” 5 volte, se x>20
    allora stampa “evviva” x volte, altrimenti chiedi un numero y in input e
    stampa “salve” x-y volte, se x>y, y-x volte altrimenti.
  Informatica                     Andrea Frosini                            16
                     Soluzione esercizio 1.

Passo 1: per procedere alla soluzione dell’esercizio cerchiamo di avere ben chiaro
    il problema che dobbiamo affrontare.
    In special modo dobbiamo isolare:

    1.   I dati in ingresso (variabili) che sono richiesti all’utente;

    1.   I dati costanti che sono propri del problema;

    1.   L’output richiesto per ciascun insieme di input.


Per essere sicuri di aver compreso perfettamente il problema facciamo una serie
di esempi calcolando alcuni output a partire da input diversi.




   Informatica                       Andrea Frosini                         17
                      Soluzione esercizio 1.

Passo 2: analizziamo il modo di risolvere il problema che abbiamo utilizzato
    durante gli esempi, chiarendo a noi stessi quali passi ci hanno portato ad una
    soluzione a partire dai dati in ingresso.


SE I PASSI PER LA SOLUZIONE DEL PROBLEMA NON CI SONO ANCORA
SUFFICIENTEMENTE CHIARI, TORNIAMO INDIETRO FACENDO ALTRI ESEMPI!!!



Passo 3: Ciascun passo da noi trovato va infine tradotto in uno o più passi
    elementari, cioè passi che possono essere descritti tramite i blocchi a
    disposizione e gli schemi descritti in precedenza.




      Informatica                    Andrea Frosini                            18
            Soluzione esercizio 1: dettagli
Relativamente all’esercizio 1 abbiamo:

Passo 1:
1. Dati richiesti all’utente:
    a. Vettore (di numeri) all’interno del quale cercare il nostro elemento;
    b. Elemento (numero) che deve essere cercato.

2. Dati costanti del problema:
    a. Eventualmente la dimensione del vettore di ingresso, altrimenti nessuno

Procediamo con un esempio:
Input: Vettore=(2,5,43,72,0,26,2,4)                     Elemento = 26
Output: “Elemento trovato”
Procedura: esamino il primo elemento del vettore, se è 26 dico “Elemento
    trovato”, altrimenti proseguo con il secondo elemento. Se il secondo elemento
    è 26 dico “Elemento trovato”, altrimenti passo al terzo elemento e così via fino
    alla fine degli elementi del vettore.
    Se l’elemento non è stato trovato dico “Elemento NON trovato”
   Informatica                     Andrea Frosini                              19
             Soluzione esercizio 1:dettagli
Relativamente all’esercizio 1 abbiamo:

Passo 2:
Analisi e caratteristiche dell’algoritmo da noi descritto nella procedura di soluzione:

1. l’algoritmo presenta una parte nella quale si richiede di controllare tutti gli
      elementi del vettore.
      Questo immediatamente ci fa pensare alla presenza di un ciclo nel quale sarà
      necessaria una variabile che successivamente prenderà i valori delle posizioni
      del vettore, per tutta la sua lunghezza.

2. Tale ciclo dovrà terminare con esito positivo quando l’elemento è stato trovato, e
     con esito negativo quando la variabile di ciclo ha raggiunto la fine del vettore

Passo 3:
Avendo in mente le considerazioni fatte, si procede infine alla formalizzazione del
diagramma di flusso come segue:

   Informatica                      Andrea Frosini                              20
     Soluzione esercizio 1: diagramma
                       begin

                                                        Passo 1, 1: dati
                       INPUT
                                                        in input dall’utente
                 Vettore , Elemento


                       i0                             Passo 1, 1:
              dimensione Vettore  K                   costanti del problema



                                         vero            OUTPUT
i  i+1                 i=K                         Elemento NON trovato

                    falso                                                      end

      falso                                vero          OUTPUT
                Vettore [i] = Elemento                Elemento trovato


Informatica                        Andrea Frosini                              21
             Soluzione esercizio 1: diagramma
Passo 2: ad ogni
passo la variabile di
ciclo i viene                   begin
aumentata di 1
scorrendo gli
                                                                 Passo 2: la variabile di ciclo i
elementi di Vettore             INPUT
                                                                 arriverà fino alla fine di Vettore
                          Vettore , Elemento


                                 i0                            Passo 2: controllo se l’ i-esimo
                        dimensione Vettore  K                  elemento del Vettore è quello cercato



                                                  vero            OUTPUT
        i  i+1                  i=K                         Elemento NON trovato

                             falso                                                            end

              falso                                 vero          OUTPUT
                         Vettore [i] = Elemento                Elemento trovato


        Informatica                         Andrea Frosini                                     22
     Soluzione esercizio 1: diagramma
                    begin


                     INPUT
               Vettore , Elemento


                      i0



                                       vero           OUTPUT
i  i+1       i = dimensione Vettore             Elemento NON trovato

                   falso                                                end

      falso                            vero           OUTPUT
              Vettore [i] = Elemento               Elemento trovato


Informatica                     Andrea Frosini                          23
             Soluzione esercizio 2: diagramma
                                           begin


                                           INPUT
                                           Vettore


                                          i0
                                     Max  Vettore [ i ]
                     i  i+1

                                                              vero   OUTPUT
                                    i = dimensione Vettore            Max

Max  Vettore [ i ]                       falso

                           falso                                      end
                                      Vettore [ i ] > Max
                                   vero

       Informatica                           Andrea Frosini                   24
     Soluzione esercizio 3: diagramma
               begin


               INPUT
               Vettore


               i0
             Media  0
       K  dimensione Vettore


                            vero      Media  Media / K   OUTPUT
                 i=K                                       Media

              falso
      Media  Media + Vettore [ i ]                        end
               i  i+1


Informatica                        Andrea Frosini                  25
     Soluzione esercizio 4: diagramma
                begin


                INPUT
                 X, Y


                 i0
               Prod  0



                            vero                    OUTPUT
                  i=Y                                Prod

               falso
              Prod  Prod + X                        end
                  i  i+1


Informatica                        Andrea Frosini            26
     Soluzione esercizio 5: diagramma
               begin

                                               Qui potrebbero essere eventualmente
               INPUT
                                               inseriti i controlli
                X, Y                           “Y diverso da 0”
                                               “X o Y negativi”




                       vero                            OUTPUT
                 X<Y                                     X

              falso

               XX-Y                                      end



Informatica                   Andrea Frosini                                 27

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:3
posted:11/14/2012
language:Italian
pages:27