Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica"

Transcript

1 Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica Marco Anisetti - 1 / 40

2 Riepilogo lezione 1 Ruolo del corso all interno del piano di studi Ruolo della programmazione nella vita lavorativa e spendibilità delle competenze Calcolatore - Programma - Programmazione Algoritmo e sue proprietà, Esecutore, Problema soluzione generale e istanza di una soluzione Esempi di algoritmi e non Relazione algoritmo programma Cenni di computabilità e complessità Marco Anisetti - 2 / 40

3 Algoritmo riepilogo (1) Un algoritmo è come una ricetta da cucina, un insieme di passi da eseguire per arrivare alla soluzione del problema Un algoritmo viene concretizzato in un programma con un dato linguaggio a seconda dell esecutore che deve comprenderne il linguaggio Le ricette sono scritte per un esecutore umano in linguaggio naturale Nel descrivere un algoritmo anche in linguaggio naturale devo individuare 2 tipologie di operazioni: Le istruzioni operative I controlli del flusso delle istruzioni. Ad esempio una condizione per eseguire una determinata operazione, un salto ad una determinata locazione dell algoritmo Marco Anisetti - 3 / 40

4 Algoritmo riepilogo (2) A volte questi vengono nascosti dalle tipicità dell esecutore per cui è stato ideato l algoritmo Nel nostro caso essendo sempre algoritmi orientati ad esecutori automatici occorre vestire i panni dell esecutore anche in fase di scrittura dell algoritmo ESERCIZIO Scrivere la ricetta degli spaghetti alla carbonara per un esecutore umano e per un esecutore robotico Occorre qualche cosa di più rigoroso per descrivere un algoritmo per evitare fraintendimenti e per garantire la trasposizione dell algoritmo in un programma in maniera rapida e indolore ed il più possibile indipendente dal linguaggio che si sceglierà Marco Anisetti - 4 / 40

5 Notazione delle espressioni matematiche (1) Espressioni tipo a b+c sono utilizzate dalla matematica da secoli e risultano a noi familiari Alcuni linguaggi di programmazione cercano di utilizzare una notazione simile per renderla più familiare In generale i linguaggi di programmazione usano dei mix di notazioni differenti Prefissa: l operatore è indicato prima degli operandi +ab Postfissa: l operatore è indicato dopo gli operandi ab+ Infissa: l operatore è indicato tra gli operandi a+b le notazioni prefissa e post fissa non richiedono parentesi per essere eseguite correttamente (nell ordine corretto) Marco Anisetti - 5 / 40

6 Notazione delle espressioni matematiche (2) Il numero di operandi di un operatore è detto arità Es. notazione prefissa = 3030 = 900 similmente = 1050 Es. notazione postfissa = 3030 = 900 similmente = 1050 La notazione infissa richiede delle regole di precedenza o l uso di parentesi Operatori con la stessa precedenza (e.g. + e -) vengono raggruppati usando nella norma la associazione sinistra Esiste la notazione mista Alcuni varianti della notazione prefissa sono ad esempio le chiamate a funzione tipo max(x,y) dove l arità è variabile dipendente da quello che c è in parentesi Marco Anisetti - 6 / 40

7 Linguaggi per la descrizione di algoritmi (1) Un algoritmo deve essere descritto utilizzando un opportuno linguaggio che risulti comprensibile da parte dell esecutore. Il linguaggio è un formalismo costituito da: Un insieme di istruzioni primitive ( elementi propri, facenti parte, del linguaggio) Un insieme di tipi di dato primitivi (numeri interi, numeri reali, caratteri, ecc.) Un insieme di operazioni primitive su tali dati (somma e sottrazione per i numeri interi e reali, ecc.) Marco Anisetti - 7 / 40

8 Linguaggi per la descrizione di algoritmi (2) Linguaggio naturale (ad esempio, l italiano, l inglese), pensato per un esecutore umano Linguaggi grafici, come quello dei diagrammi di flusso o il più recente e generale linguaggio UML (Unified Modeling Language). Anche in questo caso si tratta di linguaggi pensati per un esecutore umano Linguaggi di programmazione, come ad esempio C++, Pascal, Java, VisualBasic, ecc., che sono per loro natura adatti ad un esecutore automatico, specificatamente il calcolatore. Marco Anisetti - 8 / 40

9 Linguaggio naturale Il linguaggio naturale non si usa per la descrizione di algoritmi perchè è inadatto per una macchina: Ambiguo Vago Complicato Nessuno ha ancora costruito una macchina che capisce l italiano (o l inglese) Marco Anisetti - 9 / 40

10 Diagrammi di flusso (Flow chart) I diagrammi di flusso sono un formalismo grafico di descrizione degli algoritmi. I diversi tipi di istruzioni che caratterizzano questo formalismo sono rappresentati tramite blocchi di varia forma, connessi da frecce. Orientato principalmente ad un esecutore umano Ha il pregio di mettere ben in evidenza il control flow (la presenza di cicli, di salti, di biforcazioni, ecc..) Marco Anisetti - 10 / 40

11 Flow chart Assegnamenti racchiusi in rettangoli Decisioni racchiuse in rombi Una ripetizione è indicata da un loop, ovvero una sequenza ciclica di istruzioni contenente almeno una decisione che determina la fine del loop Esempi tratti dal Wirth Marco Anisetti - 11 / 40

12 Esempio 1: Problema - algoritmo - Flow chart Problema: Moltiplicare due numeri naturali, considerando un esecutore che sappia fare solo somme x, r, y denotano delle variabili ovvero un identificativo per un oggetto che è appunto variabile. l assegnamento avviene espresso con il simbolo Formalizzazione del problema: r x y Passo 1: r 0; Passo 2: r r +x; y y 1; finchè y = 0; Per verificare la correttezza dell algoritmo proposto è possibile fare delle prove e valutarne la tabella contenente le successioni dei risultati assegnati alle variabili (detta traccia). Esistono numerose varianti per risolvere lo stesso problema Marco Anisetti - 12 / 40

13 Diagramma di flusso: moltiplicazione per somme ESERCIZI Scrivere la ricetta della carbonara per esecutore robotico usando il flow chart Trovare delle formulazioni alternative più efficienti per la moltiplicazione per somme Marco Anisetti - 13 / 40

14 Esercizio:soluzione Marco Anisetti - 14 / 40

15 Esempio 2: Problema - algoritmo - Flow chart Problema: Dividere un numero naturale x per un numero naturale y, ricavando il quoziente intero q e il resto r Formalizzazione del problema tramite l istruzione: (q,r) x div y Supponiamo che l esecutore non sia in grado di eseguire l operazione complessa div allora va scomposta in un programma che utilizza sottrazioni ripetute Passo 1: q 0; r x; Passo 2: fintanto che r y ripetere q q +1; r r y; Questo esempio come il precedente descrive un processo sequenziale. Gli unici processi trattati in questo corso sono processi sequenziali Marco Anisetti - 15 / 40

16 Diagramma di flusso: operazione div ESERCIZO Scrivere il Flow Chart per l algoritmo dell operazione div descritto in precedenza Marco Anisetti - 16 / 40

17 Diagramma di flusso: operazione div ESERCIZO Scrivere il Flow Chart per l algoritmo dell operazione div descritto in precedenza Marco Anisetti - 16 / 40

18 Considerazioni Un programma descrive delle trasformazioni di stato delle proprie variabili Tali trasformazioni di stato ne definiscono il processo (programma in esecuzione) Il formalismo dei Flow Chart evidenzia dei costrutti che sono alla base della programmazione strutturata Permette di definite facilmente la traccia del programma per seguire l evolversi del processo relativo al programma Generalmente contiene operazioni definite in un linguaggio di programmazione formalizzato Marco Anisetti - 17 / 40

19 Linguaggio di programmazione (1) Un repertorio di segni convenzionali e di regole per combinarli in enunciati più complessi ed un insieme di regole che permettano di associare un significato a ciascun enunciato. Si distinguono 3 livelli Sintattico: regole che specificano in quali modi i segni possano essere combinati per formare enunciati; Semantico: regole che permettono di associare a ciascun segno e a ciascun enunciato il loro significato; Pragmatico: implicazioni pratiche e le conseguenze di un enunciato. Marco Anisetti - 18 / 40

20 Linguaggio di programmazione (2) Alfabeto o vocabolario Σ: Il repertorio di segni convenzionali di cui sono costruiti gli enunciati di un linguaggio. E un insieme finito di elementi, chiamati simboli o token. Simboli o token: sono gli atomi di cui è costituito un enunciato in un linguaggio Parola w su un alfabeto: una sequenza di lunghezza finita di simboli dell alfabeto. Si può definire la parola vuota, ǫ come sequenza di zero simboli comune ad ogni alfabeto. Σ denota l insieme di tutte le parole composte da elementi di Σ, compresa ǫ. Per esempio, se Σ = {0,1}, Σ = {ǫ,0,1,00,01,10,11,...}. Marco Anisetti - 19 / 40

21 Linguaggio di programmazione (3) Un linguaggio L è un sottoinsieme delle parole costruibili su un alfabeto Σ, L Σ. Data una parola (stringa o frase a seconda) w Σ, ci sono due possibilità: w appartiene al linguaggio, w L, cioè rappresenta un enunciato di L w non appartiene al linguaggio, w / L, cioè non rappresenta un enunciato valido di L. L contiene un numero infinito di parole cioè di possibili enunciati. Marco Anisetti - 20 / 40

22 Linguaggio di programmazione (4) Approccio basato sul riconoscimento: rappresentare L attraverso la definizione di un algoritmo che, per ogni parola w Σ, termina con il risultato si se w L e no altrimenti. Approccio generativo: consiste nel definire una procedura in grado di generare sistematicamente tutte le parole w di L, una dopo l altra. Un importantissima classe di sistemi generativi, che sono di fatto impiegati per descrivere in modo finito linguaggi infiniti, tra cui i linguaggi di programmazione, sono le grammatiche. Marco Anisetti - 21 / 40

23 Grammatica (1) G = (N,Σ,R,S) N insieme dei simboli non terminali, o metasimboli, cioè che non possono comparire negli enunciati del linguaggio ma che ci servono per denotare elementi di un enunciato N Σ = Σ alfabeto del linguaggio costituito da simboli terminali. R insieme finito delle regole di produzione nella forma α β con α N \{ǫ} e β (N Σ). Quando la regola viene applicata, un istanza di una stringa α può essere riscritta in una istanza della stringa β S simbolo non terminale speciale, S N ed è il punto di partenza che denota un enunciato valido. Marco Anisetti - 22 / 40

24 Grammatica (2) Relazione di produzione e derivazione Produzione: G (N Σ) (N Σ) : γ G δ sse δ si ottiene da γ mediante l applicazione di una singola regola di produzione di R nella grammatica G. Derivazione: G : γ G δ sse δ si ottiene da γ mediante l applicazione di zero o più regole di produzione di R nella grammatica G Linguaggio generato da G denominato L(G) L insieme di tutte le sequenze di simboli terminali ottenibili applicando le regole di produzione dell insieme R, a partire dal simbolo iniziale S. L(G) = {w : w Σ S G w} Marco Anisetti - 23 / 40

25 Esempio (1) Linguaggio delle espressioni aritmetiche Σ = {0,1,2,3,4,5,6,7,8,9,+,?,,/,(,)} E simbolo di partenza A sta per argomento, O per operazione, N per numero naturale, I per cifra iniziale di un numero naturale, M per sequenza delle eventuali cifre successive di numero naturale, e C denota una qualsiasi cifra decimale. Marco Anisetti - 24 / 40

26 Esempio (2) Esempio di derivazione Si ricava che E 2 (3+4) quindi 2 (3+4) appartiene al linguaggio. Marco Anisetti - 25 / 40

27 Esercizio (1) Data la seguente grammatica: S CVRT C T C R C h V a V i V u T p T t T k R n R l R r Marco Anisetti - 26 / 40

28 Esercizio (2) Quale delle seguenti espressioni fa parte del linguaggio? tank tar bin leak Marco Anisetti - 27 / 40

29 Formato di Backus e Naur BNF(1) Formalismo utilizzato nell Informatica. Il BNF fu impiegato per la prima volta per definire la sintassi del linguaggio Algol 60 delle regole viene sostituita da ::= I simboli non terminali sono rappresentati mediante stringhe alfanumeriche racchiuse tra parentesi angolari (ad esempio <espressione>) I simboli terminali, o token del linguaggio, sono di norma racchiusi tra virgolette ( o ) Notazione compatta per più regole con lo stesso membro sinistro <cifra iniziale> ::= Marco Anisetti - 28 / 40

30 Formato di Backus e Naur BNF(2) Esistono alcune varianti a seconda dell autore (esempio Extended BNF) Gli elementi opzionali sono spesso racchiusi tra parentesi tonde o quadre, mentre le parentesi graffe sono usate praticamente in tutte le varianti del BNF per denotare elementi che possono essere ripetuti zero o più volte ESERCIZIO Ridefinire in BNF la grammatica dell esempio delle espressioni visto in precedenza Marco Anisetti - 29 / 40

31 Esercizio:soluzione < espr >::=< num > ( < espr > ) < espr >< op >< espr > < espr > = < espr > < num >::=< cifra > < num >< cifra > < cifra >::= < op >::= + / Marco Anisetti - 30 / 40

32 Esempio: numero reale Il simbolo ::= può essere letto come può essere e il simbolo come oppure < real number >::=< integer part >. < fraction > < integer part >::=< digit > < integer part >< digit > < fraction >::=< digit > < digit >< fraction > < digit >::= Marco Anisetti - 31 / 40

33 Esercizio Si consideri la seguente definizione in BNF di un linguaggio: < expr >::=< const > < fn > ( < args > ) < args >::=< expr > < expr >, < args > < const >::= a b c d e < fn >::= f g h Quale delle seguenti espressioni fa parte del linguaggio? a e(f,h) g(a) g() g Marco Anisetti - 32 / 40

34 Abstract Syntax Tree (AST) Evidenzia i componenti più significativi di un linguaggio e li mostra nella forma di un albero ESERCIZIO Disegnare l AST delle espressioni nelle forme prefissa +ab infissa a+b e postfissa a b+ Marco Anisetti - 33 / 40

35 Abstract Syntax Tree (AST) Evidenzia i componenti più significativi di un linguaggio e li mostra nella forma di un albero ESERCIZIO Disegnare l AST delle espressioni nelle forme prefissa +ab infissa a+b e postfissa a b+ L AST è indipendente dalla notazione usata ESERCIZIO Disegnare l AST dell espressione b b 4ac Marco Anisetti - 33 / 40

36 AST soluzioni Marco Anisetti - 34 / 40

37 Esempio BNF linguaggio naturale (1) Σ = {il,lo,la,cane,mela,gatto,mangia,graffia,,} (2) N = {frase, soggetto, verbo, complemento, articolo, nome} (3) P, regole espresse in BNF (forma di Backus-Naur): frase ::= soggetto verbo complemento soggetto ::= articolo nome articolo ::= il la lo nome ::= cane mela gatto verbo ::= mangia graffia complemento ::= articolo nome articolo nome, complemento (4) S = frase. Esempio tratto dal Pighizzini, Ferrari: Dai fondamenti agli oggetti Marco Anisetti - 35 / 40

38 Parse tree E un albero ordinato con radice, che rappresenta la struttura sintattica di una stringa relativamente ad una grammatica formale Si differenzia dall AST perchè i suoi elementi riflettono più concretamente la sintassi di un linguaggio in input Una grammatica per un linguaggio impone un parse tree sui programmi scritti in quel linguaggio Marco Anisetti - 36 / 40

39 Esempio di produzione (Parse tree) frase soggetto verbo complemento articolo nome graffia articolo nome, complemento lo mela lo gatto articolo nome il cane Marco Anisetti - 37 / 40

40 Carte sintattiche Le carte sintattiche sono dei diagrammi che esprimono le regole di una grammatica in forma grafica. Per specificare una grammatica mediante carte sintattiche, si deve fornire un diagramma per ciascun simbolo non terminale In una carta sintattica: I rettangoli indicano simboli non terminali (che andranno espansi con le carte sintattiche corrispondenti) Gli ovali o rettangoli con gli angoli arrotondati, indicano simboli terminali, che quindi non devono essere espansi ulteriormente Le frecce sono definite in modo tale che, seguendo i percorsi da esse delineati, sia possibile ricostruire una sequenza lecita di simboli Ogni biforcazione indica un alternativa Marco Anisetti - 38 / 40

41 Carte sintattiche esempio Pighizzini, Ferrari frase soggetto verbo complemento soggetto articolo nome complemento articolo nome, articolo verbo lo la il graffia mangia nome gatto mela cane Marco Anisetti - 39 / 40

42 Carte sintattiche esempio espressione ESERCIZIO Definire la grammatiche dell esempio delle espressioni usando il formalismo delle carte sintattiche Marco Anisetti - 40 / 40

43 Carte sintattiche esempio espressione ESERCIZIO Definire la grammatiche dell esempio delle espressioni usando il formalismo delle carte sintattiche Marco Anisetti - 40 / 40

Lezione 1 - Linguaggi per la descrizione di algoritmi

Lezione 1 - Linguaggi per la descrizione di algoritmi Lezione 1 - Linguaggi per la descrizione di algoritmi Corso Programmazione Fondamenti di programmazione Linguaggi di programmazione Marco Anisetti e-mail: marco.anisetti@unimi.it web: http://homes.di.unimi.it/anisetti/

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

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

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Linguaggi di Programmazione Dott. Pasquale Lops lops@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica

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

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

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

Grammatiche Parse trees Lezione del 17/10/2012

Grammatiche Parse trees Lezione del 17/10/2012 Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,

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

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

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Dispensa di Informatica II.1

Dispensa di Informatica II.1 ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia

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

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

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio

Dettagli

Corso di Programmazione Linguaggi di Programmazione

Corso di Programmazione Linguaggi di Programmazione Corso di Programmazione Linguaggi di Programmazione Dott. Stefano Ferilli ferilli@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica Linguaggio Insieme di sequenze di simboli appartenenti

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

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

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

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

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

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

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

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Linguaggi Sintassi e Semantica

Linguaggi Sintassi e Semantica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 4 Linguaggi Sintassi e Semantica Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Linguaggi - Sintassi

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

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero. ANALISI SINTATTICA Data un linguaggio scrivere una grammatica che lo generi ESERCIZIO 1 Definire una grammatica per il linguaggio L = {ww w appartiene a (a, b)*} ESERCIZIO 2 Dato l alfabeto T=[0,1,2,3,4,5,6,7,8,9,/}

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

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

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

DISPENSE DI PROGRAMMAZIONE

DISPENSE DI PROGRAMMAZIONE DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte II) I Linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 1) Il linguaggio dei

Dettagli

Le grammatiche formali

Le grammatiche formali Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente

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

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

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative

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

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 formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

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

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

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

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

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

Espressioni e Comandi

Espressioni e Comandi Espressioni e Comandi March 24, 2017 Elementi di Base dei Programmi Ricordate? Macchina Astratta: Insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi Abbiamo parlato

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

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

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

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

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

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

Corso di Informatica Modulo T1 1 - Il concetto di problema

Corso di Informatica Modulo T1 1 - Il concetto di problema Corso di Informatica Modulo T1 1 - Il concetto di problema 1 Prerequisiti Concetti intuitivi di: Proporzione Problema Variabile Numeri interi e reali 2 1 Introduzione Nel risolvere un problema abbiamo

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni 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

Espressività e limitazioni delle grammatiche regolari

Espressività e limitazioni delle grammatiche regolari Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie

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

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

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

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Unità aritmetica e logica

Unità aritmetica e logica Aritmetica del calcolatore Capitolo 9 Unità aritmetica e logica n Esegue le operazioni aritmetiche e logiche n Ogni altra componente nel calcolatore serve questa unità n Gestisce gli interi n Può gestire

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

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

LESSICO E SINTASSI DEL PASCAL

LESSICO E SINTASSI DEL PASCAL LESSICO E SINTASSI DEL PASCAL Il linguaggio di programmazione Pascal è potente e semplice nello stesso tempo; ciò ne giustifica la scelta, inoltre i nuovi compilatori del linguaggio pascal permettono di

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

CURRICOLO DI ISTITUTO

CURRICOLO DI ISTITUTO ISTITUTO COMPRENSIVO G.PERLSC Ferrara CURRICOLO DI ISTITUTO NUCLEO TEMTICO Il numero CONOSCENZE BILIT S C U O L P R I M R I classe 1^ L alunno conosce: i numeri naturali, nei loro aspetti cardinali e ordinali,

Dettagli

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 12 LA COMPLESSITA COMPUTAZIONALE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point) Rappresentazione di Numeri Reali Un numero reale è una grandezza continua Può assumere infiniti valori In una rappresentazione di lunghezza limitata, deve di solito essere approssimato. Esistono due forme

Dettagli

Rappresentazione dei Numeri

Rappresentazione dei Numeri Rappresentazione dei Numeri Rappresentazione dei Numeri Il sistema numerico binario è quello che meglio si adatta alle caratteristiche del calcolatore Il problema della rappresentazione consiste nel trovare

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

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

Un po di storia sui linguaggi

Un po di storia sui linguaggi LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima

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

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso

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

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1)

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1) Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1) Docente: Eugenia Occhiuto e-mail: occhiuto@di.unipi.it web: http://www.di.unipi.it/~occhiuto Ricevimento al Polo

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria. Rappresentazioni medianti basi diverse Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

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

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli Codice La relazione che associa ad ogni successione ben formata di simboli di un alfabeto il dato corrispondente è detta codice. Un codice mette quindi in relazione le successioni di simboli con il significato

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

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

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

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

Informatica e Bioinformatica: Algoritmi

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

Dettagli

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

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y Calcolo letterale Calcolo letterale e operazioni - L uso delle lettere al posto dei numeri si utilizza per scrivere proprietà e regole dandone una valenza più generale rispetto ad un restrittivo esempio

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

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

Analisi e programmazione 1

Analisi e programmazione 1 Informatica Secondo l ACM l informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi progetto efficienza realizzazione ed applicazione 1

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

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri

Dettagli