Modularizzazione del software

Размер: px
Начинать показ со страницы:

Download "Modularizzazione del software"

Транскрипт

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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 [email protected] Programmazione prof. Domenico

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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à

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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)

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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 [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Подробнее

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

Подробнее

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;

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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:

Подробнее

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

Подробнее

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 4 A.A. 2014/2015 Marco Redolfi [email protected] Simone Zen [email protected] Formati e Formattazione Finora abbiamo letto valori da tastiera e scritto sullo schermo

Подробнее

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 [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Подробнее

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=

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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)

Подробнее

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...

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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)

Подробнее

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

Подробнее

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

Подробнее

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?

Подробнее

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

Подробнее

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 [email protected] www.cs.unicam.it/massimo.callisto LEZIONE

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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:

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Подробнее

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,

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее