DAL PROBLEMA AL PROGRAMMA



Documenti analoghi
Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Nozione di algoritmo. Gabriella Trucco

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

ALGEBRA DELLE PROPOSIZIONI

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Come ragiona il computer. Problemi e algoritmi

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Esempi di algoritmi. Lezione III

Fasi di creazione di un programma

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Lezione 8. La macchina universale

Funzionalità di un Algoritmo

Algoritmi e diagrammi di flusso

LE FUNZIONI A DUE VARIABILI

4 3 4 = 4 x x x 10 0 aaa

Appunti sulla Macchina di Turing. Macchina di Turing

Introduzione. Informatica B. Daniele Loiacono

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Metodologie di programmazione in Fortran 90

SISTEMI DI NUMERAZIONE E CODICI

Linguaggi e Paradigmi di Programmazione

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Testo alla base del Pitgame redatto dal prof. Yvan Lengwiler, Università di Basilea

Appunti di Sistemi Elettronici

Gestione Turni. Introduzione

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S

MODELLO UNICO DI DOMANDA

I PROBLEMI ALGEBRICI

Matematica generale CTF

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

Matematica in laboratorio

Descrizione di un algoritmo

e-dva - eni-depth Velocity Analysis

Progettaz. e sviluppo Data Base

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Automazione Industriale (scheduling+mms) scheduling+mms.

Calcolo del Valore Attuale Netto (VAN)

Le miniguide di Umberto Santucci. Come stabilire le priorità? Miniguida per l'uso del Diagramma di Pareto

ESEMPIO 1: eseguire il complemento a 10 di 765

PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

IL PROBLEMA DELLE SCORTE

Strutturazione logica dei dati: i file

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

CASO D USO: TRASPORTO TRANSFRONTALIERO

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI. Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione

Capitolo 13: L offerta dell impresa e il surplus del produttore

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

MATEMATICA CLASSE PRIMA

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Stampa su moduli prestampati utilizzando Reflection for IBM 2011 o 2008

Corrispondenze e funzioni

FISICA. Le forze. Le forze. il testo: 2011/2012 La Semplificazione dei Testi Scolastici per gli Alunni Stranieri IPSIA A.

FONDAMENTI di INFORMATICA L. Mezzalira

1. Scopo dell esperienza.

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

Il principio di induzione e i numeri naturali.

CURRICOLO DI MATEMATICA SCUOLA PRIMARIA MATEMATICA SEZIONE A : Traguardi formativi

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

L analisi dei dati. Capitolo Il foglio elettronico

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

Introduzione alla Programmazione

I sistemi di numerazione

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

QUICK GUIDE ESAMI DI STATO

Gestione Risorse Umane Web

Metodi risolutivi per le disequazioni algebriche

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Informazioni sulle modalità di collaborazione con l Associazione Avvocato di Strada Onlus

CONTROLLO IN TENSIONE DI LED

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

ACCESSO AL SISTEMA HELIOS...

Slide Cerbara parte1 5. Le distribuzioni teoriche

Informazioni sulle modalità di collaborazione al Progetto Avvocato di Strada

Esponenziali elogaritmi

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

2. Limite infinito di una funzione in un punto

Gruppo Buffetti S.p.A. Via F. Antolisei Roma

Gli oggetti di plastica. Abilità interessate Conoscenze Nuclei coinvolti Collegamenti esterni Decodificare informazioni di tipo grafico.

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

CURRICOLO MATEMATICA - CLASSE QUINTA -

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili

Word processor funzione Stampa Unione

Forze come grandezze vettoriali

Figura 1 Le Icone dei file di Excel con e senza macro.

IL METODO PER IMPOSTARE E RISOLVERE I PROBLEMI DI FISICA (NB non ha nulla a che vedere con il metodo scientifico)

Transcript:

1. I PROBLEMI E LA LORO SOLUZIONE DAL PROBLEMA AL PROGRAMMA L'uomo, per affrontare gli innumerevoli problemi postigli dallo sviluppo della civiltà, si è avvalso della scienza e della tecnica, i cui destini si sono sempre intrecciati. Infatti, la tecnica richiede alla scienza la formulazione di teorie allo scopo di spiegare fatti e fenomeni, mentre, d'altra parte, la scienza deve utilizzare le apparecchiature tecniche atte alla realizzazione di esperimenti o alla verifica pratica di fenomeni previsti da studi teorici. Gli elaboratori elettronici rappresentano indubbiamente uno dei risultati più importanti raggiunti grazie a questa collaborazione e oggi, attraverso il loro uso, è possibile risolvere problemi di qualunque natura (matematica, fisica, biologica, economica, ecc.) purché, dopo averne individuato le caratteristiche salienti, si possa stabilire un procedimento atto a renderlo comprensibile all'elaboratore. Si tratta quindi di arrivare alla realizzazione di un programma, espresso da una successione finita di operazioni elementari, che consenta di risolvere il problema. Le fasi del procedimento che è necessario seguire per arrivare alla stesura di un programma sono: - l'analisi del problema; - la descrizione dell'algoritmo; - la verifica della correttezza dell'algoritmo; - la codifica dell'algoritmo nel linguaggio di programmazione; - la verifica del programma. In questo capitolo svilupperemo i primi tre punti, rimandando la trattazione delle fasi ai successivi moduli. I primi tre punti sono inoltre presenti sempre per qualsiasi problema (non è detto infatti che si debba tradurre per forza un algoritmo in un programma su elaboratore elettronico). 2. ANALISI DEL PROBLEMA Per poter effettuare un'analisi completa del problema, da cui dipende in buona parte la riuscita del programma, è essenziale che il problema venga formulato in modo preciso, indicando tutti gli elementi necessari per procedere alle scelte operative. La fase dell'analisi, il cui scopo è individuare i procedimenti risolutivi e adottare quello ritenuto più adatto, consiste nel definire: - i dati di ingresso o iniziali; - i dati di uscita o risultati; - i legami esistenti tra i dati di ingresso e quelli di uscita; Questa fase è necessaria qualsiasi problema venga affrontato. Risulta di notevole importanza se i problemi da risolvere sono poi da elaborare su calcolatori elettronici o tradurre in linguaggi di programmazione. 3. L ALGORITMO RISOLUTIVO. L'algoritmo, termine che rappresenta la contrazione e deformazione del nome del matematico arabo Al Khawarismi, costituisce quindi il prodotto finale dell'analisi del problema. Esso conta svariate definizioni ma quella che maggiormente si avvicina all'attuale accezione è quella data dal matematico Markov: "Qualsiasi insieme di regole che definisca un procedimento di calcolo destinato ad ottenere un certo risultato partendo da determinati dati iniziali". L'algoritmo deve quindi individuare le istruzioni che consentano di definire le operazioni da eseguire sui dati iniziali per produrre i dati finali o risultati. È opportuno precisare che l'analisi di un dato problema non conduce ad un unico algoritmo ma si potrà trovare una soluzione al problema se esiste almeno un algoritmo risolutivo. Esistono infatti problemi che non trovano soluzione ed è importante notare che il fatto che esistano soluzioni per uno o più casi particolari non significa necessariamente che il problema è risolubile. D'altra parte non esistono metodi che consentano di individuare l'algoritmo risolutivo di problemi non ancora risolti ma sono comunque facilmente individuabili tecniche algoritmiche che permettono di risolvere alcune situazioni particolari in modo molto semplice riducendo quindi, almeno in parte, le difficoltà che emergono ogni qualvolta ci si appresta a risolvere dei nuovi problemi. In definitiva quindi, se il problema ammette delle soluzioni, generalmente esiste più di un algoritmo risolutivo il quale deve soddisfare alle regole seguenti: - l'algoritmo deve essere finito e concludersi dopo un numero definito di istruzioni; - le varie istruzioni che compongono l'algoritmo non devono permettere interpretazioni ambigue; - in presenza di dati di ingresso si deve specificare il campo di applicazione; - l'algoritmo deve fornire dei risultati; tutte le operazioni previste devono poter essere effettivamente eseguite e ciò deve avvenire in un tempo finito. Facendo riferimento ad un semplice esempio matematico, vediamo ora di evidenziare quanto detto sopra. 1

Esempio 1 Oggetto: dati due numeri interi A e B, individuare il procedimento che consente la determinazione del loro prodotto. Definizione dei dati di ingresso e di uscita (risultati) Dati di ingresso: sono costituiti dai valori dei due numeri assegnati, indicati con A e B. Dati di uscita: il prodotto di A e B che chiameremo C Relazioni: prodotto 3) Fare il prodotto A*B e metterlo in C; 4) Stampare il risultato C; 5) Fine; Nell' esempio 1 sono state divise in passi le operazioni da svolgere. Come detto precedentemente è di notevole importanza dare un inizio e una fine all'algoritmo, altrimenti non sarebbe una sequenza e chi lo deve interpretare non potrebbe tradurlo in linguaggio di programmazione. 4. DIAGRAMMI A BLOCCHI La tecnica che utilizza i diagrammi a blocchi consente di mettere in evidennza la sequenza con cui le operazioni devono essere eseguite. Si utilizza infatti una mappa di flusso (flow-chart) che permette di seguire con facilità il percorso delle informazioni e/o operazioni all'interno dell'elaboratore. Nella stesura di un diagramma a blocchi è bene attenersi ad alcune regole che consentono di interpretare agevolmente il diagramma stesso e che siano conosciute a livello internazionale. Le principali sono riportate nel seguente elenco: - si devono utilizzare i simboli grafici indicati in fig. 1; - il flusso delle informazioni (rappresentato con frecce che uniscono i blocchi) deve procedere dall'alto verso il basso e/o da sisinstra a destra; - le linee di flusso NON si possono intersecare; - è necessario distinguere grandezze costanti (cioè che mantengono lo stesso valore in tutto il programma) da grandezze variabili, che viceversa variano il loro valore durante le esecuzioni successive; PRINCIPALI SIMBOLI INIZIO - ELABORAZIONE DECISIONE INPUT-OUTPUT CONNESSIONE ALTRI SIMBOLI DISPLAY SALVATAGGIO DOCUMENTO ITERAZIONE fig. 1 In relazioni a tali regole il diagramma a blocchi dell'esempio 1 si traduce come riportato in figura 2. 2

INIZIO A, B C=A*B STAMPA C fig. 2 Esempio 2 Oggetto: dati due numeri interi A e B, individuare il procedimento che consente la determinazione del loro rapporto (divisione). Definizione dei dati di ingresso e di uscita (risultati) Dati di ingresso: sono costituiti dai valori dei due numeri assegnati, indicati con A e B. Dati di uscita: il rapporto di A e B che chiameremo C Relazioni: rapporto (divisione) 3) Fare il rapporto A/B e metterlo in C; 4) Stampare il risultato C; 5) Fine; c) verifica correttezza algoritmo L'algoritmo è corretto per tutti i numeri A e B tranne che per B=0: per tale valore, infatti, la divisione non può essere effettuata. Occorre quindi, dopo l'introduzione di A e B, verificare se B=0, ciò si traduce nel seguente algoritmo: 3) se B=0 ritornare al punto 1 altrimenti proseguire; 4) Fare il rapporto A/B e metterlo in C; 5) Stampare il risultato C; 6) Fine; Il diagramma a blocchi si traduce nella fig.3. INIZIO A, B B=0? SI NO C=A/B STAMPA C fig. 3 3

Il blocco di verifica o condizione ci permette quindi di verificare se dei termini o delle grandezze assumono valori che noi non desideriamo, a tale condizione assoceremo azioni preventive di controllo affinché non si producano risultati errati. L'algoritmo non è il solo per la soluzione del problema, ma può essere modificato e arricchito a piacere da chi programma: ad esempio si possono visualizzare messaggi di errore tramite blocchi di uscita, o terminare il programma senza tornale all'inizio, ecc. Esempio 3 Oggetto: definire e descrivere un algoritmo che permetta di ricavare il peso netto dati il peso lordo e la tara e consenta di stampare e salvare il risultato su floppy. Definizione dei dati in ingresso e di uscita (risultati) Dati in ingresso: PL=peso lordo, T=tara; Dati in uscita: PN=peso netto; Relazioni: PN=PL-T 2) introdurre i numeri PL e T; 3) se PL o T sono uguali a zero segnala errore e vai al punto 1; 4) eseguire l'operazione PN=PL-T; 5) Stampare il risultato PN; 6) salvare su floppy il risultato; 6) Fine; Il diagramma a blocchi si traduce nella fig.4. INIZIO PL, T P L<O? "PL DEVE ES SERE >0" T<0? "T DEVE ES SERE >0" PN=PL-T PN PN fig. 4 4

ESERCIZI 1) Definire e descrivere un algoritmo che permetta di effettuare una telefonata. 2) Definire e descrivere un algoritmo che permetta di effettuare un rifornimento di benzina. 3) definire e descrivere un algoritmo che elenchi le operazioni svolte al mattino dalla sveglia fino all'arrivo a scuola. Introdurre anche condizioni "particolari" 4) Definire e descrivere un algoritmo che permetta di ricavare la retribuzione netta di un operaio conoscendo la retribuzione oraria, il numero di ore di lavoro e le trattenute. I dati in ingresso devono essere tutti maggiori di zero (altrimenti generare un segnale di errore), il risultati devono essere salvati. 5) Definire e descrivere un algoritmo che permetta di ricavare un cateto di un triangolo rettangolo conoscendo ipotenusa e l'altro cateto. 6) Definire e descrivere un algoritmo che permetta di ricavare lo spazio percorso da un corpo di massa m sottoposto ad accelerazione uniforme a dopo un tempo T. 7) Definire e descrivere un algoritmo che permetta di calcolare l'area di un rettangolo date le due dimensioni dei lati. 8) Definire e descrivere un algoritmo che permetta di valutare se dati due numeri sono uguali o no. 9) Definire e descrivere un algoritmo che permetta dati due numeri A e B di stamparli in ordine crescente. 10) Definire e descrivere un algoritmo che permetta di ordinare in ordine crescente 3 numeri A, B e C. 5