Gli algoritmi: definizioni e proprietà
|
|
|
- Geronima Valentini
- 10 anni fa
- Visualizzazioni
Transcript
1 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 utilizzarsi ai soli fini didattici previa autorizzazione dell autore. E severamente vietata la riproduzione anche parziale e la vendita. 25/09/2008
2 Algoritmo 1/2 Dato un problema e un esecutore, l algoritmo è: una successione finita di passi elementari (operazioni e direttive) eseguibili senza ambiguità dall esecutore che risolve il problema dato Quindi l obiettivo è passare dal problema all algoritmo Sarà compito dell esecutore seguire le direttive dell algoritmo 2
3 Algoritmo 2/2 Un algoritmo non deve dipendere solo da valori predefiniti dei dati ma anche da dati inseriti dall utente Quindi un algoritmo deve avere una formulazione generale In un algoritmo devono essere previsti particolari passi di acquisizione delle informazioni 3
4 Proprietà di un algoritmo 1/2 Correttezza: perviene alla soluzione del problema dato Efficienza: perviene alla soluzione nel modo migliore possibile La velocità è solo uno dei criteri. Si parla in generale di qualità Finitezza: Il numero di istruzioni che fanno parte di un algoritmo è finito Le operazioni definite in esso vengono eseguite un numero finito di volte. 4
5 Proprietà di un algoritmo 2/2 Il determinismo: Le istruzioni presenti in un algoritmo devono essere definite senza ambiguità Un algoritmo eseguito più volte e da diversi esecutori, a parità di premesse, deve giungere a medesimi risultati Terminazione: L esecutore deve terminare in tempo finito per ogni insieme di valori in ingresso Realizzabilità pratica: L esecutore deve essere in grado di eseguire l algoritmo con le risorse a sua disposizione (informazioni + tecnologia) Generalità Un algoritmo, compatibilmente con i vincoli espressi dal problema, si occupa della risoluzione di famiglie di problemi 5
6 Elementi degli algoritmi Oggetti: le entità su cui opera l algoritmo Operazioni: interventi da effettuare sugli oggetti Strutture di controllo: sequenza, selezione, iterazione 6
7 Oggetti Possono essere: Costanti Variabili Possono rappresentare: Dati iniziali del problema Informazioni ausiliarie Risultati parziali Risultati finali 7
8 Costanti Rappresentano dei valori che non variano durante l esecuzione dell algoritmo Possono essere sia numeriche che alfanumeriche Nel caso di costanti alfanumeriche il valore deve essere racchiuso tra doppi apici Esempio 5 è una costante numerica (il numero 5) prova è una costante alfanumerica 5 è una costante alfanumerica (il carattere 5) 8
9 Variabili Sono dei contenitori di valori identificati da nomi simbolici x, y, somma, risultato, (il nome di una variabile deve sempre iniziare con un carattere non numerico) Il nome della variabile rappresenta una scatola Il valore della variabile il suo contenuto 5 x Valore della variabile Nome della variabile x = 5 9
10 Variabili 2/2 Le variabili devono avere un tipo che rappresenta: I valori ammissibili Le operazioni che possono essere compiute sui suoi valori Esempio: una variabile di tipo numerico può assumere solo valori numerici può apparire come operando in una espressione matematica (e.g., x/y è corretta se x e y sono variabili di tipo numerico) Esempio: una variabile di tipo alfanumerico (stringa) può assumere qualunque valore non ha senso applicare l operazione di divisione (e.g., se a= ciao e b= mamma cosa vuol dire a/b?) Attenzione! Tutte le variabili devono essere inizializzate 10
11 Assegnamento L assegnamento è l operazione che permette di modificare il valore di una variabile Si indica con il simbolo := x:=6 indica che ora la variabile x contiene il valore 6 Attenzione! x:=6 è diverso da x = 6 Il primo modifica il valore della variabile Il secondo predica sul valore corrente della variabile Regole fondamentali: A sinistra dell operatore di assegnamento deve esserci il nome di una e una sola variabile A destra dell operatore di assegnamento può esserci una costante, una variabile o anche un espressione complessa Il tipo di dato della variabile a sinistra deve essere compatibile con il tipo di dato ottenuto dall espressione a destra 11
12 Operazioni 1/2 Operatori aritmetici: +, -,, /,... agiscono sugli operandi (variabili o costanti) producono un valore numerico Operatori di confronto: >, =, <, agiscono sugli operandi (variabili o costanti) producono un valore logico (vero o falso) Funzioni: cos(x), log(x), agiscono su valori detti parametri (variabili oppure costanti) producono un valore 12
13 Operazioni 2/2 Procedure: Leggi(X), Scrivi(N), agiscono su valori detti parametri effettuano operazioni Espressione: 5+cos(Y),... composizione di operatori, funzioni, variabili e costanti ad essa è associato un valore 13
14 Regole sulle operazioni Una operazione deve terminare entro un intervallo finito di tempo (Es.: calcolare le cifre decimale di π, NO!) Una operazione deve produrre un effetto osservabile (Es.: pensare al numero 5, NO!) Un operazione deve produrre lo stesso effetto ogni volta che viene eseguita a a partire dalle stesse condizioni iniziali (Es. 5+10=15 deve valere sempre) 14
15 Strutture di controllo Sequenza: le operazioni sono eseguite una in seguito all altra Selezione: blocchi di operazioni sono eseguite in alternativa Iterazione: blocchi di operazioni sono eseguite diverse volte 15
16 Rappresentazione di un algoritmo I linguaggi per descrivere gli algoritmi devono essere noti all uomo che progetta gli algoritmi e al calcolatore che deve eseguirli Fasi iniziali di progetto: struttura generale dell algoritmo descrizione rigorosa (non necessariamente formale) del flusso di controllo descrizione semplificata delle direttive, per es. mediante l uso di linguaggio naturale 16
17 Requisiti dei linguaggi Lessico (vocabolario): insieme di elementi per la descrizione di oggetti, operazioni e flusso di controllo Sintassi: insieme di regole di composizione degli elementi in frasi eseguibili e costrutti di controllo Semantica: insieme di regole per l interpretazione degli elementi e delle istruzioni sintatticamente corrette 17
18 Rappresentazione del flusso di controllo 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 possono essere descritte in modo informale 18
19 Dipartimento di Elettronica ed Informazione Politecnico di Milano Schemi a blocchi
20 Schemi a blocchi: lessico Inizio Fine operazione vera Condizione falsa Operazione di ingresso Operazione di uscita 20
21 Sintassi: alcune regole di base Per il flusso di controllo Un solo blocco di inizio Almeno un blocco di terminazione Dal blocco di inizio e da ogni blocco esecutivo deve uscire una sola freccia Da ogni blocco condizionato devono uscire due frecce contrassegnate dalle indicazioni vero (si) e falso (no) Per il flusso di esecuzione In tutti i casi, è unica la scelta del blocco successivo da eseguire 21
22 Esempio: prodotto tra due numeri Inizio Leggi(X) Leggi(Y) Acquisizione dall utente dei particolari valori da considerare per i due fattori del prodotto e da assegnare alle variabili W e Y W = X * Y Operazioni di elaborazione, valide per qualsiasi valore dei dati Scrivi (W) Emissione all utente del risultato dell elaborazione Fine 22
23 Sequenza Le frecce tra blocchi indicano una sequenza di operazioni Una operazione non inizia finché quella precedente non termina Non possono esserci due operazioni svolte contemporaneamente Inizio Leggi(X) Leggi(Y) W = X * Y Scrivi (W) Fine 23
24 Selezione 1/2 Si basa sulla valutazione di una condizione espressa all interno del simbolo romboidale Due blocchi di operazioni sono svolti in alternativa no Inizio Leggi(X) Leggi(X) X <> 0 AND Y <> 0 si W = 0 W = X * Y Scrivi (W) Fine 24
25 Selezione 2/2 Il blocco sul ramo si deve essere sempre presente Il blocco sul ramo no è opzionale Inizio Leggi(X) Leggi(X) W = 0 no X <> 0 AND Y <> 0 si W = X * Y X <> 0 AND Y <> 0 Scrivi (W) Fine 25
26 Iterazione Esprime la possibilità di ripetere un blocco di istruzioni un numero finito di volte Elementi: condizione di permanenza: funzione della variabile di controllo corpo del ciclo: contiene la modifica della variabile di controllo La ripetizione è controllata dalla valutazione della condizione di permanenza del ciclo Se la condizione è vera viene ripetuto il ciclo Se la condizione è falsa si procede con la prima operazione successiva al ciclo La condizione di permanenza può essere verificata all inizio dell iterazione (pre-condizione) alla fine dell iterazione (post-condizione) 26
27 Esempio: post-condizione Inizio Leggi(X) Leggi(Y) SP:=0 Schema a Blocchi con ciclo a condizione finale (l algoritmo è corretto se Y>0) Acquisizione dei dati in ingresso e attribuzione dei loro valori a X e Y Inizializzazione delle variabili ausiliarie SP:=SP+X Y:=Y-1 Corpo del ciclo Y>0 no W:=SP si Valutazione della condizione di uscita dal ciclo Scrivi (W) Emissione del risultato Fine 27
28 Esempio: pre-condizione Inizio Leggi(X) Leggi(Y) È a condizione iniziale ed l algoritmo è corretto per Y >=0 SP:=0 SP:=SP+X no Y>0 Y:=Y-1 Y>0 no W:=SP si si SP:=SP+X Y:=Y-1 Scrivi (W) Fine 28
29 Pre- e post-condizioni nei cicli 1/3 Nell esempio la verifica della condizione è stata spostata dalla fine all inizio del ciclo Nell esempio abbiamo migliorato l algoritmo ma in realtà i due algoritmi NON sono funzionalmente equivalenti: Il primo è corretto per y > 0 Il secondo è corretto per y >= 0 Se voglio due algoritmi equivalenti non basta quindi semplicemente spostare la condizione ma vanno verificati i casi limite 29
30 Pre- e post-condizioni nei cicli 2/3 Se volessi una versione con pre-condizione funzionalmente equivalente (valida per y>0) a quella con post-condizione SP:=SP+X Y:=Y-1 SP:=SP+X Y>0 no Y:=Y-1 si Y>0 no W:=SP Post-condizione si Sposto la condizione all inizio del ciclo e replico le istruzioni del ciclo prima che il ciclo inizi SP:=SP+X Y:=Y-1 W:=SP Pre-condizione 30
31 Pre- e post-condizioni nei cicli 3/3 Se volessi una versione con post-condizione funzionalmente equivalente (valida per y>=0) a quella con pre-condizione Y>0 si SP:=SP+X no si Y=0 no SP:=SP+X Y:=Y-1 Y:=Y-1 W:=SP Pre-condizione Sposto la condizione alla fine del ciclo e inserisco una selezione all inizio del ciclo per evitare la prima iterazione Y>0 no W:=SP Post-condizione si 31
32 Dipartimento di Elettronica ed Informazione Politecnico di Milano Pseudo-codice
33 Pseudo codice Ha le stesse finalità dello schema a blocchi senza gli stessi simboli Viene adottato un linguaggio a metà tra il linguaggio naturale e quello di programmazione Utilizza gli stessi operatori ed espressioni visti per lo schema a blocchi Le strutture di controllo sono identificate da opportune parole chiave 33
34 Sequenza Sequenza: istruzioni su righe successive indicano una sequenza di esecuzione Leggi(X) Leggi(Y) SP:=0 leggi(x) leggi(y) sp := 0 34
35 Selezione È definita dal costrutto if-then-else no W = 0 X = 0 AND Y = 0 si W = X * Y if (x<>0 AND y<>0) then w := x * y else w := 0 end if Scrivi (W) scrivi(w) X = 0 AND Y = 0 no si if (x<>0 AND y<>0) then Scrivi (W) W = X * Y w := x * y end if scrivi(w) 35
36 Iterazione (post-condizione) È definita dal costrutto do-while SP:=0 SP:=SP+X Y:=Y-1 Y>0 no W:=SP si sp:=0 do sp:=sp+x y:=y-1 while (y>0) w:=sp 36
37 Iterazione (post-condizione) È definita dal costrutto while-do SP:=0 no Y>0 si SP:=SP+X Y:=Y-1 sp:=0 while (y>0) sp:=sp+x y:=y-1 do w:=sp W:=SP 37
38 Flusso di esecuzione Il flusso di controllo: definisce tutti i cammini possibili di esecuzione si basa su ipotesi relative ai valori assumibili dalle variabili Il flusso di esecuzione: definisce un particolare cammino di esecuzione si basa su valori precisi date alle variabili ottenute anche dai dati in ingresso dall utente Il tracing è il meccanismo che permette di controllare il funzionamento di un algoritmo analizzando il valore delle variabili durante l esecuzione 38
39 Tracing In una griglia vanno messe tutte le variabili definite nell algoritmo In ogni riga va indicato il valore della variabile per ogni operazione eseguita Ipotesi di valore inserito dall utente Contenuto della variabile non definito leggi (x) leggi (y) sp:=0 while (y>0) sp:=sp+x y:=y-1 do w:=sp scrivi(w) X Y SP W 5 # # # 5 2 # # # # # # #
Descrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira
FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi
Nozione di algoritmo. Gabriella Trucco
Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere
INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Linguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
La programmazione. Sviluppo del software
La programmazione problema Sviluppo del software idea (soluzione informale) algoritmo (soluzione formale) programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico)
Come ragiona il computer. Problemi e algoritmi
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 Problema Strategia
Algebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
Cenni su algoritmi, diagrammi di flusso, strutture di controllo
Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010
DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1
DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica
Appunti di Sistemi Elettronici
Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
ALGEBRA DELLE PROPOSIZIONI
Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra
RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI
RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma
Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
Excel. A cura di Luigi Labonia. e-mail: [email protected]
Excel A cura di Luigi Labonia e-mail: [email protected] Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012
Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di
Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
Metodologie di programmazione in Fortran 90
Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di
DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.
DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come Scopo principale dell informatica è risolvere problemi con i calcolatori. Non tutti i problemi sono risolvibili con i calcolatori. Si può dimostrato
Corso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Algoritmi. Maurizio Palesi. Maurizio Palesi 1
Algoritmi Maurizio Palesi Maurizio Palesi 1 Cos è Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Un algoritmo è un metodo per la soluzione
DAL DIAGRAMMA AL CODICE
DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza
Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.
E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica
Algoritmi, dati e programmi
1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite
Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
Matematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
Automazione Industriale (scheduling+mms) scheduling+mms. [email protected]
Automazione Industriale (scheduling+mms) scheduling+mms [email protected] Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio
Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe
LINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
Fogli Elettronici: MS Excel
Fogli Elettronici: MS Excel Informatica - A.A. 2010/2011 - Excel 7.0 Foglio Elettronico Un foglio elettronico (o spreadsheet) è un software applicativo nato dall esigenza di: organizzare insiemi di dati
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Le Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Laboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - [email protected] Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
Alcune nozioni di base di Logica Matematica
Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di
Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza
GUIDA BASE DI PASCAL
1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione
Cosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
(anno accademico 2008-09)
Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato
PROVA INTRACORSO TRACCIA A Pagina 1 di 6
PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento
Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
LE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
Semantica operazionale dei linguaggi di Programmazione
Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)
DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III) Un linguaggio lineare di descrizione degli algoritmi: il linguaggio SPARKS Esercizi di conversione
Elementi di semantica operazionale
Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y
Esempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
Sistemi di Numerazione
Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema
Scopo della lezione. Informatica. Informatica - def. 1. Informatica
Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni
Semantica Assiomatica
Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,
Sistema operativo: Gestione dei processi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi
TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO
CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,
Convertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Lezione 5. Fogli di calcolo
Lezione 5 Fogli di calcolo Cos'e' un foglio di calcolo E' una tabella che permette di fare operazioni complesse sui dati Lo scopo e' la manipolazione dei dati Programmi EXCEL (commerciale) WORKS (commerciale)
Calcolatori: Algebra Booleana e Reti Logiche
Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato
Algoritmi e diagrammi di flusso
Algoritmi e diagrammi di flusso Un algoritmo può essere descritto come una sequenza finita ed ordinata di operazioni che descrivono la soluzione di un problema. Per sequenza finita si intende che un algoritmo
la scienza della rappresentazione e della elaborazione dell informazione
Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione
Introduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione
Arduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
Linguaggi di programmazione
Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore
SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI. Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione
SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione Descrittori Classe 1 Descrittori Classe 2 Descrittori Classe 3 Descrittori Classe 4 Descrittori
Analizzatore lessicale o scanner
Analizzatore lessicale o scanner Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner, attraverso un esame carattere per carattere dell'ingresso,
Variabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
Matlab: Strutture di Controllo. Informatica B
Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente
Funzionalità di un Algoritmo
ALGORITMI Cosa è un algoritmo Un algoritmo è una sequenza di azioni che consente di pervenire alla soluzione di un problema mediante una sequenza finita di operazioni, completamente e univocamente determinate.
Elementi di Informatica e Programmazione
Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos
MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali
Introduzione Sistemi Informativi Linguaggi per la modellazione dei processi aziendali Paolo Maggi Per progettare un sistema informativo è necessario identificare tutti i suoi elementi
La selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN
ALGORITMI E MACCHINA DI VON NEUMANN 1 COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste
Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.
Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue
risulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
Informatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio
Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento
Progettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
Elementi di semantica denotazionale ed operazionale
Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile
Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo
