Slide di Scuola superiore sulle basi della programmazione. Il Pdf introduce i concetti di problema, algoritmo e linguaggio, con un esempio pratico. La presentazione è adatta per lo studio dell'Informatica e illustra l'analisi e la risoluzione dei problemi.
See more21 Pages
Unlock the full PDF for free
Sign up to get full access to the document and start transforming it with AI.
Ogni giorno affrontiamo problemi che variano in complessità Alcuni di questi problemi sono risolvibili velocemente o perché sono semplici, oppure perché li abbiamo già svolti in passato Altri sono molto difficili, se non impossibili, da risolvere specie se ci mancano delle conoscenze o delle informazioni necessarie alla loro risoluzione
Ogni giorno affrontiamo problemi che variano in complessità Alcuni di questi problemi sono risolvibili velocemente o perché sono semplici, oppure perché li abbiamo già svolti in passato Altri sono molto difficili, se non impossibili, da risolvere specie se ci mancano delle conoscenze o delle informazioni necessarie alla loro risoluzione
Per individuare la soluzione bisogna comprendere bene il problema Bisogna effettuare un'analisi Nei casi più complessi è approfondita della situazione necessario individuare una strategia risolutiva Modalità, approccio con cui si risolve il problema ovvero, l'idea tramite cui il programmatore, sfruttando intuito, esperienza, fantasia e intelligenza affronta il processo creativo per trovare la chiave di soluzione del problema
Situazione: sulla riva di un fiume ci sono un contadino, un lupo, una capra e un cavolo che devono attraversare un fiume con una piccola barca: su di essa è possibile portare soltanto una cosa alla volta Problema come può il contadino attraversare indenne il fiume, salvando «capra e cavoli», sapendo che se vengono lasciati da soli il lupo con la capra, oppure la capra con il cavolo, i primi divorano i secondi?
La situazione descritta è sufficientemente chiara da non necessitare di ulteriori delucidazioni. Iniziamo quindi ad analiz il problema Analisi del problema.
Il nostro compito è quello di trovare la soluzione di questo problema in modo tale da non violare i vincoli analizzati. In altre parole dobbiamo suggerire al contadino quali azioni compiere (cosa fare) e in che ordine eseguire tali azioni come fare) Strategia risolutiva. In questo caso consiste nell'individuazione della corretta sequenza delle operazioni che il contadino-traghettatore deve eseguire per compiere con esito positivo la traversata 1 Tali procedure devono essere comunicate ad altre persone
La soluzione viene descritta solitamente indicando l'insieme delle operazioni (passi) che devono essere effettuate, nell'ordine riportandole in cui devono (sequenza di essere eseguite operazioni) Questa soluzione è facilmente comprensibile da tutti? È universale?
È di fondamentale importanza che l'esecutore sia in grado di comprendere le istruzioni che permettono di risolvere il problema e, inoltre, sia in grado di eseguirle
Per trovare la soluzione di un problema è necessario
IL PROBLEMA L'ANALISI L'IDEA (LA STRATEGIA) LA SOLUZIONE (L'ALGORITMO) Quando la strategia risolutiva è stata definita bisogna «scrivere» le singole istruzioni che l'esecutore deve compiere, in sequenza, una dopo l'altra
L'insieme delle istruzioni ordinate che permettono di risolvere un problema è detto algoritmo Definizione: l'algoritmo è una sequenza ordinata di passi semplici che hanno lo scopo di portare a termine un compito, a volte anche complesso Proprietà degli algoritmi:
Esempio: una ricetta in cucina è, a tutti gli effetti, un algoritmo, dato che descrive, a partire dagli ingredienti, le operazioni che devono essere eseguite passo passo, in sequenza, per ottenere il piatto desiderato
inizio riempi una pentola d'acqua > poggiala sul fornello e accendi la fiamma aspetta un po' No è cotta? Sì spegni la fiamma V scola impiatta filo d'olio > Sì formaggio? No grattuggiare > servi in tavola > si mangia! aspetta un po' No l'acqua bolle? Sì > metti il sale butta la pasta
Un algoritmo deve essere descritto in modo chiaro, in un linguaggio che sia comprensibile per il suo esecutore L'esecutore non è sempre un umano, potrebbe essere anche una macchina, ad esempio il nostro computer La descrizione di un algoritmo in linguaggio naturale prende il nome di pseudocodifica Se per un umano è sufficiente descrivere le istruzioni a «parole», ovvero con un linguaggio naturale oppure in forma grafica utilizzando diagrammi a blocchi ( flowchart) per una macchina bisogna individuare un modo particolare che ci permetta di comunicare con essa
Scriviamo la pseudocodifica dell'algoritmo che ci consente di inviare un messaggio whatsapp
La codifica usata precedentemente non è univoca poiché possiamo descrivere le stesse operazioni utilizzando una terminologia diversa o anche sequenze di istruzioni diverse senza compromettere la correttezza dell'algoritmo Inoltre, potremmo avere casi più articolati come quello in cui la conversazione è già presente nell'applicazione oppure quello in cui l'applicazione non è presente e necessita di essere installata Né la descrizione in linguaggio naturale né i diagrammi a blocchi sono adatti per scrivere programmi che devono essere eseguiti dagli elaboratori elettronici
Né la descrizione in linguaggio naturale né i diagrammi a blocchi sono adatti per scrivere programmi che devono essere eseguiti dagli elaboratori elettronici Elaboratori elettronici: tutti i dispositivi che «hanno al loro interno» un sistema programmabile, cioè un microprocessore Il microprocessore è un dispositivo in grado di comprendere istruzioni codificate in binario Quindi Nella memoria di un dispositivo che esegue un programma deve essere presente il codice binario I Questo programma è detto programma binario o codice eseguibile in linguaggio macchina
Pseudocodifica Troppo vicino al linguaggio naturale umano Inadatto per gli elaboratori elettronici Codice binario Adeguato per gli elaboratori elettronici Troppo complesso per l'uomo, troppo a basso livello Bisogna individuare una soluzione intermedia «Invenzione» di linguaggi di programmazione ad alto livello
Possiamo quindi sintetizzare in 2 tappe fondamentali la nascita della programmazione Inizialmente i programmatori producevano codice binario. Il processo era lungo:
Oggi per ottenere questa conversione si è ricorsi a un apposito programma, chiamato compilatore (o traduttore), in grado di trasformare in codice binario un programma scritto utilizzando un linguaggio vicino al programmatore, cioè ad alto livello, ma composto da poche parole (parole chiave o riservate), scritte con una sintassi molto rigorosa
Il compilatore è a sua volta un programma Analizza le istruzioni scritte in linguaggio di programmazione una per una Genera il codice macchina In questo formato il codice prende anche il nome di programma eseguibile (executable), proprio perché in questo formato è eseguibile dal processore
Per scrivere un programma che risolve un problema dobbiamo seguire questi step