La teoria degli algoritmi. (Dalla definizione del problema alla scrittura dell algoritmo)
|
|
- Adelaide Filippi
- 5 anni fa
- Visualizzazioni
Transcript
1 La teoria degli algoritmi (Dalla definizione del problema alla scrittura dell algoritmo)
2 LA RISOLUZIONE DI UN PROBLEMA Risolutore Processo risolutivo PROBLEMA SOLUZIONE Esecutore OBIETTIVO 2
3 In ambito informatico si è interessati alla risoluzione di un problema mediante l ausilio di un sistema di elaborazione automatica. Il risolutore (che nel nostro contesto è il programmatore) definisce la soluzione necessaria per risolvere il problema attraverso il processo risolutivo. Tale soluzione andrà implementata, ovvero tradotta mediante un modello formalizzato comprensibile dall esecutore, che in tal caso è il calcolatore o, più precisamente, il processore o CPU. Tale esecutore esegue la soluzione per giungere concretamente all obiettivo del problema. 3
4 METODOLOGIA DI LAVORO PER GIUNGERE ALLA RISOLUZIONE DI UN PROBLEMA 1. Analisi del problema Individuare le informazioni di partenza, o dati di input Individuare i risultati che si vogliono ottenere (dati di output) Individuare le risorse di cui si dispone 2. Stesura e verifica della soluzione Individuare la soluzione per giungere dalle informazioni iniziali al risultato Verificare la soluzione trovata (testing e debugging) 4
5 In generale, la soluzione effettiva di un problema procede sempre attraverso una serie di passi o azioni da effettuare su dei dati. AZIONE Azione elementare Azione composta (processo) Processo: insieme di azioni elementari e dati sui quali tali azioni devono essere eseguite Processo sequenziale : le azioni di cui si compone vengono eseguite ordinatamente una dopo l altra 5
6 ALGORITMO Descrizione di un processo sequenziale, cioè di un procedimento che riporta la SEQUENZA FINITA ed ORDINATA DI AZIONI da eseguire per risolvere un problema. Tali azioni si dicono istruzioni. NB: Non sempre una sequenza di istruzioni è un algoritmo! 6
7 UN ALGORITMO DEVE SEMPRE ESSERE Comprensibile (per l esecutore) Univoco (non ci deve essere ambiguità) Generale (applicabile ad una classe di problemi e non ad uno specifico) Dettagliato (costituito solo da azioni elementari) Finito (si deve giungere al punto finale) Deterministico (a parità di situazione iniziale, deve portare sempre agli stessi risultati) Completo (contempla tutti i casi possibili) Osservabile nei risultati (deve esserci un riscontro oggettivo dell output) 7
8 ESEMPIO DI ALGORITMO Nel libretto delle istruzioni di un cellulare di marca nota, viene illustrato come ricercare un nominativo presente in Rubrica e visualizzarne il numero. 1. Dalla modalità Stand by premere RUBRICA 2. Evidenziare CERCA 3. Premere SELEZ. Dati di input Dati di output 4. Scrivere le prime lettere del nome da ricercare 5. Scorrere con i tasti e fino a visualizzare il nominativo. 6. Se si trova il nominativo, premere DETTAGLI e verrà visualizzato il numero. 7. Se il nominativo non viene trovato, esso non è presente in rubrica. 8
9 PROGRAMMA Algoritmo scritto in un linguaggio di programmazione (linguaggio comprensibile per il computer) Ad un algoritmo, possono corrispondere più programmi, scritti ciascuno con linguaggi di programmazione differenti (Visual Basic, C, Java, C++, Perl, Cobol ) Ad ogni programma sono associati più processi, uno per ciascuna volta che il programma viene lanciato in esecuzione ed affidato alla CPU. 9
10 PROGRAMMA e PROCESSO (è statico) (è dinamico) ALGORITMO Programma 1 Programma 2 Programma 3 Processo1 Processo 2 Processo 3 10
11 DATI Sono le entità sulle quali vanno ad agire le istruzioni. Vengono identificati mediante nome e tipo. È l IDENTIFICATORE univoco del dato ed il suo nome è scelto in modo da richiamare il significato del dato all interno del programma. È legato al tipo di valori che il dato può assumere In base al tipo di oggetto che rappresentano, i dati vengono classificati in numerici (interi o reali) ed alfanumerici (stringhe). In base alla possibilità di cambiarne o meno il valore i dati vengono classificati in variabili o costanti. 11
12 La variabile è una sorta di contenitore o scatola identificato da un nome ed il cui valore è il contenuto di tale scatola. L uso delle variabili permette di conferire all algoritmo la sua caratteristica di genaralità. ESEMPIO Il numero è una costante che vale sempre 3,14. Nel calcolo della media aritmetica dei voti di una classe un esempio di variabile potrebbe essere n, il numero dei voti riportati, oppure tutte le variabili x i contenenti le votazioni riportate. 12
13 E utile, nella stesura di un algoritmo, compilare la TABELLA DELLE VARIABILI. Nome Tipo Var/cost I/O/L Valore Descrizione DOVE LA COLONNA I/O/L VIENE COMPILATA SOLO PER LE VARIABILI VARIABILI DI INPUT (Variabili il cui valore è fornito dall esterno) VARIABILI DI OUTPUT (Variabili il cui valore è comunicato all esterno come risultato dell esecuzione) VARIABILI DI LAVORO (Variabili il cui valore viene utilizzato ai fini dell elaborazione) 13
14 ESEMPIO Calcolare l area del quadrato, di cui si conosce il perimetro. Nome Tipo Var/cost I/O/L Valore Descrizione p Numerico reale var I - perimetro Lato Numerico reale var L - lato A Numerico reale var O - Area 14
15 ISTRUZIONI OPERATIVE DI UN ALGORITMO ASSEGNAMENTO (modifica dei valori delle variabili, non delle costanti! ) INPUT (acquisizione dei dati) OUTPUT (comunicazione dei risultati ) VALUTAZIONE DI ESPRESSIONI 15
16 ISTRUZIONE OPERATIVA DI ASSEGNAMENTO Si possono presentare tre casi: Nome variabile1 Nome variabile2 Es: n a Nome variabile Nome Costante Es: n 3 Nome variabile Espressione Es: n n*y/2 qui il vecchio valore di n è usato per calcolare il nuovo valore di n 16
17 ISTRUZIONE OPERATIVA DI INPUT È una particolare istruzione di assegnamento mediante cui si assegna ad una variabile un valore introdotto dall esterno, modificando l eventuale valore in essa contenuto precedentemente. ISTRUZIONE OPERATIVA DI OUTPUT Consente di visualizzare il valore di una variabile o di un espressione, o un messaggio testuale sul video o sulla stampante. 17
18 ESPRESSIONI E LORO VALUTAZIONE Un espressione è formata da operandi ed operatori. Ad esempio, Operatori Operandi 5 * Valutare un espressione significa stabilire l ordine di esecuzione dei vari operatori. 18
19 19
20 OPERATORI ARITMETICI + Addizione - Sottrazione * Moltiplicazione / Divisione (può esser intera o decimale) % ( mod ) Calcolo del resto della divisione fra interi Sono tutti operatori binari tranne il mod che è unario 20
21 OPERATORI DI RELAZIONE O DI CONFRONTO = = Uguale a (da non confondere con l assegnamento) > Maggiore di < Minore di >= Maggiore o uguale di <= Minore o uguale di!= Diverso da 21
22 OPERATORI LOGICI Operano fra predicati con valori di verità TRUE (1) o FALSE (0) AND Prodotto logico OR Somma logica NOT Negazione XOR OR esclusivo p AND q (è vera quando ENTRAMBE vere) p OR q (è vera quando ALMENO UNA è vera) NOT p P XOR q (è vera quando UNA SOLA è vera) (è vera quando p è falsa) operatore unario 22
23 STRUMENTI PER LA STESURA DEGLI ALGORITMI Pseudocodice Rende comprensibile la logica dell algoritmo, descrivendolo mediante codice scritto in un linguaggio che è molto vicino a quello naturale Diagrammi a blocchi (flow-chart) Rende comprensibile la logica dell algoritmo, descrivendolo mediante un linguaggio di tipo grafico 23
24 LA PSEUDOCODIFICA è la traduzione dell algoritmo in uno pseudolinguaggio o pseudocodice, che è molto vicino al linguaggio naturale, ma segue alcune regole precise. REGOLE DI PSEUDOCODIFICA Le parole chiave (o riservate) vanno scritte sempre in maiuscolo. Per aprire e chiudere il testo di un algoritmo si usano le parole chiave: INIZIO e FINE. Ogni istruzione è scritta in linguaggio corrente e può contenere un espressione di tipo aritmetico o logico. 24
25 Le istruzioni di input ed output dei dati vengono scritte nel seguente modo: LEGGI(variabile) SCRIVI(variabili/costanti /espressioni/stringhe) Le variabili e le costanti vengono indicate mediante degli identificatori, sempre scitti in minuscolo. Una parola chiave non può essere usata come identificatore. 25
26 La lista completa delle parole chiave utilizzate in pseudocodifica è: A ALLORA ALTRIMENTI CASO DA DI ESEGUI FINCHE FINE INIZIO MENTRE PASSO PER RIPETI SE 26
27 ESEMPIO DI UN ALGORITMO IN PSEUDOCODIFICA Calcolo dell area di un triangolo Descrizione del problema Per calcolare l area di un triangolo occorre conoscere le misure della base e dell altezza: l esecutore deve quindi chiedere all utente tali misure, attendere che l utente comunichi tali misure e leggere i valori assegnandoli ad altrettante variabili. Dopo aver calcolato l area mediante l opportuna formula, l esecutore deve provvedere a comunicare all utente il risultato. 27
28 Algoritmo AreaTriangolo (Tabella dei Dati) Nome Tipo Var/cost I/O/L Valore Descrizione b Numerico reale var I - base h Numerico reale var I - altezza A Numerico reale var O - Area 28
29 Algoritmo AreaTriangolo (pseudocodifica) INIZIO SCRIVI( Inserisci la misura della base ) LEGGI(b) SCRIVI( Inserisci la misura dell altezza ) LEGGI(h) A (b*h)/2 SCRIVI( L area vale,a) FINE 29
30 Algoritmo AreaTriangolo (Flow Chart) INIZIO Inserire la base: O b I Inserire l altezza: O h I A<- b*h/2 L area vale:, A O FINE 30
31 LA PROGRAMMAZIONE STRUTTURATA E I SUOI COSTRUTTI La programmazione strutturata è un metodo di programmazione, costituito da un insieme di poche regole, che rende più facile la stesura, la lettura e la manutenzione dei programmi. In pratica si fornisce una struttura al programma in modo da vederlo come un insieme di blocchi indipendenti di istruzioni, ognuno dei quali fornito di un solo ingresso e di una sola uscita. Non è possibile saltare dall interno di un blocco all interno di un altro blocco. 31
32 Esiste in Informatica un risultato importante (teorema di Jacopini) che afferma: Un qualsiasi algoritmo, per quanto complesso sia, può essere sempre trasformato in un algoritmo ad esso equivalente (1) che utilizzi soltanto tre strutture di controllo o costrutti sintattici (2) fondamentali: sequenza, selezione e iterazione. (1) due algoritmi sono equivalenti se a partire dallo stesso input producono identico output. (2) un costrutto sintattico indica il modo in cui comporre le istruzioni. Si chiama anche struttura di controllo perché consente di far seguire percorsi diversi all esecuzione, in base al verificarsi o meno di certe condizioni. 32
33 IL COSTRUTTO SEQUENZIALE E il costrutto più semplice ed è usato quando le azioni devono essere eseguite ordinatamente una dopo l altra senza possibilità di scelta. Nella programmazione strutturata, la struttura più esterna di un algoritmo, anche se complesso, è sempre di tipo sequenziale. L algoritmo è costituito da blocchi di istruzioni che si susseguono in maniera sequenziale. All interno di tali blocchi possono poi presentarsi anche gli altri costrutti. 33
34 ESEMPIO di struttura di controllo sequenziale Scambiare il contenuto di due variabili a e b. Descrizione del problema Se si prende il contenuto di a e lo si mette in b, e la stessa cosa si fa per il contenuto di b, mettendolo in a, si giunge ad un risultato errato. Infatti quando si mette il contenuto di a in b, si va a perdere il contenuto precedente di b. Occorre utilizzare una terza variabile d appoggio temp. 34
35 a b temp a b temp a b temp a b temp 35
36 Tabella delle variabili Nome Tipo Var/cost I/O/L Valore Descrizione a Numerico var I/O - Primo num b Numerico var I/O - Secondo num temp Numerico var L - Variabile appoggio 36
37 Algoritmo Scambio (pseudocodifica) INIZIO SCRIVI( Inserisci il primo numero ) LEGGI(a) SCRIVI( Inserisci il secondo numero ) LEGGI(b) Temp a a b b temp SCRIVI( a vale,a, mentre b vale,b) FINE 37
38 ESERCIZI Per ciascuno dei seguenti problemi, scrivi l algoritmo risolvente in pseudocodifica, accompagnandolo con la relativa tabella delle variabili. ES 1. Calcolo della media aritmetica di tre numeri inseriti da tastiera. ES 2. Calcolo del cubo di un numero inserito da tastiera. ES 3. Calcolo dell età di una persona, di cui si inserisce da tastiera nome cognome ed anno di nascita. ES 4. Calcolo dell area del cerchio circoscritto ad un quadrato, con misura del lato inserito dall utente. 38
39 IL COSTRUTTO SELETTIVO Permette di effettuare una scelta fra due possibili alternative. Tale scelta viene effettuata valutando il verificarsi o meno di una condizione. 1. SELEZIONE BINARIA La sua sintassi in pseudolinguaggio è: SE <condizione> V Condi F ALLORA zione <Blocco1> ALTRIMENTI <Blocco2> FINE SE Blocco1 Blocco2 39
40 2. SELEZIONE UNARIA La sua sintassi in pseudolinguaggio è: SE <condizione> V Condi F ALLORA <Blocco1> FINE SE Blocco1 zione Tali costrutti possono ripetersi anche più volte uno dopo l altro, nonché in modo annidato. 40
41 3. COSTRUTTI SELETTIVI ANNIDATI SE <condizione1> ALLORA <Blocco1> ALTRIMENTI SE <condizione2> ALLORA <Blocco1> ALTRIMENTI <Blocco2> FINE SE FINE SE 41
42 Altro esempio di selezione annidata 42
43 4. COSTRUTTI SELETTIVI IN CASCATA SE <condizione1> ALLORA <Blocco1> ALTRIMENTI <Blocco2> FINE SE 1 SE <condizione2> ALLORA <Blocco3> ALTRIMENTI <Blocco4> FINE SE Blocco3 2 Blocco4 43
44 ESEMPIO di struttura di controllo selettiva Dato in input un numero N, comunicare se è negativo o positivo (maggiore o uguale a zero). Descrizione del problema Occorre acquisire il dato dall esterno e confrontarlo con lo zero. Se il numero è maggiore o uguale a zero, allora si comunica che è positivo, altrimenti si comunica che è negativo. Tabella delle variabili Nome Tipo Var/cost I/O/L Valore Descrizione N Numerico var I/O - numero 44
45 Algoritmo PosNeg (pseudocodifica) INIZIO SCRIVI( Inserisci il numero ) LEGGI(N) SE (N>=0) ALLORA SCRIVI( Il numero è positivo ) ALTRIMENTI SCRIVI( Il numero è negativo ) FINE SE FINE 45
46 ESEMPIO di struttura di selezione annidata Dato in input un numero N, comunicare se è negativo positivo o nullo. Descrizione del problema Occorre acquisire il dato dall esterno e confrontarlo con lo zero. Se il numero è maggiore di zero, allora si comunica che è positivo, altrimenti si valuta se è minore di zero e si comunica che è negativo, nel restante caso il numero sarà nullo. Tabella delle variabili Nome Tipo Var/cost I/O/L Valore Descrizione N Numerico var I/O - numero 46
47 Algoritmo PosNegNull (pseudocodifica) INIZIO SCRIVI( Inserisci il numero ) LEGGI(N) SE (N>0) ALLORA SCRIVI( Il numero è positivo ) ALTRIMENTI SE (N<0) ALLORA SCRIVI( Il numero è negativo ) ALTRIMENTI SCRIVI( Il numero è nullo ) FINE SE FINE SE FINE 47
48 ESERCIZI Per ciascuno dei seguenti problemi, scrivi l algoritmo risolvente in pseudocodifica, accompagnandolo con la relativa tabella delle variabili. ES 5. Date in input le misure dei tra lati di un triangolo, stabilire se si tratta di un triangolo scaleno, isoscele o equilatero. ES 6. Mettere in ordine cerscente due numeri inseriti da tastiera. ES 7. Dato in input un numero stabilire se è pari o è dispari. ES 8. Dati in input tre numeri, stabilire qual è il maggiore, qual è il minore e quanto vale la differenza fra il maggiore e il minore. 48
Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione
DettagliRisoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
DettagliRAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
DettagliCaratteristiche di un calcolatore elettronico
Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,
DettagliPROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe
DettagliSistemi di Elaborazione delle Informazioni
Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione
DettagliCorso di Informatica Modulo T1 C1-Sequenza e selezione
Corso di Informatica Modulo T C-Sequenza e selezione Prerequisiti Analizzare un problema Scrivere un algoritmo Istruzioni semplici Espressione logica 2 Introduzione La programmazione a salti crea diverse
DettagliCAPITOLO 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)
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un
DettagliPROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI
PROBLEMI E ALGORITMI prof.ssa VESPIA CATERINA LICEO CLASSICO AGLI ANGELI C O N T E N U T I Problemi. Concetto di algoritmo. Caratteristiche di un algoritmo. Descrizione di algoritmi - Diagrammi di flusso.
DettagliCorso 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
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliPseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2007/08 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
DettagliPaolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova
Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi
DettagliDESCRIZIONI RIGOROSE c7
DESCRIZIONI RIGOROSE c7 Es. cucinare la pasta asciutta per una famiglia La descrizione rigorosa della strategia risolutiva prevede Analisi del problema (con chiara individuazione degli obiettivi e dei
DettagliProblema: 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
DettagliLinguaggi algoritmici A. Ferrari
Linguaggi algoritmici A. Ferrari Caratteristiche di un linguaggio algoritmico Non ambiguità Capacità di esplicitare il flusso di esecuzione delle istruzioni Deve contenere istruzioni di tipo: operativo
DettagliFlow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.
Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi ugo.rinaldi@gmail.com 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma
DettagliSviluppo di programmi
Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili
DettagliIL COSTRUTTO SELEZIONE
IL COSTRUTTO SELEZIONE Il costrutto selezione Permette di effettuare una scelta tra due possibili opzioni. Tale scelta verrà effettuata valutando il valore di verità di una condizione espressa da una proposizione
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
DettagliCorso di Programmazione Dati e Istruzioni. Comunicazione dell algoritmo all elaboratore. Programmazione. Dott. Pasquale Lops
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Dati e Istruzioni Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/28 Comunicazione dell algoritmo all
DettagliSviluppo 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
DettagliLA 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
DettagliComputer. Capitolo 2. 05/04/2012 continuazione 1
Computer Capitolo 2 05/04/2012 continuazione 1 Le prestazioni del computer Velocità delle cpu, ossia numero d istruzioni eseguite nell unità di tempo; Dimensione delle RAM; Capacità e velocità in scrittura/
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliIntroduzione 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
DettagliIntroduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 2 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliSviluppo 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
DettagliBasi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi
Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
Dettagliin 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
DettagliAlgoritmi. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
DettagliLA 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
DettagliIntroduzione 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
DettagliIstruzioni 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
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliBasi della programmazione in Java
Basi della programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai
DettagliSommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 2017/2018 Sommario Algoritmi, linguaggi
DettagliIng. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
DettagliL 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
DettagliMODULO 1. CONCETTI DI BASE DELL ICT
MODULO 1 CONCETTI DI BASE DELL ICT UNITA DI APPRENDIMENTO 1: IL LINGUAGGIO DI PROGRAMMAZIONE 11 LA PROGRAMMAZIONE STRUTTURATA Dopo avere visto come è possibile rappresentare un algoritmo utilizzando un
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliRappresentazione 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
DettagliCorso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato
Corso di JavaScript B1 Tipi di dato e operatori 1 Prerequisiti Concetto di variabile, espressione e tipo di dato 2 1 Introduzione In questa Unità illustriamo alcuni strumenti operativi per la scrittura
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliL uomo come esecutore di algoritmi
L uomo come esecutore di algoritmi l L algoritmo è l insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato. l Un algoritmo
DettagliLab 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
DettagliAltrimenti, 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
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere
DettagliIntroduzione all informatica
Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell
DettagliAlgoritmi. Andrea Passerini Informatica. Algoritmi
Andrea Passerini passerini@disi.unitn.it Informatica Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale
DettagliFondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi
Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 15
DettagliSistemi di numerazione
SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica
DettagliAlgoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile
Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,
DettagliProgrammazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
DettagliLinguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»
Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite
DettagliPROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione 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 altra, riga per
DettagliALGORITMI. 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
DettagliDal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione
Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore
DettagliLaboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
DettagliCorso di Informatica
Corso di Informatica Modulo T1 2-Iterazione 1 Prerequisiti Salto condizionato Salto incondizionato Espressione logica 2 1 Introduzione In alcuni casi si presenta la necessità di eseguire un ciclo, ossia
DettagliINFORMATICA. 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
DettagliPseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.
Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semi formale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliMODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliCorso 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
DettagliElementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.
Elementi di Informatica Corso di Laurea in Ingegneria Biomedica aa 2003/2004 Ing. Antonio Coronato 1 Introduzione 2 Cos è l informatica Scienza della rappresentazione e della elaborazione (trasformazione)
DettagliFasi 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
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi
DettagliElementi di Informatica e Programmazione
Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliPASCAL 1. 27/03/2004 Pascal 1 prof. Bruno Franceschini - ITI Bolzano
PASCAL 1 Vediamo gli elementi di base del linguaggio PASCAL, un linguaggio per comunicare al calcolatore una serie di istruzioni, che rappresentano un algoritmo, che sarà in grado di svolgere dopo averle
DettagliInformatica. Come si risolve un problema?
Informatica Elaborazione automatica dell informazione Esempio di elaborazione: rubrica, elenco telefonico. Ogni problema di elaborazione dell informazione è caratterizzato da: un insieme di dati di partenza
DettagliLezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione
Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione
DettagliLezione 4. Dati ed istruzioni di base
Lezione 4 Dati ed istruzioni di base Cosa vedremo I Dati: Gli oggetti che conosce il computer Le istruzioni: Le azioni che conosce il computer Dat Oggetti con cui si lavora Il computer conosce solo alcuni
DettagliLaboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 28 novembre 2007 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto
DettagliUniversità di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Docente : Ing. Secondulfo Giovanni Anno Accademico 2010-2011 Lezione 3: La Formalizzazione degli Algoritmi Dati e Variabili
DettagliLa Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema
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. 1 La Programmazione
DettagliLezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi
Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliConcetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
DettagliDall analisi alla codifica (1)
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema
Dettagli