Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta
|
|
- Vittoria Mancini
- 7 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta Esercizio 1 (8 punti) 9 settembre 2008 Tempo: 2h30m Si modelli con una rete di Petri il sistema costituito da due processi P1 e P2 che accedono in mutua esclusione a due risorse condivise R1 ed R2. P1 occupa R1 e successivamente, senza liberarla, occupa anche R2. In seguito, le libera entrambe. P2 occupa R2, poi la libera, poi occupa R1, e infine libera anche R1. Il sistema è soggetto a deadlock? Esercizio 2 (10 punti) Si modelli in Z la gestione dei conti correnti in una banca. Ogni cliente è caratterizzato dal suo codice fiscale e dal suo nome; ogni conto corrente da un numero identificativo unico e dal suo saldo. Ogni cliente può avere da zero a tre conti correnti intestati; si supponga che non siano ammessi saldi negativi. Modellare in particolare le seguenti operazioni: Creazione di un conto corrente: a un cliente viene assegnato un nuovo conto, a saldo inizialmente nullo Aggiunta di un intestatario a un conto corrente esistente Bonifico (cioè trasferimento di una somma) su un conto corrente della stessa banca Chiusura di un conto corrente. Esercizio 3 (6 punti) Dato il programma in linguaggio C a fianco, se ne disegni il grafo di controllo e si individui un insieme di casi di test che rispetti il criterio di copertura degli archi. #include <stdio.h> int main (void) { int a, b, c, i; scanf("%d%d", &a, &b); c = 0; i = a; while (i < b) { if (i % 5 == 0) c = i*i; i++; } printf ("%d\n", c); return 0; }
2 Esercizio 4 (9 punti) L'applicazione Gestione Conti, il cui modello dati è riportato in figura, deve gestire i conti correnti intestati a clienti di una banca. Inoltre, la banca è intestataria di titoli di stato su cui i clienti possono investire denaro tramite un'operazione di Pronti Contro Termine (PCT): il cliente acquista un titolo di stato, con addebito su uno dei suoi conti correnti, e la banca si impegna a riacquistarlo a prezzo maggiorato, accreditato sul medesimo conto corrente, dopo un determinato periodo. Applicazione Gestione Conti Cliente Intestatario Conto corrente PCT (0,n) (1,n) (0,n) (0,n) Titolo di stato Codice fiscale Nome IBAN Saldo Data sottoscrizione Durata Valore restituzione Applicazione Gestione Bond Identificativo Scadenza In particolare, l'applicazione deve gestire le seguenti operazioni: 1 Gestione clienti: 1.1 Registrazione cliente: registra una persona come cliente, dati il suo nome e il suo codice fiscale 1.2 Saldo complessivo cliente: dato il codice fiscale di un cliente, calcola la somma algebrica dei saldi dei conti correnti a lui (o lei) intestati. 2 Gestione conti correnti: 2.1 Creazione conto corrente: dato il codice fiscale di un cliente registrato, crea un nuovo conto corrente, generando un nuovo IBAN 2.2 Bonifico: trasferisce una somma di denaro fra due conti correnti della stessa banca 3 Gestione operazioni PCT: 3.1 Acquisto PCT: registra un'operazione PCT, dati l'iban del conto corrente interessato, l'identificativo di un titolo di stato, la durata e il valore di restituzione 3.2 Ricerca PCT per conto corrente: dato l'iban di un conto corrente, restituisce la lista di tutte le operazioni PCT in corso per quel conto corrente 3.3 Ricerca PCT per cliente: dato il codice fiscale di un cliente registrato, restituisce la lista di tutte le operazioni PCT in corso per quel cliente Si individuino le funzioni di tipo dati e di tipo transazione. Si calcoli la complessità delle funzioni di tipo dati e delle funzioni di tipo transazione corrispondenti alle operazioni 1.1, 1.2 e 3.3. Si supponga che Titolo di stato sia contato come ILF dell'applicazione Gestione Bond.
3 Soluzione 1 Il sistema non è soggetto a deadlock.
4 Soluzione 2 Tipi definiti dall'utente CodiciFiscali: insieme dei codici fiscali Nomi: insieme dei nomi Stato del sistema, inizializzazione, successo _Banca clienti: CodiciFiscali Nomi conti: R intestatario: clienti conti c dom conti conti(c) 0 c dom clienti intestatario {c} 3 _InitBanca clienti' = conti' = intestatario' = _Success rep!: Report report!='success' Creazione conto corrente Precondizioni: 1. il codice fiscale deve appartenere a un cliente registrato 2. il cliente deve avere meno di tre conti già intestati
5 _CreaConto cf?: CodiciFiscali cf? dom clienti conti(cf?) < 3 n! dom conti conti' = conti {n! 0} intestatario' = intestatario {cf? n!} _ClienteNonRegistrato cf?: CodiciFiscali rep! : Report cf? dom clienti rep! = 'Cliente non registrato' _ClienteHaTreConti cf?: CodiciFiscali rep! : Report conti(cf?) = 3 rep' = 'Il cliente ha già tre conti intestati' CreazioneConto CreaConto Success ClienteNonRegistrato ClienteHaTreConti Aggiunta intestatario Precondizioni: 1. Il cliente è registrato 2. Il cliente è intestatario di meno di tre conti 3. Il conto è esistente _AggiungiIntestatario cf?: CodiciFiscali n?: cf? dom clienti conti(cf?) < 3 n? dom conti intestatario' = intestatario {cf? n?}
6 _ContoNonEsistente n?: rep! : Report n? dom conti rep! = 'Conto non esistente' AggiuntaIntestatario AggiungiIntestatario Success ClienteNonRegistrato ClienteHaTreConti ContoNonEsistente Bonifico 1. Disponibilità sufficiente sul conto di origine 2. Conti di origine e destinazione esistenti _EseguiBonifico origine?: destinazione?: N importo?: R origine? e dom conti destinazione? e dom conti conti(origine?) importo? conti' = conti origine? conti(origine?) importo? destinazione? conti(destinazione?) + importo? _OrigineNonEsistente origine?: rep! : Report origine? dom conti rep! = 'Origine non esistente' _DestinazioneNonEsistente destinazione?: rep! : Report destinazione? dom conti rep! = 'Destinazione non esistente'
7 _DisponibilitàInsufficiente origine?: importo?: R rep! : Report origine e dom conti conti(origine) < importo rep! = 'Disponibilità insufficiente' Bonifico EseguiBonifico Success OrigineNonEsistente DestinazioneNonEsistente DisponibilitàInsufficiente Chiusura conto Precondizione: il conto deve essere esistente. _ChiudiConto n?: n? e dom conti conti' = conti {n?} intestatario' = intestatario {c: clienti c n? intestatario} ChiusuraConto ChiudiConto Success ContoNonEsistente
8 Soluzione 3 1 #include <stdio.h> 2 int main (void) { 3 int a, b, c, i; scanf("%d%d", &a, &b); 5 c = 0; 6 i = a; 7 while (i < b) { 8 if (i % 5 == 0) 9 c = i*i; 10 i++; } 11 printf ("%d\n", c); 9 12 return 0; } Un insieme di casi di test che rispetta il criterio di copertura degli archi è {(5,7)} i % 5 == 0 true 8 true false i < b 11 false
9 Soluzione 4 Identificazione ILF Entità e relazioni Il gruppo di dati o informazioni di controllo è logico e identificabile dall'utente Il gruppo di dati è mantenuto all'interno del confine dell'applicazione che si sta contando da un processo elementare Cliente Sì Sì (Registrazione Cliente) Intestatario No No, il processo Creazione Conto Corrente mantiene anche l'entità Conto Corrente Conto Corrente No No, il processo Creazione Conto Corrente mantiene anche la relazione Intestatario Intestatario Conto Corrente Sì Sì (Creazione Conto Corrente) PCT Sì Sì (Acquisto PCT) Titolo di stato Sì No Identificazione EIF Entità e relazioni Il gruppo di dati o informazioni di controllo è logico e identificabile dall'utente Il gruppo di dati è referenziato dall'applicazione che si sta misurando ed è ad essa esterno Il gruppo di dati non è mantenuto dall'applicazione che si sta misurando Il gruppo di dati è mantenuto in un ILF di un'altra applicazione Titolo di stato Sì Sì Sì Sì
10 RET ILF o EIF Sottogruppi Cliente 1 Intestatario-Conto corrente 1 PCT 1 Titolo di stato 1
11 DET ILF o EIF riconoscibile dall'utente e non ripetuto? Se sì, conta 1 DET DET usato da più applicazioni? Se sì, conta solo i DET usati dall'applicazione Cliente Codice fiscale Sì No No Nome Sì No No Totale 2 Intestatario-Conto corrente Codice fiscale No No Sì IBAN Sì No No Saldo Sì No No Totale 3 PCT IBAN No No Sì Data sottoscrizione Sì No No Durata Sì No No Valore restituzione Sì No No Identificativo No No Sì Totale 5 Titolo di stato Identificativo Sì No No Scadenza Sì No No Totale 2 richiesto per stabilire una relazione con un altro ILF o EIF? Se sì, conta 1 DET
12 Identificazione EI Processo Registrazione cliente / Creazione conto corrente / Acquisto PCT / Bonifico Passo 1: Identificare i processi elementari Passo 2: Determinare il compito principale Passo 3: Validazione con le regole di conteggio degli EI Il processo è elementare? Sì / Sì / Sì / Sì Il processo svolge il compito principale di un EI? Sì / Sì / Sì / Sì (mantenere ILF) I dati o le informazioni di Sì / Sì / Sì / Sì controllo sono ricevuti dall'esterno del confine dell'applicazione Almeno un ILF è mantenuto se i dati che entrano nel confine non sono informazioni di controllo che alterano il comportamento del sistema Per il processo identificato, una delle seguenti tre affermazioni deve essere vera: La logica di processo è unica rispetto alle logiche di processo eseguite da altri EI dell'applicazione L'insieme di elementi di tipo dati identificati è differente dagli insiemi identificati per altri EI dell'applicazione Gli ILFs o EIFs referenziati sono differenti da quelli referenziati da altri EI dell'applicazione Sì (Cliente) / Sì (Intestatario-Conto corrente) / Sì (PCT) / Sì (Intestatario-Conto corrente) Sì / Sì / Sì / Sì Sì / No / Sì / No
13 Identificazione EQ Processo Ricerca PCT per conto corrente / Ricerca PCT per cliente Passo 1: Identificare i processi elementari Passo 2: Determinare il compito principale Passo 3: Validazione con le regole di conteggio degli EQ Il processo è elementare? Sì / Sì Il processo svolge il compito Sì (fornire dati all'utente) principale di un EQ? La funzione manda dati o Sì informazioni di controllo fuori dal confine dell'applicazione Per il processo identificato, una delle seguenti 3 affermazioni deve essere vera: La logica di processo è unica Sì / Sì rispetto alle logiche di processo eseguite da altri EO o EQ dell'applicazione L'insieme di elementi di tipo Sì / Sì dati identificati è differente dagli insiemi identificati per altri EO ed EQ dell'applicazione Gli ILFs o EIFs referenziati Sì / Sì sono differenti da quelli referenziati da altri EO ed EQ dell'applicazione Per il processo identificato, tutte le seguenti 5 affermazioni devono essere vere La logica di processo del Sì / Sì processo elementare reperisce dati o informazioni di controllo da un ILF o EIF La logica di processo del Sì / Sì processo elementare non contiene una formula matematica o un calcolo La logica di processo del Sì / Sì processo elementare non crea dati derivati La logica di processo del Sì / Sì processo elementare non mantiene un ILF La logica di processo del Sì / Sì processo elementare non altera il comportamento del sistema
14 Identificazione EO Processo Saldo complessivo cliente Passo 1: Identificare i processi elementari Passo 2: Determinare il compito principale Passo 3: Validazione con le regole di conteggio degli EO Il processo è elementare? Il processo svolge il compito Sì (fornire dati all'utente) principale di un EO? La funzione manda dati o Sì informazioni di controllo fuori dal confine dell'applicazione Per il processo identificato, una delle seguenti 3 affermazioni deve essere vera: La logica di processo è Sì unica rispetto alle logiche di processo eseguite da altri EO o EQ dell'applicazione L'insieme di elementi di tipo Sì dati identificati è differente dagli insiemi identificati per altri EO ed EQ dell'applicazione Gli ILFs o EIFs referenziati Sì sono differenti da quelli referenziati da altri EO ed EQ dell'applicazione Per il processo identificato, una delle seguenti 4 affermazioni deve essere vera La logica di processo del Sì processo elementare contiene almeno una formula matematica o calcolo. La logica di processo del Sì processo elementare crea dati derivati. La logica di processo del No processo elementare mantiene almeno un ILF. La logica di processo del No processo elementare altera il comportamento del sistema Sì
15 FTR per EI EI ILFs solo mantenuti ILFs e EIFs solo referenziati Registrazione cliente Cliente ILFs sia referenziati sia mantenuti DET per EI Registrazione cliente Codice fiscale riconoscibile dall'utente, non ripetuto che entra o esce dal confine dell'applicazio ne? Conta come 1 DET reperito o derivato dal sistema, che non attraversa il confine? Non contarlo Messaggio di risposta del sistema? Conta 1 DET che specifica l'azione? Conta 1 DET Sì No No No Sì Nome Sì No No No Sì Totale 2 Conta come DET? FTR per EQ EQ Ricerca PCT per cliente ILFs e EIFs referenziati Intestatario-conto corrente PCT
16 DET per EQ riconoscibile dall'utente, non ripetuto che entra o esce dal confine dell'applicazio ne? Conta come 1 DET Messaggio di risposta del sistema o campo che specifica l'azione? Conta come 1 DET Il campo è un letterale, una variabile di pagina o informazione di sistema? Non contarlo reperito o derivato dal sistema, che non attraversa il confine? Non contarlo Ricerca PCT per cliente Codice fiscale Sì No No No Sì IBAN No No No Sì No Data No No No Sì No sottoscrizione Durata Sì No No No Sì Valore Sì No No No Sì restituzione Identificativo Sì No No No Sì Totale 4 Conta come DET? FTR per EO EO ILFs solo mantenuti ILFs e EIFs solo referenziati Saldo complessivo Cliente, cliente Intestatario-conto corrente ILFs sia referenziati sia mantenuti
17 DET per EO riconoscibile dall'utente, non ripetuto che entra o esce dal confine dell'applicazio ne? Conta come 1 DET Messaggio di risposta del sistema o campo che specifica l'azione? Conta come 1 DET Il campo è un letterale, una variabile di pagina o informazione di sistema? Non contarlo reperito o derivato dal sistema, che non attraversa il confine? Non contarlo Saldo complessivo cliente Codice fiscale Sì No No No Sì Saldo No No No Sì No IBAN No No No Sì No Saldo Sì No No No Sì complessivo Totale 2 Conta come DET?
ITIS A. Volta Flavia Lollis pag. 1
Il Function Point è una delle metriche più antiche e tuttora diffuse nell ambito della valutazione di progetti software. Ciò che lo rende insostituibile e superiore ad altri metodi può essere riassunto
DettagliCompito Scritto di Ingegneria del Software. 22 luglio Parte teorica, punti 14. Tempo a disposizione: 1 ora
Compito Scritto di Ingegneria del Software 22 luglio 2010 Parte teorica, punti 14 Tempo a disposizione: 1 ora Esercizio 1 Si descrivano i principi di rigore e formalità. PUNTI 7 Esercizio 2 Si descrivano
DettagliScritto di Ingegneria del Software II. 22 Giugno 2006 (durata 2 ore Punti 32/30)
Scritto di Ingegneria del Software II 22 Giugno 2006 (durata 2 ore Punti 32/30) Esercizio n. 1 Un sistema software è costituito da tre processi produttori, identici, che scrivono messaggi in mutua esclusione
DettagliStima della size- Esercitazioni
IT Project Management Lezione 5 Software Sizing Estimation - Esercitazione Federica Spiga A.A. 2009-2010 1 Elementi Base Il metodo dei Function Point consiste nell identificare e contare le funzionalità
DettagliGestione parte IIA. Linee di codice. Function points. KLOC come misura di produttività. Misura della dimensione Versioni più utilizzate:
Linee di codice Gestione parte IIA Misura della dimensione Versioni più utilizzate: DSI (delivered source instructions): conta solo le linee consegnate al committente NCSS (non-commented source statements):
DettagliIT Project Management
IT Project Management Lezione 5 Software Sizing Estimation - Esercitazione Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 1 Elementi Base Il metodo dei Function Point consiste nell identificare
DettagliSTUDIO DEI FUNCTION POINT
ALMA MATER STUDIORUM UNIVERSITÁ DI BOLOGNA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA IN SCIENZE DI INTERNET STUDIO DEI FUNCTION POINT Tesi di laurea in Sistemi e Processi Organizzativi
DettagliDecima Esercitazione. Accesso a risorse condivise tramite Monitor Java
Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso
DettagliFUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliCompito Scritto di Ingegneria del Software. 11 marzo 2010. Parte teorica, punti 14. Tempo a disposizione: 1 ora
Compito Scritto di Ingegneria del Software 11 marzo 2010 Parte teorica, punti 14 Tempo a disposizione: 1 ora Esercizio 1 Si descriva il principio di Astrazione. PUNTI 7 Esercizio 2 Si definiscano e descrivano
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali
DettagliPolitecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi
DettagliEsercizi di programmazione in linguaggio C - Costrutto iterazione
Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente
DettagliSistemi Informativi I Function Point Analisys
7. Stima dei costi. Nelle diverse fasi del progetto di sviluppo del software si possono individuare quattro principali voci di costo, corrispondenti alle fasi del ciclo posteriori allo studio di fattibilità:
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliLe strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliIngegneria del Software MINR Giuseppe Santucci. 05 - Il metodo dei FP
Ingegneria del Software MINR Giuseppe Santucci 05 - Il metodo dei FP 05fp.1 Metriche relative al sw Dirette misure effettuabili direttamente sul codice LOC (Line Of Code) Indice di McCabe... misure effettuabili
DettagliIstruzioni 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
DettagliElementi 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
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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 Corso
Dettagli7. Strutture di controllo
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 7. Ing. Michele Ruta 1 di 17 Indice Istruzioni di selezione Mappate dal costrutto switch Istruzioni cicliche (di iterazione)
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliPolitecnico di Milano Facoltà di Ingegneria Milano Leonardo A.A. 2007/08
Politecnico di Milano Facoltà di Ingegneria Milano Leonardo A.A. 2007/08 Informatica A E. Quintarelli Allievi Gestionali Recupero del 20 Febbraio 2008 Cognome e nome Firma Matricola Domanda 1 2 3 4 5 6
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
Dettagliistruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso
Programmazione Concorrente sequenze critiche e mutua esclusione istruzioni atomiche deadlock sincronizzazione e semafori settembre 2009 programmazione concorrente 1 modello di esecuzione sequenziale istruzioni
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
DettagliEsempio di prova scritta di Fondamenti di Informatica
Università degli Studi di Firenze - Scuola di Ingegneria Corso di laurea in Ingegneria Elettronica e delle Telecomunicazioni - Docente: Ing. Laura Carnevali Esempio di prova scritta di Fondamenti di Informatica
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME 13 novembre 2006 RIGA COLONNA MATRICOLA Il presente plico pinzato, composto di sei fogli, deve
DettagliAggregati di dati eterogenei: il tipo struct. Esercizi risolti
Esercizi risolti 1 Esercizio Si vuole realizzare un tipo utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero intero indicante il codice di riferimento dell articolo
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
DettagliSviluppo dei Programmi
Programmazione I a.a 2009-2010 docente: Carmine Gravino Sviluppo dei Programmi Presentazione realizzata dal Prof. Andrea De Lucia 1 Analisi e Specifica Sviluppo dei programmi Progettazione Codifica Verifica
DettagliStruttura 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
DettagliIterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare
DettagliNOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame A COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -
ESERCIZI DI PROGRAMMAZIONE - condizionali e cicli - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1: dal tema d esame ING-INF del 28 gennaio 2009 Si sviluppi un programma in
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array
Dettagli7 - 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
DettagliVBA è 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?
DettagliCOMANDI ITERATIVI. Ivan Lanese
COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito
DettagliLABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo
DettagliISTRUZIONI DI ITERAZIONE
CHAPTER 6 CICLI 1 ISTRUZIONI DI ITERAZIONE Le istruzioni di iterazione sono usate per realizzare I cicli. Un ciclo è una istruzione il cui compito è di eseguire ripetutamente qualche altra istruzione (il
DettagliEsercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliAnche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto:
ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti
DettagliAlgebra di Boole ed elementi di logica
Algebra di Boole ed elementi di logica Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 10 O0obre 2013 Obiettivi Algebra di Boole Algebra di boole a due valori: algebra di commutazione
DettagliProgrammazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
DettagliESERCIZIO: Lettura/Scrittura Array
ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti
DettagliLaboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014
Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Damiano Macedonio Esercizio 1 Scrivere una funzione che riceve in ingresso un puntatore ad un array di interi e modifica tale array
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliCapitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliInformazioni sul corso
Informazioni sul corso Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 11 ottobre 2016 Programmazione Programmazione
DettagliIstruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliIntroduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
DettagliLinguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
DettagliPROGRAMMAZIONE: ESERCITAZIONE N. 6
PROGRAMMAZIONE: ESERCITAZIONE N. 6 Esercizi su stru+ure condizionali e itera1ve Conoscenze richieste: LC1+LC2+LC3+LC4+LC5+LC6 Esercizio 1 Acquisire un numero positivo N e calcolarne la radice quadrata
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliCompito Scritto di Ingegneria del Software. 10 gennaio 2010. Parte teorica, punti 14. Tempo a disposizione: 1 ora
Compito Scritto di Ingegneria del Software 10 gennaio 2010 Parte teorica, punti 14 Tempo a disposizione: 1 ora Esercizio 1 Si descrivano le macchine a stati finiti e i loro impieghi e limiti. PUNTI 7 Esercizio
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998
21 Gennaio 1998 PROVA PRATICA Si scriva un programma C (BASIC per gli studenti di Elementi di Informatica) che: a) Legga da terminale una sequenza di caratteri terminati dal carattere '*' (un carattere
DettagliNOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame B COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliMetodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliLinguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
DettagliLinguaggio C: le funzioni
Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: genna18@iol.it sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliFondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Dettagliuna matrice quadrata, determini se è un Un quadrato magico è una matrice NxN
Esercizio 1: Quadrato magico Realizzare una funzione che, presa in input una matrice quadrata, determini se è un quadrato magico Un quadrato magico è una matrice NxN I cui elementi sono TUTTI i numeri
DettagliCalcolare x n = x x x (n volte)
Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile
DettagliIndovina la lettera...
Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliEsercizio 1 (15 punti)
Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 30 giugno 2017 In un lontano paese da
DettagliProgrammazione è gestione di eventi
FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2011-12 17 settembre 2012 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliIstruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliIterazione (introduzione)
Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
DettagliOttenere una modifica del parametro attuale
Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)
DettagliRealizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.
Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float
DettagliElementi di C++ di base
Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste
DettagliEsempio: L EURO-CONVERTITORE (1) Scopo
Esempio: L EURO-CONVERTITORE (1) Scopo Realizzare un sistema software per la conversione di euro in lire. In particolare, si vuole, definire un euro-covertitore e, dati due oggetti di tipo euro convertitore
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliProcedura. Procedure e funzioni. Esempio di procedura in C. Procedure in C. Esempio con prototipo. Esecuzione del codice
Procedure e funzioni In linguaggio C Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
DettagliBreve 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...
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliModello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
DettagliCatia Trubiani. Laboratorio di Ingegneria del Software a.a
Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi
DettagliRappresentazione di dati
Rappresentazione di dati oggetti del mondo reale: - caratteristiche - caratteristiche obiettivo della rappresentazione analisi e progettazione strutture dati teoriche (ADT) - domini ( ) - dominio di interesse
DettagliStruct, enum, Puntatori e Array dinamici
Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente
DettagliIl linguaggio C Puntatori
Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi
DettagliAlgoritmi di ordinamento: Array e ricorsione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion
Dettagli