Laboratorio di Informatica (Chimica)
|
|
- Valentino Farina
- 7 anni fa
- Visualizzazioni
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 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
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
DettagliInformatica. 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
DettagliLaboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
DettagliInformatica. 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
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
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
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
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
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
DettagliAlgoritmi, 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
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,
DettagliFormalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
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
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
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)
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale
DettagliAlgoritmi e Programmi
Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un
DettagliInformatica 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
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
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
DettagliTeoria 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
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
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
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
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliL ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
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
DettagliPROBLEMI 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
DettagliIl 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
DettagliAlgoritmi, 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
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
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
DettagliProgrammazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo
DettagliRAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
DettagliINFORMATICA. 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
DettagliLezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi
Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione
DettagliDESCRIZIONI 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
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
DettagliIstruzioni, 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
Dettagliunità didattica 3 Le strutture condizionali e le strutture iterative
unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un
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
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
DettagliAlgoritmi, 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)
DettagliElaboratore Elettronico
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti
DettagliDall 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
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
DettagliINTRODUZIONE 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
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
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
DettagliCosa si intende con stato
Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando
DettagliIntroduzione 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
DettagliScienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.
Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.
DettagliElaborazione 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
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
DettagliDal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione
DettagliConcetti 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
DettagliUnità 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
DettagliLINGUAGGI 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
DettagliESECUZIONE 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
Dettagliosservazione: 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)
DettagliCorso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
DettagliUniversità degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
DettagliAlgoritmi, 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
Dettagli3. 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
Dettagli1 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.
DettagliFondamenti 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
DettagliIntroduzione 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
DettagliInformatica. 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
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliProgrammazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
DettagliFunzioni, 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
DettagliINTRODUZIONE 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
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliLINGUAGGI 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
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
DettagliALGORITMI: 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
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
DettagliIl Concetto di Algoritmo Corso di Informatica Laurea in Fisica
Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±
DettagliLinguaggi 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
DettagliLINGUAGGI 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
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
DettagliScaletta. 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
DettagliDiagramma 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
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
Dettagli6 - 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
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,
DettagliDescrizione 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
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 41 Sviluppo di programmi Per la costruzione di un programma
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
DettagliPROGRAMMAZIONE: 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
DettagliSistemi 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
DettagliLABORATORIO 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
DettagliInformatica 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