Fondamenti di Informatica 2 Soluzione della prova scritta del 21 Dicembre 2007

Documenti analoghi
Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Politecnico di Torino

Fondamenti di Informatica 2

Fondamenti di Informatica 2

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 12 Dicembre 2008 Compito A

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T1 Prova Pratica - Luglio 2013 Compito

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 16 Giugno 2009 Compito A

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30'

Passare argomenti al programma

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 5A di Giovedì 12 Luglio 2018 tempo a disposizione 2h

Esercitazioni di Informatica (CIV)

Fondamenti di Informatica T 1, 2009/2010 Modulo 2 Prova d Esame 3a di Giovedì 11 Febbraio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 5A di Giovedì 13 Luglio 2017 tempo a disposizione 2h

Laboratorio di Elementi di Architetture e Sistemi Operativi Soluzioni degli Esercizi del 9 Maggio 2012

Fondamenti di Informatica 2

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 4A di Giovedì 15 Giugno 2017 tempo a disposizione 2h

Fondamenti di Informatica L-A

Laboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 18 Aprile 2012

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018

accesso * leggiaccessi(char * nomefile, int * dim);

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 1A di Giovedì 14 Gennaio 2016 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 3A di Giovedì 14 Febbraio 2013 tempo a disposizione 2h

PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008

C: panoramica. Violetta Lonati

Fondamenti di Informatica T-1, 2018/2019 Modulo 2. Prova d Esame 3A di Giovedì 14 Febbraio 2019 tempo a disposizione 2h

1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim)

Fondamenti di Informatica T-1, 2018/2019 Modulo 2. Prova d Esame 1A di Giovedì 10 Gennaio 2019 tempo a disposizione 2h

Lab 12 Allocazione dinamica della memoria

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 2A di Giovedì 26 Gennaio 2017 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 3A di Venerdì 12 Febbraio 2016 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 1A di Giovedì 12 Gennaio 2017 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 3A di Mercoledì 16 Febbraio 2011 tempo a disposizione 2h

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Esercizio 1 (15 punti)

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 1B di Martedì 22 Dicembre 2009 tempo a disposizione 2h30'

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Lab 17 Allocazione dinamica della memoria

Lezione 11: Liste a Puntatori e Input/Output

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 1A di Giovedì 11 Gennaio 2018 tempo a disposizione 2h

Esercizi di programmazione in linguaggio C English Dictionary

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 5A di Mercoledì 13 Luglio 2011 tempo a disposizione 2h

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

Strutture dinamiche in heap nel linguaggio C. E.Mumolo DIA

ESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.

Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 6A di Giovedì 8 Settembre 2016 tempo a disposizione 2h

Lezione 12: Allocazione Dinamica della Memoria

1. realizzare una funzione int estraimulte(file *fmutui, FILE *fpagamenti, Mutuo *dest, int dim)

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 2A di Giovedì 25 Gennaio 2018 tempo a disposizione 2h

Le strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri.

Operazioni su file di caratteri

Esercizio 1 (17 punti)

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 1A di Martedì 22 Dicembre 2009 tempo a disposizione 2h30'

JAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {

1. Realizzare una funzione int trovaevasori(file * fcatasto, FILE * ftasse, Lotto * dest, int dim)

Sommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

Introduzione al C Lez. 4. Allocazione Dinamica della memoria

/* Esempio di contenuto del file di testo: */ PaoloBellavista marzo.dat PaolaMello aprile.dat FedericoChesani marzo.dat CarloGiannelli marzo.

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Dati strutturati in C

Laboratorio di Programmazione

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

TUTORAGGIO INFORMATICA Settimana 7

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 3A di Venerdì 9 Febbraio 2018 tempo a disposizione 2h

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

Fondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 3A di Giovedì 13 Febbraio 2015 tempo a disposizione 2h

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

Introduzione al C Lez. 4

Gestione dei file in C

Allocazione dinamica della memoria

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

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

Fondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 3A di Giovedì 9 Febbraio 2012 tempo a disposizione 2h

Esercitazioni Fondamenti di Informatica

Fondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 1A di Giovedì 9 Gennaio 2014 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 4a di Giovedì 10 Giugno 2010 tempo a disposizione 2h30'

- matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)

Fondamenti di Informatica T-1

Array e Matrici. Perchè usare gli array?

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.

Transcript:

Fondamenti di Informatica 2 della prova scritta del 21 Dicembre 2007 Esercizio 1 (7 punti) Scrivere una funzione che prende in ingresso un array di numeri reali A di n elementi ed un array di numeri reali B di m elementi e stampi gli elementi di una matrice M di dimensione n x m calcolata come: coni 0,..., n 1 M i j A i B j con j 0,..., m 1. float *V; int dim; Vettore; void ProdottoVettore(Vettore *VettA, Vettore *VettB) int i, j; for(i=0; i< VettA->dim; i++) for(j=0; j< VettB->dim; j++) printf( %f\t, VettA->V[i] * VettB->V[j]); printf( \n ); Esercizio 2 (6 punti) Date le seguenti variabili char nome[20]; char sede[20]; int annofondazione; Editore; Editore E; int annoedizione; Libro; Definite un elenco di elementi di tipo Libro e scrivete la porzione di codice che allochi dinamicamente la memoria per l'elenco e stampi a video tutti i libri (E e annoedizione) tali che l anno di edizione sia precedente al 1999. Libro *L; Fondamenti di Informatica 2 Prova Scritta del 21 Dicembre 2007 1

ElencoLibri; int N; ElencoLibri el; el.l = (Libro*)malloc(el.N * sizeof(libro)); int i; for(i=0; i<el.n; i++) if(el.l[i].annoedizione < 1999) printf( %s\t%s\t%d\t%d\n,el.l[i].e.nome,el.l[i].e.sede, el.l[i].e.annofondazione,el.l[i].annoedizione); Esercizio 3 (7 punti) Definite una struttura dati per rappresentare un elenco di dischi prodotti da una casa discografica, dove ciascun disco è rappresentato da un codice identificativo, un nome, un anno di produzione ed il nome d arte del cantante. Definite inoltre una struttura dati che rappresenti un elenco di cantanti sotto contratto con quella casa discografica, dove per ciascun cantante si riporta solo il nome d arte. (4 punti) Scrivete una funzione che abbia in ingresso due parametri: l elenco di dischi e dei cantanti come definiti sopra. La funzione deve stampare sul monitor l'elenco dei nomi dei dischi prodotti dai cantanti. (3 punti) stringa codice; stringa nome; stringa nomecantante; Disco; Disco D[100]; int numdischi; ElencoDischi; stringa nomecantante[100]; int numcantanti; ElencoCantanti; void trovadisco(elencodischi *eldis, ElencoCantanti *elcan) int i, j; for(i=0; i<elcan->numcantanti; i++) Fondamenti di Informatica 2 Prova Scritta del 21 Dicembre 2007 2

for(j=0; j<eldis->numdischi; j++) if(strcmp(eldis->d[j].nomecantante, elcan->nomecantante[i])==0) printf( %s\n eldis->d[j].nome); Esercizio 4 (5 punti) Dire quale operazione è implementata dalla funzione mistero motivando adeguatamente la risposta. void mistero(float *A, int N) float y = A[0]; float x = A[0]; for(i=1; i<n; i++) if(y<a[i]) y = A[i]; if(x>a[i]) x = A[i]; for(i=0; i<n; i++) A[i] /= (y x)/2; La funzione mistero trova il valore massimo e minimo dell array A e lo memorizza nelle variabili rispettivamente y ed x. Successivamente aggiorna l array A dividendo ciascun elemento per la media del valore massimo e minimo di A. Esercizio 5 (7 punti) Data la seguente struttura dati: stringa marca; stringa modello; float prezzo; Moto; Si consideri un file di testo che contenga dei dati relativi ad un elenco di moto. Per ciascuna moto, in ogni riga, sono riportati nell ordine: Marca, Modello, Anno di produzione e Prezzo. Scrivere un programma che legga tutto il file, conti le sue righe e memorizzi i dati in una variabile che rappresenta l Elenco di moto (definire la struttura dati Fondamenti di Informatica 2 Prova Scritta del 21 Dicembre 2007 3

appropriata). L'allocazione della memoria può essere fatta in modo statico o in modo dinamico. (L esercizio vale 8 punti se il nome del file lo passate come parametro sulla linea di comando) #include<stdio.h> #include<stdlib.h> stringa marca; stringa modello; float prezzo; Moto; Moto *M; int nummoto; Elenco; /* Allocazione statica***** * * Moto M[100]; * int nummoto; * Elenco; *************************/ main(int argc, char **argv) Elenco E; FILE *fp; int i; int count = 0; char s[1025]; fp = fopen(argv[1], r ); if(fp!=null) while(fgets(s,1025,fp)!= NULL) count++; else printf( \nimpossibile aprire il file ); fclose(fp); // Questa riga non va scritta in caso di allocazione statica E.M = (Moto*)malloc(count*sizeof(Moto)); Fondamenti di Informatica 2 Prova Scritta del 21 Dicembre 2007 4

fp = fopen(argv[1], r );//si poteva usare anche rewind(fp); if(fp!=null) // if(count < 100)//In caso di allocazione statica for(i=0; i<count; i++) fscanf(fp, %s, E.M[i].marca); fscanf(fp, %s, E.M[i].modello); fscanf(fp, %d, &E.M[i].annoProduzione); fscanf(fp, %f, &E.M[i].prezzo); // // else // printf( Il file è troppo grande! ); // else printf("\nimpossibile aprire il file"); fclose(fp); Fondamenti di Informatica 2 Prova Scritta del 21 Dicembre 2007 5