Un algoritmo ben fatto deve terminare dopo un numero finito
|
|
- Armando Vigano
- 5 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani, e Programmi 1 Esempi di dal Problema all Algoritmo D. Gubiani, e Programmi 4 Esempi di Problema: Prendere un Caffè al Distributore 1 introdurre le monete per l importo necessario 2 selezionare la quantità di zucchero 3 selezionare la bevanda desiderata 4 attendere che il distributore eroghi la bevanda 5 ritirare il resto 6 ritirare la bevanda D. Gubiani, e Programmi 2 Esempi di Classe di Problemi e Un algoritmo non risolve un unico problema ma una classe di problemi strutturalmente equivalenti, in cui cambiano solo i dati di partenza Per questo motivo le istruzioni di un algoritmo fanno riferimento non direttamente ai valori ma a delle variabili, il cui valore può variare a seconda della situazione Una variabile può essere intesa come un contenitore con un nome, che la identifica univocamente, e un valore, che corrisponde in ogni istante al dato contenuto In alcune situazione, ad ogni valore è associato anche un tipo - permette di definire l insieme dei valori che la variabile può assumere valori D. Gubiani, e Programmi 5 Algoritmo Esempi di Un algoritmo è la descrizione della soluzione di un problema espressa come un insieme di istruzioni che operando sui dati iniziali permette di ottenere il risultato che costituisce la soluzione del problema Se il problema è complesso può essere scomposto in sottoproblemi, detti step Un algoritmo ben fatto deve terminare dopo un numero finito di passi D. Gubiani, e Programmi 3 Operazioni su Esempi di Assegnamento: corrisponde a introdurre un valore nel contenitore della variabile identificata dal nome, tale valore sostituisce il valore precedente - nomevariavile valore Espressioni su variabili: il valore contenuto nelle variabili viene utilizzato per calcolare il risultato dell espressione Esempi: - x 3 - y x y y x D. Gubiani, e Programmi 6
2 Esempi di Maggiore fra 2 Numeri, x e y Soluzione possibile basata sull osservazione che x è maggiore di y se x y è maggiore di 0 1 leggere il primo valore dall esterno e assegnarlo alla variabile x 2 leggere il secondo valore dall esterno e assegnarlo alla variabile y 3 calcolare la differenza fra x e y e assegnarla alla variabile d (d x y) 4 valutare se d è maggiore di 0: se è vero passare al passo 6, se è falso passare al passo 5 5 restituire il numero maggiore è seguito dal contenuto di y e passare al passo 7 6 restituire il numero maggiore è seguito dal contenuto di x 7 terminare l esecuzione D. Gubiani, e Programmi 7 Esempi di Rappresentazione mediante PseudoCodice Una metodologia comunemente utilizzata per descrivere algoritmi è la pseudocodifica: un linguaggio più vicino possibile a quello naturale - codifica di un insieme di istruzioni elementari - indentazione D. Gubiani, e Programmi 10 Esempi di Fattoriale di un Numero (Soluzione Iterativa) n! = n (n 1) leggere il valore dall esterno e assegnarlo alla variabile n 2 assegnare alla variabile fatt il valore 1 (fatt 1) 3 se n = 1, passare al passo 7 4 assegnare alla variabile fatt il valore della variabile stessa moltiplicato per n (fatt fatt n) 5 decrementare di 1 la variabile n (n n 1) 6 passare al passo 3 7 restituire il contenuto di fatt 8 terminare l esecuzione D. Gubiani, e Programmi 8 Esempi di PseudoCodice: Assegnamento e Condizionale Assegnamento: - assegna alla variabile n il valore v - n v Condizionale: - se la condizione A è vera allora esegui B (altrimenti esegui C) - if A then B [else C] D. Gubiani, e Programmi 11 Esempi di Fattoriale di un Numero (Soluzione Ricorsiva) n! = { 1 se n 1 n (n 1)! se n > 1 (1) 1 leggere il valore dall esterno e assegnarlo alla variabile n 2 se n = 1, vai al passo 4 3 restituire n FATTORIALE(n 1) e passare al passo 5 4 restituire 1 5 terminare l esecuzione D. Gubiani, e Programmi 9 PseudoCodice: Cicli Esempi di Ciclo while: - finché A è vera esegui B - while (A) do {B Ciclo for: - ripeti j i + 1 volte B - for cont i to j do {B D. Gubiani, e Programmi 12
3 Esempi di Rappresentazione mediante Diagrammi di Flusso Un linguaggio formale grafico spesso utilizzato per la codifica degli algoritmi è costituito dai diagrammi di flusso - insieme di blocchi che rappresentano le strutture comunemente utilizzate legate fra di loro da frecce che ne indicano l ordine di esecuzione D. Gubiani, e Programmi 13 Esempi di Fattoriale di un Numero (Sol. Iterativa) - 1 FATTORIALE(n) fatt 1 while (n > 1) do { fatt fatt n n n 1 return fatt D. Gubiani, e Programmi 16 Esempi di Maggiore fra 2 Numeri, x e y - 1 MAGGIORE read x read y d x y if (d > 0) then { return x else { return y D. Gubiani, e Programmi 14 Esempi di Fattoriale di un Numero (Sol. Iterativa) - 2 FATTORIALE(n) fatt 1 i 2 while (i n) do { fatt fatt i i i + 1 return fatt D. Gubiani, e Programmi 17 Esempi di Maggiore fra 2 Numeri, x e y - 2 MAGGIORE(x, y) d x y if (d > 0) then { return x else { return y D. Gubiani, e Programmi 15 Esempi di Fattoriale di un Numero (Sol. Ricorsiva) FATTORIALE(n) if (n > 1) then { return n FATTORIALE(n 1) else{ return 1 D. Gubiani, e Programmi 18
4 Al crescere della complessità degli algoritmi l impiego delle singole variabili diventa inefficiente Esempio: determinare il valore massimo fra 100 numeri - bisognerebbe definire 100 variabili distinte da confrontare due a due Strutture dati: aggregati organizzati di più variabili D. Gubiani, e Programmi 19 Ordinamento di n numeri INPUT: sequenza di n numeri (a1, a2an) OUTPUT: permutazione degli elementi a 1,a 2 a n tali che a 1 a 2 a n D. Gubiani, e Programmi 22 Diverse Strutture dati statiche: - vettori e matrici - record Strutture dati dinamiche: - liste - code e pile - alberi e grafi D. Gubiani, e Programmi 20 Insertion Sort INSERTION SORT(A) for j 2 to length(a) { key A[j] i j 1 while ((i > 0) and (A[i] > key)) do { A[i + 1] A[i] i i + 1 A[i + 1] key D. Gubiani, e Programmi 23 (array) Un vettore (array) è un insieme ordinato di n elementi dello stesso tipo Una vettore è identificato da un nome v e ogni elemento è individuato univocamente da un indice i che indica la sua posizione - v[i] con i {1..n v[1] v[2] v[n 1] v[n] D. Gubiani, e Programmi 21 Merge Sort MERGE SORT(A, p, r) if (p < r) then { q int((p + r)/2) MERGE SORT(A, p, q) MERGE SORT(A, q + 1, r) MERGE(A, p, q, r) D. Gubiani, e Programmi 24
5 Per eseguire un algoritmo su un calcolatore è necessario descriverlo in un linguaggio formale, chiamato linguaggio di programmazione, interpretabile dal calcolatore stesso L algoritmo è così tradotto in un programma D. Gubiani, e Programmi 25 Diversi Linguaggi di Programmazione - 2 Un linguaggio a metà strada tra queste metodologie è Java - il codice sorgente viene compilato in un formato intermedio (chiamato bytecode), il quale a sua volta viene interpretato dalla Java Virtual Machine (JVM) D. Gubiani, e Programmi 28 Processo per la Creazione dei Programmi D. Gubiani, e Programmi 26 è un linguaggio di programmazione compilativo Alcune caratteristiche: - creato da Niklaus Wirth per scopi didattici - chiamato in onore del matematico e filosofo francese Blaise, inventore della prima macchina calcolatrice automatica - prima implementazione del linguaggio divenne operativa nel 1970, ma raggiunse una discreta diffusione nel campo industriale nel la sua evoluzione orientata ad oggetti è il Delphi - sintassi chiara e rigida - diversi compilatori gratuiti: Free, Lazarus, Dev- D. Gubiani, e Programmi 29 Diversi Linguaggi di Programmazione - 1 linguaggi interpretati: il testo di un programma scritto è elaborato da un interprete durante l esecuzione del programma stesso: l interprete legge un istruzione, la traduce in un insieme di istruzioni macchina (il linguaggio macchina) direttamente eseguibili dalla CPU del calcolatore, poi passa a leggere l istruzione successiva, la traduce, e cosí via. - perl, php, linguaggi compilati: prevedono la compilazione, ossia la traduzione dell intero programma in linguaggio macchina, prima dell esecuzione del programma stesso - C, C++, Visual Basic, D. Gubiani, e Programmi 27 Struttura generale di un Programma Sezione dell Intestazione: specifica il nome del programma Sezione delle Dichiarazioni: indicazione delle variabili con la specifica del relativo tipo di dato (insieme dei valori che la variabile può assumere) Sezione Esecutiva: programma vero e proprio D. Gubiani, e Programmi 30
6 Tipi di Dato I tipi di dato determinano l insieme dei valori che una variabile può assumere: - byte: numeri interi positivi su 1 byte - word: numeri interi positivi su 2 byte - shortint: numeri interi su 1 byte - integer: numeri interi su 2 byte - longint: numeri interi su 4 byte - real: numeri reali su 6 byte - boolean: valori booleani (1 bit) - char: caratteri (1 byte) - string: sequenza di caratteri (dimensione variabile a partire da 10 byte) D. Gubiani, e Programmi 31 Operatori di Confronto = uguale a <> diverso da > maggiore di >= maggiore o uguale a < minore <= minore o uguale a D. Gubiani, e Programmi 34 Dichiarazione delle e Assegnamento I programmi richiedono la dichiarazione delle variabili con la specifica del relativo tipo di dato nella sezione var Esempi di dichiarazioni: x : real; # dichiarazione di una variabile di tipo reale y1, y2 : integer; # dichiarazione di due variabili di tipo intero c : char; # dichiarazione di una variabili di tipo carattere Esempi di assegnamento: x := 10, 5; y1 := y2 10; c := c ; D. Gubiani, e Programmi 32 Alcuni Controlli di Flusso: Condizionale IF condizione THEN istruzione1 ELSE istruzione2; Esempio: incrementa di 1 il valore di a se b è maggiore di 0, altrimenti lo decrementa di 1 if b > 0 then a := a + 1 else a := a 1; D. Gubiani, e Programmi 35 Operatori Aritmetici e Logici Operatori aritmetici: - + addizione - - sottrazione - moltiplicazione - / divisione - DIV quoziente della divisione tra interi - MOD resto della divisione tra interi Operatori logici - OR disgiunzione logico - AND congiunzione logico - NOT negazione logica D. Gubiani, e Programmi 33 Alcuni Controlli di Flusso: Ciclo WHILE WHILE condizione DO istruzione; Esempio: calcola la potenza n-esima di 2 (n 0) x := 1; while n > 0 do BEGIN x := x 2; n := n 1 END; D. Gubiani, e Programmi 36
7 Alcuni Controlli di Flusso: Ciclo REPEAT REPEAT istruzione UNTIL condizione; Esempio: calcola la potenza n-esima di 2 (n 1) x := 1; repeat x := x 2; n := n 1 UNTIL n < 1; D. Gubiani, e Programmi 37 dichiarazione di un vettore nome vettore : array[1..n] of tipo dato; accesso ad uno specifico valore del vettore nome array[indice] Esempio: incremento di 1 dei primi 3 valori di un vettore for i := 1 to 3 do vettore[i] := vettore[i] + 1; Esempio: stampa di un vettore di lunghezza n for i := 1 to n do writeln(vettore[i]); D. Gubiani, e Programmi 40 Alcuni Controlli di Flusso: Ciclo FOR FOR a := ni TO nf DO istruzione Esempio: calcola la potenza n-esima di 2 (n 0) x := 1; FOR i := 1 TO n DO x := x 2; D. Gubiani, e Programmi 38 Procedure e Funzioni Una procedura/funzione è una porzione di codice riutilizzabile Entrambi possono prevedere parametri in ingresso: - passaggio parametro per valore - passaggio parametro per riferimento Le funzioni restituiscono un valore in uscita D. Gubiani, e Programmi 41 Input e Output READ/READLN (abbreviazione Read Line): legge i dati di input da tastiera READLN (variabile) WRITE/WRITELN (abbreviazione Write Line): stampa i dati di output sullo schermo WRITELN(output) Esempio: lettura di un carattere da tastiera e scrittura dello stesso a video WRITE ( Inserisci un carattere : ); READLN (c); WRITELN ( Carattere inserito :, c); D. Gubiani, e Programmi 39 Procedure Definizione di una procedura: procedure nome procedura(parametri); var begin end; Invocazione di una procedura: nome procedura(variabili); D. Gubiani, e Programmi 42
8 Funzione Definizione di una funzione: function nome funzione(parametri) : tipo restituito; var begin nome funzione := end; Invocazione di una funzione: x := nome funzione(variabili); D. Gubiani, e Programmi 43 Fattoriale Iterativo D. Gubiani, e Programmi 46 e Procedure/Funzioni Locali: definite all interno di una procedure/funzioni, possono essere richiamate solo all interno della specifica procedure/funzioni Globali: definite nel programma principale, possono essere utilizzate in tutto il programma, anche all interno delle procedure/funzioni D. Gubiani, e Programmi 44 Fattoriale Ricorsivo D. Gubiani, e Programmi 47 Maggiore fra 2 Numeri D. Gubiani, e Programmi 45 Insertion sort D. Gubiani, e Programmi 48
9 Merge sort D. Gubiani, e Programmi 49
Elementi di Informatica
Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi
Dettagli1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata
Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani
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
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
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
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
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
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
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
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliUD 3.2b: Programmazione in Pascal (1)
UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione
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
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
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
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio
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
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliCognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
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
DettagliOctave. Luca Abeni. Informatica Luca Abeni 1 / 21
Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...
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
DettagliPASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.
PASCAL standard Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. Nb: primi linguaggi furono: Fortran, Algol, Ada, Cobol (cfr testo)
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
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
DettagliStudio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
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
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,
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
DettagliSommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 2017/2018 Sommario Algoritmi, linguaggi
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
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
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:
DettagliCome 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 Per risolvere il problema
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
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&#
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
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,
DettagliRappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
DettagliCorso di 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
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
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
DettagliFondamenti di Informatica T-1. Selezione
Selezione 2 Selezione Permette di differenziare il flusso di controllo a seconda che sia verificata o meno una condizione. Il flusso di controllo si ramifica in due (o più) sequenze di istruzioni alternative.
DettagliPseudocodice; La miglior soluzione per leggere e capire facilmente gli esercizi di programmazione delle selezioni scolastiche. Lo Staff delle OII
Pseudocodice; La miglior soluzione per leggere e capire facilmente gli esercizi di programmazione delle selezioni scolastiche. Lo Staff delle OII 6 novembre 2018 Come anticipato nell ultima revisione del
DettagliConcetti base programmazione. Antonio Gallo
Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,
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
Dettagli10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II
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 ivile e Ingegneria per l ambiente e il territorio 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
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliSelezioni scolastiche 2018
Selezioni scolastiche 2018 Come funziona lo pseudocodice Lo Staff 4 novembre 2018 Da questa edizione delle fasi scolastiche delle Olimpiadi Italiane di Informatica nella sezione Problemi di Programmazione
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
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
DettagliEvoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliINTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL. Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio.
INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio. ESERCIZIO: realizzare un algoritmo (in linguaggio di
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Introduzione alla Programmazione Prof. Stefano Mariani Dott. Alket Cecaj Indice Il concetto di algoritmo Algoritmo vs. programma
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
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
DettagliLa Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema
La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione
DettagliLezione 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
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliIL TEOREMA DI BOEHM-JACOPINI
IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Pseudocodifica m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,
DettagliArray in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
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
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliProblema: calcolare il massimo tra K numeri
Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti
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
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
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
DettagliLinguaggi di programmazione
Linguaggi di programmazione Problema Algoritmo Programma Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo
DettagliPREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De
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
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
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
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
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
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
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
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,
DettagliProgetto e analisi di algoritmi
Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento
DettagliFondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi
Introduzione al linguaggio Java Input/output, variabili, tipi 2 Programmi e linguaggi Algoritmo sequenza finita di passi per risolvere in un tempo finito un problema Linguaggio di programmazione notazione
DettagliSTRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER
1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono
Dettagli