Esercizi svolti in aula
|
|
- Giuseppina Colucci
- 5 anni fa
- Visualizzazioni
Transcript
1 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 di algoritmi e loro rappresentazione mediante diagrammi di flusso I diagrammi di flusso, o diagrammi a blocchi, sono uno strumento grafico per la descrizione di algoritmi che può essere usato come passo intermedio verso la codifica di un algoritmo in un linguaggio di programmazione. Un diagramma di flusso rappresenta la sequenza di operazioni che compongono un algoritmo, e che dovranno essere eseguite dal suo esecutore. Un tale diagramma è composto da un insieme di blocchi, ciascuno dei quali corrisponde a una certa operazione; i blocchi sono collegati tra loro per mezzo di frecce che indicano in modo non ambiguo la sequenza nella quale le corrispondenti operazioni dovranno essere eseguite. Convenzionalmente i diagrammi di flusso vengono disegnati disponendo la sequenza dei blocchi in verticale, dall alto verso il basso. I blocchi, ovvero le operazioni che essi rappresentano, possono essere di quattro tipi principali: Blocchi che indicano l inizio o la conclusione di un algoritmo, che possono essere rappresentati dai seguenti simboli: Ogni diagramma di flusso deve iniziare con il blocco e terminare con il blocco. Tali blocchi possono comparire una sola volta in un diagramma. Si noti che essi sono gli unici blocchi a non avere frecce dirette verso di essi (nel caso del blocco ) o uscenti da essi (nel caso del blocco ). Blocchi di ingresso/uscita, o di input/output (I/O), rappresentati da parallelogrammi: essi rappresentano le operazioni di acquisizione dei valori da elaborare (i valori d ingresso dell algoritmo) e della loro memorizzazione in opportune celle di memoria, e di stampa dei risultati. Durante l esecuzione di un programma da parte di un calcolatore tali operazioni avvengono attraverso periferiche d ingresso (tastiera, memoria secondaria, ecc.) e d uscita (monitor, stampanti, ecc.). All interno di tali blocchi le due operazioni saranno rappresentate dal termine acquisire seguito dai nomi delle celle di memoria nei quali i valori da acquisire (uno o più) dovranno essere memorizzati, e dal termine stampare seguito dal nome di una cella di memoria il cui valore dovrà essere stampato, o da un messaggio rappresentato tra doppi apici, come negli esempi seguenti: acquisire x stampare p stampare "l'equazione non ha soluzioni" Il blocco di elaborazione, rappresentato da un rettangolo, che indica un espressione (di norma aritmetica) il cui valore dovrà essere memorizzato in una cella di memoria. Convenzionalmente
2 tali operazioni si indicano con la sintassi cella espressione. Negli esempi che seguono si considereranno solo operazioni aritmetiche che potranno essere composte dagli operatori di somma (+), sottrazione ( ), moltiplicazione ( ), divisione (/) e modulo (mod, ovvero il resto di una divisione tra interi), e da operandi che consistono in numeri oppure nomi di celle di memoria. Alcuni esempi di blocchi di elaborazione: x 1 p x c c + 1 Si noti che l operazione rappresentata da un blocco di elaborazione viene eseguita calcolando prima il valore dell espressione alle destra del simbolo, e poi memorizzando tale valore nella cella di memoria indicata a sinistra dello stesso simbolo. Questo significa che un operazione come c c + 1 corrisponde a incrementare di un unità il contenuto della cella di memoria c. il blocco di selezione, rappresentato da un rombo con due frecce uscenti, che esprime la scelta tra due diverse sequenze di istruzioni alternative in base al verificarsi o meno di una data condizione; la condizione consiste in un confronto tra due espressioni per mezzo degli operatori <,, =,,, >, come nell esempio seguente dove le etichette e indicano il verificarsi (ero) o meno (also) della condizione: x < 0 Per comprendere meglio il significato di un dato diagramma di flusso può essere utile eseguirlo con carta e penna, per esempio disegnando su un foglio un insieme di riquadri corrispondenti alle celle di memoria (ciascuno associato al nome di una cella distinta), e scrivendo nel riquadro corrispondente a ciascuna cella il valore da memorizzare in essa durante l esecuzione di un operazione di acquisizione o di elaborazione; se una cella contiene già un valore, questo sarà sostituito dal nuovo valore. Esercizi 1. Calcolare il valore del polinomio 3x 2 2x + 1 per un dato valore di x. L algoritmo per eseguire questo calcolo può essere descritto come una semplice sequenza di blocchi di ingresso/uscita e di elaborazione: Calcolare il valore del polinomio $3x^2-2x + 1$ per un dato valore di $x$. acquisire! " 3 %! %! 2 %! + 1 stampare "
3 " 3 %! %! 2 %! + 1 stampare " 2. Calcolare il valore assoluto di un dato numero. Questo algoritmo richiede l uso del blocco di selezione. Nella soluzione a sinistra in figura si usa una cella di memoria (di nome v) per memorizzare il risultato. Nella soluzione a destra si memorizza il risultato nella stessa cella (x) che contiene (inizialmente) il numero da elaborare: in questo caso se tale numero è positivo non è necessario svolgere nessuna elaborazione, dato che il risultato coincide con il numero stesso. Calcolare il valore assoluto di un dato numero acquisire! acquisire x! < 0 x < 0,!,! % 1 x x % 1 stampare, stampare x 3. Calcolare la radice di un equazione di primo grado ax + b = 0, per valori dati dei coefficienti. Prima di calcolare la radice è necessario verificare che il coefficiente a sia diverso da zero, attraverso un blocco di selezione., b a = 0 stampare "equazione indefinita" x b a stampare x
4 4. Calcolare le radici di un equazione di secondo grado ax 2 + bx + c = 0, per valori dati dei coefficienti (assumere che l esecutore sia anche in grado di calcolare le radici quadrate). Anche in questo caso è necessario verificare che il coefficiente a sia diverso da zero. Nel caso in cui sia diverso da zero si deve anche verificare che le radici siano reali, cioè che il termine b 2 4ac sia non negativo (si assume che l esecutore non sia in grado di elaborare i numeri complessi)., b, c a = 0 stampare "l'equazione non è di secondo grado" delta b, b 4, a, c delta < 0 stampare "le radici sono complesse" x1 b + delta 4 2, a x2 b delta 4 2, a stampare x1, x2 5. Calcolare la somma di una data sequenza di cinque numeri. Una semplice soluzione: acquisire a, b, c, d, e somma a + b + c + d + e stampare somma
5 La soluzione precedente non può però essere facilmente generalizzata (dal punto di vista della costruzione del diagramma di flusso) al caso in cui il numero di valori da sommare sia elevato, poiché richiederebbe di usare un numero corrispondente di celle di memoria i cui nomi dovrebbero essere scritti esplicitamente nel diagramma di flusso e nell espressione all interno del blocco di elaborazione. Una soluzione alternativa, e più aderente al procedimento di calcolo seguito da una persona, è quella mostrata nella figura in basso a sinistra: si calcola una somma alla volta, e in ogni istante è sufficiente ricordare l ultima somma parziale e il nuovo valore da sommare a essa (la prima somma parziale corrisponde al primo addendo); per questo si usano due sole celle di memoria. Tuttavia anche questa soluzione ha uno svantaggio: bisogna disegnare la stessa sequenza di due blocchi (acquisizione di un nuovo valore ed esecuzione di una somma) per un numero di volte pari al numero di addendi meno uno. Una soluzione migliore, anche se non banale, è quella mostrata nel diagramma in basso a destra. Questa soluzione fa uso di uno schema iterativo (evidenziato dal riquadro tratteggiato in figura) che esprime in modo conciso la ripetizione di una stessa sequenza di blocchi per un certo numero di volte; a questo scopo si usa una cella di memoria (c) per contare il numero di addendi che sono già stati considerati, e un blocco di selezione per verificare se siano già stati sommati tutti gli addendi. Notare che dopo ogni ripetizione della sequenza di due blocchi (acquisizione di un nuovo valore ed esecuzione di una somma) l esecuzione riprende dal blocco di selezione. Si noti che i tre schemi di esecuzione sequenziale, di selezione e di iterazione consentono di esprimere qualsiasi algoritmo (teorema di Böhm-Jacopini). Per questo motivo sono alla base di tutti i linguaggi di programmazione di alto livello. In particolare, tutti i linguaggi (compreso Python) comprendono due specifiche istruzioni corrispondenti alla selezione (istruzione condizionale) e all iterazione (istruzione iterativa). somma a somma a c 1 c < 5 c c + 1 stampare somma stampare somma
6 6. Calcolare la somma di una sequenza di numeri di una data lunghezza. Per descrivere questo procedimento è indispensabile l uso di uno schema iterativo, poiché il numero di somme da calcolare non è noto nel momento della formulazione dell algoritmo. La soluzione mostrata in basso consiste nel memorizzare prima il numero di addendi (che fa quindi parte dei dati d ingresso), e nel definire la condizione del blocco di selezione in funzione di tale numero. acquisire n somma a c 1 c < n c c + 1 stampare somma 7. Calcolare il fattoriale n! di un dato intero non negativo n, definito come segue: n! = (n 1) n, se n > 0 0! = 1 Anche l algoritmo per l esecuzione di questo calcolo necessita di uno schema iterativo, e può essere descritto da un diagramma di flusso simile al precedente. In questo caso i valori da moltiplicare vengono facilmente calcolati (e memorizzati nella cella c) in funzione del valore di n. Si noti che l assegnamento iniziale f 1 corrisponde al fattoriale dei primi due numeri naturali (0! e 1!): per questo motivo è sufficiente proseguire il calcolo a partire dal terzo fattore (2), ovviamente solo se il valore di n fosse maggiore o uguale a 2. acquisire n f 1 c 2 c n f f & c c c + 1 stampare f
7 8. Calcolare la somma dei primi n termini della serie armonica, per un dato valore di n: n k=1 L algoritmo è molto simile a quello per la somma di una sequenza di numeri qualsiasi, e a quello per il calcolo del fattoriale. Si noti che nella cella di memoria serie viene memorizzato inizialmente il valore 1, che corrisponde al primo termine della serie (per n = 1): per questo motivo il valore iniziale della cella k è 2, corrispondente al secondo termine della serie. 1 k acquisire n serie 1 k 2 k n serie serie + 1, k k k + 1 stampare serie
8 9. Calcolare il valore più grande di una sequenza di numeri di una data lunghezza. L algoritmo proposto è basato su una logica simile a quella degli algoritmi che calcolano una sequenza di somme o di prodotti: anche in questo caso è sufficiente acquisire i valori da elaborare uno alla volta, tenendo traccia solo del valore più grande tra quelli già acquisiti e del valore successivo. A questo scopo è sufficiente usare due celle di memoria (chiamate rispettivamente max e x), oltre a due altre celle per memorizzare la lunghezza della sequenza (n) e il numero di elementi già acquisiti (c). Secondo la logica sopra descritta il valore iniziale della cella max dovrà essere pari al primo elemento della sequenza; gli eventuali elementi successivi (se n > 1) verranno acquisiti attraverso uno schema iterativo, all interno del quale il valore della cella max verrà aggiornato ogni qual volta l ultimo elemento acquisito fosse maggiore del valore attuale di max. acquisire n acquisire x max x c 1 c < n acquisire x x > max max x c c + 1 stampare max
9 10. Calcolare il massimo comun divisore (MCD) di due numeri naturali dati. Un procedimento (algoritmo) ben noto si basa sulla scomposizione dei due numeri m e n in fattori primi: il loro MCD è dato dal prodotto dei fattori comuni, ciascuno elevato a una potenza pari all esponente più piccolo con il quale esso compare nelle due scomposizioni. Tale algoritmo è però non facilmente rappresentabile per mezzo delle operazioni elementari utilizzabili nei diagrammi di flusso considerati (si noti che tali operazioni corrispondono in buona misura a quelle esprimibili nei linguaggi di programmazione di alto livello). Un algoritmo più semplice da esprimere mediante diagrammi di flusso si può formulare partendo dalla definizione di MCD tra due numeri m e n, ovvero il più grande intero che sia divisore di entrambi. Considerando che il MCD è sempre compreso tra 1 (nel caso in cui m e n siano primi tra loro) e il più piccolo di essi (nel caso in cui questo sia anche divisore del più grande), ovvero MCD(m, n) {1, 2,..., min{m, n}}, esso può essere calcolato scandendo a ritroso i valori da min{m, n} a 1, e arrestandosi non appena si trovi un divisore comune: per definizione questo sarà pari a MCD(m, n). Tale algoritmo, rappresentato dal seguente diagramma di flusso, determina prima di tutto il più piccolo tra i due numeri, memorizzando tale valore nella cella min, e successivamente scandisce a ritroso i valori da min a 1, memorizzandoli (uno alla volta) nella cella d, attraverso uno schema iterativo; in ogni passo dell iterazione il blocco di selezione verifica se il valore attuale di d sia un divisore comune di m e n, calcolando il resto (tramite l operatore modulo) delle divisioni tra m e d e tra n e d: se d non fosse un divisore di m oppure non fosse un divisore di n (questo comprende il caso in cui non sia un divisore di m né di n) il suo valore verrebbe decrementato di una unità e l iterazione proseguirebbe; in caso contrario si sarebbe trovato il MCD e l algoritmo terminerebbe stampando il valore attuale di d. acquisire m, n m < n min n min m d min m mod d 0 oppure n mod d 0 d d 1 stampare d
10 Osservazione sugli schemi iterativi Si è già osservato che gli schemi iterativi sono fondamentali per la descrizione degli algoritmi, e che per questo nei linguaggi di programmazione è presente una specifica istruzione che consente di esprimere una iterazione, ovvero la ripetizione di una stessa sequenza di istruzioni (istruzione iterativa). Nei diagrammi di flusso gli schemi iterativi possono avere diverse strutture, come per esempio quelle mostrate nella seguente figura, dove i riquadri tratteggiati indicano una qualsiasi sequenza di blocchi: Si può dimostrare che ogni schema iterativo può essere ricondotto a uno schema equivalente avente la struttura a sinistra oppure quella a destra in figura. L istruzione iterativa dei linguaggi di programmazione corrisponde alla struttura più a sinistra: inizia con la verifica di una condizione, e se questa risulta vera viene eseguita una certa sequenza di istruzioni, dopo la quale l iterazione ricomincia con la verifica della condizione; non appena la condizione risulta falsa l iterazione termina e si passa all istruzione successiva. Per questo motivo, se si vuole usare un diagramma di flusso per rappresentare un algoritmo che dovrà poi essere tradotto in un linguaggio di programmazione si suggerisce di rappresentare gli schemi iterativi usando la struttura a sinistra in figura: in questo modo la traduzione dello schema iterativo in un istruzione iterativa sarà immediata.
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
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
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
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
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
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
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
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
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
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
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,
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
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,
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
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
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
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)
DettagliIl Concetto di Algoritmo Corso di Informatica Laurea in Fisica
Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±
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
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
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
DettagliSISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento mercoledì, 14.00-15.30. Studio 34, dip. statistica Modalità esame:
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)
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
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
DettagliVariabili e assegnazione
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Variabili e assegnazione Carla Limongelli Marzo 2009 Variabili e assegnazione 1 Contenuti Variabili a ab e assegnazionea e Variabili e aree di
DettagliNotazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte
Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla
DettagliModulo 1 Concetti di base della Tecnologia dell Informazione
Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette
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
DettagliDal 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
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
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
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento per arrivare alla soluzione Rappresentazione dell algorimo in una forma
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
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
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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
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
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
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
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
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
DettagliLa codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale
La codifica dell informazione Il codice ASCII consente di codificare le cifre decimali da a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero 324 potrebbe essere rappresentato
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
DettagliSomma di numeri binari
Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliRappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri
Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliSomma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
Dettagliunità didattica 3 Le strutture condizionali e le strutture iterative
unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell
DettagliPer gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
Dettagliliceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Definizione del procedimento per arrivare alla soluzione Rappresentazione
DettagliI.4 Rappresentazione dell informazione
I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione
DettagliSommario. Linguaggi per la rappresentazione di algoritmi. Linguaggi formali. Sintassi e semantica: esempio. Linguaggio naturale: sintassi
Sommario Linguaggi per la rappresentazione di algoritmi Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010! Linguaggi formali per la rappresentazione
DettagliAnalogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale
Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer
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
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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
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
DettagliLa codifica. dell informazione
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica
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
DettagliARITMETICA BINARIA. La somma viene eseguita secondo le regole per la somma di due bit, di seguito riportate:
ARITMETICA BINARIA Le operazioni che possono essere fatte sui numeri binari, sono le stesse che vengono effettuate sui numeri decimali. Due numeri binari possono essere quindi sommati, sottratti, moltiplicati
DettagliConversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)
Conversione binario-ottale/esadecimale Conversione binario-ottale/esadecimale Nella rappresentazione ottale (B=8) si usano gli 8 simboli,, 2, 3, 4, 5, 6, 7 In quella esadecimale (B=6) i 6 simboli,, 2,
DettagliAppunti di informatica. Lezione 3 anno accademico Mario Verdicchio
Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come
DettagliAPPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)
LGEBR \ CLCOLO LETTERLE \ MONOMI (1) Un monomio è un prodotto di numeri e lettere; gli (eventuali) esponenti delle lettere sono numeri naturali (0 incluso). Ogni numero (reale) può essere considerato come
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&#
DettagliParte 1: tipi primitivi e istruzioni C
Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una
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
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliInformatica, Informazione e Telecomunicazioni. La codifica dell informazione. Il concetto di informazione. Supporto e informazione
La codifica dell informazione Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Ivan Serina Prof. Alfonso Gerevini Informatica, Informazione
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative
DettagliIstruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliProblemi, 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
DettagliMoltiplicazione e Divisione tra numeri relativi
Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Oltre ai circuiti per realizzare somme e sottrazioni di interi,
DettagliMoltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2)
Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Oltre ai circuiti per realizzare somme e sottrazioni di interi,
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
DettagliLaboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
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
DettagliProgrammazione I Paolo Valente /2017. Lezione 6. Notazione posizionale
Lezione 6 Notazione posizionale Ci sono solo 10 tipi di persone al mondo: quelle che conoscono la rappresentazione dei numeri in base 2, e quelle che non la conoscono... Programmazione I Paolo Valente
DettagliVariabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale
DettagliAnalisi e Programmazione
Algoritmi 1 Analisi e Programmazione I Calcolatori Elettronici si differenziano da altri tipi di macchine per il fatto che possono essere predisposti alla risoluzione di problemi di diversa natura. A tale
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
DettagliIntroduzione alla Matematica per le Scienze Sociali - parte II
Introduzione alla Matematica per le Scienze Sociali - parte II Lucrezia Fanti Istituto Nazionale per l Analisi delle Politiche Pubbliche (INAPP) lucrezia.fanti@uniroma1.it Lucrezia Fanti Intro Matematica
DettagliPROGRAMMAZIONE DISCIPLINARE
Modello A2 Istituto d Istruzione Superiore POLO-LICEO ARTISTICO - VEIS02400C VENEZIA Liceo Artistico, Liceo Classico e Musicale Dorsoduro, 1073 30123 Venezia tel. 0415225252, fax 041 2414154 PROGRAMMAZIONE
DettagliLa rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione Aritmetica dei calcolatori Rappresentazione dei numeri naturali e relativi Addizione a propagazione di riporto Addizione
DettagliCalcolo numerico e programmazione Rappresentazione dei numeri
Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori
DettagliProgrammazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
DettagliInformatica, Informazione e Telecomunicazioni. La codifica dell informazione. Supporto e informazione. Il concetto di informazione
La codifica dell informazione Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Informatica, Informazione e Telecomunicazioni l informatica
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
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
Dettagli