UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 FORTRAN. Documentazione di riferimento: Ambienti di sviluppo:

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 FORTRAN. Documentazione di riferimento: Ambienti di sviluppo:"

Transcript

1 UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 FORTRAN Documentazione di riferimento: 1. CHAPMAN S.J., Fortran 90/95, McGraw-Hill 2. RAUCCI B., Il Linguaggio Fortran 90/95, web 3. ADAMS J. C., BRAINERD W. S., MARTIN J. T., SMITH B. T., WAGENER J. L., Fortran 90 Handbook, McGraw-Hill (web) 4. WAGENER J. L., Concise Fortran 90/95 Reference, Absoft corporation (web) 5. CHIVERS I. D. and SLEIGHTHOLME J., Introduction to Programming with Fortran, Springer (web) - Force plus GNU Fortran (GFortran) - Force plus G95 Fortran (G95) Ambienti di sviluppo:

2 STRUTTURA DEI PROGRAMMI Un progetto Fortran consiste in generale - di un insieme di unità di programma compilate separatamente. Una delle suddette unità nei progetti più semplici l unica! deve essere il cosiddetto programma principale, cioè una sequenza di istruzioni e linee di commento opzionali aperta e chiusa dalle keyword PROGRAM ed END PROGRAM. PROGRAM nome-programma IMPLICIT NONE [sezione dichiarativa] [sezione esecutiva] [eventuali sottoprogrammi interni] END PROGRAM nome-programma

3 COMMENTI I commenti, opzionali, sono preceduti dal segno!. Tutto il testo che segue il suddetto segno, fino alla fine della linea, non ha rilevanza ai fini dell esecuzione del programma.! Programma esempio! PROGRAM Comment... READ(*,*) x! Leggi il valore di x... x = x + 1! incrementa x di un unità... END PROGRAM Comment

4 ISTRUZIONI LUNGHE Alcune regole di base: 1) Un istruzione per linea! 2) Se un istruzione è troppo lunga è consentito andare daccapo, utilizzando il carattere &. PROGRAM & Daccapo! PROGRAM Daccapo Perimetro = BaseMaggiore + BaseMinore + & Lato1 + Lato2! Perimetro = BaseMaggiore + BaseMinore + Lato1 + Lato2

5 ALFABETO I caratteri riconosciuti da Fortran includono le lettere dell alfabeto, minuscole e maiuscole, le cifre numeriche ed un set di caratteri speciali: space ' " ( ) * + - / : = _! & $ ; < > %?,. ATTENZIONE: Fortran è CASE INSENSITIVE, cioè non fa differenza fra maiuscole e minuscole in un senso che preciseremo meglio in seguito.

6 LITERALS Le costanti letterali o manifeste (o semplicemente literals) rappresentano valori fissi, numerici o alfabetici, utilizzati dal progettista nell ambito di un istruzione. In Fortran è possibile rappresentare esplicitamente numeri interi, numeri reali, numeri complessi, oppure valori logici, oppure ancora stringhe di caratteri.

7 INTERI Nelle istruzioni che seguono a destra del simbolo di assegnazione (=) è presente un literal che rappresenta un intero: X=12345 X=-345 X=+789 X=+0

8 REALI Nelle istruzioni che seguono a destra del simbolo di assegnazione (=) è presente un literal che rappresenta un reale: X=2.45 X=.13 X=13. X=-0.12 X=-.12

9 ANCORA REALI Un literal per un reale può essere rappresentato in forma esponenziale utilizzando i caratteri E oppure e, come negli esempi che seguono: X=12.E3! X=-12.e3! X=3.45E-8! X=-3.45e-8!

10 ANCORA REALI Negli esempi precedenti i simboli e ed E potevano essere sostituiti da d e D, col significato di forzare un interpretazione in doppia precisione del reale. E, infatti, importante ricordare che una costante di tipo REAL viene registrata in memoria in due parti: la mantissa e l esponente. Il numero di bit allocati per la mantissa determina la precisione della costante (ossia il numero di cifre significative), mentre il numero di bit allocati per l esponente determina il range della costante (ossia l intervallo dei valori che possono essere rappresentati).

11 COMPLESSI Un literal per rappresentare un numero complesso è una coppia di parentesi che racchiudono due literal per reali separati da una virgola: X=(1., 0.)! 1+0i X=(1.5, 2.)!1.5+2i

12 STRINGHE Una stringa di caratteri è una sequenza di caratteri qualsiasi delimitata indifferentemente da singoli o doppi apici: X= abc X= John Dow X= #$%^ X= ()() La lunghezza di una stringa corrisponde al numero di caratteri in essa contenuta, compresi gli eventuali caratteri-spazio.

13 ANCORA SULLE STRINGHE Una stringa di lunghezza 0 è una empty string: X= Se una stringa contiene apici singoli (doppi) occorre usare apici doppi (singoli) come delimitatori: X= L avevo detto! X= Gli dissi: va via! Due apici consecutivi sono trattati come uno: L hai visto?! L hai visto?

14 VERO E FALSO Due literal speciali,.false. e.true. Sono utilizzati per rappresentare i valori logici VERO e FALSO. Attenzione ai punti delimitatori, sono richiesti!

15 IDENTIFICATORI Un IDENTIFICATORE di Fortran 90 non può avere più di 31 caratteri Il primo carattere deve essere una lettera, seguita da altre lettere, cifre, il simbolo _. Come già detto Fortran 90 è case insensitive, quindi Nome, NOME, nome.. sono lo stesso identificatore. A differenza di altri linguaggi (C, Java, etc) Fortran 90 non ha parole riservate. Comunque è buona consuetudine non utilizzare keyword del linguaggio (PROGRAM, IF, WHILE, etc) come identificatori, anche per non penalizzare la leggibilità del codice.

16 DICHIARAZIONI Una dichiarazione di Fortran 90 è un espressione del tipo: specificatore-di tipo :: lista di oggetti dove lo specificatore-di tipo è una delle seguenti keyword: INTEGER, REAL, LOGICAL, COMPLEX and CHARACTER mentre la lista di oggetti è una sequenza di identificatori (per variabili, parametri, funzioni) - separati da virgole. Esempio: INTEGER :: x, y, z COMPLEX :: w

17 DICHIARARE STRINGHE Una menzione a parte meritano le dichiarazioni di variabili di tipo carattere. CHARACTER :: c dichiara una variabile che può contenere giusto un carattere. Se voglio dichiarare variabili di tipo stringa di caratteri devo utilizzare lo specificatore LEN, per esempio: CHARACTER(LEN=10) :: s dichiara una variabile stringa di lunghezza 10.

18 PARAMETER Una identificatore con attributo PARAMETER fa riferimento ad un valore fisso, definito subito nella dichiarazione e non più modificabile durante il ciclo di vita di un programma. REAL, PARAMETER :: pigreco = 3.14 Nell esempio pigreco identifica appunto un parametro di tipo intero, fissato già nella dichiarazione al valore 3.14 e non più modificabile.

19 COSTANTI STRINGHE Per le stringhe di caratteri l uso dell attributo PARAMETER è spesso combinato con la specificazione LEN=* che lascia al compilatore contare i caratteri della stringa fissa. Esempi: CHARACTER(LEN=3), PARAMETER :: x = non CHARACTER(LEN=2), PARAMETER :: y = si CHARACTER(LEN=*), PARAMETER :: & z = cosa vuoi che faccia?

20 VARIABILI Le variabili sono la classe di dati più importante di un programma. Hanno un tipo, un nome (identificatore) ed un valore. Il valore è tipicamente impostato nella fase iniziale di un programma già come parte della dichiarazione o con un assegnazione esplicita, oppure immesso dall utente a tempo di esecuzione - per esempio da tastiera. REAL :: x=1.21! È dichiarata la variabile intera x ed inizializzata al! valore 1.21 REAL :: x. x=1.21! assegnazione esplicita

21 READ INTEGER :: i, j READ(*,*) i, j Le linee di programma sopra riportate dichiarano le variabili intere i e j e, quindi, consentono all utente di inizializzarle dal dispositivo standard d input, la tastiera. Complementare alla precedente è l istruzione WRITE(*,*) i, j Il cui effetto sarebbe la riproduzione sul dispositivo standard d output il monitor dei valori delle variabili i e j.

22 READ e WRITE Consideriamo il semplicissimo programma: PROGRAM esempio INTEGER :: i, j, k, l READ (*,*) i, j READ (*,*) k, l WRITE (*,*) i, j, k, l END PROGRAM esempio

23 READ e WRITE (bis) Supponiamo di eseguirlo e di rispondere alla richiesta di input con le linee: 1 2, 3, 4 5, 6, 7, 8 Avremmo poi il seguente output: Perché?

24 ASSEGNARE UN VALORE La più semplice fra le istruzioni esecutive del Fortran è l istruzione di assegnazione, la cui sintassi è la seguente: variabile = espressione con il significato che il risultato di espressione viene immagazzinato nella locazione di memoria assegnata alla variabile. L esecuzione dell istruzione produce, nell ordine: il calcolo di espressione, il cui risultato viene valutato secondo le regole proprie del tipo dell espressione; la conversione di tipo, quando prevista e se il tipo di espressione non coincide con quello di variabile; l immagazzinamento del risultato nella locazione di memoria relativa a variabile.

25 ASSEGNAZIONI ED ESPRESSIONI Una espressione Fortran è una qualunque combinazione di operandi ottenuta tramite operatori e parentesi tonde; l esecuzione delle operazioni indicate dagli operatori dà luogo ad un risultato detto valore dell espressione. Si osservi che anche un singolo operando costituisce un espressione. Dunque l istruzione di assegnazione calcola il valore dell espressione a destra del segno di uguale e assegna tale valore alla variabile specificata a sinistra del segno di uguale. Si noti che il simbolo = non indica uguaglianza secondo il significato comune del termine. Piuttosto un istruzione di assegnazione va interpretata come: registra il valore di espressione nella locazione di memoria di variabile. E solo in tal modo che assumono un senso istruzioni di aggiornamento del tipo seguente: INTEGER :: count=0 count = count+1

26 ESPRESSIONI MATEMATICHE Tutti i calcoli effettuati da un programma Fortran vengono specificati attraverso istruzioni di assegnazione il cui formato generale è il seguente: variabile = espressione_matematica L esecuzione di una istruzione di questo tipo avviene calcolando prima il valore di espressione aritmetica e poi memorizzando poi tale valore nella cella identificata dal nome variabile. Si noti, tuttavia, che se il tipo dell espressione non coincide con quello della variabile a primo membro, allora il valore dell espressione viene convertito al modo seguente: Se il tipo di variabile è INTEGER mentre il tipo di espressione è REAL allora la parte decimale, incluso il punto, viene rimosso dando luogo ad un risultato intero. Se il tipo di variabile è REAL mentre il tipo di espressione è INTEGER allora al valore (intero) del risultato viene aggiunto il punto decimale dando così luogo ad un valore reale.

27 ESPRESSIONI MATEMATICHE(bis) INTEGER :: totale, prezzo, numero numero = 5 prezzo = totale = numero*prezzo WRITE(*,*) numero,prezzo,totale Le precedenti istruzioni dichiarano, dapprima, tre variabili di tipo INTEGER. Quindi, ha luogo la prima istruzione di assegnazione che salva il valore intero 5 nella variabile numero. La seconda istruzione salva il valore approssimato nella variabile prezzo. Tuttavia, dal momento che prezzo è una variabile intera, il valore reale viene dapprima troncato all intero 100 e poi immagazzinato nella variabile. Infine, la terza assegnazione calcola il valore dell espressione 5*100 e ne salva il risultato (500) nella variabile totale. Pertanto l istruzione di scrittura fornirà il seguente risultato:

28 ESPRESSIONI MISTE Tutte le operazioni aritmetiche viste finora erano applicate ad operandi dello stesso tipo ed il tipo del risultato coincideva con quello degli operandi. E tuttavia possibile utilizzare in una stessa espressione operandi di tipo diverso dando luogo a quelle che vengono dette operazioni miste. Le espressioni che contengono una o più operazioni miste si chiamano espressioni miste. Per quanto concerne il tipo del risultato, vale la regola generale secondo cui se il tipo di due operandi non è lo stesso, quello più debole viene automaticamente modificato in quello più forte mediante una operazione, detta di conversione, che permette il passaggio da una rappresentazione interna ad un altra. Questo processo di conversione è subordinato alla seguente gerarchia fra i tipi degli operandi: COMPLEX più forte REAL # INTEGER più debole Un operazione che coinvolga sia operandi interi che reali è un esempio di operazione mista. Quando un compilatore incontra una operazione del genere, converte il valore dell operando intero in valore reale sicché l operazione viene svolta con operandi reali. A titolo di esempio si possono considerare le seguenti espressioni: 3/2 espressione intera risultato: 1 (intero) 3./2. espressione reale risultato: 1.5 (reale) 3./2 espressione mista risultato: 1.5 (reale)

29 ESPRESSIONI MISTE Tuttavia, la conversione automatica viene effettuata soltanto se l operando intero e quello reale compaiono nella stessa operazione. Di conseguenza, una parte dell espressione potrebbe essere valutata come una espressione intera e una parte come espressione reale. Ad esempio, la seguente espressione: 1/2 + 1./4. fornisce il valore 0.25 (che coincide con il valore del secondo argomento della somma) in quanto la prima operazione, avvenendo fra operandi interi, restituisce un valore intero, nella fattispecie il valore 0. Se, invece, la prima operazione fosse stata di natura mista, come ad esempio: 1./2 + 1./4. avrebbe avuto luogo una conversione automatica tale che il valore (reale) della prima operazione sarebbe stato 0.5 e, dunque, il valore dell intera espressione sarebbe stato 0.75, ben diverso da quello fornito dall espressione precedente.

30 PRIORITA OPERATORI

31 FUNZIONI INTRINSECHE IMPORTANTI

32 FUNZIONI DI CONVERSIONE

33 ALTRE FUNZIONI NOTEVOLI

34 FUNZIONI PER IL TIPO CHARACTER ICHAR(C) Restituisce la posizione occupata dalla variabile C, di tipo CHARACTER, nel sistema di codifica utilizzato dall elaboratore, associato al parametro di kind dell argomento. Il risultato, che è di tipo INTEGER, è un valore compreso tra 0 ed n-1, essendo n il numero di caratteri del sistema di codifica adottata dal processore. CHAR(I[,KIND]) Restituisce il carattere che occupa la posizione I nella sequenza di collating del processore, associato al parametro di kind KIND opzionalmente specificato. Gli argomenti I e KIND devono entrambi di tipo intero. In particolare il valore di I deve essere compreso tra 0 ed n- 1, essendo n il numero di caratteri del sistema di codifica adottato dal processore. La funzione CHAR è l inversa di ICHAR.

35 FUNZIONI PER IL TIPO CHARACTER IACHAR(C) Restituisce la posizione occupata dalla variabile C, di tipo CHARACTER, nel sistema di codifica ASCII. Il risultato, che è di tipo INTEGER, è un valore compreso tra 0 ed n-1, essendo n il numero di caratteri del sistema di codifica adottata dal processore. Ad esempio, se i è una variabile di tipo INTEGER, l istruzione: i = IACHAR( W )! restituisce il valore 87. ACHAR(I) Restituisce il carattere corrispondente alla posizione I nella tabella ASCII. Se I è compreso tra 0 e 127, il risultato fornito è effettivamente l I_mo carattere della tabella; se, invece, I è maggiore di 127, il risultato sarà dipendente dal processore. Ad esempio, se a è una variabile di tipo CHARACTER, l istruzione: a = ACHAR(87)! restituisce il valore W.

36 FUNZIONI PER IL TIPO CHARACTER ADJUSTL(STRING) Restituisce la stringa STRING giustificata a sinistra. In altre parole rimuove i bianchi di testa e li sposta in coda. Esempio: CHARACTER(LEN=16) :: str str = ADJUSTL( Fortran 90 )! restituisce: Fortran 90 ADJUSTR(STRING) Restituisce la stringa STRING giustificata a destra. In altre parole rimuove i bianchi di coda e li sposta in testa. Esempio: CHARACTER(LEN=16) :: str str = ADJUSTR( Fortran 90 )! restituisce: Fortran 90

37 FUNZIONI PER IL TIPO CHARACTER INDEX(STRING,SET[,BACK]) Se la variabile logica BACK è assente o vale.false. restituisce la posizione di partenza di SET nella stringa STRING. Se la variabile logica BACK vale.true. allora la funzione restituisce la posizione di partenza dell ultima occorrenza. Il valore ritornato è zero nel caso in cui SET non sia presente in STRING. Esempio: INTEGER :: i... i = INDEX( particolari, ar,back=.true.)! ris: i = 9 i = INDEX( particolari, ar )! ris: i = 2 i = INDEX( particolari, or )! ris: i = 0

38 FUNZIONI PER IL TIPO CHARACTER LEN(STRING) Restituisce la lunghezza della stringa STRING omprensiva degli eventuali spazi bianchi di coda. Esempio: CHARACTER(LEN=11) str INTEGER :: i... i = LEN (str)! restituisce 11 i = LEN( Una frase con 6 spazi bianchi )! restituisce 30 LEN_TRIM(STRING) Restituisce la lunghezza della stringa STRING depurata degli eventuali spazi bianchi di coda. Se STRING è completamente bianca, il valore restituito è zero. Esempio: CHARACTER(LEN=11) str INTEGER :: i... i = LEN ( )! restituisce 0 i = LEN( Una frase con 6 spazi bianchi )! restituisce 24

39 FUNZIONI PER IL TIPO CHARACTER LGE(STRING_A,STRING_B) Restituisce il valore.true. se STRING_A >= STRING_B secondo la sequenza di collating ASCII. Gli argomenti STRING_A e STRING_B devono essere stringhe di caratteri con kind di default. Esempio: LOGICAL :: l... l = LGE( abc, abd )! ris:.false. l = LGE ( ab, aaaaaaab )! ris:.true. LGT(STRING_A,STRING_B) Restituisce il valore.true. se STRING_A > STRING_B secondo la sequenza di collating ASCII. Gli argomenti STRING_A e STRING_B devono essere stringhe di caratteri con kind di default. Esempio: LOGICAL :: l... l = LGT( abc, abc )! ris:.false. l = LGT( abc, aabc )! ris:.true.

40 FUNZIONI PER IL TIPO CHARACTER LLE(STRING_A,STRING_B) Restituisce il valore.true. se STRING_A <= STRING_B secondo la sequenza di collating ASCII. Gli argomenti STRING_A e STRING_B devono essere stringhe di caratteri con kind di default. Esempio: LOGICAL :: l... l = LLE( ABC, ABC )! ris.true. l = LLE( ABC, AABCD )! ris.false. LLT(STRING_A,STRING_B) Restituisce il valore.true. se STRING_A < STRING_B secondo la sequenza di collating ASCII. Gli argomenti STRING_A e STRING_B devono essere stringhe di caratteri con kind di default. Esempio: LOGICAL :: l... l = LLT( abc, abd )! ris:.false. l = LLT( aaxyz, abcde )! ris:.true.

41 FUNZIONI PER IL TIPO CHARACTER REPEAT(STRING,NCOPIES) Restituisce una stringa formata concatenando NCOPIES copie di STRING una dietro l altra. Se STRING è completamente bianca e NCOPIES vale zero, la stringa restituita avrà lunghezza nulla. Esempio: CHARACTER(LEN=6) :: str str = REPEAT( ho,3)! restituisce la stringa hohoho SCAN(STRING,SET[,BACK]) Restituisce la prima ricorrenza di un carattere di SCAN in STRING operando una scansione da sinistra. Se il parametro opzionale BACK è presente e vale.true. la scansione avviene da destra ma il conteggio avviene ancora da sinistra. Se BACK vale.true. la scansione viene effettuata da destra e la funzione restituisce la posizione dell ultima ricorrenza di un carattere di SCAN in STRING. Se nessun carattere di SET si trova anche in STRING, oppure se la lunghezza di SET o di STRING è nulla, la funzione restituisce il valore zero. Gli argomenti SET e STRING sono stringhe di caratteri mentre l argomento opzionale BACK deve essere di tipo LOGICAL. Esempio: INTEGER :: i... i = SCAN ( Fortran, tr )! ris: i = 3 i = SCAN ( Fortran, tr, BACK=.TRUE.)! ris: i = 5 i = SCAN ( Fortran, for )! ris: i = 0

42 FUNZIONI PER IL TIPO CHARACTER TRIM(STRING) Restituisce la stringa STRING depurata dagli eventuali spazi bianchi di coda. Se STRING è completamente bianca, il valore restituito è una stringa nulla. Esempio:! Questa istruzione stampa il valore 31 WRITE(*,*) LEN( Stringa con caratteri bianchi )! Questa istruzione stampa il valore 26 WRITE(*,*) LEN(TRIM( Stringa con caratteri bianchi ))

43 FUNZIONI PER IL TIPO CHARACTER VERIFY(STRING,SET[,BACK]) Restituisce la posizione della prima ricorrenza di un carattere di STRING che non è presente in SET operando la scansione da sinistra. Se la variabile opzionale BACK è presente con valore.true. allora la funzione restituisce la posizione dell ultima ricorrenza di un carattere di STRING che non è presente in SET. Il risultato della funzione è zero se tutti i caratteri di STRING sono presenti in SET. Se tutti i caratteri di STRING sono presenti anche in SET oppure se entrambe le stringhe hanno lunghezza nulla, la funzione restituisce il valore zero. Esempio: INTEGER(4) position... position = VERIFY ( particolari, prtl )! ris: position = 2 position = VERIFY ( particolari, prtli, BACK=.TRUE.)! ris: position = 9 position = VERIFY ( rosso, rso )! ris: position = 0

44 SPECIFICATORI DI RANGE Una specifica di sottostringa seleziona una porzione di una variabile di caratteri e tratta questa variabile come se fosse una variabile stringa indipendente. La porzione di stringa selezionata è chiamata sottostringa. Una sottostringa viene selezionata (estratta) appendendo al nome della variabile stringa uno specificatore di range. Quest ultimo ha la forma: (inizio : fine ) Ad esempio, data la stringa così dichiarata: CHARACTER(LEN=8) :: stringa="abcdefgh" possibili esempi di sottostringa sono: stringa(2:4)! "bcd" stringa(3:7)! "cdefg"

45 CONCATENAZIONE DI STRINGHE L operatore di concatenazione di stringhe combina due o più stringhe (o sottostringhe) a formare un unica stringa più grande. Esso è rappresentato dal simbolo di un doppio slash ( // ). La forma generale di questo operatore è la seguente: stringa_1 //stringa_2 [// stringa_3...] in cui, se le stringhe stringa_1 e stringa_2 hanno lunghezza n_1 ed n_2, rispettivamente, la lunghezza della stringa finale sarà n_1+n_2.

46 CONCATENAZIONE DI STRINGHE L operatore di concatenazione di stringhe combina due o più stringhe (o sottostringhe) a formare un unica stringa più grande. Esso è rappresentato dal simbolo di un doppio slash ( // ). La forma generale di questo operatore è la seguente: stringa_1 //stringa_2 [// stringa_3...] in cui, se le stringhe stringa_1 e stringa_2 hanno lunghezza n_1 ed n_2, rispettivamente, la lunghezza della stringa finale sarà n_1+n_2.

47 RELAZIONE D ORDINE FRA STRINGHE Il processo mediante cui due operatori stringa vengono confrontati si articola nei seguenti passi: - Se i due operandi non hanno la stessa lunghezza, al più corto dei due vengono idealmente aggiunti spazi bianchi in modo da rendere le stringhe di uguale lunghezza. - I due operandi vengono confrontati carattere per carattere a partire dal primo (ossia da quello più a sinistra) fino a quando non vengono riscontrati due caratteri differenti oppure fino al raggiungimento della fine delle stringhe. - Se vengono trovati due caratteri corrispondenti differenti, allora è la relazione tra questi due caratteri che determina la relazione tra i due operandi. In particolare viene considerato minore il carattere che viene prima nella sequenza di collating del processore. Se non viene riscontrata alcuna differenza le due stringhe vengono considerate uguali.

48 RELAZIONE D ORDINE FRA STRINGHE ESEMPI: "Adamo" > "Eva è falsa in quanto in qualunque sequenza di collating la lettera A precede sempre la E, ossia A è minore di E. Allo stesso modo, la relazione: "Eva" < "Evaristo è vera poiché la stringa Eva viene prolungata con cinque caratteri vuoti e la relazione fra le due stringhe si riduce alla relazione: " " < "r e il carattere nullo precede tutti i caratteri alfanumerici. Si noti, tuttavia, che le relazioni: "ADAMO" < "Adamo" "X4" < "XA" "var_1" < "var-1 non sono definite in Fortran ed il valore di ciascuna di esse dipende dalla particolare sequenza di collating implementata dal processore in uso.

49 RELAZIONE D ORDINE FRA STRINGHE Se, per ragioni di portabilità, fosse richiesta la definizione di un ordine per tutti i caratteri allora è necessario fare uso di un altro metodo di confronto. Questo nuovo metodo si basa sull utilizzo di quattro funzioni intrinseche lessicali : LGT, LGE, LLE, LLT, la cui sintassi è: LGT(STRING_A,STRING_B) LGE(STRING_A,STRING_B) LLE(STRING_A,STRING_B) LLT(STRING_A,STRING_B) ed il cui significato è, rispettivamente: STRING_A > STRING_B STRING_A >= STRING_B STRING_A <= STRING_B STRING_A < STRING_B sempre e soltanto secondo l ordinamento ASCII

50 THE END

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

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

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

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

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

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

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

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

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

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

Espressione di chiamata di funzione

Espressione di chiamata di funzione Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

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

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

Dettagli

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

VARIABILI E COSTANTI VARIABILI E COSTANTI - Variabili e costanti - 1 PROBLEMA: Calcolo dell area di un triangolo di base b e altezza h. area = b ------------ h 2 ESEMPIO: b = 2,4 h = 1,5 area = 2,4 -------------------- 1,5

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! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

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

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

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 2006/2007 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica

Dettagli

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

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

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

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

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

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

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 4 A.A. 2014/2015 Marco Redolfi marco.redolfi@unitn.it Simone Zen simone.zen@unitn.it Formati e Formattazione Finora abbiamo letto valori da tastiera e scritto sullo schermo

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Dettagli

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

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

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

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

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

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754 Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati

Dettagli

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

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

Dettagli

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

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

Dettagli

Input/Output di numeri

Input/Output di numeri Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include

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

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

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

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Argomenti trattati. Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni

Argomenti trattati. Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni Argomenti trattati Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni Informazione mi dai il numero di Andrea? 0817651831 Il 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

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

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

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

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 6 Il FORTRAN versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

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

Analizzatori Lessicali con JLex. Giuseppe Morelli

Analizzatori Lessicali con JLex. Giuseppe Morelli Analizzatori Lessicali con JLex Giuseppe Morelli Terminologia Tre concetti sono necessari per comprendere la fase di analisi lessicale: TOKEN: rappresenta un oggetto in grado di rappresentare una specifica

Dettagli

Rappresentazione binaria delle variabili (int e char)

Rappresentazione binaria delle variabili (int e char) Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati

Dettagli

Informazione e sua rappresentazione: codifica

Informazione e sua rappresentazione: codifica Corso di Calcolatori Elettronici I Informazione e sua rappresentazione: codifica ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Il concetto di informazione Qualunque informazione è definita

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

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

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

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

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

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

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

Dettagli

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

Ulteriori comandi sui file

Ulteriori comandi sui file Ulteriori comandi sui file Confronto tra file: 1. > cmp file1 file2 restituisce il primo byte ed il numero di linea in cui file1 e file2 differiscono (se sono uguali, non viene stampato nulla a video).

Dettagli

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

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

Dettagli

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

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Il Modello di von Neumann (2) Prevede 3 entità logiche: Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

3. Le routine evento in Access 2000/2003

3. Le routine evento in Access 2000/2003 LIBRERIA WEB 3. Le routine evento in Access 2000/2003 Le routine evento possono essere associate a un singolo controllo grafico (caselle di testo, pulsanti di comando, ecc.) presente all interno di una

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

I.4 Rappresentazione dell informazione

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

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII

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

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

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti Funzioni di I/O per numeri 2 Input e output di valori numerici Ver. 2.4.2 2012 - Claudio Fornaro - Corso di programmazione in C Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione

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

Algoritmi e soluzione di problemi

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

Dettagli

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

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

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

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

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL 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

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

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

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

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 I numeri reali Sommario Conversione dei numeri reali da base 10 a base B Rappresentazione dei numeri reali Virgola fissa Virgola mobile (mantissa

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

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

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

Dettagli

Espressioni con effetti collaterali

Espressioni con effetti collaterali Espressioni con effetti collaterali Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Operatore di assegnamento In C l assegnamento (=)

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

La codifica digitale

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

Dettagli

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 Sistemi posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2 10 0 Sistemi posizionali

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