PROCESSI, ALGORITMI E ISTRUZIONI
Noi abbiamo il problema del linguaggio e dobbiamo risolverlo attraverso un risolutore, il quale formalizza il problema. Si parte da dati iniziali per arrivare ad un risultato: abbiamo bisogno di un risolutore del problema che formalizza un problema in un algoritmo e che questo sia eseguito da un esecutore. Quindi vogliamo passare dal problema all'algoritmo. Un algoritmo è una sequenza, insieme ordinato, finita di passi o istruzioni che risolvono un problema. Quindi un algoritmo è un insieme ordinato finito di istruzioni che risolvono un certo problema. ATTENZIONE: l'algoritmo non è l'esecuzione materiale delle azioni volte a raggiungere il risultato finale, che invece è affidata ad un esecutore. Questo tipo di operazione (esecuzione) sono affidati ad un certo esecutore: PROCESSO. Ricapitolando: abbiamo un problema che esiste un algoritmo, in grado di risolverlo, e che una volta identificati i passi da svolgere entra in.gioco un esecutore, ovvero il processo.pecora (in modoche non mangi il cavolo); traghetta sulla sponda B il lupo e lascia lapecora; ritornare sulla sponda A; traghettare sulla sponda B la pecora;fine del lavoro del traghettatore.
Atri due esempi:
PROBLEMA (ALGEBRICO): somma di due numeri A e B; che algoritmosegue una calcolatrice per calcolare la somma di due numeri A e B?
- Leggere A
- Leggere B
- Sommare A+B
- Scrivere il risultato
PROBLEMA (ALGEBRICO): divisione tra due numeri A e B; che algoritmosegue una calcolatrice per calcolare A diviso B?
- Leggere A
- Leggere B
- Se B diverso da 0 allora calcolare A/B e scrivere il risultato
- Altrimenti scrivere "ATTENZIONE!"
PROBLEMA DEL METODO DEL PALLOTTOLIERE
Dati due numeri interi (positivi) A e B, sommarli! Capacità di base: sapersommare e sottrarre un'unità a un numero. Due insiemi A e B:
- A= 7 elementi
- B= 2 elementi
Per il metodo del pallottoliere prendiamo un elemento da B e lo mettiamoin A; successivamente ripetiamo lo stesso
passaggio.ALGORITMO DEL METODO DEL PALLOTTOLIERE
Dati due numeri A e B (INPUT/OUTPUT):
Si sposti un’unità da A e B (assegnazione)
Si sommi l’unità ad A (A+1) (assegnazione)
Si sottragga l’unità a B (B-1) (assegnazione)
Se B non è =0 (controllo) si torni al passo 2 (salto); altrimenti A contiene la somma tra l’originale A e l’originale B (INPUT/OUTPUT)
Attraverso il problema della somma, la nostra macchina ha come capacità iniziale la possibilità di contare fino a 10. Vogliamo sommare due numeri: 7897 e 345. Mettiamo in colonna i due numeri e cominciamo il calcolo, ottenendo il risultato finale di 8242.
ALGORITMO: SOMMA DI DUE NUMERI
1. Allineare a destra i due numeri
2. Considerare le cifre della colonna più a destra
3. Assumere inizialmente il riporto uguale a 0
4. Sommare le cifre della colonna in considerazione e aggiungere il riporto
5. Se il risultato ottenuto è < 10 allora scrivere la cifra
risultante nella colonna in considerazione, assegnare al riporto il valore 0 e andare al passo 76. Se il risultato ottenuto è > 10 allora sottrarre 10, scrivere la cifra risultante nella colonna in considerazione, porre il riporto = 1 e andare al passo 77. Spostarsi sulla colonna immediatamente a sinistra; se non vi sono cifre e il riporto è = 0 allora fermarsi, altrimenti andare al passo successivo
8. Andare al passo 4
DA ALGORITMO A PROGRAMMA
Una macchina ha un insieme di istruzioni che può eseguire, le quali come dati sono scritte secondo una codifica. Data una macchina, una traduzione di un algoritmo in una sequenza di PROGRAMMA è la istruzioni che essa può eseguire. una macchina può essere anche "virtuale", ovvero non può essere fisica ma in formato digitale online.
LINGUAGGI
Il linguaggio finora utilizzato per scrivere è uno pseudo-linguaggio. Altro linguaggio che possiamo utilizzare è quello dei DIAGRAMMI
DIFLUSSO, BLOCCO DESCRIZIONE
Contiene le istruzioni INIZIO e FINE
Contiene le istruzioni di lettura (input) (output) o scrittura
Blocco di elaborazione: contiene istruzioni algebriche, assegnazione di valori, ecc..
Blocco decisionale: contiene l'enunciato di una condizione che può essere o meno verificata
Simboli (o blocchi): composti da
Sia lo pseudo-linguaggio che i diagrammi di flusso sono linguaggi accessibili all'uomo, poiché si basano sul LINGUAGGIO NATURALE. Essi, però, non sono accessibili a una macchina, come il computer. Il LINGUAGGIO MACCHINA è l'unico che una macchina riesce a decifrare e si compone di istruzioni in CODICE BINARIO. I LINGUAGGI DI PROGRAMMAZIONE fanno da tramite tra il linguaggio di macchina e quello naturale.