ALGORITMI E SOLUZIONI DI PROBLEMI

Documenti analoghi
Introduzione all informatica

L ELABORATORE ELETTRONICO

Unità di apprendimento 6. Dal problema al programma

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Introduzione alla programmazione

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

L ELABORATORE ELETTRONICO!

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

MODULO 07. La soluzione dei problemi mediante gli algoritmi

L uomo come esecutore di algoritmi

Elaboratore Elettronico

Caratteristiche di un calcolatore elettronico

L ELABORATORE ELETTRONICO

Modulo 1 Concetti di base della Tecnologia dell Informazione

Algoritmi e Programmi

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Come ragiona il computer

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Cosa è l Informatica?

CORSO DI INFORMATICA Maria Grazia Celentano

Computer. Capitolo 2. 05/04/2012 continuazione 1

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Teoria dell Informazione

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

INFORMATICA (Computer Engineering o

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Dispensa di Informatica II.1

Unità di apprendimento 6. Dal problema al programma

Come ragiona il computer. Problemi e algoritmi

Corso di Informatica di Base

CAPITOLO 3 - ALGORITMI E CODIFICA

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Sistemi di Elaborazione delle Informazioni

Introduzione all Informatica e alla Programmazione. Fondamenti di Informatica T

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione. Informatica B. Daniele Loiacono

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Programmazione. Informatica. Risoluzione dei Problemi

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

generalità concetti di base

Rappresentazione con i diagrammi di flusso (Flow - chart)

Algoritmi e soluzione di problemi

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Diagrammi a blocchi 1

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Sistemi di Elaborazione delle Informazioni

Lezione 1. Problemi Algoritmi Programmi

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

VS Informazioni INFORMAZIONE

Introduzione agli Algoritmi

Sviluppo di programmi

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

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

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

MODULO 1. Punto 1.0 del Syllabus 5.0 Fondamenti. Prof.ssa Francesca Lascialfari

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Sviluppo di programmi

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Sviluppo di programmi

Sistemi Web per il turismo - lezione 3 -

Algoritmi. Pagina 1 di 5

Problemi, algoritmi, calcolatore

Il linguaggio di programmazione Python

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

Linguaggi, Traduttori e le Basi della Programmazione

Fasi di creazione di un programma

Concetti di base dell ICT

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Università degli Studi di Pisa

Gli algoritmi. Prof. Pasquale De Michele. Gli algoritmi. Pasquale De Michele

Il concetto di calcolatore e di algoritmo

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Fondamenti di Informatica

Transcript:

ALGORITMI E SOLUZIONI DI PROBLEMI Il computer è una macchina complessa in grado di eseguire milioni di istruzioni al secondo, dotato di una memoria capace di contenere enormi quantità di dati, siano essi documenti, suoni, filmati o semplici numeri. Queste sue caratteristiche ci consentono di utilizzarlo per svolgere compiti molto complicati, anche se, per far sì che ciò sia possibile, dobbiamo indicargli le operazioni da compiere attraverso una serie di istruzioni (Programma) che consentono alla macchina di elaborare i dati in maniera appropriata. Dati iniziali Programma Dati finali Il compito che deve essere svolto dal computer è generalmente la soluzione di un problema, che può essere di diversa natura: matematica, scientifica, economica, finanziaria ecc. I problemi che possono essere risolti con un calcolatore possono essere ad esempio: 1. sommare due numeri interi; 2. stabilire se una parola viene alfabeticamente prima o dopo un'altra; 3. dati a e b risolvere l'equazione ax+b=0; 4. dati due numeri trovare il maggiore; 5. gestire acquisti e prestiti dei libri di una biblioteca; 6. Trovare gli zeri di una funzione f(x); Affinché un problema sia risolvibile, in generale è necessario che la sua definizione sia chiara e completa. Non tutti i problemi sono risolvibili attraverso l uso del calcolatore. In particolare esistono classi di problemi per le quali la soluzione automatica non è proponibile: 1. Se il problema presenta infinite soluzioni; 2. Non esiste un metodo risolutivo automatizzabile. Chiamiamo problema una qualsiasi situazione per cui è necessario elaborare una strategia per identificare una sua soluzione, ovvero una serie azioni da compiere per raggiungere il risultato. Ad esempio sono problemi le seguenti situazioni: disporre una lista di nomi in ordine alfabetico; calcolare l area di un rettangolo conoscendone le dimensioni Non esiste un unica soluzione per un problema. Prima di identificare una strategia è necessario distinguere i dati conosciuti (INPUT) dalle incognite che bisogna determinare (risultati: OUTPUT).

Chiamiamo algoritmo una sequenza ordinata di istruzioni che descrivono tutte le azioni che è necessario eseguire per arrivare alla soluzione di un problema. Una definizione più rigorosa: Un algoritmo è un insieme finito di istruzioni, chiare e non ambigue, effettivamente calcolabili, che, eseguito, fornisce un risultato, in una quantità di tempo finita. L'algoritmo deve essere: finito : la sequenza di istruzioni deve essere finita e portare a un risultato eseguibile:la sequenza di istruzioni devono poter essere eseguite materialmente dall'esecutore; non ambiguo(ciascuna istruzione deve essere descritta chiaramente ed interpretata univocamente, di modo che l azione descritta sia effettuata allo stesso modo da qualsiasi esecutore) generale: valido non solo per un particolare problema, ma per una classe di problemi; deterministico:partendo dagli stessi dati iniziali porta sempre allo stesso risultato finale; completo: deve considerare tutti i casi che si possono verificare durante l'esecuzione. Il termine algoritmo deriva dal nome del matematico arabo Al-Khowarzimi del IX secolo d.c. che per primo suggerì un metodo per sommare due numeri rappresentati nel sistema numerico Hindu e contribuì alla fondazione dell algebra. Il programmatore studia il problema e ne individua l'algoritmo risolutivo, cioè l'insieme delle operazioni (istruzioni) che devono essere eseguite per raggiungere il risultato. L'insieme di queste istruzioni prende il nome di programma, e ogni singola istruzione deve essere scritta utilizzando un linguaggio di programmazione. Problema Algoritmo Programma Il linguaggio di programmazione (linguaggio ad alto livello) è molto lontano dal codice binario (linguaggio a basso livello) che un computer è in grado di eseguire. Affinché sia in grado di comprenderlo deve essere fatta una traduzione da un linguaggio all'altro. Questa operazione viene eseguita da particolari programmi, detti compilatori o traduttori, che trasformano il programma (codice sorgente) scritto in linguaggio di

programmazione in codice macchina, eseguibile dal computer. Linguaggio ad alto livello Compilatore Linguaggio a basso livello Un algoritmo può essere graficamente schematizzato attraverso i diagrammi di flusso (flow chart) detti anche diagrammi a blocchi, che evidenziano il flusso delle istruzioni nel processo di elaborazione dei dati del problema. Diagrammi di flusso Il diagramma di flusso o flow chart è una rappresentazione grafica di un algoritmo costituita da un insieme di blocchi contenenti le istruzioni (figure geometriche standard) collegati da frecce che evidenziano l ordine in cui eseguire le azioni descritte. Esso presenta, rispetto alla descrizione verbale, una maggiore concisione, una minore possibilità di ambiguità e una comprensione più immediata. Per consentire una comprensione uniforme dei diagrammi di flusso, è bene disegnarli secondo alcune convenzioni grafiche standard. Come regola generale, il flusso delle operazioni procede dall alto in basso e da sinistra a destra; tuttavia si potrebbe talvolta dover variare questa regola, e a tale fine si utilizzano appunto le frecce nel modo opportuno. Osserviamo anche che le frasi scritte nei blocchi di un diagramma non devono seguire alcuna regola grammaticale o sintattica, ma possono avere una forma libera, purché indichino chiaramente l operazione da eseguire. L inizio e la fine dell algoritmo sono rappresentati da blocchi ovali. Sono gli unici blocchi da cui parte o arriva una sola freccia. Inizio fine ISTRUZIONI DI INGRESSO/USCITA (INPUT/OUTPUT) Le istruzioni di ingresso e di uscita (input / output) sono contenute in blocchi a forma di parallelogramma.

ISTRUZIONE DI INPUT LEGGI DATO ISTRUZIONE DI OUTPUT SCRIVI DATO BLOCCO ISTRUZIONE O DI ELABORAZIONE Le istruzioni contenenti operazioni sui dati (assegnazione o calcolo di espressioni) sono rappresentate all interno di blocchi rettangolari. Calcola area BLOCCO DI SELEZIONE O ALTERNATIVA si N1<0 no

Al suo interno vengono effettuate operazioni di confronto e il risultato può essere soltanto SI o NO (oppure VERO o FALSO) Lo scopo di questo metodo di strutturazione degli algoritmi è quello di rendere più facile la costruzione, la lettura e le eventuali successive modifiche dei procedimenti risolutivi dei problemi. All'interno di un algoritmo le istruzioni sono organizzate secondo schemi classificabili nel seguente modo: Lo schema di sequenza è una sequenza di passi eseguiti uno alla volta, nessun passo è ripetuto e l'ordine di esecuzione dei passi è lo stesso in cui sono scritti. Lo schema di selezione è usato quando si deve effettuare una scelta tra due passi alternativi, a seconda del risultato di un test o del verificarsi di una condizione. Lo schema di iterazione è usato quando si deve effettuare la ripetizione di una o più istruzioni un numero di volte definito o indefinito a seconda che si verifichi una condizione. Sequenza: Esempio 1:Calcolare la media di tre numeri INIZIO LEGGI A,B,C M=(A+B+C)/3 SCRIVI M FINE

Esempio 2: Calcolare area e perimetro di un rettangolo dati L1 e L2 Inizio Leggi L1, L2 P=(L1+L2)x2 A=L1xL2 L1, L2 Fine

Selezione: Esempio1: re il maggiore tra due numeri inizio Leggi n1 Leggi n2 si n1>n2 no n1 n2 fine

Esempio 2: trasformazione di numeri negativi in positivi inizio Leggi N1 V N1<0 F Moltiplica N1 x -1 N1 Fine In questo secondo esempio possiamo notare che viene a mancare un pezzo di istruzione e in questo caso parliamo di selezione semplice. Il caso di selezione semplice può quindi essere considerata un caso particolare di selezione doppia dove viene a mancare il ramo altrimenti; non è invece possibile avere un'istruzione semplice senza il ramo allora, con cioè solo il ramo altrimenti: se il ramo è uno solo, e quindi siamo in presenza di selezione semplice, necessariamente deve essere presente il ramo allora. Selezione multipla In molte situazioni capita di dover operare delle scelte, orientandosi tra più possibilità e non solo tra due come capita con la selezione binaria (vero/falso): si pensi a quando

si deve decidere dove andare in vacanza, che tipo di facoltà scegliere. Le scelte, di solito, sono motivate dal verificarsi o meno di certe circostanze. In questi casi dovremmo costruire una struttura complessa formata da tanti se...allora...altrimenti se...allora...altrimenti se... La struttura di selezione multipla consente di rappresentare in modo semplice questi casi, nei quali i gruppi di istruzioni in alternativa tra loro possono essere più di due. La decisione sulla strada da percorrere dipende dal valore assunto da una variabile di controllo, detta selettore. Esempio di selezione multipla Un insegnante valuta il test svolto da ciascun studente e attribuisce un giudizio in base al punteggio ottenuto secondo la seguente tabella: Da 0 a 10 Insufficienza grave Da 11 a 30 Da 31 a 60 Da 61 a 90 Da 91 a 100 Insufficiente Sufficiente Buono Ottimo inizio Leggi punteggio Punteggio Da 0 a 10 Punteggio Punteggio Punteggio Punteggio Da 11 a 30Da 31 a 6061 a 90 Da 91 a 100 Grav. insufficiente Insufficiente Sufficiente Buono Ottimo Fine