Risposte ai quesiti. Appendice B. Capitolo 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Risposte ai quesiti. Appendice B. Capitolo 1"

Transcript

1 Appendice B Capitolo 1 1. a) b) c) d) a) b) c) a) o E5AD 16 b) o 3BD 16 c) o 973F = , quindi il quarto bit è zero. 5. a) ASCII: M; EBCDIC: ( b) ASCII: {; EBCDIC: # c) ASCII: inutilizzato; EBCDIC: e Sì, una variabile a 4 byte di numeri reali può essere utilizzata per registrare valori più grandi di una variabile a 4 byte di numeri interi. Gli 8 bit dell esponente della variabile reale possono rappresentare valori fino a Un numero intero a 4 byte può rappresentare valori fino a (circa 10 9 ). La variabile reale ha però una precisione limitata a 6 o 7 cifre decimali, mentre la variabile intera ha una precisione di 9 o 10 cifre decimali.

2 2 Appendice B Capitolo 2 1. a) Costante reale valida. b) Non valida; le virgole non sono ammesse all interno delle costanti. c) Non valida; le costanti reali devono avere un punto decimale. d) Non valida; l apostrofo all interno di una stringa di caratteri racchiusa fra due virgolette semplici deve essere ripetuto. Le forme corrette sono Peso dell alluminio: oppure Peso dell alluminio:. e) Costante intera valida. f) Costante reale valida. g) Costante di caratteri valida. h) Costante di caratteri valida. i) Costante di caratteri valida. j) Non valida; le costanti di caratteri devono essere racchiuse fra una coppia di virgolette semplici o doppie. k) Costante di caratteri valida. l) Costante reale valida. 2. m) Non valida; gli esponenti dei numeri reali sono rappresentati dalla lettera E, non dal simbolo ^. n) Stesso valore. o) Valore diverso. p) Valore diverso. 3. q) Nome di programma valido. r) Non valida; il nome di programma deve iniziare con una lettera. 4. s) Variabile di interi valida. t) Variabile di reali valida. u) Non valida; il nome deve iniziare con una lettera. v) Variabile di reali valida. w) Non valida; il nome deve iniziare con una lettera. 5. x) Non valida; non sono presenti i due punti (::). y) Valida. Quesito 2 6. L ordine è (1) elevamento a potenza, da destra verso sinistra; (2) moltiplicazioni e divisioni, da sinistra verso destra; (3) addizioni e sottrazioni, da sinistra verso destra. Le parentesi modificano quest ordine: i termini fra parentesi sono valutati per primi, partendo dalle parentesi più interne e procedendo verso quelle più esterne. 7. a) Valida; risultato = 12 b) Valida; risultato = 42

3 3 c) Valida; risultato = 2 d) Valida; risultato = 2 e) Non valida; divisione per zero. f) Valida; risultato = 40.5; si noti che questo risultato è valido perché l elevamento a potenza precede il segno meno nella priorità degli operatori. Equivale all espressione (3.**4./2). e non richiede di elevare a potenza reale un numero negativo. g) Valida; risultato = h) Non valida; due operatori consecutivi. 8. a) 7 b) 21 c) 7 d) 9 9. a) Valida; risultato = 256 b) Valida; risultato = 0.25 c) Valida; risultato = 4 d) Non valida; numero reale negativo elevato a potenza reale. e) Valida; risultato = Le istruzioni non sono valide, in quanto tentano di assegnare un valore alla costante k. 11. result = a = 3.0; b = ; n = 3 Quesito r_eq = r1 + r2 + r3 + r4 14. r_eq = 1. / ( 1./r1 + 1./r2 + 1./r3 + 1./r4 ) 15. t = 2. * pi * SQRT( 1 / g ) 16. v = v_max * EXP( alpha * t ) * COS( omega * t ) 17. d = ½ at 2 + v 0 t + x f = 2π LC 19. E = 2 1 L i I risultati sono: E-02 Sapreste spiegare perché a è uguale a 0.05? 21. I risultati sono riportati di seguito. Sapreste spiegare perché i valori sono stati assegnati alle variabili con le istruzioni READ? E-02

4 4 Appendice B Capitolo 3 1. a) Valida; risultato =.FALSE. b) Non valida;.not. opera soltanto con i valori logici. c) Valida; risultato =.TRUE. d) Valida; risultato =.TRUE. e) Valida; risultato =.TRUE. f) Valida; risultato =.TRUE. g) Valida; risultato =.FALSE. h) Non valida;.or. opera soltanto con i valori logici. 2. Verrà visualizzata una F (per falso), poiché i + j = 4, mentre k = 2; l espressione i + j == k viene calcolata come falsa. Quesito 2 3. IF ( x >= 0. ) THEN sqrt_x = SQRT( x ) WRITE (*,*) "La radice quadrata di x e : ", sqrt_x ELSE WRITE (*,*) Errore: x < 0! sqrt_x = 0. END IF 4. IF ( ABS(denominatore) < 1.0E 10 ) THEN WRITE (*,*) Errore: divisione per 0! ELSE fun = numeratore/denominatore WRITE (*,*) FUN =, fun END IF 5. IF ( distanza > 300. ) THEN costo = * ( distanza 300.) ELSE IF ( distanza > 100. ) THEN costo = * ( distanza 100.) ELSE costo = 0.50 * distanza END IF costo_medio = costo/distanza 6. Le istruzioni sono sbagliate. Manca la clausola ELSE prima di IF (VOLTS < 105.). 7. Le istruzioni sono corrette. Visualizzano il messaggio Attenzione: la distanza e stata superata! perché la variabile warn è vera, anche se la distanza massima non è stata superata. 8. Le istruzioni sono sbagliate, in quanto viene utilizzato un valore reale per controllare le operazioni dell istruzione CASE. 9. Le istruzioni sono corrette. Visualizzano il messaggio Preparati a fermarti.

5 5 10. Le istruzioni sono tecnicamente corrette, ma il risultato non sarà quello che il programmatore intendeva ottenere. Se la temperatura è maggiore di 100 gradi, viene visualizzato il messaggio Superata la temperatura del corpo umano., anziché Superata la temperatura di ebollizione dell acqua., in quanto la struttura IF esegue le istruzioni della prima diramazione vera che incontra. Se la temperatura è maggiore di 100, è anche maggiore di 37. Capitolo ires = ires = ires = 10 (notate che una volta che ires = 10, inizierà l esecuzione ciclica del ciclo e ires non verrà più aggiornato a prescindere da quante volte il ciclo viene eseguito). 10. ires = ires = Non valide. Queste istruzioni ridefiniscono l indice i all interno del ciclo. 13. Valide. 14. Non valide. I cicli DO si sovrappongono. Quesito 2 15.a) Valida; risultato =.FALSE. b) Valida; risultato =.TRUE. c) Valida; risultato = Hello there d) Valida; risultato = Hellothere 16.a) Valida; risultato = bcd b) Valida; risultato = ABCd c) Valida; risultato =.FALSE. d) Valida; risultato =.TRUE. e) Non valida: non è possibile confrontare stringhe di carattere e interi. f) Valida; risultato =.TRUE. g) Valida; risultato =.FALSE.

6 6 Appendice B 17. La lunghezza di str3 è 20, quindi la prima istruzione WRITE produce un 20. I contenuti di str3 sono Hello World (con 5 spazi vuoti al centro), quindi la lunghezza ritagliata della stringa è 15. Dopo il set successivo di manipolazioni, i contenuti di str3 sono HelloWorld, quindi la terza istruzione WRITE visualizza 20 e la quarta 10. Capitolo 5 Esiste più di un modo per scrivere ognuna delle istruzioni FORMAT riportate in questa serie di quesiti. Le risposte riportate di seguito rappresentano alcune tra le tante possibili soluzioni corrette. 1. WRITE (*,100) 100 FORMAT ( 1,24X, "Questa e una prova! ") 2. WRITE (*,110) i, j, dato_1 110 FORMAT ( 0,2I10,F10.2) 3. WRITE (*,110) risultato 110 FORMAT ( 1, "Il risultato e ", ES12.4) ********** E ********** E ***** ABCDEFGHIJ ABC12345IJ 11. ABCDE 12345

7 7 12. Corrette. Tutti i descrittori di formato corrispondono ai tipi di variabili. 13. Errate. I descrittori di formato non corrispondono ai tipi di variabili di test e ierror. 14. Questo programma salta all inizio della pagina e stampa i seguenti dati: Output Data =========== POINT( 1) = POINT( 2) = Quesito 2 Esiste più di un modo per scrivere ognuna delle istruzioni FORMAT riportate in questa serie di quesiti. Le seguenti risposte rappresentano alcune tra le tante possibili soluzioni corrette. 15. READ (*,100) ampiezza, conta, nome 100 FORMAT (9X,F11.2,T30,I6,T60,A13) 16. READ (*,110) titolo, i1, i2, i3, i4, i5 110 FORMAT (T10,A25,/,(4X,I8)) 17. READ (*,120) stringa, numero 120 FORMAT (T11,A10,///,T11,I10) 18. a = , b = 17., c = a = , b = , c = i = 35, j = 6705, k = stringa_1 = FGHIJ, stringa_2 = KLMNOPQRST stringa_3 = UVWXYZ0123, stringa_4 = _TEST_ Corrette. 23. Corrette. Queste istruzioni inseriscono nella variabile intera roba il contenuto delle colonne di una riga; poi inseriscono nella variabile reale cosa il contenuto delle colonne 1-15 della riga successiva. 24. Errate. La variabile reale altitudine viene associata a un descrittore di formato I6. Quesito OPEN (UNIT=25, FILE= IN052691', ACTION= READ, IOSTAT=istat) IF ( istat /= 0 ) THEN WRITE (*, (1X,A,I6) ) Errore di apertura del file. IOSTAT=, istat ELSE... END IF 26. OPEN (UNIT=4, FILE=nome_out, STATUS= NEW, ACTION= WRITE & IOSTAT=istat) 27. CLOSE (UNIT=24)

8 8 Appendice B 28. READ (8, *, IOSTAT=istat) prima, ultima IF ( istat < 0 ) THEN WRITE (*,*) "Fine del file nell unita' 8. " END IF 29. DO i = 1, 8 BACKSPACE (UNIT=13) END DO 30. Errate. Il file data1 è stato sostituito, quindi non ci sono dati da leggere. 31. Errate. Non è possibile assegnare un nome a un file temporaneo (scratch). 32. Errate. Non c è nulla da leggere nel file scratch, in quanto il file è stato creato quando era aperto. 33. Errate. Non è possibile utilizzare un valore reale come numero di unità di I/O. 34. Corrette. Capitolo Valide. L array sarà inizializzato con i valori del costruttore di array. 5. Valide. I dieci valori dell array saranno inizializzati a Valide. Ogni decimo elemento dell array sarà inizializzato a 1000; tutti gli altri valori saranno inizializzati a zero. 7. Non valide. Gli array non hanno la stessa forma, in quanto array1 contiene 11 elementi, mentre array2 ne contiene Valide. Ogni decimo elemento dell array in sarà inizializzato a 10, 20, 30 e così via. Tutti gli altri elementi saranno inizializzati a zero. L array sub1 sarà inizializzato a 10, 20, 30,, 100. L array sub2 sarà inizializzato a 1, 2, 3,, 10. La moltiplicazione sarà svolta correttamente perché gli array sub1 e sub2 hanno la stessa forma. 9. Quasi valide. I valori dell array error saranno visualizzati; tuttavia, poiché error(0) non è mai stato inizializzato, è impossibile prevedere che cosa sarà visualizzato o se il tentativo di visualizzare questo elemento dell array causerà un errore di I/O. 10. Valide. L array ivec1 sarà inizializzato a 1, 2,, 10. L array ivec2 sarà inizializzato a 10, 9,, 1. L array data1 sarà inizializzato a 1., 4., 9.,, 100. L istruzione WRITE visualizzerà 100., 81., 64.,, 1., a causa dell indice vettoriale. 11. Probabilmente non valide. Queste istruzioni saranno compilate correttamente, ma probabilmente non svolgeranno il compito previsto dal programmatore. Sarà creato un array di 10 elementi interi: mydata. Ogni istruzione READ agisce su tutto l array,

9 9 quindi mydata sarà inizializzato 10 volte (con 100 valori di input). Il programmatore probabilmente intendeva inizializzare una sola volta ogni elemento dell array. Capitolo 7 1. La chiamata di media_ds non è corretta. Il secondo argomento è dichiarato come numero intero nel programma chiamante, mentre è un numero reale nella subroutine. 2. Queste istruzioni sono corrette. Quando finisce l esecuzione della subroutine, string2 contiene l immagine speculare dei caratteri di string1. 3. Queste istruzioni non sono corrette. La subroutine sub3 utilizza 30 elementi nell array iarray, ma soltanto 25 valori vengono passati dal programma chiamante. Inoltre, la subroutine utilizza un array fittizio di dimensione presunta, che non deve essere utilizzato nei nuovi programmi. Quesito 2 4. Se i valori dei dati sono definiti in un modulo, e due o più procedure USE utilizzano quel modulo, possono vedere tutto e condividere i dati. È un modo comodo per condividere dati privati in un gruppo di procedure correlate, come random0 e seed nell Esempio Se le procedure sono collocate in un modulo e se vi si accede attraverso l associazione USE, avranno interfacce esplicite, che consentono al compilatore di catturare numerosi errori nella sequenza di chiamata. 6. In questo programma non ci sono errori. Il programma principale e la subroutine condividono i dati utilizzando il modulo mydata. L output del programma è a(5) = Questo programma non è valido. La subroutine sub2 viene chiamata con una costante come secondo argomento, che è dichiarato come INTENT(OUT) nella subroutine. Il compilatore catturerà questo errore perché la subroutine si trova all interno del modulo a cui si accede mediante l associazione USE. Quesito 3 8. REAL FUNCTION f2(x) IMPLICIT NONE REAL, INTENT(IN) :: x f2 = (x 1.) / (x + 1.) END FUNCTION 9. REAL FUNCTION tanh(x) IMPLICIT NONE REAL, INTENT(IN) :: x tanh = (EXP(x) EXP( x)) / (EXP(x) + EXP( x)) END FUNCTION 10. FUNCTION fatt(n) IMPLICIT NONE

10 10 Appendice B INTEGER, INTENT(IN) :: n INTEGER :: fatt INTEGER :: i fatt = 1. DO i = n, 1, 1 fatt = fatt * i END DO END FUNCTION 11. LOGICAL FUNCTION confronta(x) IMPLICIT NONE REAL, INTENT(IN) :: x, y confronta = (x**2 + y**2) > 1.0 END FUNCTION 12. La funzione non è valida perché sum non viene mai inizializzata. La somma deve essere impostata a zero prima del ciclo DO. 13. La funzione non è valida. L argomento a è INTENT(INI), ma il suo valore viene modificato nella funzione. 14. La funzione è valida. Capitolo elementi. Range valido da data_input( 64,0) a data_input(64,4) elementi. Range valido da filenm(1,1) a filenm(3,70) elementi. Range valido da in( 3, 3,1) a in(3,3,6). 4. Non valide. Il costruttore di array non ha la stessa forma dell array dist. 5. Valide. L array dist sarà inizializzato con i valori del costruttore di array. 6. Valide. Gli array data1, data2 e data_out sono conformi, quindi la somma è valida. La prima istruzione WRITE visualizza cinque valori: 1., 11., 11., 11., 11.. La seconda istruzione WRITE visualizza 11. e Valide. Le istruzioni inizializzano l array e poi selezionano la sezione specificata da list1= (/1,4,2,2/) e list2=(/1,2,3/). La sezione di array risultante è questa: 8. Non valide. C è una sezione di array con elementi ripetuti nel lato sinistro dell istruzione di assegnazione.

11 11 9. I dati nelle prime tre righe saranno letti nell array input, colonna per colonna: mydata(1,1) = 11.2, mydata(2,1) = 16.5, mydata(3,1) = 31.3 mydata(2,4) = I dati nelle prime tre righe saranno letti nell array input, colonna per colonna: mydata(0,2) = 11.2, mydata(1,2) = 16.5, mydata(2,2) = 31.3 mydata(2,4) = I dati nelle prime tre righe saranno letti nell array input, riga per riga: mydata(1,1) = 11.2, mydata(1,2) = 16.5, mydata(1,3) = 31.3 mydata(2,4) = I dati nelle prime tre righe saranno letti nell array input, riga per riga; tuttavia, soltanto i primi cinque valori di ogni riga saranno letti da ogni istruzione READ, perché la lettura ricomincia dal primo valore della riga successiva; quindi, mydata(2,4) = Il rango dell array mydata è La forma dell array mydata è L estensione della prima dimensione dell array data_input è Quesito LBOUND(valori,1) = 3, UBOUND(valori,2) = 50, SIZE(valori,1) = 7, SIZE(valori) = 357, SHAPE(valori) = 7, UBOUND(values,2) = 4, SIZE(values) = 60, SHAPE(values) = 3,4,5 20. MAXVAL(input1) = 9.0, MAXLOC(input1) = 5,5 21. SUM(arr1) = 5.0, PRODUCT(arr1) = 0.0, PRODUCT(arr1, MASK=arr1 /= 0.) = -45.0, ANY(arr1>0) = T, ALL(arr1>0) = F 22. SUM(arr2, MASK=arr2 > 0. ) = REAL, DIMENSION(5,5) :: input1 FORALL ( i=1:5, j=1:5 ) input1(i,j) = i+j-1 END FORALL WRITE (*,*) MAXVAL(input1) WRITE (*,*) MAXLOC(input1) 24. Non valide. Lo schema di controllo del costrutto WHERE ( time > 0. ) non ha la stessa forma dell array dist nel corpo del costrutto WHERE. 25. Non valide. L array time deve essere allocato prima che l array venga inizializzato. 26. Valide. L array di output risultante è:

12 12 Appendice B 27. Valide. Poiché l array non è allocato, il risultato della funzione ALLOCATED è falso, e l output dell istruzione WRITE è F. Capitolo 9 1. La risposta a questa domanda dipende dal processore. Consultate il manuale specifico per il vostro compilatore. 2. ( E-02, E-01) 3. PROGRAM mat_compl!! Scopo:! Eseguire il calcolo complesso:! D = ( A + B ) / C! dove A = ( 1., -1.)! B = (-1., -1.)! C = (10., 1.)! senza utilizzare il tipo di dato complesso.! IMPLICIT NONE REAL :: ar = 1., ai = -1. REAL :: br = -1., bi = -1. REAL :: cr = 10., ci = 1. REAL :: dr, di REAL :: tempr, tempi CALL agg_compl ( ar, ai, br, bi, tempr, tempi ) CALL div_compl ( tempr, tempi, cr, ci, dr, di ) WRITE (*,100) dr, di 100 FORMAT (1X, D = (,F10.5,,,F10.5, ) ) END PROGRAM mat_compl SUBROUTINE agg_compl ( x1, y1, x2, y2, x3, y3 )!! Scopo:! Subroutine per sommare due numeri complessi (x1, y1) e! (x2, y2), e memorizzare il risultato in (x3, y3).! IMPLICIT NONE REAL, INTENT(IN) :: x1, y1, x2, y2 REAL, INTENT(OUT) :: x3, y3 x3 = x1 + x2 y3 = y1 + y2 END SUBROUTINE agg_compl SUBROUTINE div_compl ( x1, y1, x2, y2, x3, y3 )!! Scopo:! Subroutine per dividere due numeri complessi (x1, y1) e! (x2, y2), e memorizzare il risultato in (x3, y3).!

13 13 IMPLICIT NONE REAL, INTENT(IN) :: x1, y1, x2, y2 REAL, INTENT(OUT) :: x3, y3 REAL :: denom denom = x2**2 + y2**2 x3 = (x1 * x2 + y1 * y2) / denom y3 = (y1 * x2 - x1 * y2) / denom END SUBROUTINE div_compl È molto più facile utilizzare il tipo di dati complesso per risolvere il problema che non utilizzare le definizioni di operazioni complesse e numeri reali. Capitolo WRITE (*,100) punti(7)%tempo_grafico%giorno, punti(7)%tempo_grafico%mese, & punti(7)% tempo_grafico%anno, punti(7)% tempo_grafico%ora, & punti(7)% tempo_grafico%minuto, punti(7)% tempo_grafico%secondo 100 FORMAT (1X,I2.2, /,I2.2, /,I4.4,,I2.2, :,I2.2, :,I2.2) 2. WRITE (*,110) punti(7)%posizione_grafico%x, & punti(7)%posizione_grafico%y, & punti(7)%posizione_grafico%z 110 FORMAT (1X, x 5,F12.4, y 5,F12.4, z 5,F12.4 ) 3. Per calcolare la differenza nel tempo, è necessario sottrarre le ore associate ai due punti, considerando le diverse scale associate alle ore, ai minuti, ai secondi e così via. Il codice riportato di seguito converte le ore in secondi prima di sottrarle e presume che entrambi i punti si verifichino nello stesso giorno, mese e anno (è semplice estendere questo calcolo anche alla gestione di giorni, mesi e anni arbitrari, ma per effettuare questi calcoli deve essere utilizzata l aritmetica reale in doppia precisione). Per calcolare la differenza nella posizione, utilizziamo la seguente equazione: dpos = ( x x ) + ( y y ) + ( z ) z1 tempo1 = punti(2)%tempo_grafico%secondo + 60.*punti(2)%tempo_grafico%minuto & *punti(2)%tempo_grafico%ora tempo2 = punti(3)%tempo_grafico%secondo + 60.*punti(3)%tempo_grafico%minuto & *punti(3)%tempo_grafico%ora dtempo = tempo2 - tempo1 dpos = SQRT ( & (punti(3)%posizione_grafico%x - punti(2)%posizione_grafico%x )**2 & + (punti(3)%posizione_grafico%y - punti(2)%posizione_grafico%y )**2 & + (punti(3)%posizione_grafico%z - punti(2)%posizione_grafico%z )**2 ) rate = dpos / dtempo 4. Valida. Questa istruzione visualizza tutti i componenti del primo elemento di punti dell array.

14 14 Appendice B 5. Non valida. I descrittori di formato non coincidono con l ordine dei dati in punti(4). 6. Non valida. Le operazioni intrinseche non sono definite per i tipi di dai dati derivati e il componente posizione_grafico è un tipo di dati derivato Capitolo Un puntatore è una variabile Fortran che contiene l indirizzo di un altra variabile o array Fortran. Una destinazione è una variabile o array Fortran ordinario dichiarato con l attributo TARGET, così che un puntatore possa puntarvi. La differenza tra un puntatore e una variabile ordinaria è che un puntatore contiene l indirizzo di un altra variabile o array Fortran, mentre una variabile Fortran ordinaria contiene dei dati. 2. Un assegnazione di puntatore assegna l indirizzo di una destinazione a un puntatore. La differenza tra un assegnazione di puntatore e un istruzione di assegnazione ordinaria è che la prima assegna l indirizzo di una variabile o array Fortran a un puntatore, mentre la seconda assegna il valore di un espressione alla destinazione puntata dal puntatore. punt1 => var! Assegna l indirizzo di var a punt1 punt1 = var! Assegna il valore di var alla destinazione di punt1 3. Gli stati di associazione possibili di un puntatore sono associato, dissociato e non definito. Quando un puntatore viene dichiarato per la prima volta, il suo stato è non definito. Può essere associato a una destinazione utilizzando un istruzione di assegnazione o un istruzione ALLOCATE. Il puntatore può essere dissociato da una destinazione da un istruzione NULLIFY, mediante l istruzione DEALLOCATE, assegnandogli un puntatore nullo in un istruzione di assegnazione di puntatore o utilizzando la funzione NULL() (solo nel Fortran 95). 4. Dereferenziare significa accedere alla destinazione corrispondente quando un riferimento a un puntatore appare in un operazione o in un istruzione di assegnazione. 5. La memoria può essere allocata dinamicamente utilizzando l istruzione ALLOCATE e può essere disallocata utilizzando l istruzione DEALLOCATE. 6. Non valida. Questo è un tentativo di utilizzare punt2 prima che venga associato a una destinazione. 7. Valida. Questa istruzione assegna l indirizzo di una variabile di destinazione valore al puntatore punt2. 8. Non valida. Un puntatore deve essere dello stesso tipo della sua destinazione. 9. Valida. Questa istruzione assegna l indirizzo dell array di destinazione array al puntatore punt4 e illustra l uso delle istruzioni POINTER e TARGET. 10. Valida, ma con una dispersione di memoria. La prima istruzione WRITE visualizzerà F, perché il puntatore punt non è associato. La seconda istruzione WRITE visualizzerà T seguita dal valore 137, perché è stata allocata una posizione in memoria utiliz-

15 15 zando il puntatore e il valore 137 è stato associato a quella posizione. L istruzione finale rende nullo il puntatore, rendendo inaccessibile la posizione in memoria allocata. 11. Non valida. Queste istruzioni allocano un array di elementi utilizzando punt1 e assegnandogli dei valori. L indirizzo dell array viene assegnato a punt2, quindi l array viene disallocato utilizzando punt1. Questo comporta che punt2 punti a una posizione in memoria non valida. Quando l istruzione WRITE viene eseguita, i risultati non sono più prevedibili. 12. Valida. Queste istruzioni definiscono un tipo di dati derivato che contiene un puntatore, quindi dichiarano un array di quel tipo di dati derivato. Il puntatore contenuto in ciascun elemento dell array viene quindi utilizzato per allocare un array e ogni array viene inizializzato. Infine vengono visualizzati l intero array puntato dal puntatore nel quarto elemento e il primo elemento dell array puntato dal settimo elemento. L output risultante è il seguente:

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

Breve guida al linguaggio FORTRAN 77

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

Dettagli

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

Vettori e Matrici (array)

Vettori e Matrici (array) Vettori e Matrici (array) Introduction to Fortran 90 Massimiliano Guarrasi, CINECA m.guarrasi@cineca.it Ottobre 2014 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

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

Dettagli

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

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

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

28/02/2014 Copyright V. Moriggia

28/02/2014 Copyright V. Moriggia Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1 28/02/2014 3.3 Dichiarazione di variabili in VBA

Dettagli

Programmazione con il linguaggio LibreOffice Basic

Programmazione con il linguaggio LibreOffice Basic Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software

Dettagli

I tipi di dato del Fortran

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

Dettagli

Sviluppare un programma in FORTRAN

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

Dettagli

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

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015 1 LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI A. A. 2014/2015 PRIMI PASSI La più semplice sequenza di istruzioni che possiamo scrivere è quella costituita da un solo comando. come si fa a

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Fortran per Ingegneri

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

Dettagli

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

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

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

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

LEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio

LEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio LEZIONE PRECEDENTE Introduzione a Sprite; Operatori e funzioni; Come usare i blocchi Movimenti per far muovere uno Sprite; Come usare i blocchi Penna per disegnare sullo stage; Esercizi 1 TO DO: Completa

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

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

Costanti e Variabili

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

Dettagli

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

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Vettori e Matrici (array)

Vettori e Matrici (array) Vettori e Matrici (array) Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2016 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile mediante indici

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Introduzione a Matlab

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

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

r fattore di ripetizione w ampiezza di campo m numero minimo cifre da visualizzare d numero cifre decimali Print e Read I/O in Fortran sintassi

r fattore di ripetizione w ampiezza di campo m numero minimo cifre da visualizzare d numero cifre decimali Print e Read I/O in Fortran sintassi I/O in Ftran Print e Read Paolo Bison Fondamenti di Infmatica A.A. 2006/07 Università di Padova R911 print-stmt is PRINT fmat [, output-item-list ] R909 read-stmt is READ ( io-control-spec-list ) [ input-item-list

Dettagli

Sistemi di Numerazione

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

Dettagli

VBA Principali Comandi

VBA Principali Comandi VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,

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

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

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

Dettagli

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

(prof. Claudio Maccherani, Perugia, 2009)

(prof. Claudio Maccherani, Perugia, 2009) (prof. Claudio Maccherani, Perugia, 2009) Il Fortran può essere considerato il primo linguaggio di programmazione ad alto livello. La sua prima implementazione, realizzata da un gruppo di lavoro diretto

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

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011 Laboratorio di informatica Ingegneria Clinica Esercitazione 2 10 Ottobre 2011 Istruzioni Istruzioni di Input/Output Istruzioni di assegnamento Istruzioni di controllo Permettono di modificare il flusso

Dettagli

MATLAB Elementi di grafica Costrutti di programmazione

MATLAB Elementi di grafica Costrutti di programmazione MATLAB Elementi di grafica Costrutti di programmazione Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Operazioni di Input/Output

Operazioni di Input/Output Operazioni di Input/Output Il FORTRAN90 è dotato di un'ampia varietà di istruzioni di I/O. Tra queste: -READ -WRITE -REWIND - BACKSPACE -OPEN -CLOSE Altrettanto vario è il numero di istruzioni per formattare

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

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio

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

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011 Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare

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

Fortran. Introduzione.

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

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

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

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

unità didattica 3 Le strutture condizionali e le strutture iterative

unità didattica 3 Le strutture condizionali e le strutture iterative unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell

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

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

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

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

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

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

Dettagli

TEST DI VERIFICA IN INGRESSO. Corso di Laurea in Informatica. Dipartimento di Scienze e Tecnologie Università di Napoli Parthenope

TEST DI VERIFICA IN INGRESSO. Corso di Laurea in Informatica. Dipartimento di Scienze e Tecnologie Università di Napoli Parthenope TEST DI VERIFICA IN INGRESSO Corso di Laurea in Informatica Dipartimento di Scienze e Tecnologie Università di Napoli Parthenope La durata del test è di 90 minuti. Ognuna delle 20 domande è del tipo a

Dettagli

Processore Danilo Dessì. Architettura degli Elaboratori.

Processore Danilo Dessì. Architettura degli Elaboratori. Processore 8088 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine

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

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

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

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

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Dettagli

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard

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

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

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono

Dettagli

Variabile, costante ed espressione

Variabile, costante ed espressione Variabile, costante ed espressione All interno di un programma un informazione può essere organizzata in vari modi: Variabile Costante Espressione Le variabili a loro volta possono essere: scalari vettori

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

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

1.2f: Operazioni Binarie

1.2f: Operazioni Binarie 1.2f: Operazioni Binarie 2 18 ott 2011 Bibliografia Questi lucidi 3 18 ott 2011 Operazioni binarie Per effettuare operazioni è necessario conoscere la definizione del comportamento per ogni coppia di simboli

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

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

Unità aritmetica e logica

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

Dettagli

Problema. Vettori e matrici. Vettori. Vettori

Problema. Vettori e matrici. Vettori. Vettori e matrici Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Problema Si vuole un programma che chieda 10 numeri dalla tastiera e li visualizzi dall ultimo al primo Soluzione attuale (con le

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

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

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

ESERCIZIARIO DI MATEMATICA

ESERCIZIARIO DI MATEMATICA Dipartimento di rete matematica ESERCIZIARIO DI MATEMATICA PER PREPARARSI ALLA SCUOLA SUPERIORE progetto Continuità SCUOLA SECONDARIA DI I GRADO Istituti comprensivi: Riva Riva Arco Dro Valle dei Laghi

Dettagli

La codifica. dell informazione

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

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

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