venerdì 6 giugno 2008

Algoritmo realizzato praticamente ;)

Considerato il grande successo della ricetta delle creps (esempio che abbiamo utilizzato per la definizione di algoritmo) vediamo ora come abbiamo realizzato la ricetta in pratica. Neanche il prof. ci credeva!!! Ecco le prove!!

Preparazione crepes:



Preparazione crepes II parte:

mercoledì 14 maggio 2008

Le variabili

All'interno del diagramma di flusso abbiamo utilizzato delle "variabili" senza però definirle in modo rigoroso.
Se proviamo a cercare su Wikipedia la definizione di variabile, troviamo che:
"In informatica, una variabile identifica una porzione di memoria (ovviamente della RAM) destinata a contenere dei dati, che possono essere modificati nel corso dell'esecuzione di un programma. Una variabile è caratterizzata da un nome (inteso solitamente come una sequenza di caratteri e cifre, ma il nome non deve iniziare con una cifra).
Noi possiamo pensare le variabili come delle scatoline che hanno un nome e che possono contenere un valore. Un altro esempio sono i cassetti: possiamo dare un nome ad un cassetto e scegliere cosa inserirci dentro.
Ad esempio la variabile A che contiene il valore 5 la rappresentiamo con:



Se dovessimo rappresentare in un flowchart questa assegnazione il blocco corrispondente sarebbe:

mercoledì 23 aprile 2008

Definizione di flow chart

Per scrivere dei programmi applicativi, cioè quelli che servono per lavorare o svolgere certe funzioni, è necessario conoscere uno speciale linguaggio, il "linguaggio di programmazione” per poter impartire delle istruzioni al calcolatore.

Ma questo è l'ultimo passaggio: abbiamo visto nel post precedente che, dato un problema, è necessario descrivere un algoritmo che lo realizza.
Il "programma", quindi, prima di essere realizzato deve essere pensato: quale problema deve risolvere il programma, a chi serve ecc.
Il flow chart (in italiano "diagramma di flusso") è un metodo grafico per descrivere il procedimento di come risolvere un problema attraverso un algoritmo.
Ogni diagramma deve avere un inizio e una fine e ogni blocco viene rappresentato graficamente con segni grafici dalla seguente struttura



Ovale: Inizio o Fine del flowchart



Parallelogramma: rappresenta due tipi di istruzioni quelle di input e quelle di output
Nell'angolo in alto a destra inseriamo una "I" oppure una "O" per indicare se il dato è in input o in output


Rettangolo: può contenere assegnazioni di valori a variabili o operazioni matematico-aritmatiche. Al suo interno possiamo trovare sempre tre elementi:
A sinistra ci deve essere sempre un nome di variabile, seguita da una freccia rivolta da destra verso sinistra, e infine nella parte destra abbiamo un'espressione matematica o un valore numerico.

Rombo(esagono): è usato quando nell'algoritmo si presenta un bivio in cui possiamo intraprendere due percorsi possibili: la scelta è determinata dalla condizione all'interno del blocco che può avere come risposte solo vero (si) o falso (no)

Esempi:



  • a <-- 0


  • sconto <-- prezzo * 10/100


  • a<--a+1

Queste forme, che rappresentano gli step del nostro algoritmo, sono sempre unite da frecce che ci rappresenta l'ordine con cui eseguire le istruzioni:









Questo flow chart esegue la somma su due numeri chiesti in input nelle variabili a e b, calcola la somma dei due numeri e salva il risultato nella variabile somma e visualizza in output il risultato.


L'ultimo passaggio , dicevamo è il linguaggio di programmazione. Esempi di linguaggi di programmazione sono : C, C++, C#, Java, VisualBasic, Delphi, ecc.
Per i nostri esempi noi utlizzaremo un linguaggio di scripting il Javascript, meno potente dei linguaggi di programmazione veri e propri, ma che permette la visualizzazione dei risultati su qualsiasi browser.

martedì 18 marzo 2008

Definizione di Algoritmo

La sequenza d’istruzioni necessarie per la soluzione di un determinato problema dall’inizio alla fine, seguendo una serie di passi prestabiliti, è detta algoritmo.

Un algoritmo è il cuore di un programma, è il procedimento di calcolo che il programma deve seguire, è una sequenza finita di istruzioni che vanno eseguite, secondo un ordine specificato. É possibile ripetere più volte lo stesso blocco di istruzioni per cui l’algoritmo potrebbe richiedere un tempo molto lungo per la sua esecuzione, potrebbe anche non terminare mai.

Esempi di algoritmo:

  • Istruzioni di montaggio
  • Preparazione del caffé
  • Prelievo bancomat
  • Preparazione di un ricetta
  • Calcolo del massimo comun divisore tra due interi
  • ecc.
Il termine algoritmo deriva dal nome del matematico arabo del IX secolo, Abu Jàfar Mohammed ibn Musa al-Khowarizmi che scrisse, nell’anno 825, il trattato “Kitab al jabr w’al-muqabala” (forse "Regole di trasposto e semplificazione") dove descrisse delle regole per la semplificazione delle equazioni e un metodo per sommare due numeri rappresentati nel sistema numerico Hindu.

Le proprietà fondamentali di un algoritmo sono:

  • Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito.
  • Non-ambiguità: ogni azione deve essere univocamente interpretabile dall’esecutore;
  • La generalità: un algoritmo non deve risolvere un caso particolare del problema dato, ma tutti i problemi di quella stessa classe;
  • La completezza: deve considerare tutti i casi possibili che si possono verificare durante l’esecuzione
  • Il determinismo: partendo dagli stessi dati in ingresso l’esecuzione deve sempre ottenere gli stessi risultati in uscita

Un esempio di algoritmo può essere una ricetta.
La ricetta per le crepes
Ingredienti (per 4 persone):
  • 160 gr di farina (14 cucchiai colmi circa)
  • 2 uova
  • mezzo litro di latte intero
  • un pizzico di sale
  • 20 gr di burro fuso
Procedimento

Versare la farina, sbattere le uova,aggiungere il sale, il burro fuso e a poco a poco il latte
mescolare il tutto senza formare grumi e lasciar riposare

(per le crepes dolci aggiungere 1 - 2 cucciai di zucchero
Per il condimento:
dolci:
  • Nutella (anche con fragole o banane)
  • Marmellata
  • Zucchero
  • ...

salate:
  • Speck e Brie
  • Prosciutto
  • ...