Utente:Sabato nunzia/Algoritmi
Questa è la pagina di prova dove Nunzia Sabato, Maria Chiara Calviello, Francesca Rocco, Lucia Romaniello e Donatella D'Anzi approfondiranno il seguente argomento: problemi e algoritmi (introduzione generale e confronto tra Visual Basic e C++).
Il termine Algoritmo deriva dal nome di un matematico arabo del IX secolo: Abu Ja'far Mohammed ibn Musa al-Kowarizm (in arabo significa "padre di Ja'far,Maometto,figlio di Mosè). Nell'anno 825 questo personaggio pubblicò due opere:una di aritmetica e una di algebra,quest'ultima intitolata Kitab Al-jabr Wal Muqabala. Proprio dal titolo di quest'ultima opera ebbe origine la parola inglese algebra (al-jabr). Il termine algoritmo deriva da modifiche e adattamenti del nome del matematico (al-Kowarizm).
Leonardo da Pisa, meglio conosciuto come il Fibonacci,grandissimo matematico vissuto agli inizi del XIII secolo. Per risolvere un problema pratico ,individuò una serie di numeri in cui ogni numero è il risultato della somma dei due precedenti fino all’infinito. Si scoprì che può essere applicata, per esempio, nel calcolo delle probabilità, nella sezione aurea e nel triangolo aureo. Al matematico pisano si deve anche l’introduzione dei numeri arabi in Italia. Riferendosi alle scoperte del matematico arabo era solito semplificarne il nome in :"Algoritmo". Alla luce dell'opera di Abu Ja'far Mohammed ibn Musa al-Kowarizm,tutta rivolta allo studio dei procedimenti aritmetici di calcolo, necessari per risolvere i problemi, il termine algoritmo venne utilizzato per indicare questo tipo di procedimento. Un procedimento risolutivo è un algoritmo quando, fissato l'insieme finito delle azioni elementari univocamente interpretabili e definite, è possibile descrivere passo per passo il procedimento che risolve un problema, costruendo una successione ordinata e finita di istruzioni, la cui esecuzione si arresta per fornire i risultati di un problema, a partire da ogni valore assunto dai dati iniziali.
Un algoritmo deve essere:
- finito:la strategia risolutiva descritta dall'algoritmo deve essere composta da un numero finito di azioni elementari.L'algoritmo, inoltre, deve prevedere un solo inizio e una sola fine;
- univoco o non ambiguo o preciso:ogni azione deve essere definita nei suoi effetti rigorosamente e senza ambiguità per l'esecutore;
- generale:deve essere valido non solo per un particolare problema, ma per tutti i problemi di una stessa classe;
- completo:deve considerare tutti i casi possibili che si possono verificare durante l'esecuzione e, per ogni caso, indicare la soluzione da seguire;
- osservabile nei risultati:deve esserci riscontro oggettivo del risultato.
- deterministico: a ogni unità finita di tempo l' esecutore deve scegliere e compiere una e una sola azione. Si dice anche che, partendo dagli stessi dati iniziali, l' esecuzione dell'algoritmo deve fornire sempre gli stessi risultati finali.
Un algoritmo si dice efficiente quando:
- è corretto, cioè produce il risultato atteso;
- è veloce in termini di tempo impiegato per produrre il risultato;
- è parsimonioso in termini di risorse allocate per produrre il risultato.
RAPPRESENTAZIONE DEGLI ALGORITMI
Per rappresentare un algoritmo possimao ricorrere:
- al formalismo dei diagrammi a blocchi (detti anche DaB e flow-chart);
- al formalismo dello pseudolinguaggio (detto anche linguaggio di progetto).
Un diagramma a blocchi è una descrizione grafica dell'algoritmo, realizzata mediante appositi simboli, che mette in evidenza il flusso di esecuzione delle istruzioni. I simboli utilizzabili nei diagrammi a blocchi sono:
Una variabile è un insieme di dati modificabili situati in una porzione di memoria destinata a contenere dei dati, suscettibili di modifica nel corso dell'esecuzione di un programma. Una variabile è caratterizzata da un nome. Una costante è un insieme di dati non modificabili situati in una porzione di memoria destinata a contenere dei dati, che non possono essere appunto modificati nel corso dell'esecuzione di un programma.
Fonte: ...