Laboratorio di Informatica (Chimica)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Informatica (Chimica)"

Transcript

1 Laboratorio di Informatica (Chimica) Algoritmi, Dati e Programmi. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. cazzola@dico.unimi.it Walter Cazzola Algoritmi, Dati e Programmi 1

2 Algoritmi, Dati e Programmi Introduzione ai concetti di: Algoritmo; Programma; Dato; Diagramma di flusso; Linguaggio di programmazione. Walter Cazzola Algoritmi, Dati e Programmi 2

3 Algoritmi, Dati e Programmi: Nozioni Algoritmo = Successione di operazioni elementari che possono essere eseguite da un calcolatore. Dato = informazione da elaborare rappresentata in un formato che consenta al programma di operare su di essa. Programma = algoritmo in un linguaggio comprensibile dal computer. Linguaggio macchina = Basato sul set di istruzioni della macchina, rappresentato da sequenze di 0 e 1. Linguaggio ad alto livello = Linguaggio più vicino al linguaggio naturale, rigoroso e non ambiguo. Walter Cazzola Algoritmi, Dati e Programmi 3

4 Elaborazione dell Informazione Ogni problema legato all elaborazione di informazioni è caratterizzato da: un insieme di dati di partenza, ed un risultato cercato. Ogni sua soluzione è: una procedura che genera il risultato cercato a partire dall insieme dei dati di partenza specificati. Walter Cazzola Algoritmi, Dati e Programmi 4

5 Elaborazione dell Informazione Distinguiamo tra: conoscenza di come si risolve un problema: analisi del problema; identificazione di una soluzione; e descrizione della soluzione ed effettiva capacità di risolvere un problema: interpretazione della soluzione; e attuazione della soluzione La conoscenza di come si risolve un problema è ciò che ci permette di sviluppare un programma. Walter Cazzola Algoritmi, Dati e Programmi 5

6 Elaborazione dell Informazione Il programma sarà poi interpretato ed eseguito da un esecutore (es. calcolatore). Un esecutore è caratterizzato da: il linguaggio che è in grado di interpretare; l insieme di azioni che è in grado di compiere; e l insieme delle regole che ad ogni costrutto linguistico sintatticamente corretto associano le relative azioni da compiere. Walter Cazzola Algoritmi, Dati e Programmi 6

7 Elaborazione dell Informazione Per la descrizione della soluzione si utilizza: linguaggio naturale (ad es. italiano, inglese, ): ambiguo; linguaggio formale (non ambiguo): formalismo matematico; pseudo-codice codice; diagramma di flusso; e linguaggio di programmazione. La descrizione rigorosa di un metodo che consente di ottenere un risultato attraverso passi elementari si chiama algoritmo. Walter Cazzola Algoritmi, Dati e Programmi 7

8 Elaborazione dell Informazione Processo di sviluppo di un programma: analisi del problema e identificazione di una soluzione; formalizzazione della soluzione e definizione dell algoritmo risolutivo; programmazione in un linguaggio di programmazione ad alto livello ; e traduzione in linguaggio macchina Walter Cazzola Algoritmi, Dati e Programmi 8

9 Algoritmo Un algoritmo è un insieme finito ed ordinato di passi che determinano un procedimento atto a risolvere in un tempo finito un problema utilizzando i dati iniziali ed ottenendo dei risultati. Esempi: Algoritmi per eseguire le 4 operazioni che ci sono stati insegnati alle elementari Espressi in un linguaggio adatto ai bambini Ricette di cucina Espresse nel linguaggio dei libri di cucina Walter Cazzola Algoritmi, Dati e Programmi 9

10 Algoritmo: Esempio Esempio: Algoritmo per accedere al proprio account sul computer del laboratorio: 1. Accendere lo schermo se è spento; 2. Scrivere il proprio <username< username> > nella riga in cui compare la scritta login: 3. Scrivere la propria <password> nella riga in cui compare la scritta password; 4. Se il sistema risponde con la frase: «utente non abilitato» ritornare al punto 2. e riprovare; 5. Se il sistema continua a rispondere con la frase: «utente non abilitato» allora chiamare il tutor. Walter Cazzola Algoritmi, Dati e Programmi 10

11 Algoritmi e Programmi: Sviluppo Per costruire un programma conviene procedere con metodo: passando da un analisi del problema da risolvere, all algoritmo della soluzione rappresentato in un linguaggio adatto all uomo ma non troppo lontano dai linguaggi di programmazione, ed infine al programma scritto nel linguaggio di programmazione prescelto. Walter Cazzola Algoritmi, Dati e Programmi 11

12 Algoritmi e Programmi: Sviluppo Introdurremo la nozione di: contenitore di dati (variabile) come astrazione dalla nozione di zona della memoria utilizzata da un computer per i dati Descriveremo gli algoritmi mediante: diagrammi di flusso; ; e un linguaggio di programmazione didattico (LP) Walter Cazzola Algoritmi, Dati e Programmi 12

13 Processo di Sviluppo A. Diamo un nome al problema e partiamo dall analisi del problema; B. Scriviamo la specifica funzionale; C. Outline dell algoritmo, 1. Si introducono i contenitori di dati necessari e le relative operazioni elementari; 2. Si disegna un diagramma di flusso che indica in modo preciso e non ambiguo la successione di operazioni da eseguire; D. Traduciamo il diagramma di flusso in un programma. Walter Cazzola Algoritmi, Dati e Programmi 13

14 A. Problema e Analisi del Problema L analisi del problema è il primo passo e deve fornire: un nome e una breve descrizione di cosa si vuol fare; un elenco di requisiti: : richieste che il programma deve soddisfare. Walter Cazzola Algoritmi, Dati e Programmi 14

15 Esempio di Analisi del Problema Problema: RADICI Descrizione: vogliamo trovare le soluzioni reali di un equazione di secondo grado. Requisiti: l equazione può non avere soluzioni, avere due soluzioni coincidenti o due soluzioni distinte; a seconda dei casi, si vuole il messaggio: nessuna radice x ; x radici coincidenti = r dove r è il valore reale delle radici; due radici distinte r1, r2 dove r1 e r2 sono i valori reali delle due radici. Walter Cazzola Algoritmi, Dati e Programmi 15

16 B. Specifica Funzionale La specifica funzionale indica: quali sono i dati iniziali,, cioè quelli da elaborare, detti anche ingressi all algoritmo; e Qual è il risultato atteso, in funzione degli ingressi, detto anche uscita dell algoritmo. Walter Cazzola Algoritmi, Dati e Programmi 16

17 Esempio di Specifica Funzionale RADICI: specifica funzionale Argomenti o ingressi: a,b,c: : numeri reali, coefficienti dell equazione da elaborare Risultati o uscite: nessuna radice x1 = x2 = r se l equazione a. x 2 +b. x+c ha radici coincidenti = r x1 = r1, x2 = r2 se l equazione a. x 2 +b. x+c ha radici distinte = r1, r2 Walter Cazzola Algoritmi, Dati e Programmi 17

18 C. Outline dell Algoritmo Descrivere brevemente l idea dell algoritmo cioè i passi da eseguire per giungere alla soluzione a partire dagli ingressi. Il primo outline non deve necessariamente essere molto dettagliato: si procede per raffinamenti successivi. Walter Cazzola Algoritmi, Dati e Programmi 18

19 Esempio di Outline dell Algoritmo RADICI: Outline dell Algoritmo. Risolvo il problema calcolando il discriminante delta dell equazione; Analizzo i vari casi di delta: < 0 = 0 > 0 Caso per caso costruisco il messaggio da inviare in uscita. Successivamente definisco le variabili coinvolte e dettaglio l algoritmo grazie ad un diagramma di flusso. Walter Cazzola Algoritmi, Dati e Programmi 19

20 C.1. Contenitori di Dati Un algoritmo deve tener traccia degli ingressi, dei risultati e dei valori intermedi che prodice durante il calcolo. Allo scopo, usa dei contenitori di dati. Un contenitore dati, detto anche variabile, è un astrazione della nozione di area di memoria contenente dei dati. I dati contenuti hanno un tipo,, che caratterizza un insieme di elementi e le operazioni possibili su di essi. Walter Cazzola Algoritmi, Dati e Programmi 20

21 C.1. Contenitori di Dati (Segue) Tipo dei Contenitori. TIPO di DATO = insieme di elementi rappresentabili in modo finito, dotato di operazioni primitive su di esso. ESEMPIO: il tipo degli interi è l insieme degli interi, sono successioni finite di cifre con eventuale segno; è l insieme degli interi, dotato delle seguenti operazioni primitive (e calcolabili): +, -, *, divisione intera, resto. pippo: : intero 54 Nome contenitore e tipo Contenuto = dato appartenete al tipo di dati associato al nome Walter Cazzola Algoritmi, Dati e Programmi 21

22 C.1. Contenitori di Dati (Segue) I contenitori di dati utilizzati per i risultati intermedi dipendono dall algoritmo: quindi, a meno di casi assai elementari, è necessario avere già un idea ben delineata dell algoritmo per determinarli difficilmente sono TUTTI prevedibili sin dall inizio; man mano che l algoritmo prende forma, si possono aggiungere al volo nuovi contenitori Walter Cazzola Algoritmi, Dati e Programmi 22

23 Esempio di Contenitori di Dati Contenitori di dati usati da RADICI. Di quali contenitori abbiamo bisogno per RADICI? Sicuramente di quelli per contenere i dati di ingresso ed il risultato: 3 contenitori per a,b,c (ingressi) e r1, r2. Eventuali contenitori per i risultati intermedi (ad es. delta) ed eventualmente quello finale. Tutti i contenitori saranno di tipo float. Walter Cazzola Algoritmi, Dati e Programmi 23

24 C.2 Diagrammi di Flusso Diagramma di Flusso: è un formalismo visuale per rappresentare in modo semplice ed intuitivo un algoritmo. Un algoritmo compie due tipi fondamentali di operazioni: calcoli primitivi: ottenibili mediante le operazioni primitive dei tipi di dati (sostanzialmente, valutando espressioni); azioni: consistono nel modificare il contenuto dei contenitori di memoria, eventualmente eseguendo calcoli primitivi. Walter Cazzola Algoritmi, Dati e Programmi 24

25 Calcoli Primitivi Valutazione di espressioni in cui compaiono i nomi dei contenitori di dati utilizzati e solo operazioni primitive disponibili sui relativi tipi di dati; il valore dell espressione è riferito allo STATO di memoria dell algoritmo, cioè al contenuto attuale dei suoi contenitori dati. Esempio: a : float 2 b : float 4 c : float 2 Stato della Memoria b. b - 4. a. c = 0 È un espressione valutabile perché contiene operazioni primitive disponibili nel tipo float. Walter Cazzola Algoritmi, Dati e Programmi 25

26 Calcoli Primitivi: Espressioni Booleane Fra le espressioni valutabili assumono particolare importanza quelle di tipo booleano. Il tipo booleano contiene due valori: vero, falso. Esempi di espressioni booleane disponibili nei tipi numerici: x < y (x + 5) = y ecc. Walter Cazzola Algoritmi, Dati e Programmi 26

27 Azioni Modificano lo stato di memoria, cioè i valori dei contenitori dati. Le azioni più semplici sono gli assegnamenti, della forma: metti ESPRESSIONE in CONTENITORE si valuta ESPRESSIONE e si mette il risultato in CONTENITORE, sostituendone il valore precedente. Esempi di altre azioni: leggi da input, scrivi su output. Esempio: Stato della Memoria a : float 2 b : float 4 c : float delta: float 2 0 Metti b. b - 4. a. c in delta. Walter Cazzola Algoritmi, Dati e Programmi 27

28 Diagrammi di Flusso Blocchi Computazionali. Blocchi Decisionali. metti x+y in y; metti x-1 x 1 in x; vero x = 0 falso Contengono sequenze di azioni. Contengono una condizione booleana: se vera, si segue la freccia etichettata vero ; se falsa si segue la freccia etichettata falso Walter Cazzola Algoritmi, Dati e Programmi 28

29 Strutture di Controllo Modulari Un diagramma di flusso si ottiene collegando le frecce uscenti dai blocchi di elaborazione e decisionali. Una buona norma è attenersi a diagrammi con strutture predefinite, con una sola freccia entrante ed una sola uscente. Tali strutture sono dette strutture di controllo e sono alla base della programmazione strutturata. Ciò consente di modularizzare (cioè dividere in parti o moduli) il diagramma; è utile poiché spesso i moduli corrispondono a sottoproblemi Walter Cazzola Algoritmi, Dati e Programmi 29

30 Strutture di Controllo Principali Sequenza. Iterazione. falso Selezione. vero vero falso Walter Cazzola Algoritmi, Dati e Programmi 30

31 Esempio Diagramma di Flusso Ingresso: 1, 2, 1 Assegna ad a,b,c i a:float b:float c:float valori d ingresso Metti il valore di b 2-4ac in delta RADICI: Diagramma di Flusso delta:float 0 MESSAGGIO: radici coincidenti = -1 Stato della Memoria delta<0? falso delta=0? falso vero MESSAGGIO: nessuna soluzione vero MESSAGGIO: radici coincidenti= -b/2a MESSAGGIO: radici distinte= (-b-radice(delta))/2a (-b+radice(delta))/2a Walter Cazzola Algoritmi, Dati e Programmi 31

32 D. Il Programma Disegnato il diagramma di flusso e quindi delineato in tutte le sue parti l algoritmo non resta che tradurlo in un programma che il calcolatore sarà in grado di eseguire. Il programma verrà scritto usando un linguaggio di programmazione (ad es.. C, Java, Matlab etc.). Noi cominceremo con un linguaggio didattico per prendere dimestichezza coi vari concetti. Walter Cazzola Algoritmi, Dati e Programmi 32

33 Linguaggi di Programmazione Un linguaggio di programmazione è costituito da: un vocabolario un insieme di regole sintattiche che specificano come comporre istruzioni ben formate una semantica che associa un significato alle istruzioni ben formate, cioè l azione denotata da ciascuna istruzione. Rispetto ad una qualsiasi lingua parlata da esseri umani, un linguaggio di programmazione è molto più semplice, perché la sua sintassi è molto semplice. Walter Cazzola Algoritmi, Dati e Programmi 33

34 Linguaggi di Programmazione Linguaggi di Basso Livello. Sono linguaggi di programmazione caratterizzati da istruzioni molto elementari (ad es. l Assembly Assembly). Richiedono uno sforzo di codifica maggiore da parte del programmatore. Linguaggi di Alto Livello. Sono linguaggi di programmazione in cui ad ogni istruzione corrisponde un insieme di azioni più articolato. Richiedono uno sforzo di codifica inferiore. Walter Cazzola Algoritmi, Dati e Programmi 34

35 Esempio Il linguaggio L1 mette a disposizione i comadi: Aggiungi_una_unità_al_dato_A Leggi_dato_A Leggi_dato_B Esegui_per <numero di volte> Il linguaggio L2 mette a disposizione i comadi: Leggi_dato_A Leggi_dato_B Somma <addendo1, addendo2> Walter Cazzola Algoritmi, Dati e Programmi 35

36 Esempio (Segue) Vogliamo scrivere un programma per la somma di due numeri memorizzati rispettivamente nei registro A e B. In L1: Leggi_dato_A Leggi_dato_B Esegui_per B volte: Aggiungi _una_unità_al_dato_a In L2: Leggi_dato_A Leggi_dato_B Somma (A, B) L2 è un linguaggio di livello più alto rispetto a L1, perché offre al programmatore la possibilità di usare istruzioni che sono meno vicine al modo in cui lavora il processore. Walter Cazzola Algoritmi, Dati e Programmi 36

37 Il Linguaggio Macchina Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio linguaggio di basso livello ( (linguaggio macchina). Ogni modello di processore (es( es: Intel, Pentium, Motorola, PowerPC) ) ha un proprio linguaggio macchina diverso da quello degli altri processori. Un programma scritto in un linguaggio diverso dal linguaggio macchina deve essere quindi tradotto nel linguaggio che il processore sa interpretare. Walter Cazzola Algoritmi, Dati e Programmi 37

38 Linguaggi di Programmazione Invece di codificare algoritmi in linguaggi macchina si utilizzano linguaggi ad alto livello. Le istruzione dei linguaggi ad alto livello sono facilmente comprensibili ai programmatori. Compilatore: : (programma che) traduce automaticamente un programma ad alto livello in linguaggio macchina. Affronteremo la programmazione tramite un linguaggio semplificato che chiameremo LP (riepilogo sintassi sul sito del corso). Walter Cazzola Algoritmi, Dati e Programmi 38

39 Nozione di Variabile Come si indirizzano le celle di memoria? Invece di usare gli indirizzi fisici si usano dei nomi simbolici (es., x, y, nome,...) che vengono mappati in indirizzi fisici attraverso la fase di compilazione. Le variabili vanno dichiarate all inizio del programma (celle diverse, nomi diversi). Valore di una variabile = contenuto corrente della cella di memoria associata alla variabile. Walter Cazzola Algoritmi, Dati e Programmi 39

40 Nozione di Costante Per esprimere direttamente valori prefissati (cioè che non devono essere modificati dal programma) si utilizzano le costanti Una costante è una rappresentazione simbolica di un numero, stringa, ecc. Ad esempio, 1, ciao, ciao 3.14,, ecc. Il set di costanti disponibile dipende dal linguaggio di programmazione. Walter Cazzola Algoritmi, Dati e Programmi 40

41 Espressioni Le espressioni servono per rappresentare calcoli a livello simbolico. Un espressione può coinvolgere nomi di variabili, costanti, operatori aritmetico-logici logici,, ecc. Es: 3+4, x+y-1 (dove x è una variabile), x>0 and y>1 Walter Cazzola Algoritmi, Dati e Programmi 41

42 Programma LP La sintassi di un programma LP consiste di due blocchi. Dichiarazione di variabili e costanti: const pi = 3.14, nome = Walter ; var x: int,, y: string,, z: float; Sono liste di dichiarazioni introdotte rispettivamente dalla keyword const e var. Sequenza di istruzioni racchiusa tra le parole chiave begin end e separate dal punto e virgola ; Walter Cazzola Algoritmi, Dati e Programmi 42

43 Esecuzione di un Programma Qual è significato (semantica) di un programma? Trasformazione da Input iniziale a Output finale! Un programma deve essere eseguito per poter calcolare la trasformazione Input Output Output. L esecuzione modifica lo stato del programma: stato iniziale, corrente, e finale. L esecuzione dipende dalla semantica dei singoli costrutti. Walter Cazzola Algoritmi, Dati e Programmi 43

44 Lettura e Scrittura Le operazioni di lettura e scrittura servono per ottenere valori in input (es. tastiera) o fornire valori in output (es. Video). Assumiamo che input e output siano sequenze di valori: write(variabile) (Variabile):: aggiunge il valore corrente di Variabile all output; read(variabile) (Variabile):: toglie il primo valore della lista input e lo assegna a Variabile. Walter Cazzola Algoritmi, Dati e Programmi 44

45 Assegnamento Si utilizza per assegnare il valore corrente di un espressione ad una variabile. L assegnamento cambia il valore della variabile. Variabile := Espressione; se nello stato corrente Espressione si valuta in val allora Variabile varrà val dopo l esecuzione dell assegnamento. Es. x:=x+1 L espressione x+1 va valutata nello stato corrente. Il risultato dell espressione è assegnato nuovamente ad x. Walter Cazzola Algoritmi, Dati e Programmi 45

46 Istruzione Condizionale Sintassi: if Condizione then Lista Istruzioni 1 else Lista Istruzioni 2 endif Condizione = Espressione Booleana. Se la condizione si valuta in vero si esegue ramo then,, altrimenti si esegue vero il ramo else Condizione falso Lista Istruzioni 1 Lista Istruzioni 2 Walter Cazzola Algoritmi, Dati e Programmi 46

47 Esempi Lettura da tastiera e scrittura su video: var s: string begin read(s); write(s); end. Leggere due numeri, sommarli e stampare il risultato: var x,y,somma: int; begin read(x); read(y); somma:= :=x+y; write(somma); end. Calcolare il massimo tra 2 valori letti in input: var x,y: int; begin read(x); read(y); if x>y then write(x) else write(y); endif end. Walter Cazzola Algoritmi, Dati e Programmi 47

48 Istruzione Ciclica Sintassi: while Condizione do Lista Istruzioni endw Lista Istruzioni viene eseguita fintantochè Condizione si valuta in vero. Quando Condizione si valuta in falso si passa all istruzione seguente nel programma Condizione vero Lista Istruzioni falso Walter Cazzola Algoritmi, Dati e Programmi 48

49 Esempio: Somma di K Numeri Problema: : leggere K, e quindi calcolare la somma di K valori letti dall input. Devo memorizzare K, la somma, e i valori letti V1,V2,,VK Poiche uso ogni Vi una sola volta, bastano 3 variabili: K, x ed S; x manterrà il valore Vi corrente, S la somma progressiva; var K, x, S: int; begin read(k); S:=0; while K>0 do read(x); S:=S+x; K:=K-1; endw; write(somma); end. Walter Cazzola Algoritmi, Dati e Programmi 49

50 Esecuzione del while Inizialmente: val(x), (x),val(k)=indefiniti,val(somma)=0. Leggo il valore 3: val(k)=3 Poiché val(k)>0, entro nel ciclo. Leggo il primo valore in input V1 su cui fare la somma e lo memorizzo in x. Calcolo somma=somma+x, e decremento K. Cioè dopo l esecuzione delle istruzioni dentro il ciclo val(x)=3, val(somma)=3, val(k)=2 Proseguo con il ciclo fino a che val(k)=0. A tal punto esco dal ciclo e scrivo il valore finale di somma Walter Cazzola Algoritmi, Dati e Programmi 50

51 Esempio: Calcolo MCD Calcolare il massimo comun divisore tra due numeri interi letti da input, utilizzando l algoritmo di Euclide: mcd(m,n)=m=n se n=m mcd(m,n) (m,n)=mcd(m-n,n) se m>n mcd(m,n) (m,n)=mcd(m,n-m) m) se n>m Walter Cazzola Algoritmi, Dati e Programmi 51

52 Algoritmo di Euclide Leggo m and n (*) Fino a che m diverso da n, se m>n allora sottraggo n ad m se n>m sottraggo m ad n torno a (*) Quando m=n stampo, ad es,, n Walter Cazzola Algoritmi, Dati e Programmi 52

53 Es. Calcolo MCD var m,n: int; begin read(m); read(n); while not(m=n m=n) do if m>n then m:=m-n else n:=n-m; endif endw; write(n); (Nota: a questo punto n=m!) end Walter Cazzola Algoritmi, Dati e Programmi 53

54 Strutture Dati Complesse Oltre a variabili di tipo intero, stringa,, ecc può essere molto utile utilizzare dati strutturati (ad es. liste, insiemi,, ecc) Molti linguaggi di programmazione forniscono vari tipi di dato quali array, record, list Nel linguaggio LP abbiamo solo array e record. Walter Cazzola Algoritmi, Dati e Programmi 54

55 Array Un array rappresenta una sequenza di celle consecutive contenenti dati omogenei (es. interi). Una variabile V di tipo array denota la sequenza di celle Per accedere direttamente alla cella i-esima si utilizza il suo indice i come segue: V[i]. Sintassi dichiarazione: NomeVarArray: array 1..N of Tipo; (N costante) Nelle espressioni, assegnamenti, ecc si utilizza poi NomeVarArray[Exp] dove Exp è un espressione che si valuta in un valore da 1 N Walter Cazzola Algoritmi, Dati e Programmi 55

56 Esempio: Array Leggere K=<10 valori e stamparli in ordine inverso: Dobbiamo leggere V1,,VK, memorizzarli e poi stamparli in ordine VK,,V1. Usiamo un array A di N>K posizioni per memorizzare i dati in input. Dopo aver memorizzato i dati, li scriviamo scorrendo l array dall indice K all indice 1. var A : array of int; i,k : int; begin read(k); i := 1; while i=<k do read(a[i]); i:=i+1; endw; i:=k =K; while i>0 do write(a[i]); i:=i-1; endw; end. Walter Cazzola Algoritmi, Dati e Programmi 56

57 Record Tipo di dato per gestire dati strutturati di tipo eterogeneo; ogni dato viene chiamato campo del record. Sintassi: Variabile: record Campo-1:Tipo1; Campo-N: N:TipoN; end Per accedere ai campi di un record si utilizza: Variabile.Campo-i (rappresenta l i-esimo campo) Walter Cazzola Algoritmi, Dati e Programmi 57

58 Esempio di Record Coordinate: var Punto:record x,y:int end; z:int int; Punto.x=3; Punto.y=2; z:=punto.x*punto.y; Walter Cazzola Algoritmi, Dati e Programmi 58

59 Compilatore e Loader Un compilatore è un programma che traduce un programma scritto in linguaggio ad alto livello in un programma scritto in linguaggio macchina: Un compilatore produce quindi un programma eseguibile (.exe( in Windows) Il loader è il programma che carica un programma in linguaggio macchina in memoria principale (e quindi mappa indirizzi logici in indirizzi fisici) Walter Cazzola Algoritmi, Dati e Programmi 59

60 Come Funziona la Compilazione Un compilatore (che abbia anche la funzione di loader) deve riconoscere la sintassi del linguaggio ad alto livello; associare uno spazio in memoria principare per poter gestire le variabili dichiarate nel programma; tradurre i costrutti di alto livello in sequenze di istruzioni in linguaggio macchina. Walter Cazzola Algoritmi, Dati e Programmi 60

Sviluppo di programmi

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

Dettagli

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Informatica. 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

Dettagli

Informatica. Elaborazione di informazione

Informatica. Elaborazione di informazione Lauree triennali della Facoltà di Medicina LEZIONE 6 Algoritmi, dati e programmi 1 Elaborazione di informazione Introduzione ai concetti di: algoritmo programma dato linguaggio di programmazione diagramma

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio 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

Dettagli

Informatica. Traccia. Algoritmi, dati e programmi. Elaborazione di informazione. informazione. rappresentazione dell informazione (dati) dati

Informatica. Traccia. Algoritmi, dati e programmi. Elaborazione di informazione. informazione. rappresentazione dell informazione (dati) dati 1 2 Informatica Algoritmi, dati e programmi Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

Problema: 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. 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

Dettagli

Introduzione alla programmazione

Introduzione 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

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica 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

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma 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

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, 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

Dettagli

Introduzione agli Algoritmi

Introduzione 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

Dettagli

Algoritmi, dati e programmi

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

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 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,

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi 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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE 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

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Il linguaggio di programmazione Python

Il 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)

Dettagli

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi

Dettagli

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione 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

Dettagli

Rappresentazione degli algoritmi

Rappresentazione 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

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, 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

Dettagli

Introduzione alla programmazione strutturata

Introduzione 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

Dettagli

Corso di Informatica di Base

Corso 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

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Problemi, algoritmi, calcolatore

Problemi, 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

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi Algoritmi, dati e programmi 1 Scopo della lezione Introduzione ai concetti di: problema dato algoritmo linguaggio di programmazione programma diagramma di flusso 2 1 Informatica informatica informazione

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Come ragiona il computer. Problemi e algoritmi

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 Per risolvere il problema

Dettagli

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE 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

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione

Dettagli

DESCRIZIONI RIGOROSE c7

DESCRIZIONI RIGOROSE c7 DESCRIZIONI RIGOROSE c7 Es. cucinare la pasta asciutta per una famiglia La descrizione rigorosa della strategia risolutiva prevede Analisi del problema (con chiara individuazione degli obiettivi e dei

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti 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

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli

unità didattica 3 Le strutture condizionali e le strutture iterative

unità 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

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture 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

Dettagli

UD 3.2b: Programmazione in Pascal (1)

UD 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

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

Laboratorio di Programmazione

Laboratorio 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

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Scrivere 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

Dettagli

LA METAFORA DELL UFFICIO

LA 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

Dettagli

Cosa si intende con stato

Cosa 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

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari. Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA 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

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni 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

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Unità di apprendimento 6. Dal problema al programma

Unità di apprendimento 6. Dal problema al programma Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso 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

Dettagli

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi Algoritmi, dati e programmi Laboratorio di Informatica - Sez.A Lez. T5 (teoria) L.A. Ripamonti Scopo della lezione Introduzione ai concetti di: problema dato algoritmo linguaggio di programmazione programma

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

1 Esercizi in pseudocodice

1 Esercizi in pseudocodice Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Informatica. Come si risolve un problema?

Informatica. Come si risolve un problema? Informatica Elaborazione automatica dell informazione Esempio di elaborazione: rubrica, elenco telefonico. Ogni problema di elaborazione dell informazione è caratterizzato da: un insieme di dati di partenza

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in 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

Dettagli

Programmazione strutturata

Programmazione 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

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Altrimenti, 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.)

Altrimenti, 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

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Il concetto di calcolatore e di algoritmo

Il 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

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

Studio degli algoritmi

Studio 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

Dettagli

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Il 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±

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Dal 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

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1 Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università 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

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Linguaggi di Programmazione

Linguaggi 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

Dettagli

Capitolo 3 L elaborazione e la strutturazione dell informazione

Capitolo 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,

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Fasi di creazione di un programma

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

Dettagli

Fondamenti di Informatica T-1

Fondamenti 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

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo 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

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

Dettagli

LABORATORIO DI INFORMATICA

LABORATORIO DI INFORMATICA LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda 2 LEZIONE N.6 Algoritmi GLI ALGORITMI (1/5) Un algoritmo è una sequenza di

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli