Appello di Informatica B



Documenti analoghi
Fondamenti di Informatica 2

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

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

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Funzioni in C. Violetta Lonati

I puntatori e l allocazione dinamica di memoria

La struttura dati ad albero binario

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

Laboratorio di programmazione

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

Record in C: il costruttore struct.

Compito di Fondamenti di Informatica

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

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

Introduzione alla programmazione in C

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

RICERCA DI UN ELEMENTO

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Prova di recupero di Informatica B Corsi di Laurea in Ingegneria Meccanica prof. Francesco Amigoni 20 febbraio 2004

Esercizio 1. Esercizio 2

Esercizio: gestione di un conto corrente

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

Laboratorio di Algoritmi e Strutture Dati

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Esempio: Array di struct

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Laboratorio di Algoritmi e Strutture Dati

INFORMATICA 1 L. Mezzalira

Problem solving avanzato

Linguaggio C - Stringhe

Concetto di Funzione e Procedura METODI in Java

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Gestione dei File in C

Esame di Informatica Generale 9 CFU 21 Giugno 2011 Professori: Carulli, Fiorino, Mazzei

Lab 11 Gestione file di testo"

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola

Algoritmi di ordinamento

Laboratorio di Algoritmi e Strutture Dati

Esame del 3 febbraio 2010

Definizione di classi con array di oggetti

Alcune regole di base per scrivere un programma in linguaggio C

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Esercizio 1. Esercizio 1

Grammatica di base: Pointers

Verifica che una grammatica sia Context Free nel GrammaReader

Lezione 9: Strutture e allocazione dinamica della memoria

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Breve riepilogo della puntata precedente:

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Esercizi della lezione 5 di Java

Programmazione. Laboratorio. Roberto Cordone DI - Università degli Studi di Milano

costruttori e distruttori

Il tipo di dato astratto Pila

Esercitazione 7. Procedure e Funzioni

FONDAMENTI di INFORMATICA L. Mezzalira

GESTIONE INFORMATICA DEI DATI AZIENDALI

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 13 Settembre COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio

Problem solving elementare su dati vettoriali

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

dall argomento argomento della malloc()

Laboratorio di Algoritmi e Strutture Dati

INFORMATICA - I puntatori Roberta Gerboni

Header. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

Archivio CD. Fondamenti di Programmazione

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO XI.2015

Algoritmi di Ricerca. Esempi di programmi Java

LISTE, INSIEMI, ALBERI E RICORSIONE

Definizione di nuovi tipi in C

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Allocazione dinamica della memoria - riepilogo

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

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

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

La gestione della memoria

Linguaggio C. Esercizio 1

3. La sintassi di Java

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Transcript:

Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova recupero II prova Parte I Parte II 1 2(a) 2(b) 3 1(a) 1(b) 2 3(a) 3(b) Totale Verrà corretto solo quanto consegnato su questi fogli: NON è consentito consegnare fogli addizionali. Si forniscano risposte il più possibile concise e pertinenti. Si usi una grafia facilmente leggibile. Recupero Prima Prova 1. È stata introdotta una nuova tecnologia per la costruzione dei calcolatori, in cui il componente elementare dei registri e delle memorie non possiede due valori, bensì tre; i nuovi calcolatori non sono perciò basati sulla nozione di bit (con valore 0 o 1) bensì su quella di trit (con valore 0, 1 o 2). (a) Quale intervallo di numeri naturali (con inizio da 0) è possibile codificare con un tryte (una combinazione di 8 trit)? (b) Quanti trit deve contenere il registro indirizzi di un calcolatore basato su questa nuova tecnologia per poter indirizzare 500.000 parole?

2. (a) Si scrivano le strutture dati necessarie per rappresentare il tipo di dato PIANETA (caratterizzato da nome, circonferenza e numero di satelliti) e il tipo di dato STELLA contenente il nome della stella e un array contenente i pianeti orbitanti attorno alla stella (al massimo 15) e un intero che indichi i pianeti effettivamente presenti. (b) Si scriva un programma che utilizzando le strutture definite in precedenza e con riferimento a una variabile stl di tipo STELLA stampi il nome di ogni pianeta che abbia un numero di satelliti superiore alla somma dei satelliti dei pianeti che sono più vicini di esso alla stella. Per semplicità si supponga che i dati della stella e dei relativi pianeti siano stati precedentemente inizializzati e i pianeti siano ordinati in senso crescente rispetto alla distanza dalla stella. Soluzione esercizio 2 2

Soluzione esercizio 2 - continua 3

3. Si consideri il seguente programma. #include <stdio.h> void main() { int a, b; int *p, **pp; a = 5; p = &b; b = a - 1; pp = &p; printf("%d %d %d %d\n", a, b, *p, **pp); *p = **pp + 2; p = &a; printf("%d %d %d %d\n", a, b, *p, **pp); Si riporti l output fornito dal programma. Soluzione esercizio 3 4

Recupero Seconda Prova 1. Si consideri la seguente funzione: int f(int x) { if(x < 2) { return 1; else if (x == 2) { return 2; else if (x % 2 == 0) { return 2 * f(x / 2); else { return f(x - 1); (a) Si scrivano i valori restituiti dalla funzione in seguito alle seguenti invocazioni, riportando i calcoli effettuati: f(35) f(30) f(32) 5

(b) Considerando i valori ottenuti al punto precedente, si indichi l operazione compiuta dalla funzione quando riceve in ingresso un numero intero positivo. 2. Considerando la seguente struttura dati: typedef struct el { int elem; struct el* next; elem_lista; si scriva una funzione che abbia un parametro d ingresso di tipo puntatore a elem lista, rappresentante il puntatore al primo elemento di una lista e che modifichi la relativa lista eliminando tutti gli elementi di valore inferiore al proprio predecessore. Ad esempio se la lista contiente i seguenti elementi (2, 6, 3, 9, 6) la lista risultante sarà (2, 6, 9). La funzione termina resituendo il puntatore al primo elemento della lista. 6

Soluzione esercizio 2 7

3. Siano date le seguenti strutture dati per rappresentare il tipo di dato PARTITA contenente il nome della SquadraA e della SquadraB (entrambi array di 20 caratteri), il numero di goal della squadraa e il numero di goal della squadrab e il tipo di dato CLASSIFICA (contenente un array con i nomi 18 squadre, e un array di interi rappresentante i punti conseguiti dalla varie squadre) typedef struct { char SquadraA[20]; char SquadraB[20]; int goalsqa, goalsqb; PARTITA; typedef struct { char squadre[18][20]; int punti[18]; CLASSIFICA; Utilizzando queste strutture dati si implementino le seguenti funzioni: (a) risultato che riceve in ingresso una partita e restituisce 1 in caso di vittoria della SqaudraA, -1 in caso di vittoria della squadrab e 0 in caso di pareggio. (b) giornata che riceve in ingresso un array di 9 partite e un parametro di tipo classifica contenenente i nomi delle squadre e i punti conseguiti nelle precedenti giornate di campionato. La funzione deve modificare opportunamente i punteggi delle squadre sulla base dei risultati delle partite (si ricordi che in caso di vittoria vengono assegnati 3 punti alla squadra vincente e 0 alla perdente mentre in caso di pareggio viene assegnato un punto ad entrambe le squadre). A tale scopo la funzione giornata deve far uso della funzione risultato e della funzione (assunta già implementata) int nomiuguali(char s1[], char s2[]) che restituisce 1 se le due stringhe s1 e s2 coincidono, 0 altrimenti. Soluzione esercizio 3 8

Soluzione esercizio 3 - continua 9