Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd
|
|
- Donato Pagani
- 6 anni fa
- Visualizzazioni
Transcript
1 Fondamenti d Informatica: Linguaggio While Barbara Re, Phd
2 Il linguaggio WHILE } La computabilità come supporto ai moderni linguaggi di programmazione } Si può generalizzare rispetto ad una vasta famiglia di linguaggi come ALGOL, PASCAL, C, C++, Java } Di riferimento un semplice linguaggio di programmazione imperativo chiamato WHILE 2 } E adeguato per rappresentare tutte le funzioni calcolabili } Tutte le variabili, così come i parametri di input ed output dei programmi sono interi non negativi } Per non perdere di generalità qualunque parametro o variabile di un qualunque programma è sempre rappresentabile come una sequenza di bit in memoria e pro la rappresentazione numerica di questa sequenza di bit otteniamo un numero intero positivo
3 Sintassi e Semantica } Un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e una semantica ben definita } La sintassi è un insieme di regole che definiscono la forma di un linguaggio; esse definiscono come ottenere delle frasi sequenzializzando una serie di componenti fondamentali, dette parole } Applicando le regole della sintassi è possibile stabilire se una frase è corretta oppure no } La semantica definisce il significato dei programmi sintatticamente corretti nel linguaggio di programmazione in questione 3
4 Sintassi del linguaggio WHILE Specifichiamo la sintassi del WHILE utilizzando le regole di produzione di una grammatica libera dal contesto PROGRAM à begin begin SEQCOMMANDS SEQCOMMANDS à COMMAND SEQCOMMANDS ; COMMAND COMMAND à ASSIGNEMENT while TEST do COMMAND PROGRAM ASSIGNEMENT à VAR:=0 VAR:= s(var) VAR :=pd (VAR) TEST à VAR VAR VAR à LETTERA VAR LETTERA VAR CIFRA LETTERA à a b z CIFRE à
5 Esempio di utilizzo della sintassi PROGRAM -> begin SEQCOMMANDS -> begin SEQCOMMANDS ; COMMAND -> begin COMMAND ; COMMAND -> begin ASSIGNEMENT ; while TEST do COMMAND -> begin VAR:=0; while VAR VAR do PROGRAM -> begin VAR LETTERA :=0; while LETTERA LETTERA do begin SEQCOMMANDS -> begin LETTERAc:=0; while f h do begin COMMAND -> begin ac:=0; while f h do begin ASSIGNEMENT -> begin ac:=0; while f h do begin VAR:= s(var) -> begin ac:=0; while f h do begin VAR LETTERA := s(var CIFRA) -> begin ac:=0; while f h do begin LETTERA LETTERA := s(lettera CIFRA) -> begin ac:=0; while f h do begin LETTERA LETTERA := s(lettera CIFRA) -> begin ac:=0; while f h do begin hf := s(t9) begin ac:=0; while f h do begin hf := s(t9) QUESTO CODICE HA VERAMENTE SENSO? 5
6 Comandi } Un programma WHILE è una sequenza, ordinata finita, eventualmente vuota) di comandi, separati da punti e virgole, preceduta da begin e seguita da I comandi sono definiti induttivamente } Comandi di Assegnamento } Comandi Composti } Comandi While 6
7 Comandi di Assegnamento } Zero, s e pd costituiscono gli operatori base del linguaggio } Nei programmi WHILE i valori assegnati alle variabili saranno sempre numeri naturali } (Zero): X:=0 } (s): X:=s(Y) } E la funzione di successore (s(n) = n + 1 per ogni naturale n) } (pd): X:=pd(Y) } E la funzione di predecessore (pd(n) = n 1 se n>0 e pd(0)=0) 7
8 Comandi Composti } Si tratta di istruzioni della forma begin C 1 ; ; C N } Con N naturale e indica le istruzioni C 1,, C N devono essere eseguite in successione secondo l ordine assegnato } Ammettiamo anche il caso N = 0 che si riduce sostanzialmente ad un istruzione che lascia inalterato il valore di tutte le variabili 8
9 Comandi While While X Y do Command La semantica consiste nel ripetere l esecuzione del comando descritto in Command per tutto il tempo in cui la variabile X assume un valore diverso dal valore della variabile Y L unico operatore di confronto tra variabili nel linguaggio While è almeno inizialmente 9
10 Macro Istruzioni } Il potere espressivo dei programmi WHILE non è inferiore a quello di altri usuali linguaggi di programmazione almeno per quanto concerne l aspetto computazionale } E quindi importante definire varie macro-istruzioni che possono agevolare la stesura di un programma qualora coerentemente con la sintassi non ci siano comandi primitivi utili } Assegnare il valore di una variabile Y ad un altra variabile X } Assegnare il valoare di una costante n > 0 ad una variabile U, U:=n } 10
11 Macro - assegnazione } Assegnare il valore di una variabile Y ad un altra variabile X begin X:= s(y) ; X := pd (X) } Assegnare il valore di una costante n>0 a una variabile U di fatto il comando U=s(U) deve essere ripetuto n volte 11 begin U:=0; U:=s(U) ; ; U:=s(U) X:= Y U:= n
12 Macro - Somma } Sommare il valore della variabile Y alla variabile X Begin U:=0 ; while U Y do begin X:= s(x) ; U:=s(U) X:=X+Y 12
13 Macro Sommare due Variabili } Sommare il valore della variabile Y e della variabile X assegnandolo alla variabile Z (se usiamo le macro già definite) Begin Z:= Y; Z:= Z+X; Z:=X+Y 13
14 Moltiplicare il valore della variabile X per la variabile Y, X:=X*Y X:=X*Y begin u:=0; z:=0; y:=pd(y); while u x do begin u:=s(u); while z y do begin h:=0; z:=s(z); while h u do begin x:=s(x) ; h:=s(h); 14
15 Differenza Aritmetica } Sottrarre il valore della variabile Y alla variabile X begin U:=0; while U Y do begin X:= pd(x); U:=s(U) X:=X-Y Possiamo considerare l operazione di differenza aritmetica indicata col simbolo #, tra due numeri interi positivi X ed Y. Avremo che X # Y = X -Y se X è maggiore od uguale ad Y In caso contrario, ovvero quandoy è maggiore di X allora X # Y = 0, ovvero poniamo il risultato della differenza propria uguale a zero. In questo modo l'operazione è ben definita per ogni coppia di numeri interi positivi 15
16 Dividere il valore della variabile X per la variabile Y, X:=X/Y?
17 Macro: Quoziente e Resto della divisione tra A e B Begin resto:= 0; Check:=A; Q:=0; While (A 0) begin A:= A B; Q:= Q+1; Quoziente:=Q; Prova = B * Quoziente; While (Prova Check) begin Quoziente = Q 1; Prova = Check; Prova2 := B * Quoziente While (Prova2 Check) begin Resto = Check Prova2; Prova2 = Check; End 17
18 Operatori di confronto } L unico operatore di confronto disponibile è il ma è spesso necessario considerare anche altri tipi di test } Come possiamo rere il minore, il maggiore, l uguale?
19 Minore X < Y ( Y X ) - pd( Y X ) X < Y è vera se e soltato se ( Y X ) - pd( Y X ) = 1 X < Y è falsa se e soltato se ( Y X ) - pd( Y X ) = 0
20 Espressioni Booleane } Possiamo costruire espressioni booleane E concatenando and (^), not ( ) e or (v)? } L intuizione è associare a ciascuna espressione una condizione di test che ha come unici valori ammissibile 0 e 1, che fanno riferimento rispettivamente al falso e al vero
21 Espressioni } Attraverso le macro possiamo quindi costruire gli usuali connettivi della logica elementare not, and e or } (NOT) T E = 1 T E (dunque 1 se T E = 0 e viceversa) } (AND ) T E ^ E = pd (T E + T E ) (dunque 1 se T E = T E, 0 altrimenti) } (OR) T E v E = T E + T E - pd (T E + T E ) (dunque 1 se T E = 1 o T E =1, 0 altrimenti) Si può provare anche la moltiplicazione per ottenere espresisoni più semplici per ^ e v 21
22 Estensione comando While while EXPRBOOL do COMMAND begin U:=T EXPRBOOL V:=0 while U V do begin COMMAND; U:=T EXPRBOOL EXPRBOOL -- Generica Espressione Booleana T EXPRBOOL -- Condizione di Test associata all espressione booleana 22
23 If then else if EXPRBOOL then COMMAND 1 else COMMAND 2 begin U:=T EXPRBOOL V:=0 while (U = 1) (V =0) do begin COMMAND 1 ; V:=1 while (U = 0) (V =0) do begin COMMAND 2 ; V:=1 23
24 Concludo! } Per quanto riguarda la sintassi con tutte queste macro l espressività del WHILE è sostanziale all espressività del PASCAL 24
25 La semantica del linguaggio WHILE } Consideriamo programmi WHILE P a k variabili, cioè programmi abilitati a utilizzare k variabili X l,..., X k, o eventualmente un loro sottoinsieme } Conveniamo poi che le variabili Xl,.. ;, Xk siano ordinate in base ai loro indici i {l,..., k} } Chiamiamo stato di computazione di P una qualunque k- upla a = (a l,...,a k ) di naturali: si inte allora che in P Xl assume il valore a l,..., X k assume il valore a k. } Uno stato di computazione è anche detto vettore di stato 25
26 Computazione } Consideriamo di rappresentare la computazione di un programma WHILE P a k variabili } Useremo le lettere C, C e cosi via per denotare termini della categoria sintattica COMMAND (cioè singoli comandi per P) e C, C',... per indicare termini della categoria sintattica SEQCOMMAND (cioè sequenze di comandi per P) } Si ricordi che P stesso può essere visto come una sequenza di comandi 26
27 Configurazione } Una coppia ordinata (C, a) dove C è una sequenza di comandi di P e a è un vettore di stato di P è chiamata configurazione di P } La sequenza C descrive, intuitivamente, quali comandi sono da svolgere a un certo punto della sua esecuzione mentre il vettore di stato a precisa il valore delle variabili a cui C si applica } La relazione di transizione tra queste coppie (C, a) (sequenza di comandi, vettore di stato) mostra come vengono eseguiti i singoli comandi di un programma e come vengono modificate le variabili del programma stesso } La terminazione di una sequenza di comandi viene denotata con 27
28 Semantica Operazionale part I SC zero a = (a l,...,a k ) e a'= (a l,..., a u-l, 0, a u+l,..., a k ) (Xu:= 0, a) (, a') SC S a = (a l,...,a k ) e a'= (a l,..., a u-l, s(a v ), a u+l,..., a k ) (Xu := s (Xv), a) (, a') SC pd a = (a l,...,a k ) e a'= (a l,..., a u-l, pd(a v ), a u+l,..., a k ) (Xu := pd (Xv), a) (, a') Le regole descrivono come vengono modificati i valori del vettore di stato quando un comando di assegnamento viene eseguito 28
29 Semantica Operazionale part II Le regole gestiscono i comandi di interazione while SC while1 a = (a l,...,a k ) e a u a v ( while Xu Xv do C, a) ( C; while Xu Xv do C, a) Mostra come permettere l esecuzione del corpo del while nel caso in cui il test è soddisfatto SC while1 a = (a l,...,a k ) e a u = a v (while Xu Xv do C, a) (, a) Mostra come permettere l esecuzione del corpo del while nel caso in cui il test non è soddisfatto 29
30 Semantica Operazionale part III SC program1 (begin, a) (, a) SC program2 (begin C, a) ( C, a) Le regole gestiscono i comandi composti, e quindi si procede alla valutazione del loro corpo 30
31 Semantica Operazionale part IV SC seq1 (C 1, a) (C' 1, a') e C' 1 (C 1 ; C 2, a) (C' 1 ; C 2, a') SC seq2 (C 1, a) (, a') (C 1 ; C 2, a) (C 2, a') Trattano sequenze di comandi e in particolar modo implementano la sequenzializzazione dei comandi specificati 31
32 Siano: Computazione di un programma WHILE - P un programma WHILE a K variabili - a = (a 1,, a k ) un vettore di stato Una computazione di P è una sequenza, possibilmente infinita, della forma P, a à C 1, a à C 2, a à C 3, a à Dove per ogni i 1 a i è un vettore stato a k dimensioni e C i una sequenza di comandi (che corrisponde alla situazione del programma P al passo i-esimo della computazione) Se la sequenza di computazione è finita allora ha la forma P, a à C 1, a à C 2, a à C 3, a à à, a n La proposizione che segue è diretta conseguenza delle regole operazionali della relazione di transizione à definita per tramite delle regole. 32
33 Siano: Un programma divergente o convergente - P un programma WHILE a K variabili - a = (a 1,, a k ) un vettore di stato Allora esiste esattamente una computazione da P che ammette a come vettore di stato iniziale In questo caso a pre il nome di vettore di input e si conviene quanto segue: - Se la computazione P su a è infinita, si dice che P diverge sull input a e che il suo output è indefinito - Se invece la computazione è finita e della forma P, a à C 1, a à C 2, a à C 3, a à à, a n si dice che P converge o termina sull input a e che il suo output è a n 33
34 Funzione WHILE calcolabile } Considerato che la computazione di un programma WHILE P su un dato input è unica possiamo parlare di funzione calcolata da P } Sia dunque P un programma a K variabili X1, Xk per qualche K 1; si dice funzione calcolata da P la funzione parziale P da N k a N tale che, per ogni a N k, } P (a) è il valore di X1 nell output della computazione di P su a se questa computazione ha fine } P (a) non è definita altrimenti } DEFINIZIONE: Una funzione parziale P da N k a N si dice WHILE-calcolabile se P è la funzione calcolata da qualche programma WHILE P 34
35 Programmi e MdT } DEFINIZIONE: Una funzione parziale P da N k a N si dice WHILE-calcolabile se e solo se è calcolabile (secondo Turing) 35
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
DettagliCosa si intende con stato
Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando
DettagliIntroduzione alla programmazione
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
DettagliGrammatiche 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,
DettagliSviluppo 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
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliLa 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
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico
DettagliCodice 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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliIntroduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliRappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
DettagliTipi 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
Dettagli1 Il Paradigma Imperativo
1 Il Paradigma Imperativo 1.1 Imp : un semplice linguaggio imperativo Abbiamo visto in Fun un meccanismo eager per la valutazione dei parametri di una funzione ed un meccanismo lazy. Una situazione analoga
DettagliSommario Codifica dei dati Macchina Astratta Definizioni Esempi
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
DettagliProblemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
DettagliInsiemi numerici. Teoria in sintesi NUMERI NATURALI
Insiemi numerici Teoria in sintesi NUMERI NATURALI Una delle prime attività matematiche che viene esercitata è il contare gli elementi di un dato insieme. I numeri con cui si conta 0,,,. sono i numeri
DettagliVerifica di programmi
Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza
DettagliCognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliEsame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma
Università degli Studi di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA A.A. 2008/09 Lezione 3 Operazioni Aritmetiche: Somma + 1 0 1 0 (*) 1 0 1 0 (*) con riporto di 1 2 Operazioni Aritmetiche:
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliFondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd
Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Esercizio 1 } Consideriamo una MdT che modifica una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione
DettagliPer gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.
DettagliFondamenti 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
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliI.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
DettagliAlberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
DettagliLa Rappresentazione dell Informazione
La Rappresentazione dell Informazione Maurizio Palesi Sommario In questo documento sarà trattato il modo in cui, in un calcolatore, vengono rappresentati i vari generi di informazione (testi, numeri interi,
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliL 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,/}
DettagliIL 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
DettagliMacchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29
Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliValori Alfanumerici. Informatica di Base -- R.Gaeta 1
Valori Alfanumerici Finora abbiamo utilizzato solo valori numerici; Se vogliamo usare valori alfanumerici (caratteri e numeri), usiamo le stringhe; In Logo le stringhe si delimitano con le parentesi quadre;
DettagliLa principale modalità di calcolo è l applicazione di funzioni
1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliIstruzioni, algoritmi, linguaggi
Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2
DettagliLaboratorio 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
Dettagli401 PREDICATI RICORSIVI PRIMITIVI
401 PREDICATI RICORSIVI PRIMITIVI Corso di Informatica Teorica - modulo 2 Prof. Settimo Termini 1 Breve richiamo Un predicato su un insieme S è una funzione totale P su S tale che a S si ha: P(a) = VERO
DettagliFogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari
Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri
Dettagli= < < < < < 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
DettagliLe funzioni in JavaScript. Modularizzazione
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
DettagliLogica per la Programmazione
Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione pag. 1 Limiti del Calcolo Proposizionale Nella formalizzazione di enunciati dichiarativi,
DettagliCaratteristiche 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
DettagliAlgoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
DettagliAnalogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale
Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer
DettagliInformatica e Bioinformatica: Algoritmi
Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione
DettagliMoltiplicazione. Divisione. Multipli e divisori
Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliLez. 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
DettagliDal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione
Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Dettagliunità didattica 3 Le strutture condizionali e le strutture iterative
unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell
DettagliVBA è 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?
DettagliLa "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
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliNote del corso di Calcolabilità e Linguaggi Formali - Lezione 8
Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Alberto Carraro DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Insiemi e predicati ricorsivi e ricorsivamente enumerabili
DettagliInformatica, Algoritmi, Linguaggi
Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo
DettagliMarta Capiluppi Dipartimento di Informatica Università di Verona
Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona Algebra di Boole Opera con i soli valori di verità 0 o 1 (variabili booleane o logiche) L'algebra booleana risulta
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
DettagliDAI NUMERI NATURALI AI NUMERI RAZIONALI
DAI NUMERI NATURALI AI NUMERI RAZIONALI 1. L insieme dei numeri naturali Nel sistema assiomatico ZF, l Assioma dell infinito stabilisce che: Esiste un insieme A, i cui elementi sono insiemi e tale che
DettagliLogica proposizionale
Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite
DettagliESEMPIO Un esempio di insieme vuoto è l insieme dei numeri reali di quadrato 4. B A
TEORI DEGLI INSIEMI GENERLIT Un insieme è un ente costituito da oggetti. Il concetto di insieme e di oggetto si assumono come primitivi. Se un oggetto a fa parte di un insieme si dice che esso è un suo
DettagliUnità 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
DettagliLogica per la Programmazione
Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a. 2015/16 pag.
DettagliFoglio 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
DettagliRappresentazione dell informazione
Rappresentazione dell informazione Problema che coinvolge aspetti filosofici Interessa soprattutto distinguere informazioni diverse Con un solo simbolo è impossibile Pertanto l insieme minimo è costituito
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
DettagliProgrammazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliAPPUNTI DI INFORMATICA
APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione
DettagliLe 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
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
DettagliI Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
DettagliCap. 2 - Rappresentazione in base 2 dei numeri interi
Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:
DettagliRappresentazione 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
DettagliCiclo do while in FORTRAN
Ciclo do while in FORTRAN Vogliamo tradurre in linguaggio FORTRAN un algoritmo che risponde a questo tipo di struttura: Fino a quando e vera questa espressione logica allora: fai questo fai quest altro
DettagliLezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo
DettagliLA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2
LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni
DettagliPROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
DettagliCorso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
DettagliVBA Principali Comandi
VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliLa codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
DettagliProgrammazione 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
DettagliBOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1
BOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1 SOMMARIO DEL TOMO 1 CAPITOLO 1: IL LINGUAGGIO DEGLI INSIEMI 1.1 Gli insiemi e la loro rappresentazione pag. 1 1. I sottoinsiemi pag. 6 1.3 Insieme
Dettagli