APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO"

Transcript

1 APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO Concetti fondamentali di FORTRAN 90 MARCO LIMONGI Istituto Nazionale di Astrofisica Osservatorio Astronomico di Roma

2 1. CONCETTI FONDAMENTALI DI FORTRAN 90 Sviluppare un programma in fortran implica i seguenti tre passi: Scrivere il sorgente. Cioe, attraverso un editor di testo, scrivere un file ascii che contenga tutte le istruzioni da eseguire Compilare. Cioe trasformare le istruzioni in linguaggio macchina Eseguire il Programma. La sequenza di comandi da digitare in ambiente bash e : $emacs programma.f90 & (editing del programma) $ifort [eventuali opzioni] programma.f90 (compilazione del programma) $./a.out (esecuzione del programma) oppure $ifort [eventuali opzioni] programma.f90 o eseguibile $./eseguibile 1.1. Struttura di un programma in Fortran Un programma Fortran ha generalmente la seguente struttura: Sezione dichiarativa: che include il nome del programma (o della routine, o della funzione), il tipo e il nome delle variabili utilizzate. Sezione esecutiva: che include le istruzioni che descrivono le azioni che il programma deve compiere. Sezione conclusiva: che e la dichiarazione di fine del programma (o della routine, o della funzione) 1

3 Program nomeprogramma! SEZIONE DICHIARATIVA Implicit none...dichiarazioni di variabili :! SEZONE ESECUTIVA...istruzioni! SEZIONE CONCLUSIVA End Program 1.2. Sezione dichiarativa La sezione dichiarativa e la prima parte del programma e consiste in una serie di dichiarazioni (o definizioni) preliminari Tipi semplici intrinseci. Il fortran 90 mette a disposizione 5 tipi di dati intrinseci: - INTEGER tipo numerico per gli interi - REAL tipo numerico per i reali - COMPLEX tipo numerico per i numeri complessi (non trattato in questo corso) - LOGICAL tipo per la gestione dei valori logici - CHARACTER tipo per la rappresentazione di stringhe di caratteri Variabili. Le variabili nella sezione dichiarativa vengono definite attraverso le istruzioni di dichiarazione. La dichiarazione associa ad una determinata variabile un determinato tipo, che ne definisce le caratteristiche. Per ogni tipo si avra in generale una dichiarazione differente. 2

4 Tipo INTEGER. Questo tipo puo utilizzare 1, 2, 4 o 8 bytes. L intervallo di definizione dipendera dal numeri di bytes utilizzati. Percio la sintassi per la dichiarazione di una variabile intera sara : - INTEGER(KIND=1) :: variabile (1 byte, valori da 2 7 a 2 7 1) - INTEGER(KIND=2) :: variabile (2 bytes, valori da 2 15 a ) - INTEGER(KIND=4) :: variabile (4 bytes, valori da 2 31 a ) - INTEGER(KIND=8) :: variabile (8 bytes, valori da 2 63 a ) Tipo REAL. Questo tipo puo utilizzare 4, 8, o 16 bytes. L intervallo di definizione e la precisione dipendera dal numeri di bytes utilizzati. Percio la sintassi per la dichiarazione di una variabile reale sara : - REAL(KIND=4) :: variabile (4 bytes, valori da a circa in modulo, precisione 8 cifre decimali) - REAL(KIND=8) :: variabile (8 bytes, valori da a circa in modulo, precisione 16 cifre decimali) - REAL(KIND=16) :: variabile (16 bytes, valori da a circa in modulo, precisione 32 cifre decimali) Tipo LOGICAL. Questo tipo e utilizzato per rappresentare i valori logici VERO o FALSO. In generale questo tipo puo utilizzare, come gli interi, 1, 2, 4 o 8 bytes. La sintassi per la dichiarazione di una variabile di tipo logico e : - LOGICAL(KIND=1) :: variabile (1 byte) - LOGICAL(KIND=2) :: variabile (2 bytes) - LOGICAL(KIND=4) :: variabile (4 bytes) - LOGICAL(KIND=8) :: variabile (8 bytes) Tipicamente si utilizza la dichiarazione con 1 byte. Tipo CHARACTER. Questo tipo e utilizzato per rappresentare sequenze di caratteri (stringhe) e la sintassi generale per la dichiarazione di variabili stringhe e : - CHARACTER(LEN=n) :: variabile (n = numero di caratteri) 3

5 Costanti Le costanti possono essere utilizzate sia nella sezione dichiarativa che in quella esecutiva. Se utilizzate nella sezione dichiarativa la sintassi generale sara - TIPO(KIND=n),PARAMETER :: costante=valore dove, al solito, il tipo e uno di quelli definito sopra. Se, invece, le costanti sono utilizzate nella sezione esecutiva, allora il loro tipo sara definito implicitamente. Ad esempio: 0, +28, Costanti di tipo INTEGER 0.E0, -3.3E2,1.0E-2 Costanti di tipo REAL(KIND=4) 0.D0, -3.3D2,1.0D-2 Costanti di tipo REAL(KIND=8).TRUE.,.FALSE. Costanti di tipo LOGICAL ciao, ciao Costanti di tipo CHARACTER Vettori. Un vettore (a array) e una sequenza di variabili tutte dello stesso tipo. Queste variabili vengono memorizzate in posizioni contigue di memoria. Si puo accedere ad una di queste variabili direttamente tramite un indice (o piu in generale una n upla di indici). La dichiarazione di un vettore avviene aggiungendo al nome tipo la sua dimensione. - TIPO(KIND=n,LEN=n),DIMENSION(m) :: nome dove m deve essere un intero costante o una costante definita come parameter. Ad esempio: REAL(KIND=8),DIMENSION(3) :: a dichiara un vettore di 3 reali, accessibili singolarmente come a(1), a(2), a(3) Gli array possono avere piu indici (dimensioni). Il rango di un array e il numero di dimensioni dell array stesso. Ad esempio REAL(KIND=8),DIMENSION(4,6) :: b dichiara una matrice 4x6 i cui elementi sono accessibili singolarmente come a(i,j). 4

6 Gli indici degli array possono avere diversi valori di minimo e massimo. Percio la dichiarazione piu generale di un array e : - TIPO(KIND=n,LEN=n),DIMENSION([estremo_inferiore:]estr emo_superiore) :: nome Ad esempio. INTEGER(KIND=4),DIMENSION(4:10) :: b definisce un vettore b le cui compenenti vanno da b(4) a b(10). Come le altre variabili un array puo essere inizializzato nella sezione dichiarativa. Ad esempio: REAL(KIND=8),DIMENSION(3) :: forza=(/3.2d0,-1.7d0,0.5d0/) N.B. Il numero di elementi fra i delimitatori / deve coincidere con quello degli elementi dell array. E possibile definire array la cui dimensione e allocata dinamicamente, cioe durante l esecuzione. Lo spazio viene allocato solo quando viene incontrata l istruzione ALLOCATE. La funzione ALLOCATED informa se l array e stato allocato o meno. La funzione DEALLOCATE libera lo spazio allocato per l array. Per utilizzare queste funzioni, l array deve essere definito com ALLOCATABLE, cioe : - TIPO(KIND=n,LEN=n),ALLOCATABLE,DIMENSION(:) :: nome o anche piu semplicemente - TIPO(KIND=n,LEN=n),ALLOCATABLE :: nome(:) Percio le istruzioni: REAL(KIND=4),ALLOCATABLE :: b(:) REAL(KIND=4),ALLOCATABLE :: a(:,:) dichiarano rispettivamente un vettore b e una matrice a di dimensioni indefinite. Per l allocazione e la deallocazione dinamica della memoria degli array rimandiamo al paragrafo sulla sezione dichiarativa. 5

7 Blocchi di memoria etichettati. I blocchi di memoria etichettati, cioe provvisti di nomi, vengono definiti da una istruzione di specificazione nella sezione dichiarativa del programma che assume la forma generica - COMMON /nome/nlista dove nome e il nome globale del blocco COMMON e nlista e la lista dei nomi delle variabili e dei nomi dei vettori che sono nell area di memoria etichettata nome separati dalla virgola. A questa area di memoria puo accedere qualsiasi unita o sottoprogramma (vedi dopo) del programma principale semplicemente inserendo la stessa istruzione COMMON e preservando l ordine delle variabili. Un disallineamento delle variabili provochera un errore in compilazione. Ovviamente una variabile puo comparire solo in un COMMON all interno dello stesso programma, sottoprogramma o unita. Se in un COMMON compare un vettore, la sua dimensione non puo essere allocata dinamicamente ma deve essere specificata Definizione dei valori iniziali. L istruzione DATA assegna un valore iniziale ad una variabile prima che il programma entri nella parte esecutiva. Questa istruzione, quindi, si trova nella sezione dichiarativa del programma. La sintassi dell istruzione DATA e la seguente: - DATA nlist1/clist1/,nlist2/clist2/... dove nlist e una lista di nomi di variabili e clist e un elenco di costanti. L effetto di questa istruzione, quindi, e quello di assicurare che ogni variabile della lista abbia un assegnato valore iniziale specificato dalla corrispondente costante. Ad esempio l istruzione: DATA A/0.1d0/,B/0.2d0/,N/3/ dara alle variabili A e B (reali) i valori iniziali 0.1 e 0.2, e alla variabile N (intera) il valore iniziale 3. 6

8 1.3. Sezione esecutiva. La sezione esecutiva e costituita da una serie di istruzioni Espressioni Le espressioni numeriche sono in generale costituite da operandi numerici ed operatori numerici. Il risultato di una espressione numerica e generalmente un singolo valore numerico. Gli operatori numerici sono i seguenti: Operatore Funzione ** Elevamento a potenza * Moltiplicazione / Divisione + Somma Sottrazione Le operazioni tra numeri interi hanno come risultato numeri interi. L operazione eseguita sul risultato e un troncamento. Cioe : 3/4=0, 4/4=1, 20/4=5, 21/4=5 Le operazioni tra numeri reali hanno come risultato numeri reali. Attenzione, pero, numero reale non vuol dire appartenente ad un continuo. In generale il risultato di una operazione e una approssimazione. Cioe 3.E0/4.E0=0.75E0, 4.E0/4.E0=1.E0, 1.E0+1.E-16=1.E0 In operazioni miste tra reali ed interi i numeri interi vengono convertiti in reali. Attenzione pero che la conversione avviene in ogni singolo sottocalcolo. 1.E0+1/4=1.E0, 1.E0+1.E0/4=1.25E0 Le espressioni relazionali consistono in due (o piu ) espressioni i cui valori vengono confrontati tra loro per valutare se e verificata o meno la relazione stabilita dall operatore relazionale. Gli operatori relazioni sono: 7

9 Operatore Relazione < Minore di <= Minore di o uguale a == Uguale a /= Diverso da > Maggiore di >= Maggiore di o uguale a Il risultato dell espressione relazionale sara.true. o.false. se la relazione specificata dall operatore relazionale sara soddisfatta o meno. Le espressioni logiche consistono in uno o piu operatori logici e operandi logici, numerici o relazionali. Gli operatori logici sono: Operatore Esempio Relazione.AND. A.AND. B L espressione e vera se A e B sono vere.or. A.OR. B L espressione e vera se A o B, o entrambe, sono vere.eqv. A.EQV. B L espressione e vera se A e B sono entrambe vere o entrambe false.neqv. A.NEQV. B L espressione e vera se A o B sono vere, ma l espressione e falsa se entrambe A e B sono vere.not..not. A L espressione e vera se A e falsa, e falsa se A e vera. 8

10 Istruzioni di assegnazione Il simbolo = non e il simbolo di uguaglianza, ma di assegnazione. In generale, quindi, in una istruzione di assegnazione avremo a sinistra del simbolo = il nome di una variabile, a destra del simbolo = una qualsiasi espressione valida. A=100 Assegna alla variabile A il valore 100 I=I+1 Aggiunge 1 alla variabile I e assegna il risultato alla variabile I Allocazione dinamica Come gia detto in precedenza e possibile definire degli array la cui dimensione non e fissata a priori, ma viene stabilita dinamicamente durante l esecuzione del programma, a seconda delle necessita. Per fare questo, oltre a definire l array di tipo ALLOCATABLE, e necessario scrivere l istruzione - ALLOCATE(nomevettore(n)) dove n e la dimensione del vettore. Per definire un intervallo degli indici l istruzione sara - ALLOCATE(nomevettore(n1:n2)) dove n1 e n2 sono l indice inferiore e superiore del vettore, rispettivamente. Se ad essere allocata e una matrice, allora l istruzione sara : - ALLOCATE(nomematrice(n1:n2,m1:m2)) La generalizzazione di questo comando a matrici con piu indici e evidente. Ovviamente i valori degli indici non sono in generale noti al momento della compilazione ma possono essere definiti durante l esecuzione del programma. Dopo l utilizzo e opportuno deallocare la memoria con il comando - DEALLOCATE(nomevettore(n)) - DEALLOCATE(nomevettore(n1:n2)) - DEALLOCATE(nomematrice(n1:n2,m1:m2)) 9

11 Se si vuole verifica l allocazione di un vettore (o una matrice) si puo utilizzare il comando: - ALLOCATED(nomevettore(n)) che restituisce un valore logico.true. se il vettore e stato allocato o.false. veceversa. L allocazione dinamica della memoria e utile allorquando non si conoscano le taglie degli array al momento della compilazione. In questo modo, quindi, e possibile gestire la memoria con maggiore efficenza, consentendo di ottimizare la quantita di spazio richiesto per il programma e permettendo cosi di poter trattare problemi altrimenti non trattabili a causa della scarsita della memoria Costrutto IF THEN ELSE Per implementare algoritmi complessi abbiamo bisogno di istruzioni piu complesse. La prima di queste permette di effetuare delle decisioni all interno del programma. E possibile questo attraverso il costrutto IF-THEN-ELSE. La forma piu semplice per questo costrutto e : IF(espressione_logica) istruzione Questo quando l istruzione da effettuare e una sola. Se invece si ha un blocco di istruzioni e possibile utilizzare il comando: IF(espressione_logica) THEN istruzioni ENDIF Notate come sia opportuno (anche se non necessario) che le istruzioni siano indentate per aumentare la leggibilita del codice. Nel caso ci siano due possiblita da decidere il costrutto si puo complicare nella forma: 10

12 IF(espressione_logica) THEN istruzioni ELSE istruzioni ENDIF Nel caso le decisioni da prendere siano piu di due allora la sintassi sara : IF(espressione_logica) THEN istruzioni ELSEIF(espressione_logica2) THEN istruzioni ELSE istruzioni ENDIF 11

13 Quindi nella forma piu generale il costrutto sara: IF(espressione_logica_1) THEN sequenza_di_istruzioni_1 ELSEIF(espressione_logica_2) THEN sequenza_di_istruzioni_2 ELSE sequenza_di_istruzioni_3 ENDIF E possibile infine anche associare un nome al costrutto secondo la sintassi [nome:] IF(espressione_logica_1) THEN sequenza_di_istruzioni_1 ELSEIF(espressione_logica_2) THEN [nome] sequenza_di_istruzioni_2 ELSE [nome] sequenza_di_istruzioni_3 ENDIF [nome] dove nome deve essere una stringa lunga massimo 31 caratteri e deve iniziare con una lettere. Nelle clausole ELSE IF e ELSE il nome e opzionale, mentre in ENDIF e obbligatorio. 12

14 Costrutto SELECT CASE Un altra istruzione di diramazione e il costrutto SELECT CASE la cui sintassi piu generale e : [nome:] SELECT CASE(espressione_di_case) THEN CASE(selettore_1) [nome] sequenza_di_istruzioni_1 CASE(selettore_2) [nome] sequenza_di_istruzioni_2 CASE DEFAULT [nome] sequenza_di_istruzioni_3 END SELECT [nome] In questo caso espressione_di_case viene confrontata con i selettori. Un selettore specifica una lista di range: se espressione_di_case e nel range di un selettore, allora il blocco di istruzioni corrispondenti verra eseguito, altrimento si passa al selettore successivo e cosi via fino eventualmente ad eseguire il blocco di istruzion di CASE DEFAULT. Attenzione perche espressione_di_case deve essere di tipo INTEGER, CHARACTER o LOGICAL ma non di tipo REAL. Un range puo essere specificato come segue: - valore esegue il blocco se espressione_di_case==valore - valore: esegue il blocco se espressione_di_case>=valore - :valore esegue il blocco se espressione_di_case<=valore - val1:val2 esegue il blocco se val1<=espressione_di_case<=val2 Un esempio dell uso di questo costrutto e il seguente: 13

15 INTEGER :: valore SELECT CASE (valore) CASE (1,2,3,5,7,11,13) stampa a terminale Numero primo CASE (4,6,8:10,12,14:15) stampa a terminale Numero non primo CASE (16:) stampa a terminale Numero troppo grande CASE DEFAULT stampa a terminale Errore END SELECT Questo costrutto permette una maggiore chiarezza rispetto al costrutto IF-THEN- ELSE Istruzioni di ciclo DO Le istruzioni di ciclo si utilizzano per eseguire compiti ripetitivi fino a che una determinata condizione si verifica. I cicli possono essere determinati, se si conosce esattamente il numero di iterazioni da effettuare, o indeterminati, se il numero di iterazioni e ignoto a priori ma finito. I primi vengono detti cicli iterativi mentre i secondi cicli while. Nei cicli iterativi il numero di iterazioni e noto nel momenti un cui si inizia il ciclo. E quindi necessaria una variabile (detta contatore ) che funge da inidice del ciclo. Questa variabile viene inizializzata automaticamente all inizio del ciclo, viene aggiornata automaticamente ad ogni iterazione e non deve essere mai cambiata dal programmatore. E necessario, inoltre stabilire gli estremi (iniziale e finale) del ciclo, che possono essere decisi durante l esecuzione e una volta stabiliti non possono essere piu cambiati, ed eventualmente un incremento che anch esso puo essere definito durante l esecuzione del programma e una volta stabilito non puo essere piu cambiato. La sintassi generale di un ciclo iterativo e : 14

16 DO indice=inizio,fine[,incremento] END DO sequenza di istruzioni Nel caso piu semplice in cui l incremento e uguale a 1 avvengono implicitamente le seguenti cose: 1. Immediatamente prima del DO viene posto indice=inizio (cio avviene una sola volta. 2. Se indice<=fine allora viene eseguita la sequenza di istruzioni. Immediatamente prima di END DO viene posto indice=indice Altrimenti si esce dal ciclo In questo caso il numero di iterazioni totali sara fine-inizio+1. L estensione al caso in cui l incremento sia arbitrario e 1. Immediatamente prima del DO viene posto indice=inizio (cio avviene una sola volta. 2. Se indice incremento<=fine incremento allora viene eseguita la sequenza di istruzioni. Immediatamente prima di END DO viene posto indice=indice+incremento. 3. Altrimenti si esce dal ciclo In questo caso il numero di iterazioni totali sara (fineinizio+incremento)/incremento. Nei cicli iterativi, quindi, il numero di iterazioni da eseguire e noto al momento in cui si entra nel ciclo. La limitazione di questi cicli, pero, sta nel fatto che esistono problemi che non si possono risolvere con un numero di iterazioni definito a priori. Ad esempio la lettura da tastiera di una sequenza di interi terminata da uno 0, il calcolo della lunghezza della sequenza (senza lo 0) e la stampa a terminale di quest ultima. Questa limitazione puo essere superata con i cicli while. Nei cicli while il numero di iterazioni non e necessariamente noto al momento di iniziare le iterazioni. La sintassi generale di un ciclo while e la seguente: 15

17 DO END DO sequenza_di_istruzioni_1 IF(espressione_logica) EXIT sequenza_di_istruzioni_2 Sia la prima che la seconda sequenza di istruzioni possono essere vuote (ovviamente non contemporaneamente). L espressione_logica e la sentinella del ciclo e rappresenta un evento particolare (ad esempio un valore particolare di una variabile) per cui il ciclo deve essere interrotto. L istruzione EXIT, percio, determina l uscita dal ciclo. Nei cicli annidati questa istruzione ha effetto sempre sul ciclo piu interno. Percio in questa sequenza DO sequenza_di_istruzioni_1 DO END DO END DO sequenza_di_istruzioni_2 IF(espressione_logica) EXIT sequenza_di_istruzioni_3 sequenza_di_istruzioni_4 l istruzione EXIT porta alla sequenza_di_istruzioni_4. Nota che l itruzione EXIT puo essere utilizzata in qualsiasi tipo di ciclo, anche in quelli iterativi. Un altra possibilita di implementazione dei cicli while e la seguente: DO WHILE (condizione) END DO sequenza_di_istruzioni_1 In questo caso il ciclo viene eseguito fino a che la condizione risulta verificata. 16

18 Una istruzione spesso utilizzata all interno dei cicli (sia iterativi che while) e il CYCLE, che fa partire la prossima iterazione del ciclo. Se questa istruzione viene utilizzata nei cicli while, l esecuzione riparte dalla prima sequenza di istruzione del ciclo dopo il DO, se invece e utilizzata in un ciclo iterativo, allora il contatore viene incrementato e l esecuzione riparte dalla prima sequenza di istruzioni subito dopo il DO. DO END DO sequenza_di_istruzioni_1 IF(espressione_logica) CYCLE sequenza_di_istruzioni_2 DO indice=inizio,fine[,incremento] END DO sequenza_di_istruzioni_1 IF(espressione_logica) CYCLE sequenza di istruzioni_2 Come per l istruzione EXIT, anche l istruzione CYCLE, nei cicli annidati, ha effetto sempre sul ciclo piu interno. Come per i costrutti IF-THEN-ELSE e SELECT CASE, anche i cicli posso essere identificati con un nome. Percio in generale la sintassi completa sara : [nome:] DO indice=inizio,fine[,incremento] sequenza di istruzioni END DO [nome] 17

19 [nome:] DO sequenza_di_istruzioni_1 IF(espressione_logica) EXIT [nome] sequenza_di_istruzioni_2 END DO [nome] [nome:] DO WHILE (condizione) sequenza_di_istruzioni_1 END DO [nome] L utilizzo del nome e utile spesso per gestire i comandi EXIT e CYCLE nei cicli annidati. Ad esempio in questa sequenza di istruzioni: esterno: DO sequenza_di_istruzioni_1 interno: DO sequenza_di_istruzioni_2 IF(espressione_logica) EXIT esterno sequenza_di_istruzioni_3 END DO interno sequenza_di_istruzioni_4 END DO esterno sequenza_di_istruzioni_5 il comando EXIT non porta all esecuzione della sequenza_di_istruzioni_4 come farebbe se non ci fosse indicato il nome, ma porta all uscita del ciclo piu esterno e percio all esecuzione della sequenza_di_istruzioni_5. 18

20 Operazioni di Input/Output Un programma FORTRAN puo leggere e scrivere su file, cioe una sequenza di elementi (caratteri e/o numeri) memorizzati in memoria secondaria (es. hard disk). La disciplina di accesso ad un file puo essere sequenziale, cioe dal primo elemento ai successivi in sequenza, o casuale, cioe ad un elemento qualsiasi in qualsiasi momento. E da notare che questi concetti sono generali ed indipendenti dal linguaggio di programmazione. Le operazioni principali su file sono: - Apertura di un file - Lettura di dati - Scrittura di dati - Chiusura del file Aprire di un file signifca creare una corrispondenza tra il nome fisico del file ed un nome logico da utilizzare all interno del programma e si effettua attraverso l istruzione: - OPEN (lista_open) La lista_open e una lista di parametri separati da una virgola. I parametri sono: - UNIT: che e il nome logico da utilizzare per accedere al file all interno del programma. Es. UNIT=10 - FILE: che e il nome fisico del file. Es. FILE= pippo.txt - STATUS: che puo assumere i seguenti valori: - OLD : se il file esiste gia e deve essere solo aperto; se il file non esiste viene segnalato un errore. - NEW : per creare un nuovo file se questo non esiste; se il file invece e gia esistente viene segnalato un errore - REPLACE : se il file esiste viene cancellato e ricreato - SCRATCH : per creare un file temporaneo che non viene salvato - ACTION : che puo essere READ o WRITE READ : il file puo essere solo letto, se viene scritto viene segnalato un messaggio di errore WRITE : il file puo essere solo scritto, se viene letto viene segnalato un messaggio di error 19

21 READWRITE : il file puo essere sia letto che scritto - IOSTAT : variabile di tipo INTEGER che memorizza eventi particolari e che permette di controllare lo stato delle operazioni. La sintassi e IOSTAT=nome_variabile. Se nome_variabile==0 tutto e andato a buon fine nome_variaible/=0 c e stato un errore nell operazione (ad esempio, un file in lettura non esiste, si e raggiunto la fine di un file in lettura o la fine di una riga, si e sbagliato il formato di lettura, etc.) In generale, se si vuole aprire un file in scrittura e sufficiente l istruzione - OPEN (UNIT=10,FILE= pippo.txt,iostat=ierr) cioe si e assegnato al file nuovo pippo.txt il nome logico 10 e la variabile intera ierr contiene il risultato delle operazioni su questo file. Attenzione perche se il file esiste questo viene cancellato e ricreato. La chiusura di un file significa cancellare l accoppiamento tra il nome fisico del file e l unita logica creata all interno del programma. La sintassi del comando e : - CLOSE (UNIT=unita_logica) Se un file aperto non viene chiuso, la chiusura avviene in modo implicito al termine del programma. La lettura e la scrittura su file avvengono attraverso i comandi - READ (UNIT=unita_logica,formato,IOSTAT=variabile) - WRITE (UNIT=unita_logica,formato) dove appunto l unita_logica e il nome logico assegnato al file nel comando OPEN. La specifica di formato verra descritto nel paragrafo successivo. Altre operazioni che possiamo fare sui files sono: - REWIND che ci riposiziona all inizio del file - BACKSPACE che ci riposiziona alla linea precedente Se al posto dell unita logica si scrive un asterisco, allora questo indica una lettura o scrittura dall input o l ouptut standard, tipicamente il monitor. 20

22 Formattazione dell Input e Output Abbiamo visto nel paragrafo precedente che alla lettura e alla scrittura su file o su monitor puo essere associata una specifica di formato. La specifica di formato puo essere assegnata attraverso: - un intero che specifica l etichetta di una istruzione FORMAT esplicita. Ad es. write(*,100)a 100 FORMAT(decrittori_di_formato) dove 100 e l etichetta di formato; - una stringa costante con nome formato= (descrittori_di_formato) write(*,formato)a - una stringa costante senza nome write(*,fmt= (descrittori_di_formato) )a - una stringa variabile (uso sofisticato che non tratteremo in questo corso) In tutti i casi i descrittori_di_formato specificano completamente il formato. In particolare: Controllano la posizione verticale della riga Controllano la posizione orizzontale Specificano come stampare una determinato valore Specificano quante volte deve essere ripetuto un descrittore I descrittori di formato utilizzano i seguenti simboli: - c: numero di colonna - d: numero di cifre a destra del punto decimale - m: numero minimo di cifre da visualizzare - n: numero di spazi da saltare - r: fattore di ripetizione - w: quanti caratteri utilizzare per un dato valore Se al posto della specifica di formato c e un asterisco, allora si intende un formato libero, cioe senza formattazione. 21

23 Numeri Interi: Il descrittore di formato generale per i numeri interi ha la forma - riw.m: - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - m indica quante cifre mostrare Ecco alcuni esempi: Numeri Reali: Il descrittore di formato generale per i numeri reali ha la forma - rfw.d (formato non esponenziale o virgola fissa): - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - d indica quante cifre decimali usare dopo il punto - rew.d (formato esponenziale o virgola mobile): - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - d indica quante cifre decimali usare dopo il punto Nota bene, se il descrittore di formato e preceduto da 1P allora il primo carattere del numero e la prima cifra significativa. 22

24 Alcuni esempi: WRITE(*,FMT= (E12.4) ) E+00 XXXXXXXXXXXX WRITE(*,FMT= (1P,E12.4) ) E-01 WRITE(*,FMT= (F8.4) ) XXXXXXXX XXXXXXXXXXXX Stringhe: Il descrittore di formato generale per le stringhe ha la forma: - raw: - r indica quanto volte applicare il descrittore - w (opzionale) specifica la larghezza del campo Alcuni esempi: WRITE(*,FMT= (A6) ) pippo pippo XXXXXX WRITE(*,FMT= (A8) ) pippo pippo XXXXXXXXX 1.4. Sezione Conclusiva La sezione conclusiva e composta dal comando: - END [PROGRAM [nome_programma]] 23

25 1.5. Modularizzazione (Subroutine, Function, Module) La modularizzazione e un esigenza generale della programmazione. Essa e utile a chi utilizza moduli realizzati da altri ed e utile a chi programma moduli per farli usare ad altri. Un modulo e una scatola nera. Per utilizzarlo: basta conoscere cosa fa non serve conoscere come lo fa In questo corso vedremo come realizzare semplici moduli software chiamati sottoprogrammi. E ragionevole scrivere un sottoprogramma in almeno due casi: uno stesso compito deve essere ripetuto piu volte, in contesti diversi uno stesso compito e parametrico In FORTRAN90 esistono die tipi di unita di programma: SUBROUTINE FUNCTION Le unita di programma in FORTRAN90 possono essere contenute in apposite librerie denominate moduli (MODULE). FUNCTION, SUBROUTINE e MODULE possono essere all interno dello stesso file che contiene il programma principale oppure possono essere file a se stanti (con estensione.f90). In questo secondo caso devono essere compilate separatamente e successivamente collegate al programma principale. Supponiamo di avere i seguenti file sorgenti: princ.f90 (contiene il PROGRAM main o programma principale) miomod.f90 (contiene un MODULE modulo) miasub.f90 (contiene la SUBROUTINE stampe) miafunc.f90 (contiene la FUNCTION areacerchio) La sequenza di comandi per creare ed utilizzare il file eseguibile e la seguente: Compilazione separata dei singoli files: $ifort c princ.f90 risultato: file princ.o $ifort c miomod.f90 risultato: file miomod.o e modulo.mod 24

26 $ifort c miasub.f90 risultato: file miasub.o $ifort c miafunc.f90 risultato: file miafunc.o Collegamento (link) dei singoli files e creazione eseguibile: $ifort o prova princ.o miomod.o miasub.o miafun.o risultato file eseguibile prova Esecuzione file eseguibile: $./prova Percio in generale lo sviluppo di programmi prevede la situazione tipica in cui si ha: Un file sorgente (.f90) contente il PROGRAM (o programma principale) vari files sorgente (.f90) ogniuno contente un MODULE; ogni MODULE puo contenere varie SUBROUTINE e/o FUNCTION; vari files sorgente (.f90) contenenti una o piu SUBROUTINE e una o piu FUNCTION Ogni unita di programma sara cotituita, come il programma principale, da una sezione dichiarativa, una sezione esecutiva ed una sezione conclusiva e per queste varranno le stesse regole discusse per il programma principale. Andiamo a vedere piu in dettaglio le varie unita di programma SUBROUTINE Una subroutine e una unita di programma indipendente che puo essere utilizzata all interno di altri programmi accetta un certo numero di parametri in input che puo elaborare restituisce un cetro numero parametri in output La sintassi per la dichiarazione di una subroutine e la seguente: 25

27 SUBROUTINE nome_subroutine(lista_argomenti) RETURN sezione dichiarativa sezione esecutiva END SUBROUTINE nome_subroutine Nella dichiarazione della subroutine, la lista_argomenti e una lista di parametri che possono essere in input e/o output. Per invocare una subroutine e necessario utilizzare l istruzione CALL nome_subroutine(lista_argomenti) L istruzione RETURN a fine procedura e opzionale, tuttavia alcuni compilatori potrebbero richiederla obbligatoriamente MODULE Il Module e un unita di programma che permette di includere subroutine e funzioni al suo interno. La sintassi per la dichiarazione di un modulo e : MODULE nome_modulo CONTAINS sezione dichiarativa dichiarazioni_di_unita _di_sottoprogrammi END MODULE nome_modulo Per invocare i sottoprogrammi o utilizzare le definizioni di tipo contenuti nel modulo e necessario importare il modulo attraverso l istruzione USE. Ad es. PROGRAM nome_programma USE nome_modulo IMPLICIT NONE... 26

28 FUNCTION Le funzioni definite dall utente possono essere utilizzate come qualsiasi funzione implicita FORTRAN90. La sintassi per definire una funzione e : FUNCTION nome_function(lista argomenti)! sezione dichiarativa TIPO:: nome_function! sezione esecutiva... RETURN nome_function=espressione END FUNCTION [nome_function] O in maniera equivalente: TIPO FUNCTION nome_function(lista argomenti) Come nel caso delle subroutine anche in questo caso l istruzione RETURN e opzionale. Le differenze principali tra subrotuine e function sono le seguenti. Le function restituiscono un valore Il tipo di tale valore va opportunamente dichiarato Le function vengono chiamate all interno delle espressioni Nell invocazione di una function non va usata l istruzione CALL Regole di visibilita Le costanti/variabili dichiarate in una unita di programma si chiamano LOCALI e non sono visibili all esterno dell unita di sottoprogramma stessa. Analogamente, le costanti/variabili definite nel programma principale non sono visibili all interno delle varie unita di programma. Di conseguenza possiamo dichiarare costanti e/o variabili con lo stesso nome in vari sottoprogrammi senza paura che ci sia interferenza tra queste. 27

29 Passaggio dei parametri nei sottoprogrammi I parametri costituiscono l interfaccia di una unita di programma, ovvero i dati che occorrono per poterla utilizzare. La lista dei parametri, presente tra le parentesi tonde a fianco al nome dell unita di programma, e costituita in generale da variabili e/o array. I parametri dei sottoprogrammi FORTRAN90 sono detti argomenti fittizi, cioe sono dei segnaposto per i valori veri e propri che saranno utilizzati durante l esecuzione del programma (argomenti reali). Esistono tre modalita distinte per ogni parametro passato che si definiscono attraverso l attributo INTENT nei seguenti modi: INTENT(IN): ingresso. Il parametro non puo essere modificato dentro la subroutine o funzione INTENT(OUT): uscita. Al termine della subroutine o funzione il valore del parametro potra essere stato modifica, il valore in ingresso non sara utilizzato INTENT(INOUT): ingresso e uscita. Il parametro ha informazioni in ingresso ma potra essere modificato (DEFAULT). Quando si invoca un sottoprogramma e necessario istanziare tutti i parametri, sostituendo cioe ai parametri fittizi i valori effettivi (espressioni, variabili, array, costanti). Lo schema di passaggio dei valori utilizzato dal FORTRAN90 e quello per riferimento, non vengono passati i valori veri e propri ma viene passo il riferimento alla locazione di memoria che contiene il valore. 28

30 2.6. Diagrammi di flusso Per sviluppare programmi complessi e utile avvalersi dei cosi detti diagrammi di flusso che sono una rappresentazione grafica delle operazioni che il programma dovra eseguire per effettuare il compito che noi desideriamo. La notazione grafica dei diagrammi di flusso e riportata nella seguente figura: Un esempio di diagrammi di flusso di un programma e il seguente: 29

31 Diagramma di flusso del costrutto IF THEN ELSE Sulla base delle definizioni precedenti possiamo indicare il diagramma di flusso di un costrutto IF-THEN-ELSE che sara : Ad esempio se volessimo scrivere un programma che, acquisiti in ingresso due numeri a e b determini la soluzione dell equazione ax+b=0 e la stampi a terminale, avremmo il seguente diagramma di flusso: 30

32 Diagramma di flusso del costrutto SELECT CASE Analogamente il diagramma di flusso di un costrutto SELECT CASE sara : 31

33 Diagramma di flusso del ciclo DO Il diagramma di flusso di un ciclo iterativo e : Un esempio di implementazione di un ciclo iterativo in un programma piu complesso e : 32

34 Il diagramma di flusso per un ciclo while, invece, ha la forma: 33

35 34

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi: JAVASCRIPT Introduzione Con l HTML siamo in grado di realizzare pagine web statiche. Con il linguaggio Javascript, invece, possiamo interagire modificando il contenuto della pagina. Il linguaggio javascript

Dettagli

Gli ARRAY in FORTRAN 90

Gli ARRAY in FORTRAN 90 ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno univocamente individuato dal valore di uno oppure due.. e fino a sette

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95 Corso di Laurea in Matematica - Laboratorio di Programmazione gr.2 a.a. 2014/15 SECONDA esercitazione in laboratorio --- Creazione e modifica di files ASCII per mezzo del programma gedit. --- Uso del compilatore

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Foglio di calcolo. Il foglio di calcolo: Excel. Selezione delle celle

Foglio di calcolo. Il foglio di calcolo: Excel. Selezione delle celle Foglio di calcolo Il foglio di calcolo: Excel I dati inseriti in Excel sono organizzati in Cartelle di lavoro a loro volta suddivise in Fogli elettronici. I fogli sono formati da celle disposte per righe

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 formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

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

Il foglio elettronico

Il foglio elettronico Il foglio elettronico Foglio di calcolo, Spreadsheet in inglese, Permette di elaborare DATI NUMERICI. E una TABELLA che contiene numeri che possono essere elaborati con FUNZIONI matematiche e statistiche.

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Compilatore risorse display grafico LCD serie IEC-line

Compilatore risorse display grafico LCD serie IEC-line Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

GUIDA BASE DI PASCAL

GUIDA BASE DI PASCAL 1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

Dettagli

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php MODULO 3 Microsoft Excel TEST ED ESERCIZI SU: http:///ecdl/excel/index.php Foglio Elettronico - SpreadSheet Un foglio elettronico (in inglese spreadsheet) è un programma applicativo usato per memorizzare

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo Release 4.90 Manuale Operativo BARCODE Gestione Codici a Barre La gestione Barcode permette di importare i codici degli articoli letti da dispositivi d inserimento (penne ottiche e lettori Barcode) integrandosi

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Foglio elettronico. OpenOffice.org Calc 1.1.3

Foglio elettronico. OpenOffice.org Calc 1.1.3 Foglio elettronico OpenOffice.org Calc 1.1.3 PRIMI PASSI CON IL FOGLIO ELETTRONICO Aprire il programma Menu Avvio applicazioni Office OpenOffice.org Calc. Chiudere il programma Menu File Esci. Pulsanti

Dettagli

Gli Array (2) Gli Array. Gli Array (4) Gli Array (3)

Gli Array (2) Gli Array. Gli Array (4) Gli Array (3) Gli Array! Gli Array sono una delle funzioni più interessanti e flessibili.! A differenza degli altri linguaggi.! Gli array di PHP possono archiviare dati di vari tipi.! Possono organizzarli automaticamente

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

qui possiamo scegliere se creare un nuovo Database oppure aprire un Database già esistente. Fatto ciò avremo questa seconda schermata:

qui possiamo scegliere se creare un nuovo Database oppure aprire un Database già esistente. Fatto ciò avremo questa seconda schermata: Creare un Database completo per la gestione del magazzino. Vedremo di seguito una guida pratica su come creare un Database per la gestione del magazzino e la rispettiva spiegazione analitica: Innanzitutto

Dettagli

Apros s.r.l. è lieta di presentarvi

Apros s.r.l. è lieta di presentarvi Apros s.r.l. è lieta di presentarvi Apros Configurator è uno strumento facile ed intuitivo nel suo utilizzo, che vi permetterà di realizzare in breve tempo il dimensionamento di canne fumarie e renderà

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Programmazione in Excel con il linguaggio Visual Basic

Programmazione in Excel con il linguaggio Visual Basic Programmazione in Excel con il linguaggio Visual Basic L'ambiente di programmazione Il foglio elettronico Excel, così come gli altri prodotti Office di Microsoft, possiede un vero e proprio ambiente di

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

Costruzione di Siti Web con PHP e MySQL. Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date

Costruzione di Siti Web con PHP e MySQL. Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date Costruzione di Siti Web con PHP e MySQL Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date Argomenti della lezione In questa lezione si riprenderanno le strutture di controllo, verrà introdotto

Dettagli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su

Dettagli

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

MODULO 4: FOGLIO ELETTRONICO (EXCEL) MODULO 4: FOGLIO ELETTRONICO (EXCEL) 1. Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei Personal computer. Essi

Dettagli

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI e AZIONAMENTI ELETTRICI INTRODUZIONE A MATLAB Ing. Alberto Bellini Tel. 0522 522626 e-mail: alberto.bellini@unimore.it

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Programmare script e Add-Ons per Blender 3D 2.5

Programmare script e Add-Ons per Blender 3D 2.5 Programmare script e Add-Ons per Blender 3D 2.5 Volume 1 www.redbaron85.com 1 SOMMARIO Premessa...5 Le basi del linguaggio Python...6 Il linguaggio Python...6 Cosa serve per programmare in Python...7 Il

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO

EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO BARRE PRINCIPALI GESTIONE FILE BARRA DEI MENU BARRA STANDARD Nuovo: si crea un nuovo foglio Apri: si carica un foglio da

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

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 di

Dettagli

Lezione 4 Introduzione a Microsoft Excel Parte Prima

Lezione 4 Introduzione a Microsoft Excel Parte Prima Lezione 4 Introduzione a Microsoft Excel Parte Prima Cenni preliminari... 1 Elementi sullo schermo... 2 Creazione di una cartella di lavoro... 3 Utilizzo di celle e intervalli... 3 Gestione della cartella

Dettagli

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Laboratorio di Informatica Lezione 2

Laboratorio di Informatica Lezione 2 Laboratorio di Informatica Lezione 2 Cristian Consonni 30 settembre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 2 1 / 42 Outline 1 Commenti e Stampa a schermo 2 Strutture di controllo 3

Dettagli

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

ASP 3.0 Il Sito Dinamico

ASP 3.0 Il Sito Dinamico www.idstudio.it ASP 3.0 Il Sito Dinamico di Lorenzo Garassino Introduzione e scopo del libro 1. Scenario 1.1. Il panorama 1.2. Sito Statico o Dinamico? 1.3. Prospettive 2. Cos è ASP 2.1. Descrizione 2.2.

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Compito di Tecnologie Informatiche Classe 1F 31/10/2013

Compito di Tecnologie Informatiche Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 31/10/2013 Classe 1F 28/11/2013 1- Associa ad

Dettagli

Traccia delle lezioni svolte in laboratorio Excel 2003. Excel 2003 Excel 2010

Traccia delle lezioni svolte in laboratorio Excel 2003. Excel 2003 Excel 2010 Traccia delle lezioni svolte in laboratorio Excel 2003 Excel 2003 Excel 2010 INTRODUZIONE A EXCEL EXCEL è un programma di Microsoft Office che permette di analizzare grandi quantità di dati (database)

Dettagli

ISTRUZIONI VELOCI DI PYTHON Versione 1.0 - (manuale realizzato con Google Documenti)

ISTRUZIONI VELOCI DI PYTHON Versione 1.0 - (manuale realizzato con Google Documenti) ISTRUZIONI VELOCI DI PYTHON Versione 1.0 - (manuale realizzato con Google Documenti) Realizzato da NiktorTheNat e diffuso in rete da: 8thPHLOOR Iniziato il giorno 8 febbraio 2010 - terminato il giorno

Dettagli

Il sistema operativo UNIX/Linux. Gli script di shell

Il sistema operativo UNIX/Linux. Gli script di shell Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

TEST: Word & Excel. 2014 Tutti i diritti riservati. Computer Facile - www.computerfacile.webnode.it

TEST: Word & Excel. 2014 Tutti i diritti riservati. Computer Facile - www.computerfacile.webnode.it TEST: Word & Excel 1. Come viene detta la barra contenente il nome del documento? A. barra del titolo B. barra di stato C. barra del nome D. barra dei menu 2. A cosa serve la barra degli strumenti? A.

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli