Algoritmi e Programmi

Documenti analoghi
Cosa è l Informatica?

Come ragiona il computer. Problemi e algoritmi

INTRODUZIONE ALL INFORMATICA

L ELABORATORE ELETTRONICO

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

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

L ELABORATORE ELETTRONICO!

Come ragiona il computer. Problemi e algoritmi

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

ALGORITMI: PROPRIETÀ FONDAMENTALI

Concetti Introduttivi. Il Computer

Introduzione alla programmazione

Introduzione all Informatica Scienze Naturali / Restauro - Unical 1 Dispensa 1

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

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

FONDAMENTI DI INFORMATICA

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Introduzione agli Algoritmi

Informatica. Come si risolve un problema?

MODULO 07. La soluzione dei problemi mediante gli algoritmi

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

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

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Programmazione. Informatica. Risoluzione dei Problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Lezione 1. Problemi Algoritmi Programmi

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

FONDAMENTI DI INFORMATICA

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Elementi di programmazione

PROBLEMI ALGORITMI E PROGRAMMAZIONE

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Unità di apprendimento 6. Dal problema al programma

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Dall algoritmo al programma

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

Introduzione alla programmazione strutturata

Linguaggi di Programmazione

Problemi, algoritmi, calcolatore

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Linguaggi di Programmazione

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

Il concetto di calcolatore e di algoritmo

LINGUAGGI DI ALTO LIVELLO

1 Esercizi in pseudocodice

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

DESCRIZIONI RIGOROSE c7

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

I Linguaggi di Programmazione

LABORATORIO DI INFORMATICA

Fondamenti Teorici e Programmazione Modulo A: Elementi di Programmazione Corso di Laurea in Informatica Umanistica a.a. 2013/2014

Sviluppo di programmi

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Rappresentazione con i diagrammi di flusso (Flow - chart)

Corso di Informatica di Base

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Programmazione Procedurale in Linguaggio C++

Informatica. Traccia. Algoritmi, dati e programmi. Elaborazione di informazione. informazione. rappresentazione dell informazione (dati) dati

Unità di apprendimento 6. Dal problema al programma

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

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

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

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Unità Didattica 2 I Linguaggi di Programmazione

Laboratorio di Programmazione

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Transcript:

Algoritmi e Programmi

Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca

Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricercato Competenze distinte: - Conoscenza di come si risolve un problema - Effettiva capacità di risolvere un problema

Algoritmi e Programmi I calcolatori sono esecutori di soluzioni che esseri umani hanno identificato e descritto Le soluzioni dei problemi devono essere descritto in un linguaggio che il calcolatore è in grado di interpretare ed eseguire

Algoritmi e Programmi Calcolare la superficie S di un cerchio di raggio 2. 1. S= πr 2

Algoritmi e Programmi Calcolare la superficie S di un cerchio di raggio 2. 1. S= πr 2 2. S=3,14*r 2

Algoritmi e Programmi Calcolare la superficie S di un cerchio di raggio 2. 1. S= πr 2 2. S=3,14*r 2 3. S=3,14*r*r Scomposizione del problema in sotto-problemi Scomposizione del sotto-problema in sotto-probemi

Algoritmi e Programmi Caratteristiche dell esecutore A. Linguaggio che riesce ad interpretare B. Azioni che è in grado di compiere C. Regole che ad ogni costrutto linguistico sintatticamente corretto associano le relative azioni da compiere

Algoritmi e Programmi Caratteristiche dell esecutore A. Linguaggio che riesce ad interpretare definito in termini formali caratterizzazione sintattica B. Azioni che è in grado di compiere definito da un insieme univoco C. Regole che ad ogni costrutto linguistico sintatticamente corretto associano le relative azioni da compiere definite da un insieme univoco caratterizzazione semantica

Utilizzo di un computer Come utente: Utilizzo di software applicativo esistente per creare documenti e interfacce grafiche, effettuare calcoli, navigare in rete Come sviluppatore: Creazione di nuovi programmi sullo strato del software esistente Nuovi programmi applicativi Nuovi programmi di sistema (cioè che fanno funzionare il calcolatore)

La programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema.

La programmazione Alcune domande fondamentali: Quali istruzioni esegue (cosa può fare) un elaboratore? Quali problemi può risolvere un elaboratore? Esistono problemi che un elaboratore non può risolvere? Che ruolo ha il linguaggio di programmazione?

I problemi - esempi Trovare il maggiore fra due numeri Individuare il numero più piccolo di una sequenza Dato un elenco di nomi e numeri di telefono, trovare il numero di una data persona Dati a e b, risolvere l'equazione ax+b=0 Stabilire se una parola precede alfabeticamente un'altra Ordinare un elenco di nomi Calcolare il costo totale di un certo numero di prodotti Trovare perimetro e area di una figura geometria

I problemi - esempi Scegliere il mezzo di trasporto più economico (o più veloce) per andare da Roma a Milano Creare, modificare e alterare suoni Analizzare, riconoscere e modificare immagini

Problema: definizione e risoluzione La descrizione del problema non indica direttamente (in genere) un modo per ottenere il risultato voluto Differenza tra specifica di un problema e specifica del processo di risoluzione Risoluzione di un problema dato un problema individuato un opportuno metodo risolutivo (algoritmo) trasforma i dati iniziali nei corrispondenti risultati finali

Risolvere un problema Come si costruisce la soluzione a un problema? Qual è il giusto punto di partenza per pensare la soluzione a un problema? Quali metodologie e tecniche usare?

Risolvere un problema Interpretare l enunciato Individuare i dati noti e quelli da trovare Costruire un modello Descrivere il procedimento risolutivo Eseguire le operazioni stabilite nel processo risolutivo Verificare se i risultati ottenuti corrispondono alla soluzione del problema reale Verifica dei risultati Problema Interpretazione Esecuzione Modello Procedimento risolutivo

Risolvere un problema: procedimento risolutivo Individuazione di una sequenza di passi che, partendo dai dati noti, arrivi a dare la soluzione. Definizione Algoritmo

Risolvere un problema: procedimento risolutivo

Algoritmi Un algoritmo è una sequenza finita di operazioni elementari che porta alla risoluzione in un tempo finito una classe di problemi. In generale un algoritmo può essere visto come una funzione da un dominio d ingresso ad uno d uscita Dati(INPUT) X Algoritmo Risultati(OUTPUT) f(x)

Algoritmi - esempi Istruzioni di montaggio Preparazione del caffè Prelievo bancomat Preparazione di un ricetta Calcolo del massimo comun divisore tra due interi

Algoritmi: proprietà fondamentali Eseguibilità: ogni azione deve essere eseguibile da parte dell esecutore dell algoritmo in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito.

Algoritmi: proprietà fondamentali applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizione dell algoritmo costituito da operazioni appartenenti ad un determinato insieme di operazioni fondamentali costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o macchina ) che le legge Altre proprieta desiderabili generalita determinismo efficienza

Esecuzione

Algoritmi e programmi Algoritmo Sequenza finita di passi che risolve in tempo finito un problema. Codifica Fase di scrittura di un algoritmo attraverso un insieme ordinato di frasi ( istruzioni ), scritte in un qualche linguaggio di programmazione, che specificano le azioni da compiere. Programma Testo scritto in accordo con la sintassi e la semantica di un linguaggio di programmazione. PROBLEMA ALGORITMO PROGRAMMA

Linguaggi di Programmazione Linguaggi per esprimere in maniera rigorosa un algoritmo Linguaggio macchina (seq. Istruzioni) Linguaggi ad alto livello (vicini al ling. naturale) Esempi: Pascal C e C++ Java Basic

Esempio di programma Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox( Immetti un secondo numero ) Print Somma: ; A+B End Sub

Esempio: potenza Problema: Calcolare a elevato alla n (a^n) Utilizziamo le variabili N, Ris Inizialmente Ris=1 e N=n Algoritmo: Fino a che N>0 Calcola Ris a e memorizzalo in Ris Decrementa N Correttezza: Al termine Ris=a^n

Esempio in Pseudo Pascal Program potenza; Integer Ris,N,A; Read(N);Read(A); Ris=1; While (N>0) do Ris=Ris*A; N=N-1; Print(Ris);

Riassumendo Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati L'esecuzione delle azioni elementari è richiesta all'elaboratore tramite comandi chiamati istruzioni Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione Un programma è la formulazione testuale di un algoritmo in un linguaggio di programmazione Un algoritmo è il processo risolutivo di un problema

Esistono problemi che un elaboratore non può risolvere? Sì. Ci sono problemi non calcolabili da nessun modello di calcolo reale o astratto Esempio: data una funzione f : N N, stabilire se f(x) è costante per ogni valore di x

Esistono problemi che un elaboratore non può risolvere? Esempio. Dato un insieme di immagini di paesaggi, determinare quello più rilassante. Più in generale, quando il problema presenta infinite soluzioni, o non è stato trovato per esso un metodo risolutivo o è dimostrato che non esiste un metodo risolutivo

Diagramma di flusso o diagrammi a blocchi È uno metodi più comuni usati per la rappresentazione di algoritmi. Si presenta come un insieme di figure geometriche collegate da frecce.

Problema della chiave Trovare in un mazzo di chiavi quella che apre il lucchetto Assunzioni: una tra le chiavi apre la porta al buio, si prende una chiave a caso per volta

Inizio Inizio Tutti i diagrammi a blocchi cominciano con un ellisse che contiene la parola inizio

Dati in ingresso Dati in ingresso I dati in ingresso sono i dati noti del problema, quelli che devono essere elaborati per arrivare alla soluzione

Operazioni Operazioni Le operazioni da svolgere sui dati sono racchiuse in rettangoli

Vero o falso? Scelta Quando si deve fare una scelta tra due possibilità si usa il rombo

Dati in uscita Dati in uscita I dati in uscita sono quelli che si vuole conoscere e costituiscono il risultato dell elaborazione

Fine fine Ogni diagramma di flusso si conclude con un ellisse che contiene la parola fine

Problema della stazione Come si arriva alla stazione? Operazioni elementari possibili: Andare avanti fino a un punto di incrocio Girare