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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 di algoritmi! Linguaggi di programmazione: linguaggio macchina e linguaggi di alto livello! Uno pseudo-linguaggio per la rappresentazione di algoritmi: sintassi e semantica! Testi di riferimento " Sciuto et al., Introduzione ai sistemi informatici " Ceri et al., Informatica: arte e mestiere 2 Linguaggi formali Sintassi e semantica: esempio! In riferimento a un dato esecutore, un linguaggio per la rappresentazione di algoritmi deve essere non ambiguo! Questa caratteristica è propria dei linguaggi formali, la cui sintassi e semantica sono rigorosamente definite " sintassi: regole per definire le frasi corrette del linguaggio, cioè le frasi alle quali sia possibile attribuire un significato " semantica: regole che definiscono il significato delle frasi corrette 3 Linguaggio naturale: sintassi " il cielo è azzurro, chi non studia non supera l'esame sono frasi sintatticamente corrette in italiano " cielo il azzurro è, casa gatto giocare, anvy efyw jryc sono frasi sintatticamente non corrette Semantica " definisce il significato di frasi come il cielo è azzurro, chi non studia non supera l'esame Tuttavia il linguaggio naturale non è formale, poiché è ambiguo: il significato di una frase può dipendere dal contesto (es.: qual è il significato di una vecchia porta la sbarra?) La sua sintassi e semantica sono troppo complesse per poter essere descritte in modo preciso e completo 4

2 Esempio di linguaggio formale Il linguaggio della matematica Calcolatori, linguaggio macchina e programmi! I linguaggi per la rappresentazione di algoritmi devono essere formali! L esecutore di interesse nell informatica è il calcolatore. Operazioni eseguibili: " semplici operazioni logico-aritmetiche su sequenze di bit (somma, confronto, ecc.: ALU) " trasferimento dati tra CUP e memoria o periferiche! Per poter essere eseguiti da un calcolatore, gli algoritmi " devono essere espressi in un linguaggio formale come sequenze di istruzioni corrispondenti a tali operazioni " devono essere codificati in forma binaria! Il linguaggio corrispondente è detto linguaggio macchina! Algoritmi espressi in un linguaggio comprensibile da un calcolatore sono detti programmi 5 6 I linguaggi di alto livello! Per un essere umano è difficile scrivere e leggere programmi in linguaggio macchina " le operazioni eseguibili sono troppo elementari: gli algoritmi devono essere espressi a un livello di dettaglio molto alto... "...e codificati in forma binaria! Gli algoritmi devono essere formulati da esseri umani, che usano con facilità il linguaggio naturale......ma devono essere espressi in linguaggio macchina per essere comprensibili dai calcolatori! Un compromesso: linguaggi di alto livello per la rappresentazione di algoritmi Caratteristiche dei linguaggi di alto livello Sono più vicini al linguaggio naturale... " consentono di esprimere operazioni più complesse rispetto al linguaggio macchina, e più vicine a quelle usate dagli esseri umani: gli algoritmi vengono espressi a un livello di dettaglio inferiore " esprimono le istruzioni con parole del linguaggio naturale, non codificate in forma binaria...ma non sono comprensibili da un calcolatore... Sono però linguaggi formali, quindi possono essere tradotti in modo esatto in linguaggio macchina La stessa operazione di traduzione può essere descritta da un algoritmo, e quindi può essere eseguita automaticamente dagli stessi calcolatori! 7 8

3 Tipologie di linguaggi di alto livello Si distinguono principalmente per i tipi di algoritmi (calcoli numerici, elaborazione di dati simbolici, ecc.) e le strutture dati (vettori, liste, ecc.) che consentono di esprimere con maggiore semplicità Si parla di paradigmi di programmazione procedurali: modifica esplicita del contenuto delle celle di memoria, istruzioni di salto, ecc. funzionali: applicazione di funzioni (in senso matematico) ad argomenti dichiarativi: si esprime cosa si vuole ottenere, non come ottenerlo orientati agli oggetti: i dati sono visti come oggetti caratterizzati dall'insieme di operazioni che possono essere svolte su di essi Alcuni dei principali linguaggi di alto livello! FORTRAN (imperativo): applicazioni scientifiche, calcoli numerici! Lisp (funzionale): elaborazione simbolica, applicazioni di Intelligenza Artificiale! COBOL (imperativo): gestione dati! Pascal (imperativo): usato prevalentemente per scopi didattici! C (imperativo), C++ (orientato agli oggetti): programmi di sistema, applicazioni scientifiche, calcoli numerici! Java (orientato agli oggetti): applicazioni Internet (siti Web dinamici, ecc.) e per dispositivi mobili (telefoni cellulari, ecc.) 9 10 Linguaggi interpretati e compilati Linguaggi compilati (C, C++, Java, ecc.) Per poter essere eseguito, un programma deve prima essere interamente tradotto in linguaggio macchina. La traduzione viene eseguita da un programma apposito detto compilatore. Nota: il compilatore è lo stesso per tutti i programmi! Linguaggi interpretati e compilati Linguaggi interpretati (BASIC, Lisp, ecc.) sono interattivi: ogni singola istruzione scritta dall'utente viene subito tradotta in linguaggio macchina da un programma detto interprete, ed eseguita linguaggio di alto livello linguaggio macchina Compilatore Esecuzione istruzione 1 Interprete Esecuzione istruzione 2 Interprete Esecuzione Programma scritto in un linguaggio di alto livello (codice sorgente) Programma scritto in linguaggio macchina (codice oggetto) istruzione 3 Interprete Esecuzione

4 Ambienti di programmazione! Ogni linguaggio ha in genere un proprio ambiente di programmazione: un insieme di strumenti software che facilitano agli utenti le attività di sviluppo dei programmi " scrittura del programma: editor di testi " compilatore o traduttore " individuazione e correzione degli errori: debugger " librerie: insiemi di programmi che codificano algoritmi di utilità generale (funzioni matematiche, ecc.), e che possono essere inclusi nei programmi degli utenti Pseudo-linguaggi! Sono linguaggi per la descrizione di algoritmi simili a quelli di alto livello, ma non formalizzati rigorosamente, e ancora più vicini al linguaggio naturale! Sono basati sulle principali strutture sintattiche e semantiche comuni alla maggior parte dei linguaggi di alto livello! Sono usati per facilitare la formulazione di algoritmi: consentono di esprimerne le idee fondamentali senza vincolarsi ai dettagli di specifici linguaggi! Non sono linguaggi di programmazione (non possono essere usati per scrivere programmi) Obiettivo del corso Un modello astratto di esecutore! Fornire le basi per apprendere in futuro, anche autonomamente, un qualsiasi linguaggio di programmazione! Per questo scopo, useremo uno pseudo-linguaggio che consentirà di imparare a esprimere algoritmi usando le principali strutture semantiche comuni alla maggior parte dei linguaggi di programmazione, senza entrare nei dettagli di linguaggi specifici! Lo pseudo-linguaggio che useremo è derivato dal linguaggio C, uno dei più diffusi linguaggi di alto livello 15! Definiremo il nostro pseudo-linguaggio in rapporto a un esecutore meccanico astratto : un calcolatore semplificato basato sull architettura di Von Neumann! Il nostro esecutore sarà composto da " una memoria suddivisa in celle, ciascuna delle quali può contenere un singolo dato, di tre tipi diversi: un numero intero, un numero reale, un carattere è identificata da un nome simbolico (non da un indirizzo numerico) che deve essere scelto da chi scrive l'algoritmo " una perferica di ingresso e una di uscita (per es., una tastiera e un monitor) " un'unità di elaborazione in grado di eseguire semplici operazioni logico-aritmetiche, modificare i valori delle celle di memoria, e inviare o ricevere dati dalle periferiche 16

5 Un modello astratto di esecutore Quali operazioni sa eseguire il nostro esecutore? Il nostro esecutore è in grado di eseguire solo cinque operazioni: unità di elaborazione x a alfa... periferica di ingresso periferica di uscita 1) operazione di assegnamento 2) operazione di lettura 3) operazione di scrittura 4) esecuzione condizionale 5) iterazione nomi simbolici delle celle di memoria (scelti da chi scrive un algoritmo)... memoria Quali operazioni sa eseguire il nostro esecutore? Quali operazioni sa eseguire il nostro esecutore? 1) Operazione di assegnamento Consiste nella scrittura di un valore in una cella di memoria Il valore da assegnare può essere: " un numero " un carattere " il valore contenuto in un'altra cella di memoria " il risultato (un numero) di una qualsiasi espressione aritmetica costruita con cinque operatori (somma, sottrazione, moltiplicazione, divisione, resto della divisione tra interi), in cui gli operandi possono essere valori contenuti in celle di memoria Nota: scrivendo in una cella si cancella un eventuale valore scritto in precedenza 19 Operazioni di lettura e scrittura 2) Lettura: consiste nell'acquisire ( leggere ) un valore (un numero o un carattere) dalla periferica di ingresso, e scriverlo in una cella di memoria 3) Scrittura: consiste nell'inviare alla periferica di uscita ( stampare ) un numero, un carattere, una sequenza di caratteri, il contenuto di una cella di memoria o il risultato di un'espressione aritmetica (definita come per l'operazione di assegnamento) Nota:! tutti i dati di ingresso di un algoritmo devono essere acquisiti e memorizzati in celle di memoria attraverso operazioni di lettura! tutti i risultati di un algoritmo devono essere inviati all'esterno del calcolatore attraverso operazioni di scrittura 20

6 Quali operazioni sa eseguire il nostro esecutore? 4) Esecuzione condizionale: consiste nell'eseguire una data sequenza di operazioni oppure un'altra, a seconda del verificarsi o meno di una condizione 5) Iterazione: consiste nel ripetere una data sequenza di operazioni, finché una data condizione è vera In entrambi i casi la condizione è definita come: " condizione semplice: confronto tra due valori (numeri o caratteri, il contenuto di celle di memoria, il risultato di espressioni aritmetiche definite come in precedenza) " condizione composta: più condizioni semplici combinate dalle congiunzioni e, oppure, non " operatori di confronto: uguale diverso minore, minore o uguale, maggiore, maggiore o uguale (nel caso in cui i valori da confrontare siano caratteri, si fa riferimento all'ordinamento alfabetico) 21 Abbiamo definito quali operazioni possono essere eseguite dall'esecutore Ora vediamo esempi di algoritmi descritti usando queste operazioni In questi esempi useremo il linguaggio naturale: il nostro pseudo-linguaggio sarà descritto più avanti Nota: in questi esempi le celle di memoria verranno indicate con simboli scritti in neretto Per seguire cosa succede durante l'esecuzione dell'algoritmo è utile tenere traccia del valore memorizzato istante per istante nelle celle di memoria 22 Esempio Leggi un valore e scrivilo nella cella x Leggi un valore e scrivilo nella cella y Se il contenuto della cella x è maggiore del contenuto della cella y, allora stampa il valore della cella x, altrimenti stampa il valore della cella y Questo algoritmo è composto da tre operazioni: due di lettura e una condizionale (che contiene al suo interno due istruzioni di scrittura). Nell'algoritmo si usano due celle di memoria indicate con i nomi simbolici x e y Le prime due istruzioni chiedono all'esecutore di acquisire dalla periferica di ingresso due valori (si assume che si tratti di numeri) e di scriverli nelle celle x e y La terza fa sì che venga scritto nella periferica di uscita il più grande tra i due valori memorizzati nelle celle x e y 23 Esempio Assegna 0 alla cella a Leggi un valore e scrivilo nella cella b Finché il contenuto di b è diverso da 0, ripeti le due istruzioni: Assegna alla cella a il risultato di a + b Leggi un valore e scrivilo nella cella b Stampa il valore di a Questo algoritmo acquisisce dalla periferica di ingresso una sequenza di valori (si assume che siano numeri) che termina con il valore 0, ne calcola la somma e la invia alla periferica di uscita Note: " è presente un'iterazione (Finché...) che richiede di ripetere due istruzioni finché una condizione è vera; l'istruzione di scrittura successiva viene eseguita solo quando l'iterazione termina " ogni volta che viene eseguita l'istruzione di lettura, il valore letto viene memorizzato nella stessa cella (b), sostituendo il valore memorizzato in precedenza 24

7 Sintassi e semantica dello pseudo-linguaggio Ora definiamo la sintassi e la semantica del nostro pseudo-linguaggio: " sintassi: le regole per scrivere le istruzioni corrispondenti alle cinque operazioni eseguibili dall'esecutore " semantica: il significato delle istruzioni, cioè il modo in cui devono essere eseguite dall'esecutore (di fatto l'abbiamo già definita nella descrizione delle operazioni eseguibili) Associamo un'istruzione a ciascuna delle cinque operazioni eseguibili dall'esecutore: 1) istruzione di assegnamento 2) istruzione di lettura 3) istruzione di scrittura 4) istruzione condizionale 5) istruzione iterativa Note I nomi delle celle di memoria usati nei linguaggi di programmazione sono anche detti variabili, poiché il loro valore può essere modificato durante l esecuzione di un algoritmo dalle istruzioni di assegnamento e di lettura I nomi delle variabili devono essere scelti da chi formula l algoritmo (con la convenzione che uno stesso nome si riferirà sempre alla stessa cella) Non è necessario specificare a quale cella fisica corrisponda una data variabile: questo aspetto è interamente gestito dal compilatore o dall'interprete del linguaggio Istruzione di assegnamento Sintassi variabile # espressione espressione può essere: " un numero, scritto come parte intera e parte frazionaria separate da una virgola (esempi: 3, -5, 3,14,...) " un carattere, scritto tra apici per evitare ambiguità con i nomi delle variabili (esempi: 'a', 'W', '5',...) " il contenuto di un'altra cella di memoria, indicata con il suo nome " il risultato (un numero) di una qualsiasi espressione aritmetica costruita con i cinque operatori di somma (+), sottrazione ($), moltiplicazione (*), divisione (/), resto della divisione tra interi (mod); gli operandi possono essere valori contenuti in celle di memoria, indicate con il loro nome Istruzione di assegnamento Semantica prima deve essere calcolato il valore di espressione poi tale valore deve essere memorizzato nella cella di memoria variabile Nota: il valore da memorizzare sostituisce un eventuale valore memorizzato in precedenza nella stessa variabile 27 28

8 Istruzione di assegnamento: esempi! m # 12 assegna il valore 12 alla variabile m! media # (x + y) / 2 assegna a media la somma dei valori contenuti (nel momento in cui questa istruzione viene eseguita) nelle variabili x e y, divisa per 2! r # 5 mod 2 assegna a r il resto della divisione intera tra 5 e 2! n # n + 1 prima calcola la somma tra il valore contenuto in n e 1, poi assegna il risultato a n (il valore precedente di n viene sostituito dal nuovo valore)! a # 1 / ((x + y) * (m n))! c # F Istruzioni di lettura e scrittura Sintassi e semantica " read (variabile) acquisisce un valore dalla periferica di ingresso e lo memorizza nella cella variabile " print (espressione) invia il valore di espressione alla periferica di uscita espressione può essere: un espressione definita come per l istruzione di assegnamento una sequenza di caratteri indicata tra doppi apici (es. ciao ) Esempi Istruzione condizionale! read (m) acquisisce un valore dalla periferica di ingresso e lo assegna alla variabile m! print (5) invia il valore 5 alla periferica di uscita! print ( w ) invia il carattere w alla periferica di uscita! print ( ciao ) invia la sequenza di caratteri ciao alla periferica di uscita! print (x) invia alla periferica di uscita il valore contenuto nella variabile x! print ((x+2)*z) invia alla periferica di uscita il valore dell espressione (x+2)*z, calcolata in funzione dei valori contenuti nelle variabili x e z al momento dell esecuzione di questa istruzione 31 Sintassi if (condizione) { sequenza di istruzioni } oppure if (condizione) { sequenza di istruzioni 1 } else { sequenza di istruzioni 2 } " condizione è una espressione logica che può essere vera o falsa; le condizioni possono essere elementari o composte condizione elementare: confronto tra i valori di due espressioni definite come per l istruzione di assegnamento, per mezzo degli operatori =, %, <,!, ", > (se le espressioni sono caratteri alfabetici, entrambi minuscoli o maiuscoli, gli operatori si riferiscono all ordinamento alfabetico) condizione composta: combinazione di più condizioni elementari per mezzo degli operatori logici and, or e not " sequenza di istruzioni è una sequenza di una o più istruzioni qualsiasi 32

9 Istruzione condizionale Esempi di espressioni logiche Semantica: " if (condizione) { sequenza di istruzioni } se condizione è vera esegui la sequenza di istruzioni, altrimenti non eseguire nessuna operazione " if (condizione) { sequenza di istruzioni 1 } else { sequenza di istruzioni 2 } se condizione è vera esegui la sequenza di istruzioni 1, altrimenti esegui la sequenza di istruzioni 2 Condizioni elementari x = 3 è vera se il valore memorizzato nella variabile x è 3 a " b è vera se il valore memorizzato nella variabile a è maggiore di quello memorizzato nella variabile b (x + 2) * z < y è vera se il valore dell espressione (x+2)*z è maggiore del valore di y b > g è vera se il carattere memorizzato in b segue g in ordine alfabetico Condizioni composte (c 1 and c 2 ) è vera se sia c 1 che c 2 sono vere (c 1 or c 2 ) è vera se almeno una tra c 1 e c 2 è vera (not c) è vera se c è falsa Nota: c 1, c 2 e c possono essere sia condizioni elementari che composte Esempi: (x = 1) and (y > 0) (a = 1) or ((b + 2) * c > 0) not (c = v ) ((x = 1) or (y > 0)) and (z = 0) Esempi Istruzione iterativa! if (x = 0) { y # 1 } se il valore contenuto in x è 0, allora assegna a y il valore 1! if ((x = 1) and (y > 0)) { m # 1 n # 3 } se il valore contenuto in x è 1 e quello contenuto in y è maggiore di 0, allora assegna a m il valore 1, e a n il valore 3! if (z > 0) { y # 1 } else { y # 0 } se il valore contenuto in z è maggiore di 0, assegna a y il valore 1, altrimenti assegna a y il valore 0! Sintassi while (condizione) do { sequenza di istruzioni } condizione e sequenza di istruzioni sono definite come per l istruzione condizionale! Semantica se condizione è falsa, non eseguire nessuna operazione; se invece è vera, esegui la sequenza di istruzioni e alla fine valuta di nuovo condizione; se condizione è falsa,... questo ciclo viene quindi ripetuto finché condizione è vera 35 36

10 Esempi Osservazioni! while (x > 0) do { print (x) x # x 1 } finché il valore di x è maggiore di 0: stampalo, calcola il valore dell'espressione x 1, e memorizza il risultato in x (si ricordi che il valore precedente di x viene sostituito da quello nuovo). Si assume che alla variabile x sia già stato assegnato un valore! while (y % z) do { y # z x x # x * 3 } finché il valore di y è diverso da quello di z: memorizza in y il valore di z x, poi memorizza in x il valore di x*3 (si assume che alle variabili y e z sia già stato assegnato un valore) 37! Qual è il potere espressivo del linguaggio di rappresentazione di algoritmi appena descritto? In altre parole: quali sono gli algoritmi che possono essere rappresentati usando questo linguaggio, e quelli che non possono essere rappresentati?! È stato dimostrato (teorema di Boehm-Jacopini) che un linguaggio dotato delle strutture semantiche corrispondenti alle istruzioni condizionale e iterativa consente di rappresentare qualsiasi algoritmo Per questo motivo queste due istruzioni sono comuni alla maggior parte dei linguaggi di alto livello 38 Rappresentazione ed esecuzione di algoritmi Dichiarazione delle variabili! Nel notro pseudo-linguaggio (analogamente a tutti i linguaggi di programmazione) gli algoritmi saranno rappresentati come una sequenza ordinata di istruzioni, che saranno eseguite nell ordine in cui sono elencate! Tutti i dati di ingresso devono essere acquisiti dalla periferica di ingresso e memorizzati in variabili per poter essere successivamente elaborati! Il risultato desiderato si ottiene manipolando i dati iniziali per mezzo delle istruzioni disponibili, memorizzando gli eventuali risultati intermedi in opportune variabili (spesso è necessario eseguire un'operazione sui risultati di altre operazioni)! Tutti i risultati devono essere inviati alla periferica di uscita! Nota: l esecuzione di un algoritmo è un processo dinamico, il cui stato è caratterizzato in ogni istante dal valore di ciascuna variabile e dalla prossima istruzione da eseguire 39! Per chiarezza, prima di riportare le istruzioni di un algoritmo si indicheranno in modo informale: " i nomi di tutte le variabili usate nell algoritmo " il tipo di dati che esse conterranno (numeri interi, numeri reali o caratteri), con la convenzione che una variabile conterrà dati di un unico tipo durante l'esecuzione dell'algoritmo (come accade in molti linguaggi di programmazione reali)! Nota: nella maggior parte dei linguaggi di programmazione il nome e il tipo di tutte le variabili usate devono essere formalmente dichiarati all inizio del programma 40

11 Esempi di algoritmi Esempio! Come esempio, mostriamo di seguito la traduzione nello pseudolinguaggio appena definito degli algoritmi scritti in precedenza in linguaggio naturale (per chiarezza, si scriveranno in neretto i nomi simbolici usati per indicare le istruzioni e gli operatori logicoaritmetici: if, else, while-do, print, read, and, or, not, mod)! Lo scopo di questi esempi è illustrare l uso delle diverse istruzioni e il meccanismo di esecuzione degli algoritmi. A questo scopo si dovranno eseguire le istruzioni di ciascun algoritmo, con i seguenti accorgimenti: " i valori da acquisire per mezzo delle istruzioni di lettura (read) potranno essere scelti liberamente (nella realtà tali valori vengono forniti al calcolatore, per esempio da un utente per mezzo della tastiera) " per poter eseguire gli algoritmi è utile tener traccia (per esempio, per mezzo di una tabella) dei valori memorizzati istante per istante nelle celle di memoria In linguaggio naturale: Leggi un valore e scrivilo nella cella x Leggi un valore e scrivilo nella cella y Se il contenuto della cella x è maggiore del contenuto della cella y, allora stampa il valore della cella x, altrimenti stampa il valore della cella y Nello pseudo-linguaggio: variabili: x, y, z memorizzano numeri reali read (x) read (y) if (x > y) then { print (x) } else { print (y) } print (z) Esempio Assegna 0 alla cella a Leggi un valore e scrivilo nella cella b Finché il contenuto di b è diverso da 0, ripeti le due istruzioni: Assegna alla cella a il risultato di a + b Leggi un valore e scrivilo nella cella b Stampa il valore di a variabili: a e b memorizzano numeri reali a # 0 read (b) while (b % 0) do { a # a + b read (b) } print (a) 43

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

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

Linguaggi di Programmazione

Linguaggi di Programmazione 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 programmazione. In generale, ogni

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

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

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

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

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

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

Elementi di programmazione

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

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica

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

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

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 Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

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

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

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

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

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

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

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

I Linguaggi di Programmazione

I Linguaggi di Programmazione 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 del Linguaggio

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

LINGUAGGI DI ALTO LIVELLO

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

Dettagli

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 AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

Dettagli

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

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica

Dettagli

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

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

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Il linguaggio macchina

Il linguaggio macchina Università degli Studi di Palermo Facoltà di Ingegneria Il linguaggio macchina Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

Algoritmi e basi del C

Algoritmi e basi del C Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 3 O/obre 2013 Installation Party Dove: L.06 Quando: Sabato 12 Ottobre 9.00am - 12.00pm 2 WAT Il docente ha messo

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

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

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

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Programmazione con il linguaggio LibreOffice Basic

Programmazione con il linguaggio LibreOffice Basic Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

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

Dettagli

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

la traduzione dei programmi ed introduzione a Java

la traduzione dei programmi ed introduzione a Java la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere

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

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

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

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

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

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore

Dettagli

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

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

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

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

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

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

Linguaggi di programmazione

Linguaggi di programmazione Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?

Dettagli

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Problemi e algoritmi Il calcolatore permette di risolvere in maniera automatica diversi problemi "di calcolo". Es: calcolo della media

Dettagli

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente

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

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi di programmazione e astrazione Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo

Dettagli

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

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

Dettagli

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

CORSO DI ELEMENTI DI INFORMATICA

CORSO DI ELEMENTI DI INFORMATICA CORSO DI ELEMENTI DI INFORMATICA Corso di Laurea Triennale in Ingegneria Gestionale della Logistica e della Produzione Area didattica Ingegneria Elettrica a.a. 2016/2017 Docente: Ing. Domenico Amalfitano

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

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

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

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

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

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. L informatica comprende:

INFORMATICA. L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

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

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

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Dettagli

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

Organizzazione strutturata

Organizzazione strutturata Organizzazione strutturata Evoluzione storica a.a. 2002-03 L. Borrelli 1 Complessità dei Sistemi di Elaborazione Caratteristica dei Sistemi di Elaborazione: Complessità Per trattare sistemi complessi è

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Salvatore Cuomo Prolusione

Salvatore Cuomo Prolusione Salvatore Cuomo Prolusione 1 Lezione n. Parole chiave: Algoritmo, Esecutore Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email Docente: salvatore.cuomo@unina. it

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

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

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il

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

Istruzioni, algoritmi, linguaggi

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

Dettagli

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

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

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

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

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

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

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

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

L ELABORATORE ELETTRONICO

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

Dettagli

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

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

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