Dal problema al programma

Dal problema al programma

Algoritmi e Programmazione Strutturata.

Dal problema al programma (tramite algoritmi)

Col termine problema s’indica una situazione che pone delle domande cui si devono dare risposte. Risolvere il problema vuol dire uscire da tale situazione .  Tratteremo la risoluzione dei problemi ricorrendo agli  algoritmi e alla programmazione strutturata. Affinché un problema sia risolvibile, in generale è necessario che la sua definizione sia chiara e completa. Non tutti i problemi sono risolvibili attraverso l’uso del calcolatore.  In particolare esistono classi di problemi per le quali la  soluzione automatica non è proponibile. Ad esempio:  

  •  Se il problema presenta infinite soluzioni;  
  • Se per il problema non è stato trovato un metodo  risolutivo  
  •  Non esiste un metodo risolutivo automatizzabile.

Un problema è formato  dai seguenti elementi:    

  • I dati, ossia ciò che è noto, l’istanza che si deve affrontare e che possiamo indicare col termine input.    
  • I risultati, ossia ciò che si deve determinare, gli elementi incogniti la cui determinazione fornisce l’output.
  • Le condizioni, che sono in generale le limitazioni cui devono soggiacere i risultati

Per risolvere un problema è necessario    

  • Intuirlo    
  • Esprimerlo con formule    
  • Trovare un metodo di soluzione  
  • Usare il metodo correttamente

1-2016-10-12-alle-10-29-19

Un problema è formato dai seguenti elementi:

    • I dati, ossia ciò che è noto, listanza che si deve affrontare e che possiamo indicare col termine input.
    • I risultati, ossia ciò che si deve determinare, gli elementi incogniti la cui determinazione fornisce l’output.
  • Le condizioni, che sono in generale le limitazioni cui devono soggiacere i risultati

[amazon_link asins=’883866515X,8838664684,8815272860′ template=’ProductCarousel’ store=’sistemereti22-21′ marketplace=’IT’ link_id=’b51640c8-e5d1-11e8-a57d-4b8462591f63′]

Strategie sulla Risoluzione dei Problemi

Per compiere l’analisi di un problema il risolutore deve svolgere una attività creativa nella ricerca della risoluzione del problema:

    1. Interpretare l’enunciato del problema e definire gli obiettivi da realizzare;
    1. Individuare i dati del problema e costruire un modello opportuno (modello è una rappresentazione della realtà che ha impoverito la realtà stessa  degli aspetti superflui alla soluzione del problema);
    1. Descrivere il procedimento risolutivo individuando le operazioni da compiere sui dati iniziali per ottenere i risultati finali;
    1. Seguire nell’ordine le operazioni descritte nel processo risolutivo (il risolutore in questa fase è detto esecutore);
  1. Verificare se i risultati ottenuti rispondono alle finalità del problema reale (attendibilità).

1-2016-10-12-alle-10-39-17
La prima fase dell’analisi di un problema, ossia la definizione dell’obiettivo da raggiungere, può essere realizzata attraverso processi di affinamento sempre più dettagliati. Si tratta di scomporre un problema complesso in sotto problemi più semplici, utilizzando la tecnica del top-down:

  • il problema viene esaminato nelle direttrici generali;
  • scomposto in sottoproblemi;
  • di ciascun sotto problema si determinano le operazioni specifiche;
  • esso viene scomposto in ulteriori sotto problemi, fino a giungere alle operazioni elementari.

Definizione di algoritmo

In informatica e matematica, il termine algoritmo indica un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante un algoritmo si dice computabile. Per esempio, per calcolare la somma di due numeri utilizziamo un semplice algoritmo, cioè determinate “istruzioni” che eseguite nel corretto ordine ci portano a ottenere un risultato.
1-2016-10-12-alle-11-14-45

  1. Prima si somma la colonna  più a destra (7+5), si ottieni il valore 12.
  2. Si scrive il 2 sotto la linea, e si riporta 1 nella colonna successiva,
  3. Si sommano le cifre della colonna a sinistra (1+1+1), si ottiene 3
  4. Si scrive tale valore sotto la linea ottenendo la soluzione (32)

L’algoritmo descrive il metodo risolutivo attraverso un insieme ordinato di azioni secondo l’ordine specificato dall’algoritmo, a partire dai dati di ingresso, consente di ottenere i risultati relativi alla soluzione del problema.

Proprietà di un algoritmo

  • Non ambiguità: le istruzioni devono essere univocamente interpretabili dall’esecutore dell’algoritmo.
  • Eseguibilità: l’esecutore deve essere in grado, con le risorse a disposizione, di eseguire ogni istruzione in un tempo finito.
  • Finitezza: l’esecuzione di un algoritmo deve terminare in un tempo finito per ogni insieme di valori in ingresso.

Esempi di algoritmi che applichiamo per la soluzione di problemi di vita quotidiana sono:

le istruzioni di uso di un elettrodomestico 1-2016-10-12-alle-11-25-10
la sequenza di passi da seguire per compilare un modulo la realizzazione di una ricetta di cucina  1-2016-10-12-alle-11-25-19

Elementi fondamentali di un algoritmo

  1. Dati iniziali e finali: sono gli elementi che vengono elaborati dall’algoritmo (dati iniziali o di input) e i risultati prodotti dall’algoritmo (dati finali o di output).
    Es. nell’algoritmo dell’addizione, i dati iniziali sono gli addendi, il dato finale è la somma.
  2. Sequenza di azioni (istruzioni o passi elementari): un’azione è un’istruzione (operazione elementare) che deve essere eseguita sui dati in ingresso per ottenere i dati in uscita.
  3. Esecutore: è il soggetto che compie le azioni, cioè legge le istruzioni, le interpreta e le esegue.

Le istruzioni quindi devono essere scritte in modo che l’esecutore possa comprenderle ed eseguirle correttamente.

1-2016-10-12-alle-11-33-26

  • Dati di INPUT : sono quelli che devono essere forniti dall’esterno per poter risolvere il problema.
  • Dati di OUTPUT : sono quelli che vengono comunicati all’esterno come risultato della soluzione del problema.
  • Dati INTERNI o di LAVORO : sono i dati utilizzati nella trasformazione compiuta dall’algoritmo ma trasparenti all’utente (non sono forniti in output).

I Dati possono essere di diverso tipo ad esempio:

  1.  Dati NUMERICI : dati che contengono numeri e sui quali si possono effettuare operazioni aritmetiche. Possono essere ulteriormente suddivisi in:
    -INTERI : dati numerici ciìon segno o senza segno che non prevedono cifre decimali
    -REALI : dati numerici che prevedono cifre decimali
  2.  Dati ALFANUMERICI (o STRINGHE ): sono i dati che contengono caratteri alfabetici (A,B,…), caratteri speciali ($,0/o,&,…) e cifre (0,1,2,…) sulle quali non sono possibili operazioni aritmetiche (ad esempio il codice fiscale).

DATI Costanti e Variabili

  • COSTANTE : il valore del dato rimane immutato durante l’esecuzione dell’algoritmo
  • VARIABILE : il valore del dato può cambiare durante l’esecuzione dell’algoritmo

Ad esempio: dobbiamo calcolare l’area di un cerchio di cui si conosce il raggio. I dati su cui opera l’algoritmo sono:

raggio,ϖ, area

e l’istruzione da eseguire è:

area = raggio * raggio *ϖ

  • ϖ è una costante, infatti il suo valore non deve cambiare
    area e raggio sono delle variabili: il loro valore cambia in funzione del particolare cerchio che si prende in considerazione.

Il concetto di variabile è molto importante nella definizione degli algoritmi: una variabile è caratterizzata da un nome e dal tipo (numerico o stringa) del dato che andrà a contenere.

Istruzioni

Lettura (in) : assegna ad una variabile un valore immesso tramite la tastiera del comuter.  

  •   leggi(raggio): se dalla tastiera viene digitato 4 la variabile raggio conterrà il valore 4.   
  •  leggi(giorno): se dalla tastiera viene digitato Lunedì la variabile giorno conterrà il valore Lunedì

1-2016-10-12-alle-12-37-14
Scrittura: permette di visualizzare sul monitor del computer oppure sulla stampante un messaggio oppure il valore di una variabile    

  • scrivi(“Ciao Mondo”) visualizza il messaggio scritto tra apici       
  • scrivi (raggio): visualizza sul video il contenuto della variabile raggio, ossia se il raggio                 ha valore 4 sul video viene visualizzato 4   
  •  scrivi (giorno): visualizza sul video il contenuto della variabile giorno, ossia se il giorno                 ha valore Lunedì sul video viene visualizzato Lunedì

1-2016-10-12-alle-12-39-44
Assegnazione: assegna un valore ad una variabile per indicare questa istruzione si usa il simolo = oppure una freccia   ⇐

  •   raggio = 4: alla variabile raggio è assegnato il valore 4   
  •  raggio = R : alla variabile faggio viene assegnato il valore di un’altra variabile di nome R

1-2016-10-12-alle-12-42-29

Please follow and like us:

Previous

Next

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Commenti recenti

Working Hours

  • Monday9am - 6pm
  • Tuesday9am - 6pm
  • Wednesday9am - 6pm
  • Thursday9am - 6pm
  • Friday9am - 6pm
  • SaturdayClosed
  • SundayClosed
Latest Posts

Teachers

Facebook
Twitter
LinkedIn
Contatti

Commenti recenti

Wordpress Social Share Plugin powered by Ultimatelysocial
error

Enjoy this blog? Please spread the word :)

%d blogger hanno fatto clic su Mi Piace per questo: