Compito Scritto di Ingegneria del Software. 22 luglio Parte teorica, punti 14. Tempo a disposizione: 1 ora

Documenti analoghi
Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta

Compito Scritto di Ingegneria del Software. 12 settembre Parte teorica, punti 14

Compito Scritto di Ingegneria del Software. 11 marzo Parte teorica, punti 14. Tempo a disposizione: 1 ora

Compito Scritto di Ingegneria del Software. 9 aprile Parte teorica, punti 14. Tempo a disposizione: 1 ora PUNTI 7

Ingegneria del Software II 12 Gennaio 2012 Parte teoria, punti 14 - Tempo a disposizione: 1h

Compito Scritto di Ingegneria del Software. 10 gennaio Parte teorica, punti 14. Tempo a disposizione: 1 ora

Scritto di Ingegneria del Software II. 22 Giugno 2006 (durata 2 ore Punti 32/30)

Compito Scritto di Ingegneria del Software. 17 settembre Parte teorica, punti 14. Tempo a disposizione: 1 ora

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Corso di Informatica 1 (IN1) Tutorato n. 11

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

1 (4) 2 (4) 3 (7) 4 (5) 5 (6) 6 (6)

Perché il linguaggio C?

Struttura dei programmi C

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Esercitazione 8. Array multidimensionali

Scrittura formattata - printf

Debug di un programma

Linguaggio C I puntatori

Esercitazione 6. Array

Linguaggio C. Esercizio 1

Linguaggio C - Strutture

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Le funzioni, e le istruzioni di input/output

Informatica 1. Prova di recupero 21 Settembre 2001

Giuseppe Capizzi. Ambienti di sviluppo Open Source

Gestione di files Motivazioni

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

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Struct, enum, Puntatori e Array dinamici

Esercizio 1: Puntatori impiegati che sono manager

Dati aggregati. Violetta Lonati

Istruzioni iterative (o cicliche)

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Elaborati per idoneità Access

La gestione della memoria dinamica Heap

Algoritmi di Ricerca. Esempi di programmi Java

Esercizi di programmazione in linguaggio C English Dictionary

Il linguaggio C. Notate che...

Esercizi. Stringhe. Stringhe Ricerca binaria

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Espressione di chiamata di funzione

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

Tempo di vita e scope delle variabili

Utilizzo delle Maschere in Microsoft Access

Introduzione ai puntatori in C Definizione

Indovina la lettera...

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

LIA. LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Algoritmi e basi del C Struttura di un programma

Esercizi C su array e matrici

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012

Primi passi col linguaggio C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Appello di Informatica B

Capitolo 5 - Funzioni

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Gli Operatori. Università degli Studi di Brescia

prova.c #include <stdio.h> char funzione(char); codice oggetto del main()

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

La programmazione in linguaggio C

Corso di Informatica 1 Esercitazione n. 4

IL PRIMO PROGRAMMA IN C

PILE E CODE. Pile (stack):

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Strategie di programmazione

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio A

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Unità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.

Esercizi. I File ed il C

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Programmazione I - Laboratorio

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>

Linguaggio C: le funzioni

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Consideriamo un vettore allocato dinamicamente

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA 17/1/1997 PROVA SCRITTA

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

Esame Informatica Generale 13/04/2016 Tema A

Rappresentazione binaria delle variabili (int e char)

Linguaggio C - sezione dichiarativa: costanti e variabili

# include<stdio.h> int main() { // Dichiarazioni int n; int i;

Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post >

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Esercizi su. Istruzioni di scelta multipla. Overflow

Transcript:

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 brevemente le principali funzionalità di un IDE avanzato (Netbeans o Eclipse), tra cui refactoring, debugger e profiler. PUNTI 7

Compito Scritto di Ingegneria del Software 22 luglio 2010 Parte pratica, punti 18 Tempo a disposizione: 1 ora e mezza Esercizio 3 Modellare con una rete di Petri un sistema di controllo di un aereo. L'aereo può essere in 4 stati: fermo, in decollo, in volo e in atterraggio. Il pilota ha a disposizione un pulsante che, quando premuto, fa passare l'aereo da fermo a in decollo, e da in volo a in atterraggio. Il passaggio da in decollo a in volo e da in atterraggio a fermo viene compiuto automaticamente dal sistema di controllo. Mentre l'aereo è in volo, il pilota comanda una cloche che può assumere tre posizioni: a sinistra, al centro e a destra. Se la cloche viene spostata a sinistra l'aereo vira a sinistra, se viene spostata a destra l'aereo vira a destra. Inizialmente l'aereo è fermo e la cloche è al centro. PUNTI 5 Esercizio 4 Si dia una specifica in Z di un database di citazioni bibliografiche. Il sistema deve memorizzare un insieme di autori identificati tramite nome e cognome. Il sistema deve inoltre mantenere un database di citazioni in cui viene associato un codice intero ad ogni citazione e, per ogni citazione, viene memorizzato l'autore dell'articolo, la sede di pubblicazione (si assuma come tipo definito dall'utente) e il titolo (si assuma come tipo definito dall'utente). Si modellino in Z le seguenti operazioni: 1) inserimento di un autore: dato il nome e il cognome di un autore, lo si inserisce nel database. L'operazione fallisce se l'autore è già presente. 2) inserimento di una citazione: dato un autore, un titolo e una sede, il sistema deve inserire la citazione e restituirne il codice. L'operazione fallisce se la citazione è già presente 3) elenco delle citazioni di un autore: dato un autore, il sistema deve elencare i codici delle citazioni di quell'autore. L'operazione fallisce se l'autore non è registrato nel sistema. PUNTI 7

Esercizio 5 Dato il seguente programma in linguaggio C, 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 % 3 == 0) c = i*i; i++; } printf ("%d\n", c); return 0; } PUNTI 6

Soluzione Esercizio 3 Esercizio 2 Tipi definiti dall'utente: [Nomi, Cognomi, Sedi, Titoli] Nomi={nomi degli autori} Cognomiì={cognomi degli autori} Sedi={nomi delle sedi} Titoli={nomi dei titoli} Variabili che descrivono lo stato del sistema:

1) autori è un insieme di autori; 2) citazioni è una funzione che associa ad un autore, ad una sede e ad un titolo un codice intero ÈDBCit citazioni: Nomi x Cognomi x Sedi x Titoli N autori: P (Nomi x Cognomi) {(nome,cognome) aut: nome: Nomi, cognome: Cognomi, sede: Sedi, titolo: Titoli (nome,cognome,sede,titolo) e ran citatazioni, } z autori n1:n,n2:n n1 n2 citazioni -1 (n1)=citazioni -1 (n2) ÈInitDBCit DDBCit autori'={} citazioni'={} ÈSuccess rep!: Report rep! = 'Okay' 1) inserimento di un autore: ÈInsAut DDBCit (nome?,cognome?) ä autori autori'=autori U {(nome?,cognome?)} citazioni'=citazioni ÈAutPres XDBCit rep!: Report (nome?,cognome?) e autori rep! = 'Autore già presente'

InserisciAutoreê InsAut Success v AutPres 2) inserimento di una citazione ÈInsCit DDBCit sede?: Sedi titolo?: Titoli codice!: N (nome?,cognome_,sede?,titolo?) ä dom citazioni codice! ä ran citazioni autori'=autori citazioni'=citazioni U {(nome?cognome?,sede?,titolo?) codice!} ÈCitPres XDBCit sede?: Sedi titolo?: Titoli rep!: Report (nome?,cognome?,sede?,titolo?) e dom citazioni rep! = 'Citazione già presente' InserisciCitazioneê InsCit Success v CitPres 3) elenco delle citazioni di un autore ÈElCit XDBCit cit!: P N (nome?,cognome?) e autori cit!={codice sede: Sedi, titolo: Titoli (nome?,cognome?,sede,titolo) codice e citazioni}

ÈAutNonPres XDBCit rep!: Report (nome?,cognome?) ä autori rep! = 'Autore non presente' ElencaCitazioniê ElCit Success v AutNonPres

Esercizio 5 1. #include <stdio.h> 2. int main (void) 3. { 4. int a, b, c, i; 5. scanf("%d%d", &a, &b); 6. c = 0; 7. i = a; 8. while (i < b) 9. { 10. if (i % 3 == 0) 11. c = i*i; 12. i++; 13. } 14. printf ("%d\n", c); 15. return 0; 16.} 4 5 6 7 8 10 Un insieme di casi di test che rispetta il criterio di copertura degli archi è {(3,5)} 12 11 14 15