Utilizziamo la tecnologia Ada Sasso
Analisi e risoluzione di un problema <ul><li>Interpretare l’enunciato di un problema; </li></ul><ul><li>Individuare le inf...
Concetto di algoritmo <ul><li>Gli  algoritmi  sono metodi per la soluzione di problemi. </li></ul><ul><li>Risolvere un pro...
Per definire un algoritmo è necessario: <ul><li>condurre un'attenta analisi del problema </li></ul><ul><li>individuare i d...
<ul><li>deve essere  finito , cioè deve essere costituito da un numero finito di proposizioni che contengono istruzioni e ...
Rappresentazione degli algoritmi <ul><li>Rappresentazione grafica </li></ul><ul><li>Rappresentazione testuale </li></ul><u...
Rappresentazione degli algoritmi <ul><li>E’ necessario far riferimento a dei formalismi che: </li></ul><ul><ul><li>non int...
I diagrammi a flusso <ul><li>Un diagramma a flusso (o flow chart) è un linguaggio formale di tipo grafico utilizzato per r...
Simboli convenzionali Ada Sasso Inizio e fine  elaborazione Dati in ingresso Stampa o visualizzazione condizione connettori
Somma dei primi N numeri naturali in  rappresentazione testuale: <ul><li>Leggi N; </li></ul><ul><li>Azzera i; </li></ul><u...
Somma dei primi N numeri naturali in  pseudo - codifica <ul><li>int s, i,N; </li></ul><ul><li>printf(“Inserire il numero”)...
algoritmo Euclideo  <ul><li>Prendi i valori  a  e  b </li></ul><ul><li>Se  a  <  b  allora scambiali </li></ul><ul><li>Met...
Algoritmo Divisioni successive (24 , 14) <ul><li>24 :  14  = 1 resto  10 </li></ul><ul><li>14 :  10  = 1 resto  4 </li></u...
Upcoming SlideShare
Loading in …5
×

Informatica prime classi

1,503 views

Published on

primi passi in informatica

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,503
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Informatica prime classi

  1. 1. Utilizziamo la tecnologia Ada Sasso
  2. 2. Analisi e risoluzione di un problema <ul><li>Interpretare l’enunciato di un problema; </li></ul><ul><li>Individuare le informazioni necessarie per risolverlo; </li></ul><ul><li>Descrivere il procedimento risolutivo; </li></ul><ul><li>Eseguire nell’ordine le operazioni; </li></ul><ul><li>Verificare i risultati </li></ul>Ada Sasso
  3. 3. Concetto di algoritmo <ul><li>Gli algoritmi sono metodi per la soluzione di problemi. </li></ul><ul><li>Risolvere un problema significa ottenere in uscita i risultati desiderati a partire da un certo insieme di dati presi in ingresso. </li></ul><ul><li>Affinché un metodo per la soluzione di un problema costituisca un algoritmo deve essere totalmente esplicito, vanno, cioè, specificati in maniera precisa e particolareggiata tutti i passi del procedimento da eseguire </li></ul>Ada Sasso
  4. 4. Per definire un algoritmo è necessario: <ul><li>condurre un'attenta analisi del problema </li></ul><ul><li>individuare i dati in ingressi </li></ul><ul><li>ottenere i dati in uscita </li></ul><ul><li>definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione </li></ul>Ada Sasso
  5. 5. <ul><li>deve essere finito , cioè deve essere costituito da un numero finito di proposizioni che contengono istruzioni e dati; </li></ul><ul><li>deve essere sequenziale , cioè il processo deve avvenire mediante il verificarsi di eventi concatenati uno dopo l'altro, nell'ordine fissato; </li></ul><ul><li>deve essere deterministico , cioè le frasi devono avere senso compiuto e non lasciare adito a interpretazioni diverse; </li></ul><ul><li>deve essere eseguibile , nel senso che devono esistere i mezzi necessari alla sua esecuzione; </li></ul>Un algoritmo è un procedimento di calcolo costituito da un insieme di istruzioni, che fanno uso di un insieme finito di operazioni elementari note, e deve godere delle seguenti proprietà: Ada Sasso
  6. 6. Rappresentazione degli algoritmi <ul><li>Rappresentazione grafica </li></ul><ul><li>Rappresentazione testuale </li></ul><ul><li>Notazione Lineare Strutturata / PseudoCodice </li></ul>Ada Sasso Algoritmi: operazioni base <ul><li>Le operazioni primarie sono: </li></ul><ul><ul><li>Trasferimento di informazioni (istruzioni di I/O) lettura dati, scrittura risultati, visualizzazione dati intermedi </li></ul></ul><ul><ul><li>Esecuzione di calcoli (valutazione espressioni) </li></ul></ul><ul><ul><li>Istruzioni di assegnamento </li></ul></ul><ul><ul><li>Strutture di controllo (che modificano il flusso sequenziale di esecuzione delle operazioni) </li></ul></ul>
  7. 7. Rappresentazione degli algoritmi <ul><li>E’ necessario far riferimento a dei formalismi che: </li></ul><ul><ul><li>non introducano ambiguità; </li></ul></ul><ul><ul><li>siano universalmente riconosciuti ed interpretati allo stesso modo da un generico esecutore; </li></ul></ul><ul><ul><li>permettano di rappresentare in modo efficace un algoritmo; </li></ul></ul><ul><ul><li>costituiscano un utile strumento per poi poter passare alla fase di codifica; </li></ul></ul>Ada Sasso
  8. 8. I diagrammi a flusso <ul><li>Un diagramma a flusso (o flow chart) è un linguaggio formale di tipo grafico utilizzato per rappresentare algoritmi , attraverso la descrizione delle differenti operazioni sotto forma di uno schema in cui le diverse fasi del processo vengono rappresentate da simboli grafici detti blocchi. I blocchi sono collegati tra loro tramite frecce che indicano la cronologia. </li></ul><ul><li>A che cosa servono </li></ul><ul><li>Una schematizzazione del processo sotto esame può essere utile per rappresentare i passaggi chiave da analizzare e individuare le modalità di gestione delle diverse fasi di un processo. </li></ul><ul><li>Come si costruiscono </li></ul><ul><li>Sono individuati cinque tipi di blocchi elementari, collegati tra loro attraverso frecce: </li></ul><ul><ul><li>un blocco iniziale, rappresentato da un ovale contenente la parola &quot;INIZIO&quot; </li></ul></ul><ul><ul><li>un blocco finale, rappresentato da un ovale contenente la parola &quot;FINE&quot; </li></ul></ul><ul><ul><li>i blocchi di azione, rappresentati da un rettangolo indicante una data operazione </li></ul></ul><ul><ul><li>i blocchi di lettura/scrittura, rappresentati da un parallelogramma </li></ul></ul><ul><ul><li>i blocchi di controllo, rappresentati da un rombo con un ingresso e due uscite </li></ul></ul><ul><li>. </li></ul>Ada Sasso
  9. 9. Simboli convenzionali Ada Sasso Inizio e fine elaborazione Dati in ingresso Stampa o visualizzazione condizione connettori
  10. 10. Somma dei primi N numeri naturali in rappresentazione testuale: <ul><li>Leggi N; </li></ul><ul><li>Azzera i; </li></ul><ul><li>Azzera s; </li></ul><ul><li>Assegna ad S il valore di S+i; </li></ul><ul><li>Assegna ad i il valore di i+1; </li></ul><ul><li>Se i è < o = ad N </li></ul><ul><li>Scrivi il risultato </li></ul><ul><li>Esci dal programma </li></ul><ul><li>Se i è > di N ritorna alla istruzione n.4 </li></ul>Ada Sasso
  11. 11. Somma dei primi N numeri naturali in pseudo - codifica <ul><li>int s, i,N; </li></ul><ul><li>printf(“Inserire il numero”); </li></ul><ul><li>i=0; // azzero i </li></ul><ul><li>somma=0; // azzero s </li></ul><ul><li>scanf(“%d”,&num); </li></ul><ul><li>while(i<=N){ </li></ul><ul><li>s=s+i; </li></ul><ul><li>i++; </li></ul><ul><li>scanf(“%d”,&s); </li></ul><ul><li>} </li></ul>Ada Sasso
  12. 12. algoritmo Euclideo <ul><li>Prendi i valori a e b </li></ul><ul><li>Se a < b allora scambiali </li></ul><ul><li>Metti in resto il resto tra la divisione a e b </li></ul><ul><li>Ripeti finché resto<>0 </li></ul><ul><li>Metti in a il contenuto di b </li></ul><ul><li>Metti in b il contenuto di resto </li></ul><ul><li>Metti in RESTO il resto tra a e b </li></ul><ul><li>Fine Ripeti </li></ul><ul><li>Mostra il MCD che è pari a b </li></ul>Ada Sasso
  13. 13. Algoritmo Divisioni successive (24 , 14) <ul><li>24 : 14 = 1 resto 10 </li></ul><ul><li>14 : 10 = 1 resto 4 </li></ul><ul><li>10 : 4 = 2 resto 2 </li></ul><ul><li>4 : 2 = 2 resto 0 </li></ul><ul><li>quindi MCD(24; 14) = 2 </li></ul>Ada Sasso

×