Risoluzione di un problema
|
|
|
- Gilda Marrone
- 7 anni fa
- Просмотров:
Транскрипт
1 Algoritmi
2 Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2
3 Algoritmo Sequenza finita di mosse che risolve in un tempo finito una classe di problemi ovvero Deve essere applicabile a un qualsiasi insieme di dati del dominio Deve produrre risultati appartenenti al codominio Algoritmi 3
4 Caratteristiche di un algoritmo 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 " Terminazione: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito Determinismo: il flusso di esecuzione per lo stesso insieme di dati in input deve sempre essere lo stesso Algoritmi 4
5 Rappresentazione di un algoritmo Per rappresentare un algoritmo occorre rappresentare Le istruzioni necessarie La loro corretta sequenza Strumenti Linguaggio naturale Linguaggi (semi)formali þ Diagrammi di flusso (flow chart) Algoritmi 5
6 Cosa è un diagramma di flusso! È un formalismo che permette di rappresentare graficamente un algoritmo. Descrive le azioni da eseguire e il loro ordine di esecuzione. Ogni diagramma di flusso è un grafo Ogni nodo è un azione elementare e corrisponde ad un simbolo grafico (blocco) Gli archi ne determinano la sequenza Algoritmi 6
7 Esempio START F V AZIONE 2 TEST 1 AZIONE 1 OUTPUT END Algoritmi 7
8 Blocchi fondamentali START END Blocco START È il blocco da cui deve iniziare l algoritmo In un diagramma è presente un solo blocco START Blocco END Termina l esecuzione dell algoritmo In un diagramma è presente un solo blocco END Algoritmi 8
9 Blocchi fondamentali Read A, B Write BIG Blocco READ Riceve dall unità in ingresso (per esempio la tastiera) tanti valori quante sono le variabili specificate all interno del blocco Assegna alle variabili i valori inseriti Blocco WRITE Trasmette in uscita (per esempio su video) i valori delle varibili Algoritmi 9
10 Blocchi fondamentali Azione Esempi A = A + 1 Blocco AZIONE (o PROCESSO o MOSSA) corrisponde ad un azione elementare: o Assegnamento (=) o Operazioni aritmetiche (+, -, *, /, ) o BIG = A Algoritmi 10
11 Esercizio Stampare la somma di due numeri reali dati START Read A, B somma = A + B Write somma END Algoritmi 11
12 Altri esercizi Stampare l area/il perimetro di un cerchio di raggio dato in ingresso da tastiera Stampare l area di un triangolo isoscele data la lunghezza della base e due lati uguali Algoritmi 12
13 Blocchi fondamentali F Esempi F F Condizione Booleana L acqua è troppo calda? A<B V V V Blocco TEST Al blocco è associato un test il cui risultato è booleano (VERO/FALSO); Se la condizione è vera si procede sul ramo etichettato con V Se la condizione è falsa si procede sul ramo etichettato con F Algoritmi 13
14 Blocchi fondamentali Blocco PROCESSO Indica una sequenza di azioni per ottenere un particolare risultato. È utile per rendere più compatto il diagramma di flusso. Algoritmi 14
15 Esercizio Dato un orario di partenza e un tempo di percorrenza in secondi, calcolare l orario di arrivo START Read orap, minutip, secondip, secondi Calcola orario arrivo Write orario di arrivo END Algoritmi 15
16 Strutture condizionali IF-THEN(-ELSE) Permette di scegliere tra 2 sequenze di azioni in base ad una selezione logica Sequenza 2 F Condizione Booleana V Sequenza 1 Permette scegliere se eseguire una sequenza di azioni in base ad una selezione logica F Condizione Booleana V Sequenza Algoritmi 16
17 Esercizio Trovare il massimo di due valori dati START Read A, B BIG = A F A < B? V BIG = B Write BIG END Algoritmi 17
18 Esercizio Calcolare il valore assoluto di un numero dato START Read A F A < 0? V A = -A Write A END Algoritmi 18
19 Esercizi Calcolare il minimo di due numeri dati Verificare se un numero dato è pari Calcolare il massimo di tre numeri dati Algoritmi 19
20 Struttura iterativa WHILE Esegue la stessa sequenza di azioni fintanto che la condizione risulta vera. TEST F V Sequenza Algoritmi 20
21 Esercizio Calcolare la somma di N numeri forniti in input OSSERVAZIONI E necessario calcolare la somma in modo incrementale perchè i valori vengono inseriti uno alla volta DEFINIZIONE PER INDUZIONE CASO BASE: La somma di 0 numeri è 0 somma({})=0 CASO INDUTTIVO: La somma di N+1 numeri {X 1,..,X n+1 } è la somma della somma di {X 1,..,X n } e X n+1 somma({x 1,..,X n+1 })=somma({x 1,..,X n })+X n+1 Algoritmi 21
22 Esercizio (cont.) START Read N i=0 somma=0 F i < N? V Write somma END Read X somma= somma + X i = i+1 Algoritmi 22
23 Struttura iterativa DO WHILE Esegue la sequenza di azioni fino a quando la condizione risulta vera. Nota: l azione è eseguita almeno una volta. Sequenza V TEST F Algoritmi 23
24 Esercizio Leggere un valore numerico POSITIVO da tastiera. N.B. E necessario chiedere il valore all utente fintantoché questo non è positivo START V F Read A A < 0? Write A END Algoritmi 24
25 Esercizi Rappresentare tramite i flow-chart l algoritmo di Euclide Algoritmi 25
26 Esercizio Scrivere un algoritmo che calcoli le radici di un equazione di secondo grado Ax 2 +Bx+C=0. N.B. si supponga di disporre della funzione sqrt(.) che dato un valore in ingresso ne calcola la radice quadrata OSSERVAZIONI Dato il valore Δ = B 2 4AC si ricorda che se Δ è negativo allora non ci sono soluzioni reali altrimenti ci sono 2 soluzioni reali soluzioni = B ± 2A Δ Algoritmi 26
27 Esercizio START READ A,B,C DELTA = B 2-4AC F DELTA >= 0? V R1 = (-B-sqrt(DELTA))/2A WRITE Nessuna soluzione reale R2 = (-B+sqrt(DELTA))/2A WRITE R1, R2 END Algoritmi 27
28 Esercizio Scrivere un algoritmo che ricerchi il minimo di K numeri forniti in input. K è fornito in input dall utente ed è maggiore o uguale a 1. OSSERVAZIONI E necessario definire il minimo per induzione perchè i valori vengono inseriti uno alla volta CASO BASE: minimo({x})=x CASO INDUTTIVO: minimo({x 1,..,X n+1 })= minore tra minimo({x 1,..,X n }) e X n+1 Algoritmi 28
29 Esercizio START READ K, X MIN = X I = 1 I < K? NO WRITE MIN END YES READ X YES X < MIN? MIN = X NO I = I + 1 Algoritmi 29
30 Esercizio Scrivere un algoritmo che esegua la moltiplicazione di due numeri interi mediante somma. OSSERVAZIONI Definizione per induzione CASO BASE: A*0=0 CASO INDUTTIVO: A*(B+1) = (A*B)+A Algoritmi 30
31 Esercizio START READ A, B PROD = 0 I = 0 I < B? NO YES PROD = PROD + A YES WRITE PROD I = I + 1 END Algoritmi 31
32 Esercizio Scrivere un algoritmo per il calcolo del resto della divisione tra due valori interi START READ A, B resto = A resto >=B resto = resto - B WRITE resto END Algoritmi 32
33 Altri esercizi Scrivere un algoritmo che calcoli la media di N valori interi dati in input Modificare l esercizio precedente assumendo che i numeri in ingresso siano dei voti (ovvero dei numeri compresi tra 18 e 30) Scrivere un algoritmo che calcoli il quoziente e il resto di una divisione tra interi Scrivere un algoritmo che calcoli l intersezione di due intervalli [I1,S1] e [I2,S2], dati gli estremi degli intervalli stessi Scrivere un algoritmo che calcoli l unione di due intervalli intersecanti [I1,S1] e [I2,S2], dati gli estremi degli intervalli stessi Scrivere un algoritmo che calcoli i divisori di un numero dato Scrivere un algoritmo che verifichi se il numero dato in ingresso è primo Scrivere un algoritmo che calcoli il fattoriale di un numero dato Algoritmi 33
34 Algoritmi equivalenti Dato un problema, nella maggior parte dei casi è possibile individuare più algoritmi che lo risolvono! Due algoritmi si dicono equivalenti quando:" hanno lo stesso dominio di ingresso" hanno lo stesso dominio di uscita" in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita Due algoritmi equivalenti:" forniscono lo STESSO RISULTATO" ma possono avere DIVERSA EFFICIENZA" e possono essere PROFONDAMENTE DIVERSI! Algoritmi 34
35 Esempio Calcolo del Massimo Comun Divisore (MCD) fra due interi M ed N Algoritmo n 1 START READ M, N F M<N V MCD = N MCD = M TROVATO = FALSE F MCD!= 1 NOT TROVATO WRITE MCD STOP V resto divisione intera M e MCD == 0 esto divisione intera M e MCD == 0 MCD = MCD - 1 TROVATO = TRUE Algoritmi 35
36 Esempio Algoritmo n 2 (metodo di Euclide) " M (oppure N) se M=N" MCD (M,N) = MCD (M-N, N) se M>N" MCD (M, N-M) se M<N " START READ M, N M N F V WRITE M M>N M=M-N N=N-M F END Algoritmi 36
37 Esempio (cont.) Calcolare il MCD dei numeri 12 e 21 Algoritmo 1: M 12, N 21 MCD 12 MCD 11 MCD 3 MCD = 3 Algoritmo 2: M 12, N 21 N (N-M) = 9 M (M-N) = 3 N (N-M) = 6 N (N-M) = 3 MCD = 3 Algoritmi 37
38 MANCA LA CODIFICA! Bisogna conoscere la sintassi di un linguaggio di programmazione Bisogna conoscere la semantica di un linguaggio di programmazione Bisogna conoscere un ambiente di programmazione! Quale linguaggio? Quale ambiente di programmazione? Algoritmi 38
L ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
Formalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
L ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso
ALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi
Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
Programmazione. Informatica. Risoluzione dei Problemi
Cos è l INFORMATICA?? Il termine "informatica" ha un' accezione molto ampia. Risoluzione automatica di problemi: gli Algoritmi Esistono varie definizioni: l'informatica è la scienza che si occupa della
Cosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Rappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
Istruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Algoritmi e Programmi
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
ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico
ALGORITMI Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico Dati input Elaboratore elettronico Risultati Per risolvere un problema è necessario fornire una descrizione chiara e
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.
Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi [email protected] 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
Problemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
LA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
Il concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
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.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
Corso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
Lab 04 Programmazione Strutturata"
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate
Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina [email protected] www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo
A lezione sono stati presentati i seguenti passi per risolvere un problema:
Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi
Esercizi svolti in aula
Università degli Studi di Cagliari Corsi di Laurea in Ing. Civile e Ing. per l Ambiente e il Territorio ondamenti d Informatica 1 A.A. 2018/2019 Docente: Giorgio umera Esercizi svolti in aula ormulazione
Esercizi sugli Algoritmi numerici
Università di Udine, Facoltà di Scienze della Formazione Corso di Informatica Applicata alla Didattica (Giorgio T. Bagni) Esercizi sugli Algoritmi numerici 1. Esercizio risolto. Descrivere, attraverso
