Modularizzazione del software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Modularizzazione del software"

Transcript

1 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 1 / 24

2 Cosa vedremo in questa lezione 1 Modularizzazione 2 Subroutine e moduli 3 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 2 / 24

3 Modularizzazione Modularizzazione del software La modularizzazione è un esigenza generale dell Ingegneria: Utile a chi usa moduli realizzati da altri Utile a chi progetta moduli per farli usare da altri Un modulo è una scatola nera. Per utilizzarlo: Basta conoscere cosa fa Non serve conoscere come lo fa Data hiding In questo corso IMPARIAMO A PROGETTARE semplici moduli software, chiamati sottoprogrammi Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 3 / 24

4 Sottoprogrammi Modularizzazione È ragionevole scrivere un sottoprogramma in almeno due casi: uno stesso compito deve essere ripetuto più volte, in contesti diversi Esempio: visualizzazione di uno screen saver uno stesso compito è parametrico Esempio: calcolo della deviazione standard per un insieme di valori Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 4 / 24

5 Modularizzazione Vantaggi della modularizzazione Semplificazione della verifica della correttezza semantica e nella correzione di errori In generale, è più facile isolare un errore in un programma modularizzato È possibile testare i diversi moduli indipendentemente l uno dall altro Riusabilità del software: Se un modulo è ben progettato, può essere riusato (da parte di noi stessi o di altri) in altri programmi È possibile costruire librerie di moduli riusabili Leggibilità del codice Possibilità di realizzazione di prototipi Semplificazione dell attività di manutenzione Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 5 / 24

6 Modularizzazione Sottoprogrammi e moduli in Fortran 90 In Fortran 90 esistono due tipi di unità di programma: SUBROUTINE FUNCTION Le unità di programma Fortran 90 sono solitamente contenute apposite librerie denominate moduli (MODULE) Contiene una o più unità di programma (SUBROUTINE e/o FUNCTION). Può essere scritto in un file.f90 a sé stante. (tipicamente quando abbiamo intenzione di RIUSARLO). Se è in un file a sé stante: deve essere compilato deve essere collegato con il programma principale Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 6 / 24

7 Modularizzazione Esempio di compilazione e collegamento File sorgenti: MIOMOD.F90 (contiene il MODULE M) PRINC.F90 (contiene il PROGRAM P) Compilazione del file contenente il modulo: C:\MIEIPROG>elf90 MIOMOD.F90 Risultato: file M.LIB e M.MOD A questo punto, non serve più il file MIOMOD.F90 Compilazione del file contenente il programma principale e collegamento: C:\MIEIPROG>elf90 PRINC.F90 Risultato: file PRINC.EXE e altri Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 7 / 24

8 Modularizzazione Situazione tipica in un progetto SW In un progetto software (industriale o accademico), anche di piccole dimensioni, la situazione tipica prevede: Un file sorgente (.F90 ) contenente il PROGRAM (programma principale); vari file sorgente, ognuno contenente un MODULE; ogni MODULE può contenere varie SUBROUTINE e/o FUNCTION; vari file di libreria (.MOD,.LIB,.OBJ ), prodotti durante altri progetti della stessa impresa e/o acquistati da ditte specializzate. Applicazione in grande del meccanismo di scomposizione e raffinamento dei problemi Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 8 / 24

9 Subroutine e moduli Subroutine in Fortran 90 Caratteristiche di una subroutine Unità di programma indipendente Può essere utilizzata all interno di altri programmi Fortran 90 Ammette sia parametri di input che di output Sintassi dichiarazione subroutine: SUBROUTINE nome subroutine ( lista argomenti FITTIZI ) sezione dichiarativa sezione esecutiva RETURN END SUBROUTINE identificatore Per invocare una subroutine è necessario utilizzare l istruzione CALL CALL nome subroutine(lista argomenti) L istruzione RETURN a fine procedura è opzionale; tuttavia alcuni compilatori la richiedono obbligatoriamente Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 9 / 24

10 Subroutine e moduli Moduli Caratteristiche di un modulo Unità di programma che consente di includere subroutine e funzioni al suo interno Consente di attribuire una interfaccia esplicita ai sottoprogrammi Sintassi dichiarazione modulo: MODULE nome modulo CONTAINS dichiarazioni di unità di programma END MODULE nome modulo Per invocare i sottoprogrammi contenuti nel modulo, è necessario importare il modulo attraverso l istruzione USE PROGRAM nome programma USE nome modulo IMPLICIT NONE Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 10 / 24

11 Soluzione di un problema mediante modularizzazione Problema Progettare un programma per la stampa di figure geometriche (programma didattico, ad es. per la scuola materna), in cui l utente può scegliere, mediante un menu: La figura da stampare (quadrato o triangolo) La dimensione della figura Il carattere con cui riempire la figura Di quanto spostare la figura verso destra Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 11 / 24

12 Struttura del programma 1. Programma principale (PROGRAM): si occupa dell interfaccia utente (menu) attiva i sottoprogrammi 2. Modulo (MODULE) si occupa delle stampe vere e proprie contiene i vari sottoprogrammi (SUBROUTINE) Nota: è ragionevole strutturare il programma in due parti perché: è possibile riusare il modulo delle stampe in altri programmi è più semplice migliorare l interfaccia utente (ad es., con finestre) è più semplice trovare gli errori (debugging) tutte le stampe sono in un solo modulo (coesione);... Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 12 / 24

13 Le diverse versioni del programma Vedremo quattro versioni distinte, di complessità crescente. Le versioni sono caratterizzate da un astrazione CRESCENTE del concetto di figura. Ci sarà un livello CRESCENTE di PARAMETRIZZAZIONE delle subroutine di stampa delle figure: Versione 1: NON parametrico, stampa messaggi, non figure; Versione 2: NON parametrico, stampa figure; Versione 3: parametrico rispetto alla sola DIMENSIONE; Versione 4: parametrico anche rispetto allo SPOSTAMENTO e al CARATTERE di riempimento. Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 13 / 24

14 Algoritmo per le versioni 1/2 CICLO stampa un messaggio all utente; leggi un carattere; SE il carattere letto è T oppure t : stampa un triangolo; Q oppure q : stampa un quadrato; F oppure f : stampa un messaggio di saluto; NEGLI ALTRI CASI : stampa un messaggio di avvertimento SE il carattere letto è F oppure f ALLORA esci dal ciclo FINE CICLO Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 14 / 24

15 Stampa delle figure: versione 1 8 MODULE modulo stampe 1 9! Questo modulo c o n t i e n e l a d e f i n i z i o n e d i p r o c e d u r e p e r l a stampa 10! d i f i g u r e e m e s s a g g i 11 CONTAINS 12! DEFINIZIONE d e l l a SUBROUTINE stampa triangolo ( ) 13 SUBROUTINE s t a m p a t r i a n g o l o ( ) 14 WRITE (, ) QUESTO E UN TRIANGOLO 15 RETURN 16 END SUBROUTINE s t a m p a t r i a n g o l o 17 18! DEFINIZIONE d e l l a SUBROUTINE stampa quadrato ( ) 19 SUBROUTINE stampa quadrato ( ) 20 WRITE (, ) QUESTO E UN QUADRATO 21 RETURN 22 END SUBROUTINE s t a m p a q u a d r a t o 23 24! DEFINIZIONE d e l l a SUBROUTINE stampa saluto ( ) 25 SUBROUTINE stampa saluto ( ) 26 WRITE (, ) CIAO : ) 27 RETURN 28 END SUBROUTINE s t a m p a s a l u t o 29 30! DEFINIZIONE d e l l a SUBROUTINE stampa errore ( ) 31 SUBROUTINE s t a m p a e r r o r e ( ) 32 WRITE (, ) COSA? 33 RETURN 34 END SUBROUTINE s t a m p a e r r o r e 35 END MODULE modulo stampe 1 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 15 / 24

16 Stampa delle figure: versione 1 37 PROGRAM s t a m p a f i g u r e 1 38! VERSIONE 1 : 39! E p o s s i b i l e s c e g l i e r e s o l a m e n t e l a forma. 40! Non vengono stampate l e forme, ma solamente un messaggio. 41! SEZIONE DICHIARATIVA 42 USE modulo stampe 1! dichiariamo di v o l e r e usare i l modulo 43 IMPLICIT NONE 44 CHARACTER(1) : : ch! s e r v e p e r i l d i a l o g o con l u t e n t e 45! SEZIONE ESECUTIVA 46 DO 47 WRITE (, ) 48 WRITE (, ) IMMETTI UN CARATTERE A SCELTA FRA I SEGUENTI 49 WRITE (, ) T : stampa un t r i a n g o l o 50 WRITE (, ) Q: stampa un quadrato 51 WRITE (, ) F : per terminare i l programma 52 WRITE (, ) 53 READ (, ) ch 54 SELECT CASE ( ch ) 55 CASE ( T, t ) 56 CALL s t a m p a t r i a n g o l o ( )! CHIAMATA d e l l a SUBROUTINE stampa triangolo ( ) 57 CASE ( Q, q ) 58 CALL stampa quadrato ( )! CHIAMATA d e l l a SUBROUTINE stampa quadrato ( ) 59 CASE ( F, f ) 60 CALL stampa saluto ( )! CHIAMATA d e l l a SUBROUTINE stampa saluto ( ) 61 CASE DEFAULT 62 CALL s t a m p a e r r o r e ( )! CHIAMATA d e l l a SUBROUTINE stampa errore ( ) 63 END SELECT 64 IF ( ch == f.or. ch == F ) EXIT 65 END DO 66 STOP 67 END PROGRAM s t a m p a f i g u r e 1 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 16 / 24

17 Commenti su FIGURE1.F90 Sintassi CHIAMATA (o INVOCAZIONE o ATTIVAZIONE) subroutine USE modulo stampe 1... CALL stampa triangolo() Negli esempi dei file FIGURE1.F90 e FIGURE2.F90, la lista dei parametri di input e di output è vuota. L unità di programma che effettua la chiamata (nell esempio, il PROGRAM stampa figure 1) svolge il ruolo di unità chiamante. L unità di programma oggetto della chiamata (nell esempio, le SUBROUTINE stampa triangolo, SUBROUTINE stampa quadrato,... ) svolge il ruolo di unità chiamata. Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 17 / 24

18 Stampa delle figure: versione 2 8 MODULE modulo stampe 2 9! Questo modulo c o n t i e n e l a d e f i n i z i o n e d i p r o c e d u r e p e r l a stampa 10! d i f i g u r e e m e s s a g g i 11 CONTAINS 12 SUBROUTINE s t a m p a t r i a n g o l o ( ) 13! SEZIONE DICHIARATIVA 14 IMPLICIT NONE 15 INTEGER, PARAMETER : : l u n g h e z z a = 9! lunghezza del l a t o COSTANTE LOCALE 16 INTEGER : : i! i n d i c e d e l c i c l o VARIABILE LOCALE 17 CHARACTER( lunghezza ) : : l i n e a! l i n e a da stampare VARIABILE LOCALE 18 19! SEZIONE ESECUTIVA 20 DO i = 1, lunghezza 21 l i n e a ( i : i ) = 22 END DO DO i = 1, lunghezza 25 l i n e a ( i : i ) = 26 WRITE (, ) l i n e a! l a r i g a e p r o n t a e s i puo stampare 27 END DO RETURN 30 END SUBROUTINE s t a m p a t r i a n g o l o Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 18 / 24

19 Stampa delle figure: versione SUBROUTINE stampa quadrato ( ) 33! SEZIONE DICHIARATIVA 34 IMPLICIT NONE 35 INTEGER, PARAMETER : : l u n g h e z z a = 9! lunghezza del l a t o COSTANTE LOCALE 36 INTEGER : : i! i n d i c e d e l c i c l o VARIABILE LOCALE 37 CHARACTER( lunghezza ) : : l i n e a! l i n e a da stampare VARIABILE LOCALE 38 39! SEZIONE ESECUTIVA 40 DO i = 1, lunghezza 41 l i n e a ( i : i ) = 42 END DO 43 DO i = 1, lunghezza 44 WRITE (, ) l i n e a 45 END DO RETURN 48 END SUBROUTINE s t a m p a q u a d r a t o SUBROUTINE stampa saluto ( ) 51 WRITE (, ) CIAO : ) 52 RETURN 53 END SUBROUTINE s t a m p a s a l u t o SUBROUTINE s t a m p a e r r o r e ( ) 56 WRITE (, ) COSA? 57 RETURN 58 END SUBROUTINE s t a m p a e r r o r e END MODULE modulo stampe 2 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 19 / 24

20 Stampa delle figure: versione 2 62 PROGRAM s t a m p a f i g u r e 2 63! VERSIONE 2 : 64! E p o s s i b i l e s c e g l i e r e s o l a m e n t e l a forma. 65! SEZIONE DICHIARATIVA 66 USE modulo stampe 2 67 IMPLICIT NONE 68 CHARACTER(1) : : ch! s e r v e p e r i l d i a l o g o con l u t e n t e 69! SEZIONE ESECUTIVA 70 DO 71 WRITE (, ) 72 WRITE (, ) IMMETTI UN CARATTERE A SCELTA FRA I SEGUENTI 73 WRITE (, ) T : stampa un t r i a n g o l o 74 WRITE (, ) Q: stampa un quadrato 75 WRITE (, ) F : per terminare i l programma 76 WRITE (, ) 77 READ (, ) ch 78 SELECT CASE ( ch ) 79 CASE ( T, t ) 80 CALL s t a m p a t r i a n g o l o ( ) 81 CASE ( Q, q ) 82 CALL stampa quadrato ( ) 83 CASE ( F, f ) 84 CALL stampa saluto ( ) 85 CASE DEFAULT 86 CALL s t a m p a e r r o r e ( ) 87 END SELECT 88 IF ( ch == f.or. ch == F ) EXIT 89 END DO 90 STOP 91 END PROGRAM s t a m p a f i g u r e 2 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 20 / 24

21 Commenti su FIGURE2.F90 Ogni unità di programma può avere una sezione dichiarativa Valgono le stesse regole della sezione dichiarativa di PROGRAM (ad esempio, è possibile dichiarare sia costanti sia variabili). Le costanti/variabili dichiarate in un unità di programma S si chiamano LOCALI ad S Non sono visibili all esterno di S (concetto di scatola nera ). Analogamente, le costanti/variabili dichiarate nel PROGRAM non sono visibili all esterno del PROGRAM stesso. Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 21 / 24

22 Regole di visibilità in Fortran 90 Regola 1 (già vista) Un identificatore si può definire solamente una volta in un unità di programma (SUBROUTINE, FUNCTION o PROGRAM) Regola 2 Le costanti/variabili dichiarate in un unità di programma (SUBROUTINE, FUNCTION o PROGRAM) S non possono essere usate (non sono visibili ) all esterno di S Di conseguenza: Possiamo dichiarare costanti e/o variabili con lo stesso nome in vari sottoprogrammi (file VISIBIL.F90) Una SUBROUTINE o FUNCTION è veramente una scatola nera. Ad esempio, possiamo usare una SUBROUTINE stampa triangolo scritta da un altro senza preoccuparci di conflitti sui nomi Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 22 / 24

23 Visibilità delle costanti/variabili: esempio 1! F i l e : v i s i b i l. f 9 0 2! Time stamp : 01/12/ : 0 7 : 3 1 c a d o l i 3! Scopo : i l l u s t r a z i o n e r e g o l e d i v i s i b i l i t a i n F o r t r a n MODULE mio modulo 6 CONTAINS 7 SUBROUTINE sub1 ( ) 8! SEZIONE DICHIARATIVA 9 IMPLICIT NONE 10 INTEGER : : i = 1, j sub1 = 10 11! SEZIONE ESECUTIVA 12 WRITE (, ) i, j sub1 13! WRITE (, ) j m a i n > ERRORE SINTATTICO : j m a i n non e v i s i b i l e 14 RETURN 15 END SUBROUTINE sub SUBROUTINE sub2 ( ) 18! SEZIONE DICHIARATIVA 19 IMPLICIT NONE 20 INTEGER : : i = 2 21! SEZIONE ESECUTIVA 22 WRITE (, ) i 23 RETURN 24 END SUBROUTINE sub2 25 END MODULE mio modulo Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 23 / 24

24 Visibilità delle costanti/variabili: esempio 27 PROGRAM main 28! SEZIONE DICHIARATIVA 29 USE mio modulo 30 IMPLICIT NONE 31 INTEGER : : i = 3, j main = 30 32! SEZIONE ESECUTIVA 33 WRITE (, ) i, j main! stampa 3, 30 34! WRITE (, ) j s u b 1 > ERRORE SINTATTICO : j s u b 1 non e v i s i b i l e 35 CALL sub1 ( )! stampa 1, CALL sub2 ( )! stampa 2 37 STOP 38 END PROGRAM main Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica 24 / 24

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

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

Linguaggio C: introduzione

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

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

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

Primi passi col linguaggio C

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

Dettagli

Cenni sul preprocessore e il suo utilizzo

Cenni sul preprocessore e il suo utilizzo Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva

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

UML I diagrammi implementativi

UML I diagrammi implementativi Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - UML I diagrammi implementativi E. TINELLI I diagrammi implementativi In UML 2.x esistono 3 tipi di

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

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

Dettagli

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Fortran 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

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

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

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

Dettagli

STRUTTURA DI UN PROGRAMMA

STRUTTURA DI UN PROGRAMMA STRUTTURA DI UN PROGRAMMA File prova1.c #include ... int m; int f(int); int g(int x){ Area globale Direttive Dichiarazioni globali e prototipi di funzioni Definizioni di funzioni.../*ambiente

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/05/08 Nota Questi lucidi sono tratti

Dettagli

Linguaggio C Debugging

Linguaggio C Debugging FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota

Dettagli

II Esercitazione: S.O. & Fortran 77

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

Dettagli

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

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Elementi di informatica

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

Dettagli

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Introduzione a Visual Basic Lezione 2 Cicli e anomalie a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

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

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

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

Metodologie di programmazione in Fortran 90

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

Dettagli

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

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

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

Dettagli

Funzioni. Corso di Fondamenti di Informatica. Laurea in Ingegneria Industriale

Funzioni. Corso di Fondamenti di Informatica. Laurea in Ingegneria Industriale Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Industriale Funzioni Per definire un programma complesso è necessario affrontarlo dividendolo in parti separate (dividi ed impera): modularizzazioni.

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

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

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel

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

Lab 01 Introduzione a Codelite

Lab 01 Introduzione a Codelite Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2011/2012 Lab 01 Introduzione a Codelite Lab01

Dettagli

Argomenti Corso SAP Online ABAP Completo

Argomenti Corso SAP Online ABAP Completo Argomenti Corso SAP Online ABAP Completo Lezione 1 Navigazione e visualizzazione tabelle o Database SAP in ambienti Oracle e SQL Server: Navigazione e visualizzazione delle tabelle SE16; Utilizzo del match-code;

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Classi di memorizzazione

Classi di memorizzazione Classi di memorizzazione 1 Classi di memorizzazione Definiscono le regole di visibilità delle variabili e delle funzioni quando il programma è diviso su più file Stabiliscono dove (in quale parte dello

Dettagli

VISUAL BASIC FOR APPLICATION

VISUAL BASIC FOR APPLICATION VISUAL BASIC FOR APPLICATION LA PIATTAFORMA DI SVILUPPO GLI ELEMENTI DI VBA Finestra di progetto: mostra l elenco gerarchico dei progetti aperti e di tutti i moduli di codice e finestre di interfaccia

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare

Dettagli

Percorso Formativo SAP Online ABAP/4 Completo

Percorso Formativo SAP Online ABAP/4 Completo Introduzione ad ABAP/4 Programma report Programma interattivo Tabelle SAP Smartforms SAP Query Percorso Formativo SAP Online ABAP/4 Completo Navigazione e visualizzazione tabelle Navigazione e visualizzazione

Dettagli

Argomenti Corso SAP Online ABAP/4 Completo

Argomenti Corso SAP Online ABAP/4 Completo Argomenti Corso SAP Online ABAP/4 Completo Finalità: acquisire le competenze tecniche per programmare in ABAP/4 attraverso i Module Pool, le Smartform, i Job, l esecuzione del debug di sistema, ecc. Destinatari:

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

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

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

Dettagli

Esercizi Programmazione I

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

Dettagli

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

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi Metodologie di Programmazione ovvero, Principi e Tecniche per la costruzione di programmi 1 In questo corso Sviluppo in piccolo: Tempi: mesi/uomo v.s. anni/uomo Strumenti: personal v.s. professional Programmazione

Dettagli

ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s.

ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. ISTITUTO SUPERIORE ENRICO FERMI PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. 2016/2017 ARTICOLAZIONE: INFORMATICA DISCIPLINA: INFORMATICA ORE SETTIMANALI:

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

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Dettagli

Esiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali

Esiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

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

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO

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

Dettagli

Programmazione di INFORMATICA e Laboratorio

Programmazione di INFORMATICA e Laboratorio ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143

Dettagli

Laboratorio di Python (con Linux)

Laboratorio di Python (con Linux) 8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni

Dettagli

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Dettagli

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Informatica Generale 06 - Introduzione ai Sistemi Operativi Informatica Generale 06 - Introduzione ai Sistemi Operativi Cosa vedremo: Funzionalità dei sistemi operativi Bootstrap Stato utente e stato supervisore Componenti di un Sistema Operativo Cos è un sistema

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

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

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Esercitazioni di Informatica 3

Esercitazioni di Informatica 3 Esercitazioni di Informatica 3 Part I: Programming Languages Syntax and semantics Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano Leonardo Esercizio 1: EBNF Utilizzando il linguaggio

Dettagli

Il C nel C++: Funzioni

Il C nel C++: Funzioni Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma

Dettagli

CORSO DI ELEMENTI DI INFORMATICA

CORSO DI ELEMENTI DI INFORMATICA CORSO DI ELEMENTI DI INFORMATICA Corso di Laurea Triennale in Ingegneria Gestionale della Logistica e della Produzione Area didattica Ingegneria Elettrica a.a. 2016/2017 Docente: Ing. Domenico Amalfitano

Dettagli

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

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

Dettagli

Strutturare il codice: sottoprogrammi

Strutturare il codice: sottoprogrammi Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Motivazioni Alcuni problemi si presentano frequentemente durante lo sviluppo di un programma

Dettagli

IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi

IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi IL VHDL Cosa è il VHDL? NON è un linguaggio di programmazione! E' uno standard IEEE per la descrizione dell'hardware VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuit

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

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

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

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Corso di Fondamenti di Informatica prova del 04/07/2008

Corso di Fondamenti di Informatica prova del 04/07/2008 UNIVERSITÀ DEGLI STUDI DI PERUGIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA MECCANICA. Corso di Fondamenti di Informatica prova del 04/07/2008 Esercizio 1 (17 punti) Il file di nome inp.dat contiene

Dettagli

perror: individuare l errore quando una system call restituisce -1

perror: individuare l errore quando una system call restituisce -1 perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. PASCAL standard Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. Nb: primi linguaggi furono: Fortran, Algol, Ada, Cobol (cfr testo)

Dettagli

Struttura dei programmi C

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

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

POWER POINT 2003. Uso del programma, sue applicazioni e strumenti di lavoro.

POWER POINT 2003. Uso del programma, sue applicazioni e strumenti di lavoro. Anno accademico 2010-2011 Corso di INFORMATICA Docente del corso: Prof. V. De Feo Argomento di approfondimento: POWER POINT 2003 Uso del programma, sue applicazioni e strumenti di lavoro. Gruppo di lavoro:

Dettagli

La programmazione nel linguaggio C

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

Dettagli

Input/Output di numeri

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

Dettagli

Mobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica

Mobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica Corso di laurea in Informatica Mobile Prof. De Prisco Prova scritta del 22/01/2016 NOME: COGNOME: MATRICOLA: Domande Punti 1 /10 2 /10 3 /10 4 /10 5 /10 6 /10 7 /10 8 /10 9 /10 10 /10 TOTALE /100 Quesito

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

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

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

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I 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 Lez. 8 - Introduzione all ambiente

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli