Algoritmo. Obiettivo: dato un problema definire un procedimento che possa essere eseguito automaticamente da un esecutore per risolvere il problema
|
|
- Marisa Marilena Papi
- 5 anni fa
- Visualizzazioni
Transcript
1 Algoritmo Obiettivo: dato un problema definire un procedimento che possa essere eseguito automaticamente da un esecutore per risolvere il problema Definizione di Algoritmo Dato un problema e un esecutore, l algoritmo è: una succesone finita di pas elementari (operazioni e direttive) eseguibili senza ambiguità dall esecutore che risolve il problema dato Proprietà degli Algoritmi Procedimenti sequenziali: un passo dopo l altro secondo un ordine specificato (flusso di esecuzione) I pas elementari devo essere eseguiti in modo univoco dall esecutore devo essere descritti in una forma eseguibile per l esecutore La descrizione di un algoritmo per un esecutore deve avere una formulazione generale la soluzione individuata n deve dipendere solo da valori predefiniti dei dati, co che l algoritmo a utilizzabile nel maggior numero posbile di ca gli algoritmi prevedo particolari pas destinati ad acquire i valori dei dati da utilizzare ed elaborare in ogni particolare esecuzione L esecutore deve terminare in tempo finito per ogni ineme di valori in ingresso L esecutore deve essere in grado di eseguire l algoritmo con le risorse a sua dispozione (informazioni + teclogia) 1
2 Proprietà degli Algoritmi Ogni operazione o direttiva deve: terminare entro un intervallo finito di tempo Es.: calcolare le cifre decimale di π, NO! produrre un effetto osservabile (stato prima dell esecuzione, stato dopo l esecuzione) Es.: pensare al numero 5, NO! Produrre lo stesso effetto ogni volta che viene eseguita a a partire dalle stesse condizioni iniziali Es. X=5, y=10 x+y=15 Elementi degli Algoritmi Oggetti: le entità su cui opera l algoritmo Dati iniziali del problema, informazioni auliarie, risultati parziali e finali Le informazioni so dette dati (anche i risultati parziali e finali) e posso essere variabili o costanti Operazioni: Interventi da effettuare sui dati Calcoli, confronti, ricopiature,acquizioni, emisoni, ecc. Flusso di controllo: l indicazione delle posbili succesoni dei pas dell algoritmo La correttezza dei risultati dipende n solo dalla corretta esecuzione delle ngole operazioni, ma anche dalla corretta sequenza con cui so eseguite NOTA: Flusso di controllo: la descrizione a priori di tutte le posbili sequenze nell esecuzione dei pas dell algoritmo, in particolare di operazioni in alternativa e di operazioni da ripetere più volte ciclicamente Flusso di esecuzione: la sequenza di operazioni effettivamente seguita durante una particolare esecuzione dell algoritmo e che dipende dai particolari valori che i dati assumo in quell esecuzione 2
3 Rappresentazione di un algoritmo destinato all esecuzione automatica Rappresentazione di un algoritmo Descrizione, univoca per l esecutore, di tutte le posbili sequenze di operazioni da eseguire per risolvere il problema dato Descrizione del flusso di controllo, delle operazioni eseguibili, e degli oggetti su cui agisco le ngole operazioni E necessario un formalismo di rappresentazione, cioè un linguaggio costituito da: Vocabolario: ineme di elementi per la descrizione di oggetti, operazioni e flusso di controllo Sintas: ineme di regole di compozione degli elementi in fra eseguibili e costrutti di controllo (istruzioni) Semantica: ineme di regole per l interpretazione degli elementi e delle istruzioni ntatticamente corrette Linguaggi di descrizione di algoritmi Formalismi descrittivi costituiti da LINGUAGGI (artificiali) DI PROGRAMMAZIONE Oggetti rappresentati tramite mi mbolici (identificatori) Variabile: una rappresentazione mbolica dei dati a cui posso attribuire diver valori di un certo tipo Operazioni rappresentate mediante operatori (es. +) o funzioni (es. cos(x)) Sequenza di operazioni (flusso di controllo) con appoti costrutti di controllo Corrispondenza tra concetti e loro rappresentazione nei linguaggi di rappresentazione CONCETTO oggetto operazione direttiva flusso di controllo algoritmo RAPPRESENTAZIONE identificatore operatore, funzione istruzione costrutti di controllo programma 3
4 Linguaggi di descrizione I linguaggi per descrivere gli algoritmi devo essere ti all uomo che progetta gli algoritmi e al calcolatore che deve eseguirli Fa iniziali di progetto: struttura generale dell algoritmo descrizione rigorosa del flusso di controllo descrizione semplificata delle direttive, per es. mediante l uso di linguaggio naturale Due esempi di linguaggi semiformali: schemi a blocchi (o diagrammi di flusso) elementi grafici per indicare il flusso di controllo e i tipi di operazioni elementi testuali per descrivere le operazioni e gli oggetti pseudo-codice completamente testuale costrutti di controllo descritti con la forma e le parole chiave dei linguaggi di programmazione le operazioni posso essere descritte in modo informale Schemi a Blocchi Elementi di base Blocco esecutivo operazione Blocco di inizio Blocco di terminazione Fine Flusso di controllo delle operazioni Blocco condizionale vera Condizione falsa Blocco di ingresso dati Blocco di uscita dati Operazione di ingresso Operazione di uscita 4
5 Schemi a blocchi Variabili: rappresentate tramite mi mbolici Le operazioni descritte posso essere eseguite di volta in volta sui diver valori assegnabili alle variabili (formulazione generale) Variabile: contenitore di valori Proprietà: una variabile n può essere vuota, cioè ad una variabile è sempre associato un valore Negli schemi a blocchi operazioni e condizioni so rappresentate in modo testuale e tramite mboli che rappresenta le operatori aritmetici, di confronto, ecc. Regole di compozione ed interpretazione degli elementi Compozione degli elementi flusso di controllo dell algoritmo, cioè tutte le posbili sequenze di blocchi da eseguire Un solo blocco di inizio Alme un blocco di terminazione Dal blocco di inizio e da ogni blocco esecutivo deve uscire una sola freccia Se per ogni blocco c e un solo blocco succesvo: flusso di controllo sequenziale (sequenza) operazione Da ogni blocco condizionato devo uscire due frecce contrassegnate dalle indicazioni vero () e falso () vera Condizione falsa 5
6 Regole di compozione ed interpretazione degli elementi Il flusso di controllo n è più sequenziale se dopo un blocco posso presentare diverse alternative. In questo caso usa un blocco di selezione Dal blocco di selezione esco due frecce che devo essere contrassegnate dal valore vero o falso.il succesvo blocco da eseguire dipende dal valore della condizione vera operazione1 Condizione falsa operazione2 In tutti i ca -in esecuzione- è unica la scelta del blocco succesvo da eseguire vera operazione1 Condizione falsa operazione2 Esempio Prodotto di due numeri interi potivi Diagramma di flusso con direttive in italia Leggi(W) Leggi(Y) Acquizione dall utente dei particolari valori da conderare per i due fattori del prodotto e da assegnare alle variabili W e Y Moltiplica intero W per intero Y e deta il risultato con Z Operazioni di elaborazione, valide per quala valore dei dati Scrivi (Z) Emisone all utente del risultato dell elaborazione Fine Variabili W, Y, Z intere W, Y, fattori di ingresso Z risultato in uscita 6
7 Operatori ed espresoni Operatori aritmetici: +, -,, /,... agisco sugli operandi (variabili o costanti) produco un valore numerico Operatori di confronto: >, =, <, agisco sugli operandi (variabili o costanti) produco un valore logico (vero o falso) Funzioni: cos(x), log(x), agisco su valori detti parametri (variabili oppure costanti) produco un valore Procedure: Leggi(X), Scrivi(N), agisco su valori detti parametri effettua operazioni Espresone: 5+cos(Y),... compozione di operatori, funzioni, variabili e costanti ad essa è associato un valore Assegnamento: X := 6, Y := X, Z := X+6,... Il valore dell espresone a destra dell operatore di assegnamento è assegnato alla variabile a nistra Esempio 2 Prodotto di due interi tramite somme ripetute Algoritmo: somma W a se stesso tante volte quanto vale Y Variabili: W,Y intere (valori in ingresso) Z intera (valore in uscita) Variabili auliari: NS intera (contatore del numero di somme ancora da eseguire) SP intera (valore della somma parziale) 7
8 Schema a Blocchi con ciclo a condizione finale (l algoritmo è corretto se Y>0) Leggi(W) Leggi(Y) Acquizione dei dati in ingresso e attribuzione dei loro valori a W e Y SP:=0 Inizializzazione delle variabili auliarie NS:=Y SP:=SP+W Corpo del ciclo NS:=NS-1 NS>0 Z:=SP Valutazione della condizione di uscita dal ciclo Scrivi (Z) Emisone del risultato Fine Flusso di controllo ciclico Permette di esprimere l iterazione di un ineme di istruzioni (corpo del ciclo) Il corpo del ciclo è ripetuto un numero finito di volte La ripetizione è controllata dalla valutazione della condizione di permanenza del ciclo variabile di controllo del ciclo inizializzata prima di entrare nel ciclo condizione di permanenza funzione della variabile di controllo corpo del ciclo contiene la modifica della variabile di controllo CICLO A CONDIZIONE FINALE CICLO A CONDIZIONE INIZIALE 8
9 Schema a blocchi con ciclo a condizione iniziale (l algoritmo è corretto per Y>=0) Leggi(W) Leggi(Y) SP:=0 NS:=Y SP:=SP+W NS:=NS-1 NS>0 SP:=SP+W NS>0 Z:=SP NS:=NS-1 Scrivi (Z) Fine Algoritmo con esecutore calcolatore per l esempio precedente (ciclo a condizione finale) main () { int w,y,z,sp,ns; /*dichiarazione delle variabili */ leggi(w); leggi(y); sp=0; ns=y; /*inizializzazione*/ /*inizializzazione*/ /*ciclo a condizione finale: l algoritmo e corretto solo nell ipote y>0 */ do { sp=sp+w; ns=ns-1; while (ns>0); z=sp; scrivi (z); 9
10 Algoritmo con esecutore calcolatore per l esempio precedente (ciclo a condizione iniziale) main () { int w,y,z,sp,ns; /*dichiarazione delle variabili */ leggi(w); leggi(y); sp=0; ns=y; /*inizializzazione*/ /*inizializzazione*/ /*ciclo a condizione iniziale: l algoritmo e corretto solo nell ipote y>=0 */ while (ns>0) { sp=sp+w; ns=ns-1; z=sp; scrivi (z); Raffinamenti Succesvi Nelle prime fa di progetto trascura i dettagli Man ma che il progetto evolve cosce meglio il problema U dei raffinamenti tipici: VERIFICA DEI DATI IN INGRESSO L utente può commettere errori nell immisone dei dati verifica che i dati immes a accettabili rispetto alle ipote di correttezza dell algoritmo Esempio precedente: l algoritmo n fornisce valori corretti per valori negativi di Y Y >= 0? 10
11 ESEMPIO: verifica dei dati in ingresso Leggi(W) Ipote: l algoritmo n calcola il prodotto nei ca in cui Y è < 0 Leggi(Y) Y>=0 SP:=0 NS:=Y Scrivi: Secondo fattore Negativo NS>0 SP:=SP+W NS:=NS-1 Z:=SP Scrivi (Z) Fine Flusso di controllo condizionale Costrutto di selezione semplice Si utilizza quando alcune operazioni posso essere o n essere eseguite, in dipendenza del verificar di una condizione Si esprime tramite un un blocco condizionale. Lungo u dei due rami uscenti so collocati i blocchi che descrivo le operazioni da eseguire; l altro riguarda le operazioni da n eseguire Costrutto di selezione doppia Si utilizza quando, in dipendenza del verificar di una condizione, devo eseguire operazioni alternative Si esprime tramite un blocco condizionale. Lungo u dei due rami uscenti so collocati i blocchi che descrivo le operazioni da eseguire in un caso; l altro riguarda le operazioni da eseguire in alternativa 11
12 Ipote: i due fattori posso essere potivi, nulli o negativi Leggi(W) NS:=Y CS:=1 Leggi(Y) Y>=0? NS:=-Y CS:=-1 SP:=0 NS> 0? SP:=SP+W NS:=NS-1 Z:=SP CS=1? Z:=-SP Scrivi (Z) Fine Codifica in C main () {int w,y,z,sp,ns,cs;/*dichiarazione variabili*/ leggi(w); leggi(y); if (y>=0) { ns=y; cs=1; else /*y è negativo*/ { ns=-y; cs=-1; sp=0; /*inizializzazione*/ while (ns>0) { sp=sp+w; ns=ns-1; if (cs==1) {z=sp; else {z=-sp; scrivi(z); 12
13 Esempio Problema: date le coordinate di tre punti corrispondenti ai vertici di un triangolo, ricoscere se tratta di un triangolo degenere o, e nel caso di triangolo n degenere calcolare il suo perimetro Leggere i valori delle coordinate dei vertici Triangolo degenere? SI NO Calcolare la lunghezza dei lati Calcolare il perimetro come somma delle lunghezze Scrivere il valore del perimetro Scrivere il triangolo è degenere Vuoi continuare? SI NO Fine Stesura iniziale in pseudo-codice Costrutti di controllo e parole chiave del linguaggio C main () do { while (); if () { else { Operazioni in linguaggio naturale main () /*inizio dell algoritmo*/ { do { leggi (coordinate); if (triangolo degenere) { scrivi ( Il triangolo è degenere ); else { calcola lunghezza dei lati; perimetro = somma dei lati; scrivi (perimetro); while ( vuole continuare); /*fine dell algoritmo*/ 13
14 Raffinamento 1 Leggere coord. punto A Leggere coord. punto B Leggere coord. punto C Coincido (A,B)? Coincido (B,C)? Coincido (C,A)? Allineati (A,B,C)? LAB:=distanza(A,B) LBC:=distanza(B,C) LCA:=distanza(C,A) Raffinamento della lettura dei valori delle coordinate Raffinamento della valutazione della condizione di triangolo degenere Raffinamento del calcolo della lunghezza dei lati e del perimetro PERIMETRO:= LAB+LBC+LCA Scrivere il valore del perimetro Scrivere il triangolo è degenere Scrivere Vuoi Continuare(s/n)? Leggere carattere RISP RISP= s? Fine Raffinamento della valutazione della condizione Vuoi continuare? Direttive Complesse Introduzione al concetto di sottoprogramma Operazioni elementari: direttamente eseguibili dall'esecutore Direttive complesse: devo essere raffinate ed espresse in termini di operazioni elementari Raffinamento di direttive complesse: realizzabile a parte rispetto all'algoritmo principale Le direttive complesse posso essere conderate come sottoproblemi da risolvere con un algoritmo dedicato Sottoprogrammi: descrizioni di questi algoritmi "accessori" Direttive Complesse: so chiamate ai sottoprogrammi all'inter dei programmi principali 14
15 Vantaggi nell'impiego dei sottoprogrammi Chiarezza del programma principale Tutti i dettagli so descritti nei sottoprogrammi Il programma principale descrive la struttura di controllo generale Si evita ripetizioni Alcuni sottoproblemi devo essere affrontati piu' volte nella soluzione di un problema principale il sottoprogramma può essere richiamato tutte le volte che a necessario Disponibilità di "sottoprogrammi" prefabbricati Sottoproblemi ricorrenti gai' sviluppati da programmatori esperti, raccolti nelle coddette "librerie" di sotoprogrammi Raffinamento 2: espanone delle direttive complesse Leggere valore reale AX Leggere coord. punto A Leggere coord. punto B Leggere coord. punto C Leggere valore reale AY Leggere valore reale BX Leggere valore reale BX Leggere valore reale CX Leggere valore reale CY Coincido (A,B)? AX=BX? AY=YX? 15
16 Raffinamento 2 - seguito Y B DXAB A DYAB C DXAC DYAC X Se i punti A, B, e C so allineati vale la proporzione DYAB:DXAB=DYAC:DXAC In cui il prodotto dei medi è uguale al prodotto degli estremi Coincido (A,B,C)? DYAB:=AY-BY DXAB:=AX-BX DYAC:=AY-CY DXAC:=AX-CX DYAB*DXAC=DXAC*DYAC? LAB:=distanza(A,B) LBC:=distanza(B,C) LCA:=distanza(C,A) LAB:=radiceq(quad(AX-BX)+quad(AY-BY) LBC:=radiceq(quad(BX-CX)+quad(BY-CY) LCA:=radiceq(quad(CX-AX)+quad(CY-AY) quad(n) indica N*N radiceq(n) indica N 16
Informatica A. Introduzione al Corso. A.a. 2007/2008 (PF-Z) Allievi Ingegneria Gestionale
Informatica A A.a. 2007/2008 Allievi Ingegneria Gestionale (PF-Z) Introduzione al Corso Docenti Docente: Dott. ssa Elisa Quintarelli Dipartimento di Elettronica e Informazione Email: quintare@elet.polimi.it
Dettagliistr1; istr2; istr3; istr4; istr1; istr2; istr3; istr4; istr1; istr2; istr3; istr4; Se falso instrbefore; expression Se vero instrbefore expression expression instrc; instra; instrb instra; instrb;
DettagliIntroduzione agli algoritmi
INFORMATICA B Ingegneria Elettrica Introduzione agli algoritmi Che cos è l Informatica? È una scienza, ovvero una conoscenza sistematica di tecniche/metodi per: Rappresentare dell informazione Elaborare
DettagliAlgoritmi e Programmi. Wednesday, September 29, 2010
Algoritmi e Programmi 1 Algoritmi Gestione dell informazione uso e trasformazione dell informazione in modo funzionale agli obiettivi Le informazioni sono usate e trasformate attraverso algoritmi Il concetto
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
DettagliAlgoritmi. Informatica B. Daniele Loiacono
Algoritmi 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 ogni
DettagliAlgoritmi. Informatica B. Daniele Loiacono
Algoritmi 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 ogni
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
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
DettagliCorso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
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
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un
DettagliIntroduzione 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
DettagliDiagrammi 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
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliAlgoritmi e (cenni sul) calcolatore
Algoritmi e (cenni sul) calcolatore Fondamenti di Informatica Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione Si occupa dell
DettagliUniversità degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
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)
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
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,
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
DettagliInformatica e elementi di informatica medica. Laboratori del 19 e del 22 Marzo 2010
Informatica e elementi di informatica medica Laboratori del 19 e del 22 Marzo 2010 Hello world! 1 Esercizio 1: Hello world! Scrivere un programma in linguaggio C che stampi Hello world! sullo standard
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
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
DettagliProgrammazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo
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
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
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
DettagliRappresentazione 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
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
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 Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso
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
DettagliIstruzioni di controllo: SEQUENZA
Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato
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
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
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
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
DettagliLe strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
DettagliCome scrivere bene codice? (1 di 1)
DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.
DettagliFormalismi 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
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
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
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso
DettagliRappresentazione 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
DettagliLa ripetizione. Cicli ed iterazioni. Flusso di esecuzione ciclico. La ripetizione. Flusso di esecuzione ciclico. Errore frequente
oncetto di ciclo Struttura di un ciclo Numero di iterazioni note Numero di iterazioni ignote icli ed iterazioni 5 lusso di esecuzione ciclico È spesso utile poter ripetere alcune parti del programma più
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
DettagliFondamenti di Informatica A. A. 2018/19
Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale
DettagliStrutture di controllo
Dipartimento di Ingegneria dell'informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria ivile e Ambientale MATLAB: le strutture di controllo If, while, for, do until
DettagliELEMENTI 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
Dettaglidel Linguaggio C Istruzioni di iterazione
Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il
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
Dettagli5. Codifica degli Algoritmi in C
40 5. Codifica degli Algoritmi in C La traduzione di algoritmi in linguaggi di programmazione rende posbile l esecuzione di programmi da parte del calcolatore. In questo corso codificheremo gli algoritmi
Dettaglile operazioni base per la realizzazione di un algoritmo sono 4: visualizzazione risultati intermedi, scrittura risultati finali
Operazioni fondamentali le operazioni base per la realizzazione di un algoritmo sono 4: 1 trasferimento di informazioni: acquisizione dati, visualizzazione risultati intermedi, scrittura risultati finali
Dettagli2. Algoritmi e Programmi
12 2. Algoritmi e Programmi Dato un problema, per arrivare ad un programma che lo risolva dobbiamo: individuare di cosa dispongo: gli input; definire cosa voglio ottenere: gli output; trovare un metodo
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
DettagliScienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.
Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.
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
DettagliAnalisi strutturata 1
Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliCome ragiona il computer
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti
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
DettagliI/O e strutture di controllo
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2009/2010 I/O e strutture di controllo La presente dispensa e da utilizzarsi
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Algoritmi Michele Tomaiuolo Algoritmo Il termine algoritmo deriva
DettagliStrutture di Controllo
Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro
DettagliCosa si intende con stato
Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando
DettagliGli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
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 Fondamenti di Informatica Laurea in Ingegneria ivile e Ingegneria per l ambiente e il territorio Linguaggio : Le basi Stefano
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
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
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
DettagliPag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione
DettagliIstruzioni decisionali
Istruzioni decionali 1. if 2. if-else 3. switch 91 if-else Sintas if (espresone) istruzione_1 else istruzione_2 92 1 if-else else: : semantica Viene valutata espresone Se l espresone è vera (cioè assume
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
DettagliStrutture di controllo in C. Strutture di controllo in C -- Flow Chart --
-- Flow Chart -- Corso di Informatica A Vito Perrone 1 Indice Rappresentazione degli algoritmi tramite flow chart Istruzione La parte dichiarativa L I/O Primi esempi che girano 2 Codifica degli algoritmi
DettagliInf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &
Programmazione+1+ + Mario&Pavone& & Dipar/mento+di+Matema/ca+ed+Informa/ca+ Università+degli+Studi+di+Catania+ mpavone@dmi.unict.it+ hap://www.dmi.unict.it/mpavone/+ Definizioni Algoritmo: una sequenza
DettagliCapitolo 3 L elaborazione e la strutturazione dell informazione
Capitolo 3 L elaborazione e la strutturazione dell informazione Problemi e algoritmi Definire il problema Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere,
DettagliLa formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
DettagliElaboratore 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 rre altri oggetti
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
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&#
DettagliStrutture di Controllo
Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere
DettagliInformatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema
Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica informatica informazione mezzi mezzi fisici procedure Algoritmi, dati e programmi rappresentazione dell informazione
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliINFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione
INFORmazione+autoMATICA Perché saperne di piu? Calcolatore: un supporto per la rappresentazione di informazione che può: I raccogliere impressionanti quantità di dati I eseguire velocemente e con precisione
DettagliEsempi comparati while, do...while
Esempi comparati while, do...while Algoritmo. - inizializza Somma a zero - finchè la risposta è "continuazione" - visualizza messaggio - acquisisci un numero I - aggiungi I a Somma - domanda se continuare
DettagliAlgoritmi 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
DettagliJavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132
JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni
DettagliEsercizio: divisibilità
Esercizio: divisibilità Dati un dividendo ed un divisore scrivere un algoritmo che verifichi la divisibilità start read DD,DS vero DD := DD - DS DD >= DS falso vero falso DD = 0 write "divisibile" write
DettagliCorso Informatica di Base. Flow Chart
Corso Informatica di Base Flow Chart Abbiamo detto Che.. INFORMATICA: scienza e tecnica che tratta l'elaborazione automatica dei dati e dei procedimenti di calcolo CALCOLATORE O ELABORATORE ELETTRONICO:
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
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
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
Dettagli