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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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

2 Cosa vedremo in questa lezione 1 Array 2 Costanti di array e inizializzazione di array 3 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 2 / 25

3 Array Array Sono AGGREGATI di più variabili TUTTE DELLO STESSO TIPO (tutte intere, tutte reali,... ) Esistono anche i tipi derivati, che sono aggregati di variabili di tipi diversi Non vengono trattati in questo corso Alcuni esempi: array monodimensionale = VETTORE array bidimensionale = MATRICE array tridimensionale array n-dimensionale (con n fino a 7) Le variabili degli array (solitamente) occupano posizioni consecutive di memoria Fortran 90: array DIS - Dipartimento di informatica e sistemistica 3 / 25

4 Array Terminologia in Fortran 90 Un array avente n dimensioni è detto array di rango n Un vettore è un array di rango 1, una matrice è un array di rango 2 Il numero di elementi di una dimensione è detto estensione della dimensione Una matrice di 20 righe per 10 colonne è in Fortran 90 rappresentabile con un array di rango 2, con estensione della prima dimensione pari a 20 e della seconda pari a 10 Il numero di variabili complessivamente gestite da un array è detta dimensione dell array La forma di un array è definita dal rango e dalle estensioni per ogni dimensione Fortran 90: array DIS - Dipartimento di informatica e sistemistica 4 / 25

5 Array Sintassi dichiarazione array tipo, DIMENSION( [estremo inferiore:] estremo superiore) :: nome array tipo può essere qualsiasi (INTEGER, REAL, LOGICAL, CHARACTER()). estremo inferiore è OPZIONALE, implicitamente vale 1. il numero di elementi (o estensione) dell array è: estremo superiore - estremo inferiore + 1. estremo superiore ed estremo inferiore devono essere costanti di tipo INTEGER. nome array segue le stesse regole dei nomi di variabili e costanti Fortran 90: array DIS - Dipartimento di informatica e sistemistica 5 / 25

6 Array Confronti tra array Definizione Due array A e B hanno la stessa forma se valgono le seguenti condizioni: A e B sono definiti dello stesso tipo (intero, reale, logico o carattere) Il rango di A è uguale al rango di B Identificata con A i la i-sima dimensione di A e con B i la i-sima dimensione di B, deve valere la seguente condizione: estensione di A i = estensione di B i i Due array che hanno la stessa forma hanno anche la stessa dimensione Fortran 90: array DIS - Dipartimento di informatica e sistemistica 6 / 25

7 Array Esempi di dichiarazione ed uso di vettori Vettore di 3 ELEMENTI reali (array di rango 1 con estensione della dimensione pari a 3) REAL, DIMENSION( 3 ) : : f o r z a IMPLICITAMENTE, abbiamo dichiarato 3 variabili reali Esempio a carattere didattico: scorretto sintatticamente! REAL : : f o r z a ( 1 ), f o r z a ( 2 ), f o r z a ( 3 ) È possibile:! ASSEGNARE s i n g o l a r m e n t e i l v a l o r e d i un elemento f o r z a ( 1 ) = 1.2! STAMPARE s i n g o l a r m e n t e i l v a l o r e d i un elemento WRITE(, ) f o r z a ( 1 )! LEGGERE s i n g o l a r m e n t e i l v a l o r e d i un elemento READ(, ) f o r z a ( 2 ) Fortran 90: array DIS - Dipartimento di informatica e sistemistica 7 / 25

8 Altri esempi elementari Array Vettore di 7 stringhe di 3 caratteri ciascuna CHARACTER( 3 ), DIMENSION( 7 ) : : g i o r n i... g i o r n i ( 1 ) = LUN g i o r n i ( 2 ) = MAR... Vettore di 13 reali INTEGER, DIMENSION( 1 8 : 3 0 ) : : n u m e r o v o t i Vettore di 5 interi INTEGER, DIMENSION( 1:3) : : p e r s o n e Esempio di vettori aventi la stessa forma: INTEGER, DIMENSION( 3 ) : : v e t 1 INTEGER, DIMENSION( : ) : : v e t 3 INTEGER, DIMENSION( 25: 23) : : v e t 4 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 8 / 25

9 Array Ogni elemento di array è una variabile Poiché un elemento di array è una variabile, può essere usato ogni volta che è lecito usare una variabile. Ad esempio, è lecito usare un elemento di array nei casi seguenti: Come valore sinistro di istruzione di assegnazione (vedi esempi precedenti) Per la lettura, stampa (vedi esempi precedenti) Si può usare come parte di un espressione. Ad esempio, in questo caso viene stampato il modulo della forza: REAL, DIMENSION( 3 ) : : f o r z a... WRITE(, ) SQRT( f o r z a ( 1 ) 2 + f o r z a ( 2 ) 2 + f o r z a ( 3 ) 2 ) Si può usare come argomento effettivo, corrispondente ad uno fittizio con intento OUT o IN OUT CALL scambia ( p e r s o n e ( 2 ), p e r s o n e ( 3 ) ) Fortran 90: array DIS - Dipartimento di informatica e sistemistica 9 / 25

10 Costanti di array e inizializzazione di array Costanti di array Tutto quanto compreso fra (/ e /) è una costante senza nome di array Il delimitatore (/ viene detto costruttore di array L uso di costanti senza nome è ammesso anche nell istruzione di assegnazione: g i o r n i = (/ MON, TUE, WED, THU, FRI, SAT, SUN /) Esistono anche le costanti con nome di array: INTEGER, PARAMETER, DIMENSION( 3 ) : : v e t t o r e c o s t a n t e = & & (/ 9, 10, 11 /) Fortran 90: array DIS - Dipartimento di informatica e sistemistica 10 / 25

11 Costanti di array e inizializzazione di array Inizializzazione di un array Prima di usare un array è necessario inizializzarlo Come le altre variabili, un array può essere inizializzato nella sezione dichiarativa Esempi: REAL, DIMENSION( 3 ) : : f o r z a 2 = (/ 3. 2, 1.7, 0. 5 /) INTEGER, DIMENSION( 1:3) : : v e t t = (/ 120, 135, 125, 110, 82 /) CHARACTER( 3 ), DIMENSION( 7 ) : : g i o r n i = (/ & & LUN, MAR, MER, GIO, VEN, SAB, DOM /) Importante Il numero di elementi fra i delimitatori (/ e /) deve coincidere (né maggiore, né minore) con quello degli elementi dell array Fortran 90: array DIS - Dipartimento di informatica e sistemistica 11 / 25

12 Inizializzazione di un array (cont.) Costanti di array e inizializzazione di array Un meccanismo di inizializzazione molto usato per gli un array è quello basato su cicli definiti INTEGER : : i INTEGER, DIMENSION( ) : : v e t t o r e! I n i z i a l i z z a un v e t t o r e d i 100 e l e m e n t i con i p r i m i c e n t o numeri! i n t e r i DO i = 1, 100 v e t t o r e ( i ) = i END DO Gli array possono essere inizializzati attraverso lettura da dispositivi di input (istruzione READ) È possibile inizializzare tutti gli elementi di un array ad un valore attraverso una istruzione di assegnazione INTEGER, DIMENSION( ) : : v e t t o r e....! I n i z i a l i z z o a z e r o t u t t i g l i e l e m e n t i d i v e t t o r e v e t t o r e = 0 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 12 / 25

13 Costanti di array e inizializzazione di array Controllo validità indici array Cosa succede se proviamo ad utilizzare un valore dell indice fuori dal range di validità? Il compilatore ELF90 controlla che gli indici non siano fuori range, ovvero che non ci stiamo riferendo ad un elemento inesistente dell array. Alcuni compilatori consentono, per aumentare le prestazioni, di disabilitare l controllo sugli indici Il controllo viene fatto sia a tempo di compilazione, sia a tempo di esecuzione. Fortran 90: array DIS - Dipartimento di informatica e sistemistica 13 / 25

14 Controllo validità indici array Costanti di array e inizializzazione di array Controllo a tempo di compilazione Messaggio d e l COMPILATORE L i n e 61, f i l e p r o v a v e t. f 9 0 REAL, DIMENSION( 3 ) : : f o r z a... f o r z a ( 4 ) = FATAL 1 s t s u b s c r i p t o f (FORZA) e x c e e d s d e c l a r e d upper bound ( A r r a y s i n t h e E l f 9 0 manual ). Controllo a tempo di esecuzione INTEGER : : i... READ (, ) i! supponiamo che venga l e t t o i l v a l o r e 5 f o r z a ( i ) = Messaggio a tempo d i ESECUZIONE A r r a y s u b s c r i p t e x c e e d s a l l o c a t e d a r e a ( s e e A r r a y s i n t h e E l f 9 0 Manual ). E r r o r o c c u r r e d a t l i n e 62 o f f i l e p r o v a v e t. f 9 0. Fortran 90: array DIS - Dipartimento di informatica e sistemistica 14 / 25

15 Primo esempio di uso di vettori Primo problema: 1. leggere due vettori di interi di tre componenti ciascuno; 2. calcolare il vettore somma (effettuando la somma componente per componente); 3. stampare il vettore risultato. Nota: esempio accademico (esiste metodo più semplice per la somma!). Soluzione: file. Fortran 90: array DIS - Dipartimento di informatica e sistemistica 15 / 25

16 Somma vettoriale 1! F i l e : somvett1. f 9 0 2! Time stamp : 01/12/ : 1 8 : 1 3 c a d o l i 3! Scopo : primo esempio d i uso d i a r r a y m o n o d i m e n s i o n a l i 4 5 PROGRAM s o m m a v e t t o r i 6! Questo programma c a l c o l a l a somma d i due v e t t o r i a 3 componenti 7 8! SEZIONE DICHIARATIVA 9 IMPLICIT NONE 10 INTEGER, PARAMETER : : e s t e n s i o n e = 3 11 INTEGER, DIMENSION( e s t e n s i o n e ) : : v1, v2! i due v e t t o r i l e t t i 12 INTEGER, DIMENSION( e s t e n s i o n e ) : : somma! i l v e t t o r e somma 13 INTEGER : : i! i n d i c e d e l c i c l o p e r s c a n d i r e 14! l e componenti d e i v e t t o r i 15 16! SEZIONE ESECUTIVA 17! l e t t u r a primo v e t t o r e 18 WRITE(, ) Immetti i l primo v e t t o r e! 19 DO i = 1, e s t e n s i o n e! l e g g i a m o i l v e t t o r e una componente a l l a v o l t a 20 WRITE(, ) Componente, i,? 21 READ (, ) v1 ( i ) 22 END DO 23 24! l e t t u r a secondo v e t t o r e 25 WRITE(, ) Immetti i l secondo v e t t o r e! 26 DO i = 1, e s t e n s i o n e! l e g g i a m o i l v e t t o r e una componente a l l a v o l t a 27 WRITE(, ) Componente, i,? 28 READ (, ) v2 ( i ) 29 END DO Fortran 90: array DIS - Dipartimento di informatica e sistemistica 16 / 25

17 Somma vettoriale (cont.) 31! c a l c o l o v e t t o r e somma 32 DO i = 1, e s t e n s i o n e 33 somma( i ) = v1 ( i ) + v2 ( i )! N. B. s i p o t r e b b e f a r e d i r e t t a m e n t e 34! somma = v1 + v2 35 END DO 36 37! stampa d e l v e t t o r e somma 38 WRITE(, ) I l v e t t o r e somma e : 39 DO i = 1, e s t e n s i o n e 40 WRITE(, ) Componente, i, :, somma( i ) 41 END DO STOP 44 END PROGRAM s o m m a v e t t o r i Fortran 90: array DIS - Dipartimento di informatica e sistemistica 17 / 25

18 Secondo esempio: massimo e minimo di un insieme Definizione del problema Leggere da tastiera la dimensione di un insieme di valori interi e quindi i valori stessi e stampare a video il valore massimo e il valore minimo Nota: per semplicità imponiamo una dimensione massima all array Dati di input e di output Algoritmo: prima versione Algoritmo: raffinamento punto 3 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 18 / 25

19 Secondo esempio: massimo e minimo di un insieme Definizione del problema Dati di input e di output Dati di input: numero di elementi dell insieme e valori dell insieme Dati di output: intero massimo e minimo immesso dall utente Algoritmo: prima versione Algoritmo: raffinamento punto 3 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 18 / 25

20 Secondo esempio: massimo e minimo di un insieme Definizione del problema Dati di input e di output Algoritmo: prima versione 1. Leggi numero di valori 2. Leggi e memorizza i valori 3. Calcola il valore minimo 4. Calcola il valore massimo 5. Stampa i valori minimo e massimo Algoritmo: raffinamento punto 3 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 18 / 25

21 Secondo esempio: massimo e minimo di un insieme Definizione del problema Dati di input e di output Algoritmo: prima versione Algoritmo: raffinamento punto 3 3. MINIMO = elementi(1) 4. PER i che va da 2 a fine dimensione 4.1. SE elementi(i) < MINIMO ALLORA MINIMO = elementi(i) FINE CICLO Fortran 90: array DIS - Dipartimento di informatica e sistemistica 18 / 25

22 Algoritmo definitivo Pseudocodice 1. LEGGI numero valori 2. PER i che va da 1 a numero valori 2.1. LEGGI elementi(i) FINE CICLO 3. MINIMO = elementi(1) 4. PER i che va da 2 a fine dimensione 4.1 SE elementi(i) < MINIMO MINIMO = elementi(i) FINE CICLO 5. MASSIMO = elementi(1) 6. PER i che va da 2 a fine dimensione 6.1 SE elementi(i) > MASSIMO MASSIMO = elementi(i) FINE CICLO 7. SCRIVI MASSIMO, MINIMO Diagramma di flusso Fortran 90: array DIS - Dipartimento di informatica e sistemistica 19 / 25

23 Algoritmo definitivo Pseudocodice Diagramma di flusso Fortran 90: array DIS - Dipartimento di informatica e sistemistica 19 / 25

24 Massimo e minimo di un insieme: codice 1 PROGRAM MINMAX 2! Questo programma l e g g e da t a s t i e r a l a d i m e n s i o n e d i un i n s i e m e d i i n t e r i 3! e g l i i n t e r i s t e s s i e q u i n d i stampa i l v a l o r e massimo e i l v a l o r e minumo 4 5! SEZIONE DICHIARATIVA 6 IMPLICIT NONE 7 INTEGER, PARAMETER : : max dimensione = 100! d i m e n s i o n e massima i n s i e m e 8 INTEGER : : d i m e n s i o n e a r r a y! dimensione immessa dall utente 9 INTEGER : : i! v a r i a b i l e c o n t a t o r e c i c l o 10 INTEGER : : minimo, massimo! v a r i a b i l i temporanee 11 INTEGER, DIMENSION( max dimensione ) : : e l e m e n t i! v e t t o r e c o n t e n e n t e g l i i n t e r i 12 13! SEZIONE ESECUTIVA 14! WRITE(, ) S c r i v i i l numero d i e l e m e n t i d e l l i n s i e m e ( min 2, max ) : 16 READ(, ) d i m e n s i o n e a r r a y IF ( d i m e n s i o n e a r r a y >= 2.AND. d i m e n s i o n e a r r a y <= 100) THEN 19! DO i = 1, dimensione array 21 READ(, ) e l e m e n t i ( i ) 22 END DO 23 24! minimo = e l e m e n t i ( 1 ) 26! DO i = 2, dimensione array 28! IF ( elementi ( i ) < minimo ) minimo = elementi ( i ) 30 END DO Fortran 90: array DIS - Dipartimento di informatica e sistemistica 20 / 25

25 Massimo e minimo di un insieme: codice (cont.) 32! massimo = e l e m e n t i ( 1 ) 34! DO i = 2, dimensione array 36! IF ( elementi ( i ) > massimo ) massimo = elementi ( i ) 38 END DO 39 40! WRITE(, ) I l v a l o r e minimo e :, minimo 42 WRITE(, ) i l v a l o r e massimo e :, massimo 43 ELSE 44 WRITE(, ) Dimensione d e l l i n s i e m e e r r a t a 45 END IF STOP 48 END PROGRAM MINMAX Fortran 90: array DIS - Dipartimento di informatica e sistemistica 21 / 25

26 Terzo esempio di uso di vettori Secondo problema 1. leggere sequenza di caratteri terminata da., 2. stampare la lettera alfabetica maiuscola che compare più volte nella sequenza. Soluzione: file contcar1.f90. Nota: senza array, servirebbero 26 variabili di tipo intero!!! (e il programma sarebbe poco leggibile). Ecco perché: PROGRAMMI = ALGORITMI + STRUTTURE DI DATI (N. Wirth, creatore del Pascal, del Modula2, etc.) Fortran 90: array DIS - Dipartimento di informatica e sistemistica 22 / 25

27 Frequenza caratteri 1 PROGRAM f r e q u e n z a m a i u s c o l e 2! Questo programma legge una sequenza di c a r a t t e r i terminata da. e stampa 3! l a l e t t e r a MAIUSCOLA che compare piu v o l t e n e l l a s e q u e n z a. 4! Usa un a r r a y d i i n t e r i d i e s t e n s i o n e p a r i a l l a l f a b e t o p e r d e t e r m i n a r e 5! i l numero di occorrenze di ogni l e t t e r a maiuscola. 6! SEZIONE DICHIARATIVA 7 USE u t i l i t a c a r a t t e r i! n e l f i l e u t i l c a r. f IMPLICIT NONE 9 INTEGER, PARAMETER : : l e t t e r e a l f a b e t o = INTEGER, DIMENSION( l e t t e r e a l f a b e t o ) : : conta 11! a r r a y d i c o n t a t o r i, uno p e r l e t t e r a 12 INTEGER : : i! u s a t a p e r s c a n d i r e l a r r a y 13 CHARACTER(1) : : l e t t e r a m a x! l e t t e r a con frequenza massima 14 INTEGER : : f r e q u e n z a m a x! f r e q u e n z a massima 15 CHARACTER( 1 ) : : ch! c a r a t t e r e l e t t o 16! SEZIONE ESECUTIVA 17! ALGORITMO : 18! 1. a z z e r a t u t t i i c o n t a t o r i 19! 2. l e g g i l a s e quenza d i c a r a t t e r i i n i n g r e s s o e c a l c o l a l e f r e q u e n z e d e l l e 20! l e t t e r e m a i u s c o l e 21! 3. trova l a l e t t e r a maiuscola con frequenza massima 22! 4. stampa i l r i s u l t a t o 23! DO i = 1, l e t t e r e a l f a b e t o 25 conta ( i ) = 0 26 END DO 27! WRITE(, ) Immetti una s e quenza d i c a r a t t e r i t e r m i n a t a da. 29 WRITE(, ) D i g i t a RETURN dopo o g n i c a r a t t e r e i n s e r i t o 30 WRITE(, ) Fortran 90: array DIS - Dipartimento di informatica e sistemistica 23 / 25

28 Frequenza caratteri (cont.) 31 DO 32 READ (, ) ch 33 IF ( A <= ch.and. ch <= Z ) THEN 34 conta ( l e t t e r a 2 i n t e r o ( ch ) ) = conta ( l e t t e r a 2 i n t e r o ( ch ) ) ! ch e una l e t t e r a m a i u s c o l a 36! q u i n d i va i n c r e m e n t a t o i l c o n t a t o r e c o r r i s p o n d e n t e 37 END IF 38 IF ( ch ==. ) EXIT 39 END DO 40! l e t t e r a m a x = A 42 f r e q u e n z a m a x = conta ( 1 ) 43 DO i = 2, l e t t e r e a l f a b e t o 44 IF ( conta ( i ) > frequenza max ) THEN 45 l e t t e r a m a x = i n t e r o 2 l e t t e r a ( i ) 46 frequenza max = conta ( i ) 47 END IF 48 END DO 49! IF ( f r e q u e n z a m a x > 0) THEN 51 WRITE(, ) Lettera MAIUSCOLA piu frequente :, lettera max 52 WRITE(, ) Essa appare, frequenza max, volte 53 ELSE 54 WRITE(, ) Testo s e n z a l e t t e r e m a i u s c o l e 55 END IF 56 STOP 57 END PROGRAM f r e q u e n z a m a i u s c o l e Fortran 90: array DIS - Dipartimento di informatica e sistemistica 24 / 25

29 Modulo utilità caratteri 1 MODULE u t i l i t a c a r a t t e r i 2! Questo modulo c o n t i e n e due f u n z i o n i d i c o n v e r s i o n e f r a i n t e r i e c a r a t t e r i 3! a l f a b e t i c i m a i u s c o l i : 4! l e t t e r a 2 i n t e r o : CHARACTER( 1 ) > INTEGER 5! l e t t e r a 2 i n t e r o ( c ) = n s i g n i f i c a che l a l e t t e r a m a i u s c o l a e 6! a l l n esimo p o s t o n e l l a l f a b e t o 7! i n t e r o 2 l e t t e r a : INTEGER > CHARACTER( 1 ) i n v e r s a d e l l a p r e c e d e n t e 8 CONTAINS 9 FUNCTION l e t t e r a 2 i n t e r o ( ch ) 10! SEZIONE DICHIARATIVA 11 IMPLICIT NONE 12! DICHIARAZIONE TIPO FUNZIONE 13 INTEGER : : l e t t e r a 2 i n t e r o 14! DICHIARAZIONE ARGOMENTI FITTIZI 15 CHARACTER( 1 ), INTENT( IN ) : : ch 16! SEZIONE ESECUTIVA 17 l e t t e r a 2 i n t e r o = IACHAR( ch ) IACHAR ( A ) RETURN 19 END FUNCTION l e t t e r a 2 i n t e r o 20 FUNCTION i n t e r o 2 l e t t e r a ( i ) 21! SEZIONE DICHIARATIVA 22 IMPLICIT NONE 23! DICHIARAZIONE TIPO FUNZIONE 24 CHARACTER( 1 ) : : i n t e r o 2 l e t t e r a 25! DICHIARAZIONE ARGOMENTI FITTIZI 26 INTEGER, INTENT( IN ) : : i 27! SEZIONE ESECUTIVA 28 i n t e r o 2 l e t t e r a = ACHAR(IACHAR ( A ) + i 1) 29 RETURN 30 END FUNCTION i n t e r o 2 l e t t e r a 31 END MODULE u t i l i t a c a r a t t e r i Fortran 90: array DIS - Dipartimento di informatica e sistemistica 25 / 25

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

Istruzioni condizionali di diramazione in Fortran 90

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

Dettagli

Introduzione al linguaggio Fortran 90

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

Dettagli

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

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

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

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

Vettori e Matrici (array)

Vettori e Matrici (array) Vettori e Matrici (array) Introduction to Fortran 90 Elda Rossi, CINECA Marzo 2015 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile mediante indici numerici.

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Il Linguaggio di Programmazione Pascal

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Il Linguaggio di Programmazione Pascal INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Programmazione in Pascal (1) PROGRAMMAZIONE: Introduzione al Pascal (1) 14 nov 2011 Dia 2

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

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

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

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

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.2b: Programmazione in Pascal (1)

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.2b: Programmazione in Pascal (1) INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Programmazione in Pascal (1) PROGRAMMAZIONE: Introduzione al Pascal (1) 14 nov 2011 Dia 2

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Il tipo subrange La sezione di dichiarazione delle variabili Problemi ed esercizi su subrange ed enumerati Editazione

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Strutture di controllo e cicli

Strutture di controllo e cicli AA 2012-2013 IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale Sintassi IF ( e s p r e

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 Generalitá sull uso degli array Array allocabili Funzioni intrinseche. Array. Fondamenti di Informatica T (A-K) AA

Introduzione Generalitá sull uso degli array Array allocabili Funzioni intrinseche. Array. Fondamenti di Informatica T (A-K) AA allocabili AA 2013-2014 allocabili Introduzione Un array rappresenta un gruppo di variabili (o costanti) dello stesso tipo, a cui si fa riferimento con un singolo nome. Si definisce anche vettore un array

Dettagli

UD 3.2b: Programmazione in Pascal (1)

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

Dettagli

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni Informatica (CIV) Esercitazione su FORTRAN Andrea Romanoni andrea.romanoni@polimi.it Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 3 dicembre 2013 Esercizio istogrammi

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

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

Dettagli

Introduction to modern Fortran

Introduction to modern Fortran Sintassi di base Introduction to modern Fortran Maurizio Cremonesi, CINECA Maggio 2016 Documentazione e manualistica Può essere facilmente reperita on-line Language reference Descrizione e sintassi del

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T -Struttura vettore 0/08/0 Prerequisiti Programmazione elementare Passaggio parametri per indirizzo 0/08/0 Introduzione I dati di tipo semplice (Intero, Reale, Carattere, Booleano)

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

ARRAY. Fortran 90[/95] ARRAY: dichiarazione. Esempio (arraybase.f90) ARRAY: inizializzazione. ARRAY: inizializzazione

ARRAY. Fortran 90[/95] ARRAY: dichiarazione. Esempio (arraybase.f90) ARRAY: inizializzazione. ARRAY: inizializzazione Fortran 9[/95] M. Bianco ARRAY Un array è una sequenza di variabili di uno stesso tipo identificate da un nome Queste variabili vengono memorizzare in posizioni contigue di memoria Si può accedere a una

Dettagli

Gli ARRAY in FORTRAN 90

Gli ARRAY in FORTRAN 90 ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90 Andrea Prevete, UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE, a.a. 2012/13 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

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

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

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono uno dei

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Introduzione alle Procedure

Introduzione alle Procedure Introduzione alle Procedure Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Organizzazione del programma Schema di un unità di programma Fortran 90 PROGRAM, FUNCTION, SUBROUTINE, MODULE nome

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

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

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

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

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Problema: stampa degli interi compresi tra n e m

Problema: stampa degli interi compresi tra n e m Costrutti imperativi Problema: stampa degli interi compresi tra n e m http://caml.inria.fr/pub/docs/manual-ocaml/libref/pervasives.html Output functions on standard output val print_string: string -> unit

Dettagli

Corso di Fondamenti di Informatica Università degli Studi di Cassino

Corso di Fondamenti di Informatica Università degli Studi di Cassino Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza 1.1. Introduzione al linguaggio Pascal Struttura di programma Elementi lessicali: le parole riservate e gli

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

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.

Dettagli

Evoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C

Evoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, )

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Editazione a cura di Bombini T., De Candia P. e Galantino

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions

Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions Dipartimento di Matematica Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions Damiano Pasetto E-mail: pasetto@math.unipd.it Dispense: http://dispense.dmsa.unipd.it/putti/calcolo

Dettagli

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Dettagli

Problema: calcolare il massimo tra K numeri

Problema: calcolare il massimo tra K numeri Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti

Dettagli

Istruzioni selettive: IF THEN

Istruzioni selettive: IF THEN Istruzioni selettive: IF THEN Sintassi IF (condizione) THEN istruzione_1 istruzione_2... istruzione_n Esempio eseguite solo se condizione è TRUE Leggi i valori di X e di Y X < Y? si Scambia X con Y no

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo

Dettagli

C. De Stefano Corso di Fondamenti di Informatica Università degli Studi di Cassino

C. De Stefano Corso di Fondamenti di Informatica Università degli Studi di Cassino Array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto che di un valore solo. Questo significa che sarebbe conveniente indicare l insieme di valori

Dettagli

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

Dettagli

Selezioni scolastiche 2018

Selezioni scolastiche 2018 Selezioni scolastiche 2018 Come funziona lo pseudocodice Lo Staff 4 novembre 2018 Da questa edizione delle fasi scolastiche delle Olimpiadi Italiane di Informatica nella sezione Problemi di Programmazione

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario Mercoledì 18 Ottobre 2006 ( )

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario Mercoledì 18 Ottobre 2006 ( ) Esercizio 1 (punti 12) COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario Mercoledì 18 Ottobre 2006 (09.30 12.30) Il DataBase di figura contiene dati utili per una gestione

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Introduction to modern Fortran Paride Dagna, CINECA Maggio 2017 Gestione della memoria Il Fortran 90 permette di gestire dinamicamente la memoria, in almeno quattro modi diversi:

Dettagli

FORTRAN: LE STRUTTURE DI CONTROLLO

FORTRAN: LE STRUTTURE DI CONTROLLO UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE FORTRAN: LE STRUTTURE DI CONTROLLO Prof. Andrea Prevete - a.a. 2015/16 IF-THEN La più semplice struttura di controllo è lo statement

Dettagli

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici. Appello Straordinario del 05 Marzo 2007 ( )

COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici. Appello Straordinario del 05 Marzo 2007 ( ) COMPITO DI FONDAMENTI DI INFORMATICA Allievi Ingegneri Meccanici Appello Straordinario del 05 Marzo 2007 (09.30 12.30) Esercizio 1 (punti 15) Due file di testo (PAROLE1.TXT e PAROLE2.TXT) contengono un

Dettagli

Fortran. Funzioni e Subroutine.

Fortran. Funzioni e Subroutine. Fortran Funzioni e Subroutine http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Dal Fortran II del 1958, Fortran consente di

Dettagli

Diagrammi di flusso (Flow Chart)

Diagrammi di flusso (Flow Chart) Diagrammi di flusso (Flow Chart) I diagrammi di flusso sono un formalismo grafico per descrivere gli algoritmi. I diagrammi di flusso visualizzano graficamente i passi da cui sono formati gli algoritmi

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Esercitazioni di Algoritmi e Strutture Dati

Esercitazioni di Algoritmi e Strutture Dati Esercitazioni di Algoritmi e Strutture Dati I esercitazione, 2/03/2016 Tong Liu 1 OBIETTIVI DEGLI ESERCITAZIONI Comprendere meglio i concetti fondamentali Presentare gli argomenti rilevanti Arrivare al

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard

Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard Laboratorio di Calcolo Numerico Laboratorio 4: Functions e metodo di Picard Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo ambientale/index.html

Dettagli

Per fare riferimento ad un elemento, specificare il nomedel vettore. numerodi posizione(indice)

Per fare riferimento ad un elemento, specificare il nomedel vettore. numerodi posizione(indice) Vettore(Array monodimensionale) Sequenza di posizioniconsecutive (o locazioni di memoria) che vengono chiamate elementi del vettore Gli elementi hanno tutti lo stesso nomee sono tutti dell stesso tipo

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

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Esercizi. Fortran 90[/95] Algoritmo di Newton. Esercizi. Algoritmo di Newton: Progetto

Esercizi. Fortran 90[/95] Algoritmo di Newton. Esercizi. Algoritmo di Newton: Progetto Esercizi Fortran 90[/95] M. Bianco Quanto vale ires alla fine delle iterazioni? ires=0 DO index=-10,10 ires=ires+1 END DO Esercizi Quanto vale ires alla fine delle iterazioni? ires=0 loop1: DO index1=1,20,5

Dettagli

INTRODUZIONE AL LINGUAGGIO C

INTRODUZIONE AL LINGUAGGIO C INTRODUZIONE AL LINGUAGGIO C Problema: Somma di 2 numeri In PASCAL-LIKE begin Somma { dichiarazione delle variabili var: a,b,c: reali { inizializzazione di a e b a:=5. b:=7. { calcolo della somma di a

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

Esercitazione di Reti degli elaboratori

Esercitazione di Reti degli elaboratori Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione

Dettagli

Programmazione Procedurale in Linguaggio C++

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

Dettagli

Informatica per Statistica Riassunto della lezione del 21/10/2011

Informatica per Statistica Riassunto della lezione del 21/10/2011 Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Cognome-Nome:... Matricola...

Cognome-Nome:... Matricola... DIPARTIMENTO di INFORMATICA Corso di Laurea in Informatica Cognome-Nome:..... Matricola... Rispondere sul foglio allegato ad almeno 4 tra i quesiti 1..5 ed al quesito 6. Riportare sul foglio allegato solo

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

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

Introduction to modern Fortran

Introduction to modern Fortran Sinonimi Introduction to modern Fortran Paride Dagna, CINECA Maggio 2016 SINONIMI: SINTASSI DI BASE I sinonimi, o POINTER, non sono altro che nomi cui è associato un tipo ed eventualmente un rango. Ad

Dettagli

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore. I vettori in C Sintassi della definizione Definizione di costanti Operazioni di accesso Vettori Definizione di vettori in C I vettori in C Definizione di vettori in C Definizione di vettori in C Stesse

Dettagli

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (C) ESERCIZI DI COMPRENSIONE

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (C) ESERCIZI DI COMPRENSIONE (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: Dato strutturato Rappresentazione logica del vettore Array Componenti Accesso diretto Indice (B) CONOSCENZA E COMPETENZA

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90

Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90 Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90 Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo ambientale/index.html

Dettagli

DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA

DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA SECONDA UNIVERSITA DEGLI STUDI DI NAPOLI CORSI DI LAUREA IN INGEGNERIA AEROSPAZIALE E MECCANICA ELEMENTI DI PROGRAMMAZIONE a.a. 2009/10 Prof Andrea Prevete andrea@prevete.it DOCUMENTAZIONE A SUPPORTO DELLA

Dettagli

Come scrivere bene codice? (1 di 1)

Come scrivere bene codice? (1 di 1) DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.

Dettagli

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione

Dettagli

INTRODUZIONE AL C++ CLASSIFICAZIONE

INTRODUZIONE AL C++ CLASSIFICAZIONE INTRODUZIONE AL C++ 1 CLASSIFICAZIONE LINGUAGGI CHE OPERANO SU DATI OMOGENEI: FORTRAN77, LINGUAGGIO C, LINGUAGGIO C++, PASCAL: operano solo su DATI OMOGENEI (integer, float, double), senza classi e puntatori;

Dettagli

ITI M. FARADAY. Programmazione a. s

ITI M. FARADAY. Programmazione a. s ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli