Introduzione al linguaggio Fortran 90

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione al linguaggio Fortran 90"

Transcript

1 Introduzione al linguaggio Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 1 / 38

2 Cosa vedremo in questa lezione 1 Linguaggi di programmazione e Fortran 90 2 Programmare in Fortran 90 3 Tipi di dato in Fortran 90 4 Costanti e variabili 5 Espressioni Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 2 / 38

3 Linguaggi di programmazione e Fortran 90 Introduzione Abbiamo visto come il calcolatore lavori su informazioni codificate con sequenze binarie Anche le istruzioni sono sequenze binarie! Esempio: c = a + b Linguaggi di programmazione Linguaggi artificiali dotati di un proprio alfabeto e di regole grammaticali Possibilità di produrre codice macchina Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 3 / 38

4 Linguaggi di programmazione e Fortran 90 Il primo programma Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 4 / 38

5 Linguaggi di programmazione e Fortran 90 Vantaggi dei linguaggi di programmazione Per programmare, possiamo usare linguaggio a livello di astrazione più alto del linguaggio macchina (l unico compreso dalla CPU) Classificazione dei linguaggi di programmazione Linguaggio Livello Uso linguaggio macchina bassissimo in pratica, mai usato assembler basso solo per efficienza elevatissima Fortran 90, C, C++, Java,... alto maggioranza delle applicazioni linguaggio naturale altissimo tecnologia non ancora pronta Possiamo scrivere programmi portabili su differenti calcolatori: calcolatore = HARDWARE (HW) programma = SOFTWARE (SW) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 5 / 38

6 Linguaggi di programmazione e Fortran 90 Commenti sul Fortran Primo linguaggio per cui è stato scritto un compilatore (1954). Da allora, si è molto evoluto: ultime versioni Fortran 90, Fortran 95 Fortran VANTAGGI: Linguaggio molto usato per il calcolo numerico. Esistono molte librerie di programmi già fatti. SVANTAGGI: Per alcuni aspetti, ancora impronta anni 50. POTENZIALI CONCORRENTI per questo corso: C, C++, Java. PERCHÉ Fortran 90? Fortran 77: obsoleto. Fortran 95: migliora il Fortran 90 in aspetti troppo avanzati per questo corso. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 6 / 38

7 Programmare in Fortran 90 Primo programma Fortran 90 1! F i l e : c i a o. f90 2! Time stamp : 01/12/ : 0 7 : 3 8 c a d o l i 3! Scopo : i l l u s t r a r e un s e m p l i c e programma F o r t r a n 4 5 PROGRAM c i a o 6! Questo programma stampa un messaggio s u l l o schermo 7 8 WRITE (, ) CIAO MONDO! 9 10 STOP 11 END PROGRAM c i a o Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 7 / 38

8 Programmare in Fortran 90 Considerazioni sul primo programma Fortran 90 I programmi che vedremo a lezione sono tutti disponibili sulle Dispense Il programma si trova su un file (CIAO.F90) che non contiene altro. Struttura del programma Commenti: opzionali ma utili; servono al progettista, non al computer! Intestazione. Parte istruzioni. Parte conclusiva. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 8 / 38

9 Programmare in Fortran 90 Considerazioni sul programma (cont.) Nome del file (CIAO.F90): sceglierlo in maniera significativa! Parole chiave: PROGRAM, WRITE, STOP, END Riservate e non si possono cambiare. Per convenzione, sempre MAIUSCOLE. Identificatore (ciao): sceglierlo in maniera significativa! Deve iniziare con una lettera. Può contenere (dal secondo carattere in poi), cifre decimali o _. Può essere lungo al massimo 31 caratteri. Caratteri speciali: (, ),,, *,!. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 9 / 38

10 Programmare in Fortran 90 Regole base per la scrittura di programmi Fortran 9 Caratteri ammessi: N. Tipo Valori 26 Lettere maiuscole Dalla A alla Z 26 Lettere minuscole Dalla a alla z 10 Cifre numeriche 0,1,...,9 1 Carattere di sottolineatura 5 Simboli matematici + - * / ** 17 Simboli vari ( ). =, $ :! % & ; < >? } spazio Riga max 132 caratteri Se l istruzione è più lunga si può usare il carattere & Commenti con carattere! Possibilità di inserire label numeriche (Valori da 1 a 99999) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 10 / 38

11 Programmare in Fortran 90 Il Fortran è case-insensitive 1! F i l e : c a s e i n s e. f 9 0 2! Time stamp : 01/12/ : 0 7 : 3 8 c a d o l i 3! Scopo : v e r i f i c a r e che i l F o r t r a n e case i n s e n s i t i v e 4 5 PRoGram mio 6 7! SEZIONE DICHIARATIVA 8 IMPLicit None 9 integer : : I 10 11! SEZIONE ESECUTIVA 12 Write (, ) S c r i v i un numero i n t e r o : 13 read (, ) i 14 write (, ) Hai s c r i t t o :, i StOp 17 end program MiO Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 11 / 38

12 Programmare in Fortran 90 Struttura di un programma Fortran 90 Sezione dichiarativa Prima parte del programma Contiene la dichiarazione del nome del programma, costanti, variabili Istruzioni non eseguibili ma direttive al compilatore Sezione esecutiva Contiene il cuore del programma Istruzioni eseguibili Sezione conclusiva Contiene le istruzioni che concludono il programma Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 12 / 38

13 Programmare in Fortran 90 Fasi principali nella scrittura di un programma 1. EDITING: scrittura al calcolatore salvataggio su disco rigido del programma si usa un programma apposito (editor) RISULTATO: file sorgente (CIAO.F90) 2. COMPILAZIONE trasformazione in un linguaggio COMPRENSIBILE dalla CPU si usa un programma apposito (compilatore) RISULTATO: file oggetto (CIAO.OBJ) 3. COLLEGAMENTO trasformazione in un linguaggio eseguibile dalla CPU si usa un programma apposito (collegatore o linker) RISULTATO: file eseguibile (CIAO.EXE) 4. ESECUZIONE/VERIFICA si fa eseguire il programma se l esecuzione è quella attesa, allora abbiamo terminato altrimenti, dobbiamo ritornare alla FASE 1 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 13 / 38

14 Programmare in Fortran 90 Note sugli strumenti usati nel corso Esistono dei prodotti commerciali che contengono un editor, un compilatore, un collegatore ed altri componenti di supporto (ad es. debugger, utile per la correzione dei programmi). Questi prodotti vengono comunemente chiamati interactive development environment (IDE) ed hanno interfacce grafiche sofisticate. Ne esistono anche di gratuiti In questo corso useremo un prodotto freeware che contiene solamente un compilatore ed un collegatore. Per scrivere i programmi Fortran 90 useremo editor come Notepad, Crimson Editor, Notepad++. Per fare eseguire i programmi useremo direttamente il sistema operativo ( prompt dei comandi ). Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 14 / 38

15 Tipi di dato in Fortran 90 Tipi dato intrinseci in Fortran 90 Il Fortran 90 mette a disposizione del programmatore 5 tipi di dati: INTEGER Tipo numerico per gli interi REAL Tipo numerico per i numeri reali COMPLEX Tipo numerico per i numeri complessi (non trattato in questo corso) LOGICAL Tipo per la gestione di valori logici CHARACTER Tipo per la rappresentazione di stringhe di caratteri In questo corso ci limiteremo ai tipi intrinseci; il Fortran 90 consente al programmatore di definire altri tipi dato (detti derivati) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 15 / 38

16 Tipi di dato in Fortran 90 Tipo INTEGER: dettagli Adatto per grandezze contabili (numero di studenti, di corsi, di crediti, giorni del mese, della settimana,... ) Intervallo di definizione: Massimo: = = due miliardi, 147 milioni,... Minimo: = 2 31 Motivo: per la rappresentazione di un intero: vengono utilizzati 4 Byte (= 32 bit) pertanto, ci sono 2 32 valori distinti: 1 per lo zero, metà per i negativi, circa metà per i positivi Potenziale problema durante l esecuzione (run-time): Trabocco (overflow). Esempio: 1 INTEGER : : num1, num2 2!... 3 READ(, ) num1, num2 4 WRITE(, ) num1 + num2! qui, p o t e n z i a l e OVERFLOW In questo corso, ignoreremo i problemi di trabocco. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 16 / 38

17 Tipi di dato in Fortran 90 Tipo REAL: dettagli Adatto per grandezze fisiche (temperatura, pressione, potenza, tempo,... ), caratterizzate da: grande dinamica e precisione limitata (non sono contabili ) Intervallo di definizione: Valore assoluto più grande: circa Valore assoluto più piccolo: circa Cifre significative: circa 7 Motivo: per la rappresentazione di un reale vengono utilizzati 4 Byte (= 32 bit), di cui: 24 per la mantissa e 8 per l esponente Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 17 / 38

18 Tipi di dato in Fortran 90 Dettagli sul tipo REAL (cont.) Il Fortran 90 ammette vari formati per uno stesso numero reale: senza esponente (è il default). Ad es con esponente. Ad es E+3. In tal caso: è la mantissa 3 è l esponente la base è implicitamente 10 Nel caso non ci sia l esponente è obbligatorio il punto Il valore dell esponente deve essere un intero (positivo o negativo) Nota: internamente, il Fortran 90 usa la rappresentazione con esponente. Nota: in alcuni compilatori il numero di byte usati (sia per REAL che per INTEGER) può essere aumentato fino a 8. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 18 / 38

19 Tipi di dato in Fortran 90 Considerazione fondamentale sul tipo REAL In Matematica, valgono relazioni come: arccos( 2/2) arcsin( 2/2) = 0 In Fortran 90 relazioni di questo tipo potrebbero non valere, a causa dell approssimazione intrinsecamente presente. Infatti, l istruzione: WRITE (, ) ACOS(SQRT( 2. ) / 2 ) ASIN (SQRT( 2. ) / 2 ) produce la seguente stampa (errore sull ottava cifra significativa): E 07 Di questi aspetti si occupano altri corsi (ad es., Calcolo numerico). Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 19 / 38

20 Tipi di dato in Fortran 90 Dettagli sul tipo CHARACTER e LOGICAL Tipo CHARACTER Utilizzato per rappresentare sequenze di caratteri (stringhe) La rappresentazione interna si basa sulla codifica mediante un intero (codifica ASCII) Ogni carattere occupa un byte di memoria caratteri che formano una stringa sono memorizzati in locazioni di memoria adiacenti Per definire una stringa è necessario racchiudere i caratteri dentro apici ( ) oppure virgolette ( ) Tipo LOGICAL Utilizzato per rappresentare i valori logici VERO e FALSO Può assumere i valori.true. e.false. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 20 / 38

21 Costanti Costanti e variabili Valore non cambia una volta fissato Costanti senza nome Costanti con nome Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 21 / 38

22 Costanti e variabili Costanti Costanti senza nome Possono essere utilizzate sia nella sezione dichiarativa che in quella esecutiva Tipo determinato implicitamente Scarsa leggibilità e scarso riuso! C o s t a n t i s e n z a nome v a l i d e 0, +28, 8450, 4322! d i t i p o i n t e r o 0., 3.3, 1. 0 E 2, E4! t i p o r e a l e.true.,. FALSE.! t i p o l o g i c o CIAO, c i a o, l imbuto! t i p o c a r a t t e r e! C o s t a n t i s e n z a nome non v a l i d e 430,000,000, ! t i p o i n t e r o 23, 40E 2.9, 1209,0! t i p o r e a l e. T.,. F.,! t i p o l o g i c o pippo, p l u t o! t i p o c a r a t t e r e Costanti con nome Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 21 / 38

23 Costanti e variabili Costanti Costanti senza nome Costanti con nome Possono essere create solo nella sezione dichiarativa Necessario specificare il tipo, il nome e il valore Permettono di migliorare la leggibilità dei programmi. Sintassi: tipo, PARAMETER :: nome = valore [, nome2 = valore2,...] Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 21 / 38

24 Costanti e variabili Secondo programma Fortran 90 1! F i l e : v a r i a b. f 9 0 2! Time stamp : 01/12/ : 1 0 : 2 2 c a d o l i 3! Scopo : i l l u s t r a r e l a d i c h i a r a z i o n e e l uso d i v a r i a b i l i 4 5 PROGRAM v a r i a b i l e 6! Questo programma l e g g e un numero i n t e r o da t a s t i e r a e l o stampa 7! s u l l o schermo 8! SEZIONE DICHIARATIVA 9 IMPLICIT NONE! q u e s t a d i c h i a r a z i o n e e o b b l i g a t o r i a 10 INTEGER : : numero! q u e s t a e l a d i c h i a r a z i o n e d i una v a r i a b i l e 11 12! SEZIONE ESECUTIVA 13 WRITE(, ) I n s e r i s c i un numero i n t e r o, p o i premi INVIO : 14! l e t t u r a d i un v a l o r e i n t e r o da t a s t i e r a 15 READ(, ) numero 16! stampa d i una s t r i n g a e d i un i n t e r o 17 WRITE(, ) Hai i n s e r i t o i l numero, numero STOP 20 END PROGRAM v a r i a b i l e Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 22 / 38

25 Costanti e variabili Variabili Struttura del programma Come CIAO.F90, ma ora c è una sezione dichiarativa Abbiamo dichiarato una VARIABILE DI TIPO INTERO Nozione di variabile Metaforicamente è un foglio di carta in cui si scrive con la matita Può variare durante l esecuzione del programma Al massimo 31 caratteri e non può iniziare con un numero numero -7 IDENTIFICATORE o NOME della variabile VALORE della variabile Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 23 / 38

26 Dichiarazione di variabili Costanti e variabili Sintassi dichiarazione di variabile: 1. Caso INTEGER, REAL, LOGICAL: INTEGER :: nome [= valore] [, nome2 [= valore2],...] REAL :: nome [= valore] [, nome2 [= valore2],...] LOGICAL :: nome [= valore] [, nome2 [= valore2],...] 2. Caso CHARACTER: CHARACTER(len=<dim>) :: nome [= valore] [, nome2 [= valore2],...]] <dim> contiene la dimensione della stringa Può essere indicato direttamente il numero di caratteri Se non viene indicato un valore la stringa conterrà un solo carattere 1! SEZIONE DICHIARATIVA 2 IMPLICIT NONE 3 INTEGER : : i1 = 0, i2 4 REAL : : r1, r2 = 10.2E 2 5 CHARACTER( len =10) : : c1, c2 = pippo 6 CHARACTER( 1 0 ), PARAMETER : : s a l u t o = CIAO! 7 LOGICAL : : l1, l2 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 24 / 38

27 Assegnazione variabili Costanti e variabili 1! F i l e : a s s e g n a z. f 9 0 2! Time stamp : 01/12/ : 0 7 : 3 8 c a d o l i 3! Scopo : i l l u s t r a r e l i s t r u z i o n e d i a s s e g n a z i o n e 4 5 PROGRAM a s s e g n a z i o n e 6! Questo programma e f f e t t u a v a r i e o p e r a z i o n i su due v a r i a b i l i i n t e r e 7 8! SEZIONE DICHIARATIVA 9 IMPLICIT NONE 10! q u e s t a e l a d i c h i a r a z i o n e d i due v a r i a b i l i 11 INTEGER : : num1, num ! SEZIONE ESECUTIVA 14 WRITE(, ) I n s e r i s c i due numeri i n t e r i, p o i premi INVIO : 15 READ(, ) num1, num2 16 WRITE(, ) Hai i n s e r i t o i numeri, num1, num num1 = num2 10! a s s e g n a z i o n e a l l a v a r i a b i l e num1 19 WRITE(, ) Le v a r i a b i l i o r a v a l g o n o :, num1, num STOP 22 END PROGRAM a s s e g n a z i o n e Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 25 / 38

28 Costanti e variabili Commento al programma ASSEGNAZ.F90 Struttura del programma: come VARIAB.F90, ma: la sezione dichiarativa contiene dichiarazione di due variabili intere la sezione esecutiva contiene un istruzione di assegnazione Struttura dell istruzione di assegnazione: variabile = espressione In questo caso, espressione è una moltiplicazione Effetto dell istruzione di assegnazione: 1. valuta espressione 2. assegna a variabile il valore ottenuto: modifica variabile non modifica espressione Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 26 / 38

29 Costanti e variabili Esercizio sull assegnazione 1 num1 = num num1 = num num = num2 4 num1 = num1 + num2 Determinare il valore delle variabili num1 e num2 Prima Dopo num1 4 num2-7 num1 num1 num1 num1 num2 num2 num2 num Soluzione Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 27 / 38

30 Esercizio sull assegnazione Costanti e variabili 1 num1 = num num1 = num num = num2 4 num1 = num1 + num2 Determinare il valore delle variabili num1 e num2 Soluzione Prima Dopo num1 4 num1 3 num1 14 num1 X num1-3 num2-7 num2 num2 num2 num X Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 27 / 38

31 Espressioni in Fortran 90 Costanti e variabili 1 Le espressioni hanno un tipo. 2 Le espressioni sono atomiche ( semplici ) oppure non atomiche ( complesse ). 3 Possono essere classificate nel seguente modo: Espressioni Atomiche Non atomiche Costanti Variabili Con nome Senza nome Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 28 / 38

32 Confronto di espressioni Costanti e variabili Tipo Costante Costante Variabile Non con nome senza nome atomica INTEGER gatti 3 i1 i1 + i2 + gatti REAL pi 6.022E+23 r1 r1 + r2 * pi CHARACTER saluto a c1 saluto // c1 // c2 LOGICAL vero.true. l1 l1.and. l2.or. vero Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 29 / 38

33 Costanti e variabili Esempio di uso di costanti e variabili 1! F i l e : e u r o. f 9 0 2! Time stamp : 01/12/ : 0 7 : 3 8 c a d o l i 3! Scopo : i l l u s t r a r e l uso d i c o s t a n t i con nome 4 5 PROGRAM e u r o 6! Questo programma l e g g e un numero d i l i r e ( i n t e r o ) da t a s t i e r a, 7! e stampa i l c o r r i s p e t t i v o i n e u r o ( r e a l e ) 8 9! SEZIONE DICHIARATIVA 10 IMPLICIT NONE 11 REAL, PARAMETER : : l i r e p e r e u r o = ! d i c h i a r a z i o n e d i una c o s t a n t e 12! con nome 13 INTEGER : : l i r e! d i c h i a r a z i o n e d i una v a r i a b i l e 14 15! SEZIONE ESECUTIVA 16 WRITE (, ) I n s e r i s c i q u a n t i t a d i l i r e : 17 READ(, ) l i r e 18 WRITE (, ) I l c o r r i s p e t t i v o i n e u r o e :, l i r e / l i r e p e r e u r o 19! NOTA: l a d i v i s i o n e f r a i n t e r i e r e a l i da p e r r i s u l t a t o un r e a l e 20 21! NOTA: l a FORMATTAZIONE verra spiegata piu approfonditamente nel segui to 22 WRITE (,100) I l c o r r i s p e t t i v o i n e u r o e c e n t e s i m i d i e u r o e :, l i r e / l i r e p e r e u r o FORMAT(, A, F10. 2 ) STOP 26 END PROGRAM e u r o Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 30 / 38

34 Costanti e variabili Quarto programma Fortran 90 (EURO.F90) Programma simile a VARIAB.F90, ma abbiamo dichiarato una costante con nome di tipo reale Esempi input = 1000 output = input = output = Nota usando la FORMATtazione dell output, stampa solo i centesimi (approfondimenti su FORMAT fra alcune lezioni) Quando usare le costanti con nome: valore che non cambia nell ambito del nostro programma (ad es., lire per euro) grandezza matematica costante (ad es., π, e, Φ) Vantaggi delle costanti con nome: maggiore leggibilità del programma più facile modificare il programma, se necessario Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 31 / 38

35 Espressioni Operatori su reali e interi Binari infissi (sono cinque) + Addizione - Sottrazione * Moltiplicazione / Divisione ** Elevamento a potenza Unari prefissi (sono due) - (Segno meno) + (Segno più) / fra interi restituisce la parte intera (o quoziente) della divisione fra interi, senza resto. Ad es., 7/2 vale 3. Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 32 / 38

36 Espressioni Considerazioni sulle espressioni Le espressioni sono formate da costanti senza nome, costanti con nome e variabili In Fortran 90 le espressioni devono essere linearizzate e il simbolo * è necessario ovunque ci sia una moltiplicazione. Ad esempio, l espressione: b 2 4ac 2h + 3 si scrive: ( b 2 4 a c ) / ( 2 h + 3) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 33 / 38

37 Espressioni Esempio degli operatori matematici 1! F i l e : c e r c h i o. f 9 0 2! Time stamp : 01/12/ : 0 7 : 3 8 c a d o l i 3! Scopo : i l l u s t r a r e l uso d i c o s t a n t i con nome 4 5 PROGRAM a r e a c e r c h i o 6! Questo programma l e g g e i l r a g g i o d i un c e r c h i o ( r e a l e p o s i t i v o ) 7! e stampa i v a l o r i d i c i r c o n f e r e n z a e a r e a 8 9! SEZIONE DICHIARATIVA 10 IMPLICIT NONE 11! d i c h i a r a z i o n e d i una c o s t a n t e con nome 12! d i c h i a r a z i o n e d i una v a r i a b i l e 13 REAL, PARAMETER : : p i = REAL : : r a g g i o 15! SEZIONE ESECUTIVA 16 WRITE (, ) Raggio d e l c e r c h i o? 17 READ (, ) r a g g i o 18 WRITE (, ) C i r c o n f e r e n z a :, 2 p i r a g g i o 19 WRITE (, ) Area :, p i r a g g i o r a g g i o 20 STOP 21 END PROGRAM a r e a c e r c h i o Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 34 / 38

38 Espressioni Quinto programma Fortran 90 (CERCHIO.F90) Struttura del programma: come EURO.F90, ma abbiamo usato vari operatori( +, * ) sui reali Nota: Per calcolare l area, avremmo potuto scrivere anche (usando l operatore ** ): WRITE (, ) Area :, p i r a g g i o 2 Problema di carattere generale: come viene valutata questa espressione? 1. pi * (raggio**2) 2. (pi * raggio)**2 Il Fortran 90 sceglie la 1 (usando le regole di precedenza fra operatori) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 35 / 38

39 Espressioni Regole per la valutazione di un espressione Le parentesi forzano la valutazione di un espressione Esempio: 6+(4*2) 14 Precedenza fra operatori: * e / hanno precedenza su + e - Esempio: * 2 14, cioè viene valutato come 6+(4*2) ** ha precedenza su tutti Esempio: 2 * 3 ** 2 18, cioè viene valutato come 2*(3**2) Ordine di valutazione per operatori con uguale precedenza Per *, /, +, - : da sinistra a destra Esempio: 6 / 3 * 2 4, cioè viene valutato come (6 /3)*2 per ** : da destra a sinistra Esempio: 3**2**3 3**8 6561, cioè viene valutato come 3**(2**3) Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 36 / 38

40 Espressioni Applicazione: rendez-vous di due aerei Un caccia parte all istante t c e un aerocisterna parte (dallo stesso punto) all istante t s (t c > t s ). Entrambi si muovono di moto rettilineo uniforme con velocità v c e v s (v c > v s ), rispettivamente. Per calcolare il tempo t r e la posizione s r del rendez-vous applichiamo l equazione del moto rettilineo uniforme: Il rendez-vous avviene quando vale: da cui: s = v(t t 0 ) v c (t t c ) = v s (t t s ) t r = v st s + v c t c v c v s, s r = v c (t r t c ) Problema: dati v c, v s, t c e t s, calcolare t r e s r (file RENDEZ.F90). Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 37 / 38

41 Soluzione dell esercizio Espressioni 1! F i l e : r e n d e z. f 9 0 2! Time stamp : 01/12/ : 0 2 : 0 3 c a d o l i 3! Scopo : i l l u s t r a r e una s e m p l i c e a p p l i c a z i o n e a e r o n a u t i c a 4 5 PROGRAM r e n d e z v o u s 6! Questo programma c a l c o l a l i s t a n t e d i rendez vous f r a un c a c c i a ed 7! una a e r o c i s t e r n a 8 9! SEZIONE DICHIARATIVA 10 IMPLICIT NONE 11 REAL : : t c, t s, v c, v s! i d a t i i n i n p u t 12 REAL : : t r, s r! i d a t i d e l rendez vous ( da c a l c o l a r e ) 13 14! SEZIONE ESECUTIVA 15 WRITE (, ) I n s e r i r e l i s t a n t e d i p a r t e n z a d e l l a e r o c i s t e r n a ( s e c ) : 16 READ (, ) t s 17 WRITE (, ) I n s e r i r e l i s t a n t e d i p a r t e n z a d e l c a c c i a ( s e c ) : 18 READ (, ) t c 19 WRITE (, ) I n s e r i r e l a v e l o c i t a d e l l a e r o c i s t e r n a (m/ s e c ) : 20 READ (, ) v s 21 WRITE (, ) I n s e r i r e l a v e l o c i t a d e l c a c c i a (m/ s e c ) : 22 READ (, ) v c 23 t r = ( ( v s t s ) + ( v c t c ) ) / ( v c v s ) 24 s r = v c ( t r t c ) 25 WRITE (, ) Dati d e l rendez vous : 26 WRITE (, ) s e c o n d i :, t r, ; m e t r i :, s r STOP 29 END PROGRAM r e n d e z v o u s Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica 38 / 38

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni condizionali di diramazione in Fortran 90 Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento

Dettagli

Introduzione al linguaggio Fortran 90

Introduzione al linguaggio Fortran 90 Introduzione al linguaggio Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica

Dettagli

II Esercitazione: S.O. & Fortran 77

II Esercitazione: S.O. & Fortran 77 II Esercitazione: S.O. & Fortran 77 Francesco Battista Corso di Calcolo Numerico 1 DIMA, Sapienza University of Rome, Italy February 9, 2014 Argomenti trattati 1 Brevi cenni sulle architetture informatiche

Dettagli

Fortran in pillole : prima parte

Fortran in pillole : prima parte Fortran in pillole : prima parte Annamaria Mazzia Dipartimento di Metodi e Modelli Matematici per le Scienze Applicate Corso di Metodi Numerici per l Ingegneria Introduzione al Fortran Un libro consigliato

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

I tipi di dato del Fortran

I tipi di dato del Fortran I tipi di dato del Fortran In Fortran sono disponibili 5 tipi di dato (tipi primitivi o predefiniti): INTEGER REAL COMPLEX CHARACTER LOGICAL tipi numerici tipi non numerici Non considereremo il tipo COMPLEX

Dettagli

Sviluppare un programma in FORTRAN

Sviluppare un programma in FORTRAN Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,

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

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

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

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

UD 3.2b: Programmazione in Pascal (1)

UD 3.2b: Programmazione in Pascal (1) UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

Dettagli

Fortran. Introduzione.

Fortran. Introduzione. Fortran Introduzione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Esistono molti linguaggi di programmazione usati in vari

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

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

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria (0 e 1) per rappresentare: i dati da elaborare (numeri, testi, immagini, suoni, ) le istruzioni dei programmi

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

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

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

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

Dettagli

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

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

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

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Analogico 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

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono La codifica binaria Fondamenti di Informatica Introduzione q Il calcolatore usa internamente una codifica binaria (0 e 1) per rappresentare: i dati da elaborare (numeri, testi, immagini, suoni, ) le istruzioni

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

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

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

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 27/28 Docente: ing. Salvatore Sorce Rappresentazione delle informazioni Sistemi di

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

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

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

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

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

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

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

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

La programmazione nel linguaggio C

La programmazione nel linguaggio C 3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi

Dettagli

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

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

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

Rappresentazione dei Dati

Rappresentazione dei Dati Parte II I computer hanno una memoria finita. Quindi, l insieme dei numeri interi e reali che si possono rappresentare in un computer è necessariamente finito 2 Codifica Binaria Tutti i dati usati dagli

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

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

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 8 A.A. 2013/2014 Ing. Davide Vanzo davide.vanzo@unitn.it Ing. Simone Zen simone.zen@unitn.it ufficio: Laboratorio didattico di modellistica ambientale (2 piano) Tel interno:

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

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

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

Dettagli

Codifica di informazioni numeriche

Codifica di informazioni numeriche Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Codifica di informazioni numeriche Fondamenti di Informatica - Ingegneria Elettronica Leonardo Querzoni querzoni@dis.uniroma1.it

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

Rapida Nota sulla Rappresentazione dei Caratteri

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

Dettagli

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1 I sistemi di numerazione Informatica - Classe 3ª, Modulo 1 1 La rappresentazione interna delle informazioni ELABORATORE = macchina binaria Informazione esterna Sequenza di bit Spett. Ditta Rossi Via Roma

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti di Laboratorio Il Linguaggio Python - Lezione 1

Appunti di Laboratorio Il Linguaggio Python - Lezione 1 Appunti di Laboratorio Il Linguaggio Python - Lezione 1 Giancarlo de Gasperis, Dario Del Moro, Luca Giovannelli Dipartimento di Fisica, Università di Roma Tor Vergata A.A. 2016/2017 GdG, DDM, LG (Fisica,

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

La codifica. dell informazione

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

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Sistemi di Numerazione Corso Università Numeri e Numerali Il numero cinque 5 V _ Π Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi Posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2 10 0 Sistemi Posizionali

Dettagli

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria Sistemi di Numerazione Binaria BIN.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Liceo Scientifico Vinci PROGRAMMA FINALE A.S. 2016/2017 Materia: INFORMATICA Classe 1Q Prof. Dardanelli Francesco PROGRAMMA SVOLTO NELL ANNO SCOLASTICO IL COMPUTER. Hardware e software. Il computer. Il

Dettagli

Breve guida al linguaggio FORTRAN 77

Breve guida al linguaggio FORTRAN 77 Breve guida al linguaggio FORTRAN 77 Variabili (valori di default) Iniziali con lettere da I a N Iniziali con lettere da A a H oppure da O a Z variabili intere, 4 byte in precisione singola variabili reali,

Dettagli

Rappresentazione dei dati in memoria

Rappresentazione dei dati in memoria Rappresentazione dei dati in memoria La memoria Una memoria deve essere un insieme di oggetti a più stati. Questi oggetti devono essere tali che: le dimensioni siano limitate il tempo necessario per registrare

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata Argomenti della Lezione 1) Matlab e simulazione 2) Esempi di utilizzo 1 Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata Matlab è un sistema di programmazione ad alto livello

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme

Dettagli

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

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

Dettagli

Rappresentazione numeri reali

Rappresentazione numeri reali Rappresentazione numeri reali I numeri reali rappresentabili in un calcolatore sono in realtà numeri razionali che approssimano i numeri reali con un certo grado di precisione Per rappresentare un numero

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

STORIA E CARATTERISTICHE

STORIA E CARATTERISTICHE IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori

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

La rappresentazione delle Informazioni

La rappresentazione delle Informazioni La rappresentazione delle Informazioni Nella vita di tutti i giorni siamo abituati ad avere a che fare con vari tipi di informazioni, di natura e forma diversa, così come siamo abituati a diverse rappresentazioni

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

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Interi positivi e negativi

Interi positivi e negativi Definizioni: numerali e numeri Un numerale è solo una stringa di cifre Un numerale rappresenta un numero solo se si specifica un sistema di numerazione Lo stesso numerale rappresenta diversi numeri in

Dettagli

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria Anno Accademico 2001/2002 Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria Prof. Riccardo Torlone Università di Roma Tre Numeri e numerali! Numero: entità astratta! Numerale: stringa di

Dettagli

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Tipi di dato. 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

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Codifica. Rappresentazione di numeri in memoria

Codifica. Rappresentazione di numeri in memoria Codifica Rappresentazione di numeri in memoria Rappresentazione polinomiale dei numeri Un numero decimale si rappresenta in notazione polinomiale moltiplicando ciascuna cifra a sinistra della virgola per

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

Progettazione di algoritmi: componenti di base e metodologie di sviluppo. Variabili e costanti. Variabili e costanti A = 2. Algoritmo PASCAL-LIKE

Progettazione di algoritmi: componenti di base e metodologie di sviluppo. Variabili e costanti. Variabili e costanti A = 2. Algoritmo PASCAL-LIKE Progettazione di algoritmi: componenti di base e metodologie di sviluppo Variabili e costanti Variabili e costanti PROBLEMA: calcolo dell area A di un triangolo di base b ed altezza h b h A =.4.5 b =.4,

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

Fondamenti di Programmazione. Sistemi di rappresentazione

Fondamenti di Programmazione. Sistemi di rappresentazione Fondamenti di Programmazione Sistemi di rappresentazione Numeri e numerali Il numero cinque 5 V _ Π 五 Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2

Dettagli