Algoritmi, dati e programmi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi, dati e programmi"

Transcript

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

2 Informatica informatica informazione mezzi fisici mezzi procedure rappresentazione dell informazione calcolatori programmi 3 Elaborazione di informazione Ogni problema di elaborazione di informazione è caratterizzato da un insieme di dati di partenza un risultato cercato Ogni sua soluzione è una procedura che genera un risultato sulla base dei dati indicati 4 2

3 Elaborazione dell informazione Es. Problema di elaborazione dell informazione: Quanto fa 21+32? Dati di partenza: {21,32} Risultato cercato: {53} Soluzione: procedura per l addizione (addizione delle unità con riporto + addizione delle decine con riporto,...) = Elaborazione di informazione Distinguiamo tra: conoscenza di come si risolve un problema analisi del problema identificazione di una soluzione descrizione della soluzione effettiva capacità di risolvere un problema interpretazione della soluzione attuazione della soluzione 6 3

4 Elaborazione di informazione Es. Problema di elaborazione dell informazione: Quanto fa 21+32? Conoscenza di come si risolve il problema: Analisi è un problema di somma tra due numeri interi; Identificazione di una soluzione esiste una procedura per la somma tra due numeri interi; Descrizione della soluzione i due numeri interi vanno incolonnati, si sommano le unità, il riporto viene sommato alla somma delle decine, il riporto viene sommato alla somma delle centinaia,... Effettiva capacità di risolvere il problema: Interpretazione della soluzione un utente italiano legge la descrizione del problema e comprende le operazioni da eseguire; Attuazione della soluzione = Elaborazione di informazione La conoscenza di come si risolve un problema è ciò che ci permette di sviluppare un programma. Il programma sarà poi interpretato ed eseguito da un esecutore (es.: essere umano, calcolatore,...) Sono competenze distinte. 8 4

5 Elaborazione di informazione Conoscenza di come si risolve un problema Scoperta / invenzione di un algoritmo per la risoluzione di un problema Richiede uno sforzo creativo. Risoluzione del problema Intepretazione di un linguaggio ed esecuzione di una serie di operazioni Operazioni meccaniche. 9 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 10 5

6 Elaborazione di informazione Per la descrizione della soluzione si utilizza: linguaggio naturale italiano, inglese, sono linguaggi ambigui Es. in una ricetta, Aggiungere un pizzico di sale Quanto è un pizzico di sale? linguaggio formale formalismo matematico pseudo-codice diagramma di flusso (flow-chart) linguaggio di programmazione codice macchina sono linguaggi non ambigui 11 Elaborazione di informazione La descrizione della soluzione può essere fatta a diversi livelli di dettaglio: Esempio: cucinare le lasagne al forno preparare il ragù Alto livello preparare la besciamella setacciare 50g di farina e stemperarla con 10cc di latte aggiungere 30cc di latte e 50g di burro a pezzetti. bollire le lasagne mettere a strati nella teglia e cuocere in forno Basso livello 12 6

7 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 13 Algoritmo algoritmo [al-go-rìt-mo] s.m. Dal Dal nome del matematico ar. Al-Khuwa rizmi (sec. IX): 1 (mat.) procedimento sistematico di calcolo: algoritmo algebrico, euclideo 2 nel Medioevo, il calcolo basato sull'uso delle cifre arabiche 3 in logica matematica, procedimento meccanico che permette la risoluzione di problemi mediante un numero finito di passi (inform.) serie di operazioni logiche e algebriche, espresse in linguaggio comprensibile all'elaboratore, la cui sequenza costituisce un programma. Fonte: Dizionario Garzanti on-line ( 14 7

8 Algoritmo La descrizione rigorosa di un metodo che consente di ottenere un risultato attraverso passi elementari si chiama algoritmo. Definizione di algoritmo: un insieme ordinato di passi eseguibili e non ambigui che determinano un procedimento atto a risolvere un problema o una classe di problemi utilizzando dati iniziali e ottenendo dei risultati in un tempo finito. 15 Algoritmo Esempi: gli algoritmi per eseguire le 4 operazioni che ci sono stati insegnati alle elementari in un linguaggio adatto ai bambini la ricetta per fare le lasagne linguaggio dei libri di cucina livello di dettaglio diverso a seconda delle competenze dell esecutore ( linguaggi a basso / alto livello). Att.ne! L algoritmo è indipendente dal linguaggio nel quale viene espresso! 16 8

9 Esempi di algoritmi Algoritmo per accedere a un PC del laboratorio Accendere lo schermo se è spento Scrivere il proprio <username> nella riga in cui compare la scritta login: Scrivere la propria <password> nella riga in cui compare la scritta password Se il sistema risponde con la frase: «utente non abilitato», chiamare il tutor 17 Esempi di algoritmi (2)

10 Esempi di algoritmi (3) 19 Linguaggio e algoritmo Att.ne! Il linguaggio con cui è espresso l algoritmo non fa parte dell algoritmo! Es. l algoritmo per effettuare la somma tra due numeri è lo stesso sia in inglese che in italiano Ciò che cambia è la rappresentazione dell algoritmo, non l algoritmo! 20 10

11 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 21 Linguaggio Un linguaggio è costituito da: un vocabolario; una sintassi, cioè un insieme di regole che specificano come comporre i vocaboli per ottenere costrutti ben formati (sintatticamente corretti); una semantica, che associa un significato ad ogni costrutto linguistico sintatticamente corretto

12 Sintassi e semantica Sintassi Semantica Esempi Girare la carta Un lato grigio Distinguere tra i due lati Piegare a monte rappresenta Piegare a valle Ripiegare Piegare internamente rappresenta produce produce 23 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 24 12

13 Esecutore di algoritmi Un esecutore è un soggetto in grado di attuare le azioni specificate in un algoritmo Nei casi esemplificati, noi 25 Esecutore di algoritmi Un esecutore è quindi caratterizzato da: il linguaggio che è in grado di interpretare l insieme di azioni che è in grado di compiere l insieme delle regole che ad ogni costrutto linguistico sintatticamente corretto associano le relative azioni da compiere

14 Esecutore di algoritmi A seconda dell insieme delle azioni, differenti esecutori possono usare algoritmi diversi per risolvere uno stesso problema Nel caso della divisione, un computer NON userebbe l algoritmo proposto nell esempio! Es. algoritmo per spostarsi avanti di un metro: muovi le gambe per un esecutore umano; muovi le ruote per un robot. CPU diverse possono utilizzare operazioni elementari diverse per eseguire semplici istruzioni! (es. utilizzano algoritmi diversi per la somma) 27 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 28 14

15 Programmi I programmi sono sequenze finite di istruzioni, ognuna scritta in un fissato linguaggio (di programmazione) I programmi eseguibili da un computer devono essere scritti usando un linguaggio che il computer è in grado di comprendere. 29 Programmi e algoritmi Un algoritmo può essere quindi specificato sottoforma di programma eseguibile da un calcolatore. Att.ne! Programma e algoritmo sono concetti diversi! Algoritmo = concetto astratto; Programma = sequenza finita di istruzioni in un determinato linguaggio Può essere la rappresentazione di un algoritmo Ma la sequenza di operazioni può anche non terminare in un tempo finito! 30 15

16 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. 31 Linguaggi di programmazione Rispetto ad una qualsiasi lingua parlata da esseri umani, un linguaggio di programmazione è molto più semplice, perché la sua sintassi è molto semplice. La teoria dei linguaggi formali fornisce una classificazione dei linguaggi in base alla loro semplicità

17 Linguaggi di basso livello Linguaggi di programmazione le cui istruzioni corrispondono ad azioni molto elementari. Richiedono uno sforzo di codifica maggiore da parte di un programmatore. 33 Linguaggi di alto livello Linguaggi di programmazione alle cui istruzioni corrisponde un insieme di azioni più articolato. Richiedono uno sforzo di codifica inferiore da parte di un programmatore

18 Esempio Il linguaggio L1 mette a disposizione i comandi: Aggiungi_una_unità al dato A Leggi dato A Leggi dato B Esegui per <numero di volte> 35 Esempio Il linguaggio L2 mette a disposizione i comandi: Leggi dato A Leggi dato B Somma <addendo1, addendo2> 36 18

19 Esempio (2) Vogliamo scrivere un programma per sommare due numeri A e B: In L1 In L2 Leggi dato A Leggi dato A Leggi dato B Leggi dato B Esegui per B volte: Aggiungi _una_unità al Somma (A, B) dato A 37 Esempio (3) 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 e più vicine al modo in cui lavoriamo noi

20 Esempio (4) Basso livello preleva dalla memoria il contenuto della cella A e mettilo nel registro AA della CPU ; preleva dalla memoria il contenuto della cella B e mettilo nel registro BB della CPU ; Somma i registri AA e BB e metti il risultato nel registro CC della CPU ; Copia in memoria il registro CC della CPU, in posizione C. C = A + B. Alto livello 39 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: Intel, Pentium, Motorola, PowerPC) ha un proprio linguaggio macchina diverso da quello degli altri processori

21 Linugaggio macchina diversi processori Un processore di tipo A ha N registri; Un processore di tipo B ha M>N registri; Per il processore A, ogni istruzione che utilizza i registri da N+1 a M non ha senso! Anche la sintassi o l insieme di istruzioni del linguaggio possono essere diverse. 41 Linugaggio macchina diversi processori Un processore di tipo A implementa direttamente la funzione prodotto ; Un processore di tipo B implementa l operazione somma ma non l operazione prodotto ; Per il processore B, non è disponibile l operazione prodotto nel linguaggio a basso livello! L insieme di istruzioni del linguaggio macchina sono diverse per A e B. Il processore B potrà essere utilizzato per fare dei prodotti utilizzando un ciclo e l operazione somma

22 Linguaggi di alto livello Un programma scritto in un linguaggio diverso dal linguaggio macchina deve essere quindi tradotto nel linguaggio che il processore sa riconoscere I soggetti preposti a questa traduzione sono a loro volta dei programmi (interpreti e compilatori) Compilatore traduce un programma per intero, poi il programma può essere eseguito (es. programmazione in C, compilatore Microsoft); Inerprete traduce ed esegue un istruzione immediatamente (es. Matlab). 43 Interpreti e compilatori Programma (istruzione) in linguaggio macchina Intel Processore Intel Programma (istruzione) in linguaggio ad alto livello Interprete o compilatore Programma (istruzione) in linguaggio macchina Athlon Processore Athlon Programma (istruzione) in linguaggio macchina Motorola Processore Motorola 44 22

23 Un confronto Linguaggio macchina Linguaggi di alto livello Velocità Portabilità Complessità 45 Una nota sulla velocità Molti linguaggi di alto livello vengono tradotti in linguaggio macchina da un apposito traduttore (detto compilatore), ottenendo in questo modo delle ottime prestazioni anche in termini di velocità Esempi: C, PASCAL JAVA si trova a metà strada 46 23

24 Elaborazione di informazione Analisi del problema Individuazione dell algoritmo Scrittura del programma Ambito scientifico del problema Programmazione Dati Intepretazione del programma Esecuzione del programma Calcolatore Risultato 47 Dal problema al programma Per costruire un programma conviene procedere con metodo, passando da un analisi del problema da risolvere all algoritmo di soluzione rappresentato in un linguaggio adatto all uomo ma non troppo lontano dai linguaggi di programmazione e infine al programma scritto nel linguaggio di programmazione prescelto 48 24

25 Dal problema al programma Riassumendo, il processo di sviluppo di un programma prevede le seguenti fasi: analisi del problema e specificazione dei dati in ingresso e in uscita; identificazione e formalizzazione di una soluzione, definizione dell algoritmo risolutivo; programmazione in un linguaggio di programmazione ad alto livello ; traduzione in linguaggio macchina; verifica (testing). 49 Dal problema al programma Approccio top-down alla progettazione: si parte da una descrizione ad alto livello della soluzione, in cui si individuano sotto-problemi si definiscono le soluzioni dei sotto-problemi in termini di operazioni più elementari e così via, fino ad esprimere tutto in termini di problemi elementari. [Programmazione bottom-up meno intuitiva si parte dalla risoluzione dei singoli sottoproblemi, si assemblano poi le soluzioni dei sottoproblemi per arrivare alla soluzione di problemi più grandi es. sviluppo di librerie] 50 25

26 Dal problema al programma Due aspetti da gestire: i dati da utilizzare la successione di operazioni da compiere 51 Dal problema al programma introdurremo la nozione di contenitore di dati come astrazione dalla nozione di zona della memoria utilizzata da un computer per i dati introdurremo i principali tipi di istruzioni descriveremo gli algoritmi mediante diagrammi di flusso, strumento per descrivere una successione di operazioni adatto all uomo e orientato alla traduzione in un linguaggio di programmazione 52 26

27 Processo di sviluppo di un algoritmo orientato alla programmazione Descriveremo i passi da seguire nella costruzione di un algoritmo, intesa come passo preliminare alla costruzione di un corrispondente programma. Il processo delineato è adatto alla programmazione in piccolo programmazione in piccolo = costruzione di programmi di dimensioni trattabili da un singolo programmatore La programmazione in grande richiede processi di sviluppo ingegnerizzati, che non tratteremo. 53 I contenitori di dati Un contenitore dati è un astrazione della nozione di area di memoria contenente dei dati, è detto anche variabile di programma. Un contenitore dati ha un tipo, che caratterizza un insieme di elementi, cioè l insieme dei valori ammessi per quel contenitore le operazioni possibili su di essi Es.: tipo intero (32 bit per ogni variabile) insieme: insieme dei numeri interi rappresentabili operazioni: +, -, *, /, ecc

28 I contenitori di dati Es. tipo BYTE Occupazione in memoria: 1 byte per variabile Operazioni possibili: +, -, (attenzione all overflow!), >, <, ==, *, / (con approssimazioni!) Numeri da 0 a [ ] 255 [ ] 55 I contenitori di dati Es. tipo BOOLEAN Occupazione in memoria: 1 byte per variabile TRUE o FALSE 0 [ ] > FALSE Qualsiasi altra rappresentazione TRUE Operazioni possibili: AND, OR, XOR, NOT Non è possibile eseguire * o /! 56 28

29 Rappresentazione grafica dei contenitori di dati pippo: intero 54 Nome del contenitore: pippo tipo : intero Contenuto = dato (appartenete al tipo di dati associato al nome, infatti 54 è un numero intero, e su di esso sono ammesse le usuali operazioni aritmetiche) 57 I contenitori di dati I linguaggi di programmazione ad alto livello (ma anche Excel e Access) prevedono la tipizzazione dei dati. I dati possono essere di tipo semplice, cioè con un solo valore, ed i tipi comunemente previsti sono: Intero Es.: Reale Es.: 1, ,133 Logico vero / falso Testo Es.: a, pippo, Mario_Rossi, casa 58 29

30 I contenitori di dati I dati possono essere di tipo strutturato, cioè contenenti più valori, ad esempio: vettori e matrici (strutture uniformi, cioè più valori dello stesso tipo) Es.: vettore di interi [2,5,7,3,12,43] record (strutture non uniformi, cioè più valori non necessariamente dello stesso tipo) Es.: studente cognome : caratteri Rossi nome : caratteri Mario matricola : intero Istruzioni Tre categorie: istruzioni di ingresso e uscita (lettura e scrittura) istruzioni aritmetico-logiche (assegnamento) istruzioni di controllo (selezione, iterazione) 60 30

31 Istruzioni Le istruzioni di ingresso / uscita permettono di acquisire dati e di presentare risultati Esempi: read a acquisisci un dato da tastiera e mettilo nel contenitore a print 'La media dei valori dati in ingresso è ', media stampa il contenuto di media preceduto da un commento 61 Istruzioni Le istruzione di assegnamento modificano lo stato di memoria, cioè i valori dei contenitori dati (detti variabili). Sono della forma: CONTENITORE = ESPRESSIONE (leggi: metti ESPRESSIONE in CONTENITORE) Es.: a = b + 3 ESPRESSIONE può essere: una costante, una variabile, un espressione vera e propria, una funzione CONTENITORE è il nome di una variabile l esecutore valuta l ESPRESSIONE e mette il valore così calcolato in CONTENITORE, sostituendone il valore precedente

32 Espressioni Le espressioni aritmetiche esprimono calcoli numerici somma, sottrazione, prodotto divisione elevamento a potenza, radice, logaritmo, esponenziale, ecc. Es.: b**2 4 * a * c Le espressioni sui caratteri modificano parole e testi. concatenazione Es.: moto&sega (risultato: motosega) 63 Espressioni Le espressioni logiche (o booleane) esprimono calcoli logici e possono quindi assumere solo i valori vero o falso. Operatori logici relazionali: confronto fra due valori, ad esempio x < y (x + 5) = y ecc. Operatori logici AND, OR, NOT, ecc. per comporre, ad es.: (x < y) AND (y < z) Un valore booleano (vero, falso) è rappresentabile con un bit. Convenzionalmente si assegna 1 a vero, 0 a falso

33 Espressioni Le espressioni di tipo booleano assumono particolare importanza perché, usate nelle istruzioni di controllo, ci permettono di prendere delle decisioni. 65 Istruzioni Le istruzioni di controllo permettono di modificare il flusso di esecuzione delle istruzioni all interno di un programma, altrimenti puramente sequenziale. Selezione if, case,... Iterazione while, repeat for Si basano sull uso di espressioni booleane Es. se x > 0, calcola la radice quadrata di x 66 33

34 Diagrammi di flusso Blocchi di elaborazione: contengono sequenze di azioni metti x+y in y metti x-1 in x 67 Diagrammi di flusso Blocchi decisionali: contengono una condizione booleana; se vera, si segue la freccia vero, se falsa si segue la freccia falso. vero x = 0 falso 68 34

35 Diagrammi di flusso Un diagramma di flusso si ottiene collegando le frecce uscenti dai blocchi di elaborazione e decisionali. 69 Simboli principali inizio o fine elaborazione decisione connessione 70 35

36 Strutture di controllo principali sequenza 71 Strutture di controllo principali selezione vero falso 72 36

37 Strutture di controllo principali Iterazione (sequenza + selezione) falso vero 73 Inizio Esempio Acquisisci a a<0? NO b = sqrt (a) Scrivi: la radice di a è <b> SI Function RadiceQuadrata; Real a,b; // Si alloca spazio in memoria per a, b Repeat Display( Dammi a ); read a; Until (a>=0) b=sqrt(a); Display( La radice di a è: <b> ) end Fine 74 37

38 Esempio di decomposizione modulare 75 Esempio di programma strutturato procedura programma principale chiamata di procedura 76 38

39 Paradigmi di programmazione Programmazione Traduzione da diagramma di flusso (o da altra rappresentazione ad altissimo livello!) a linguaggio di programmazione. Esistono diversi paradigmi di programmazione Approfondiamo la programmazione procedurale: Basato su moduli (funzioni) che permettono di elaborare dei dati fornendo dei risultati; Le funzioni possono essere incapsulate l una dentro l altra. Es. Altro paradigma di programmazione: ad oggetti si creano degli oggetti caratterizzati da uno stato e da alcune attività caratteristiche; L interazione tra oggetti fa avanzare il programma. Es. oggetto panettiere; Possibili stati: dietro al bancone, al forno Attività caratteristiche: cuocere il pane, emettere scontrino, Oggetto consumatore Possibili stati: al lavoro, a fare shopping, Attività caratteristiche: acquista pane, 77 Introduzione alla programmazione procedurale Moduli funzioni Una funzione permette di elaborare i dati, può avere una serie di input (variabili di ingresso) e di output (variabili di uscita); Input dati da elaborare; Output risultati. Esempio: [Quoziente, Resto] = DivisioneIntera (Dividendo, Divisore) 78 39

40 Introduzione alla programmazione procedurale Implementazione di: [Quoziente, Resto] = DivisioneIntera (Dividendo, Divisore), notazione Matlab. [Quoziente, Resto] = function DivisioneIntera (Dividendo, Divisore); Quoziente = div (Dividendo, Divisore); Resto = mod (Dividendo, Divisore); return; Parole chiave (function, return), caratteristiche del lingugaggio di programmazione. function dichiarazione di una funzione; return per terminare l esecuzione della funzione (può essere omesso). 79 Introduzione alla programmazione procedurale [Quoziente, Resto] = function DivisioneIntera (Dividendo, Divisore); La prima riga contiene la dichiarazione della funzione. Nella dichiarazione viene utilizzata la parola chiave function, che specifica che si sta effettuando una dichiarazione di funzione; E necessario dichiarare una funzione per poterla utilizzare in seguito; Tutte le istruzioni terminano con ;

41 Introduzione alla programmazione procedurale Quoziente = div (Dividendo, Divisore); Resto = mod (Dividendo, Divisore); Elaborazione dei dati. Per dichiarare una funzione, la sintassi è data da: [Output1, Output2, OutputN] = function Funzione (Input1, Input2, input); Per utilizzare una funzione, la sintassi è data da: [Output1, Output2, OutputN] = Funzione (Input1, Input2, input); E comodo creare una libreria di funzioni, perché ciascuna funzione può essere utilizzata da altre funzioni quando necessario (programmazione modulare ogni funzione è un modulo da riutilizzare). 81 Introduzione alla programmazione procedurale return; Infine, la quarta e ultima riga termina l esecuzione della funzione mediante la parole chiave return (opzionale in Matlab)

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

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

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

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

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

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

Scopo della lezione è l introduzione ai concetti di: problema, dato, algoritmo, linguaggio di programmazione, programma, diagramma di flusso.

Scopo della lezione è l introduzione ai concetti di: problema, dato, algoritmo, linguaggio di programmazione, programma, diagramma di flusso. (Algoritmi, dati e programmi. Scopo della lezione è l introduzione ai concetti di: problema, dato, algoritmo, linguaggio di programmazione, programma, diagramma di flusso. Cerchiamo prima di tutto di collocare

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

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

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

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

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

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

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

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

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

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

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

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

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

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

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

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

Algoritmi e Linguaggi

Algoritmi e Linguaggi Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e

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

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

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

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

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi 1 Cos è n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati n Un algoritmo è un metodo per la soluzione di un problema adatto

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

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

CONCETTI FONDAMENTALI

CONCETTI FONDAMENTALI CONCETTI FONDAMENTALI Algoritmo Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio di programmazione Programma

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

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

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

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

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

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

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

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI PROBLEMI E ALGORITMI prof.ssa VESPIA CATERINA LICEO CLASSICO AGLI ANGELI C O N T E N U T I Problemi. Concetto di algoritmo. Caratteristiche di un algoritmo. Descrizione di algoritmi - Diagrammi di flusso.

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Introduzione alla programmazione Riferimenti Emanuele Goldoni Laboratorio Reti (MN) Tel. 0376-286234 E-mail: emanuele.goldoni@unipv.it Slide sul sito

Dettagli

Programmazione di INFORMATICA e Laboratorio

Programmazione di INFORMATICA e Laboratorio ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143

Dettagli

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso

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

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

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

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

Introduzione ai Calcolatori Elettronici

Introduzione ai Calcolatori Elettronici Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi

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

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

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

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

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

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

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

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

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Definizioni! Informatica: scienza per l elaborazione automatica dell informazione! Informatica = Informazione + Automatica! Informazione:

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

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

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Aritmetica dei Calcolatori Elettronici

Aritmetica dei Calcolatori Elettronici Aritmetica dei Calcolatori Elettronici Prof. Orazio Mirabella L informazione Analogica Segnale analogico: variabile continua assume un numero infinito di valori entro l intervallo di variazione intervallo

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1 Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

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

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

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii) Capitolo 3 Elaborazione e Strutturazione dell Informazione (Introduzione ai Sistemi Informatici Sciuto et alii) Il calcolatore come strumento per gestire informazione acquisire dati IN elaborare archiviare

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

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Lezione 1. Problemi Algoritmi Programmi

Lezione 1. Problemi Algoritmi Programmi Lezione 1 Problemi Algoritmi Programmi Programmazione I Paolo Valente - 2016/2017 Il problema... della tigella emiliana Avete invitato a cena degli amici stranieri e volete fare provare loro le tigelle

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Analisi e Programmazione

Analisi e Programmazione Algoritmi 1 Analisi e Programmazione I Calcolatori Elettronici si differenziano da altri tipi di macchine per il fatto che possono essere predisposti alla risoluzione di problemi di diversa natura. A tale

Dettagli

Introduzione al funzionamento di un calcolatore elettronico

Introduzione al funzionamento di un calcolatore elettronico 1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore

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 PROGRAMMAZIONE E CODIFICA PROGRAMMI

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI Giacomo Piscitelli pag. 1/10 Dall Algoritmo al Programma Metodo risolutivo problema algoritmo Linguaggio programma Individuazione di un metodo risolutivo

Dettagli

MODULO 1. Punto 1.0 del Syllabus 5.0 Fondamenti. Prof.ssa Francesca Lascialfari

MODULO 1. Punto 1.0 del Syllabus 5.0 Fondamenti. Prof.ssa Francesca Lascialfari MODULO 1 Punto 1.0 del Syllabus 5.0 Prof.ssa Francesca Lascialfari Un computer è un aggregato di circuiti elettrici, elettronici e meccanici. Un computer è in grado esclusivamente di eseguire un ordine,

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

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

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

Laboratorio di Informatica (Chimica)

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

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi. Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l

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

Programmazione: Sommario

Programmazione: Sommario Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO LAAGNA DI LAORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome distinto, e valore il loro eventuale contenuto SPORTELLO UTENTE LAAGNA DI PROGRAMMA Modulo IN: modulo di ricezione

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Sommario. Linguaggi per la rappresentazione di algoritmi. Linguaggi formali. Sintassi e semantica: esempio. Linguaggio naturale: sintassi

Sommario. Linguaggi per la rappresentazione di algoritmi. Linguaggi formali. Sintassi e semantica: esempio. Linguaggio naturale: sintassi Sommario Linguaggi per la rappresentazione di algoritmi Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010! Linguaggi formali per la rappresentazione

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Corso Programmazione

Corso Programmazione Corso Programmazione 2008-2009 (docente) Fabio Aiolli E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli (docenti laboratorio) A. Ceccato, F. Di Palma, M. Gelain Dipartimento di Matematica Pura

Dettagli