appunti3s:problema_e_algoritmo
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
appunti3s:problema_e_algoritmo [2018/04/25 07:55] – external edit 127.0.0.1 | appunti3s:problema_e_algoritmo [2020/06/08 22:19] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | > torna indietro > [[appunti3s: | ||
+ | |||
+ | ====A cosa serve un computer? | ||
+ | |||
+ | Immaginare di provare a spiegar a cosa può servire un computer ad una persona che non lo ha mai usato. | ||
+ | Ogni spiegazione si concentrerebbe su un particolare utilizzo: | ||
+ | * qualcuno potrebbe dire che lo usa per vedere un video | ||
+ | * qualcuno che lo usa per scrivere una lettera | ||
+ | * qualcun altro che lo usa per navigare su Internet... | ||
+ | Chi ha dato la migliore spiegazione? | ||
+ | In un certo senso, ogni sono corretti tutti i tipi di utilizzo, che spiegano che un computer può essere usato per risolvere un problema. | ||
+ | |||
+ | ====Cos' | ||
+ | |||
+ | L' | ||
+ | Un problema può essere il calcolo della dichiarazione dei redditi, la visualizzazione e la modifica di un documento, la riproduzione di un filmato... | ||
+ | Il computer non sa risolvere i problemi dell' | ||
+ | A ben pensarci, anche risolvendo due volte lo stesso tipo di problema, ogni volta ci saranno sicuramente delle piccole differenze, perché i dati di partenza potrebbero essere diversi. | ||
+ | |||
+ | ====Come si descrive un problema? | ||
+ | Nei problemi di matematica, __dopo__ aver letto il testo, si indicano quali sono i dati noti (di partenza) e quali sono i dati incogniti (usando un punto interrogativo). | ||
+ | |||
+ | ====Cos' | ||
+ | Per poter risolvere ogni tipo di problema (come anche quelli di matematica) __dopo__ aver visto i //dati//, è necessario conoscere un metodo risolutivo (di un problema generico). | ||
+ | Le istruzioni che risolvono questo problema generico potranno essere applicate a tutti i problemi dello stesso tipo (problemi specifici). | ||
+ | Spesso la soluzione consiste nell' | ||
+ | Se ci sono più passaggi e più formule da utilizzare, oltre alle variabili di input e di output ci possono essere anche variabili temporanee (di lavoro). | ||
+ | |||
+ | Il metodo risolutivo, viene detto anche // | ||
+ | |||
+ | Esempio in cui il problema è quello di determinare (o calcolare) il valore massimo tra due numeri che sono forniti dall' | ||
+ | |||
+ | Sembra banale rispondere 9, ma non è banale descrivere il procedimento mentale che ci ha portato a questa risposta. | ||
+ | In generale i numeri potrebbero essere qualsiasi ed è necessario determinare un metodo risolutivo che ci dia la risposta corretta. Il programmatore ha il compito di descrivere il metodo risolutivo generico. | ||
+ | Più o meno il procedimento risolutivo sarebbe il seguente: | ||
+ | - chiamare X il primo numero | ||
+ | - chiamare Y il secondo numero | ||
+ | - se l' | ||
+ | - altrimenti, se è falsa, il risultato è Y. | ||
+ | Questo metodo risolutivo funziona in tutti i casi? Quali sono i casi critici? | ||
+ | Se un numero vale zero? Oppure se X = Y? | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | vedere l' | ||
+ | |||
+ | ====Come si descrive un metodo risolutivo? | ||
+ | Un algoritmo può essere descritto usando diversi tipi di linguaggio: con delle parole (usando un linguaggio naturale o un linguaggio di programmazione) oppure usando un grafico (diagramma di flusso o flow chart). | ||
+ | Il metodo risolutivo viene infine fornito al computer, in forma numerica, all' | ||
+ | Il programmatore segue un [[appunti3s: | ||
+ | |||
+ | La documentazione è utilissima per poter fare la necessaria manutenzione al programma, come per la correzione degli errori, e per l' | ||
+ | Vi sono due tipi di documentazione: | ||
+ | * la documentazione delle fasi del processo di sviluppo (responsabilità) | ||
+ | * la documentazione delle funzioni usate nel programma (oggetti e variabili) | ||
+ | ====Cos' | ||
+ | |||
+ | Si può paragonare un programma ad una lunga e complessa ricetta di cucina. | ||
+ | Il computer è il cuoco che la deve eseguire per l' | ||
+ | Noi chi siamo? Siamo gli autori della ricetta (cioè del programma) da eseguire. | ||
+ | Noi dobbiamo insegnare al computer a fare qualcosa, come glie lo possiamo insegnare? | ||
+ | |||
+ | Esempio: Fiori di zucca ripieni al forno | ||
+ | - lavare 6 fiori di zucca | ||
+ | - lavare 1 zucchina | ||
+ | - cuocere la zucchina a rondelle con sale ed olio per 10 minuti | ||
+ | - frullare con il mixer la zucchina con 100 gr di ricotta | ||
+ | - riempire i fiori di zucca con il precedente preparato | ||
+ | - mettere in forno ventilato a 160 gradi per 10 minuti | ||
+ | - spolverare le zucchine con parmigiano | ||
+ | - mettere in forno per 5 minuti | ||
+ | |||
+ | Per un cuoco esperto queste istruzioni possono essere semplici da realizzare, ma per altri no: si può notare che richiedono di sapere come si cuoce una zucca o come si accende il forno. | ||
+ | |||
+ | Rispetto ad un vero cuoco, un computer non possiede nemmeno una propria intelligenza. | ||
+ | Le istruzioni che può eseguire un computer, quindi, devono essere molto più dettagliate, | ||