Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Università Politecnica delle Marche, Facoltà di Ingegneria, Corsi di Laurea in Ingegneria Gestionale
Fondamenti di Informatica (A-L/M-Z) – (Prof. E. Frontoni)
PROVA SCRITTA – 26 Marzo 2018
Avvertenze:
- Consegnare solo fogli formato A4 scritti su un solo lato (no fronte-retro)
- In testa a ciascun foglio scrivere: cognome, nome, numero progressivo di pagina rispetto al totale esempio per il secondo foglio di 3 consegnati: Giuseppe Russo 2/3
- Mantenere sul banco il libretto o altro documento di riconoscimento fino a controllo avvenuto
- Nient’altro deve trovarsi sul banco: non è consentito consultare libri, dispense, appunti, ecc.
- La correzione di riferimento per l’autovalutazione verrà effettuata subito dopo l’esame.
- (24 punti)
Un file di testo SCHEDINA.DAT, di lunghezza non nota, contiene su ciascuna riga le seguenti informazioni: nome della squadra ospitante, nome della squadra ospite e il risultato della partita (1,0,2). Il nome della squadra ospite e quello della squadra ospitante sono due stringhe di massimo 20 caratteri, mentre il risultato è espresso mediante un intero.
- Costruire una struttura dati idonea a contenere oltre ai dati di cui sopra: due stringhe e un intero.
- Scrivere un programma che leggendo i dati dal file, li inserisca in una lista ordinata in ordine decrescente rispetto al valore del risultato.
- Effettuare la stampa a video della lista così ottenuta.
- Memorizzare su un file di testo FUORICASA.DAT solo i nomi delle squadre vincitrici fuori casa (valore del risultato 2)
SCHEDINA.DAT milan juve 2 inter lazio 1 roma napoli 0 udinese spal 2
- Indicare cosa stampa il seguente codice (6 punti)
#include <stdio.h>
int funz(int *x, int *y); int main() { int x[4]={3, 2, 5, 1}; printf("%d %d\n", funz(x,&x[3]), funz(&x[1], &x[3])); return 0; } int funz(int *x, int *y) { int z, k=0; for (z=0; z < 2; z++) k+=(*x++)+(*y--); return k; }
N.B.: Riportare graficamente il ragionamento effettuato, è sufficiente l’utilizzo di una tabella.
x[0] 3
x[1] 2
x[2] 5
x[3] 1
-
funz (x, &x[3])
- a)
x = &x[0]
- b)
-
funz (&x[1], &x[3])
- a)
- b)
Perchè ++/-- nonostante le parentesi agiscono dopo l'incremento ?
FERROTECNICA 3000 s.r.l.
Via Il Giugno, 10 (PAGLIARE DEL TRONTO) Tel. 0736.898677 - Fax 0736.892137 63078 SPINETOLI (AP) e-mail: renum@ferrotecnica3000.it e-mail: tec@ferrotecnica3000.it Codice Fiscale e Partita IVA 01471510444 R.E.A. n. 138694 - R.I. AP n. 007-9274 Capitale Sociale € 62000,00 int. vers.
22/01/2018
- a
- 6
- b
- 8
- t
- 0
funz(2,6) → return 8 + funz(8,6) → return 6 + funz(6,2) → return 2 + funz(2,0) else return x (8+6+2+2)
printf (t = 18)
Fondamenti di Informatica
Avvertenze:
- Consegnare solo fogli formato A4 scritti su un solo lato (no fronte-retro)
- In testa a ciascun foglio scrivere: cognome, nome, numero progressivo di pagina rispetto al totale
- Mantenere sul banco il libretto o altro documento di riconoscimento fino a controllo avvenuto
- Nient’altro deve trovarsi sul banco: non è consentito consultare libri, dispense, appunti, ecc.
- La correzione di riferimento per l’autovalutazione verrà effettuata subito dopo l’esame.
-
(24 punti) Un file di testo prodotti.dat, di lunghezza non nota, contiene su ciascuna riga un numero intero (costituito da 6 cifre), che indica l’ID di un prodotto, un numero intero che indica la quantità di prodotti acquistati e un numero intero che indica la quantità di prodotti venduti. Costruire una struttura data idonea a contenere i tre interi.
- Scrivere un programma che leggendo i dati dal file, costruisca una lista delle strutture ordinate secondo un ordinamento crescente rispetto all’ID del prodotto.
- Stampare a video l’intera lista così ottenuta.
- Chiedere di immettere da tastiera l’ID di un prodotto e se presente nella lista, stampare a video la differenza tra la quantità di prodotto acquistato e la quantità di prodotto venduto, altrimenti stampare a video che l’ID non è presente.
-
Che cosa stampa il seguente programma? (Riportare l’intero ragionamento) (6 punti)
#include<stdio.h> int main() { int x,y; int *p1,*p2; x = 1; y = 3; p1 = &x; p2 = &y; *p1 = *p2+1; p2 = p1; *p2 = *p2 - *p1; printf("x=%d y=%d\n",x,y); }
X
Y
*fun1( &x,y )
0
0
4
0
1
5
t -> X
fun2( x,y )
0
0
1
1
8 -> t = 2 * X -> 8 (2.0)
8 -> t + 3 * X -> 8 (3.0)
STAMPA t = 8 y = 1
- fun1 modifica il valore perché ha una variabile di tipo puntatore
- fun2 non modifica perché ha solo variabili locali
Università Politecnica delle Marche, Facoltà di Ingegneria, Corsi di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
PROVA SCRITTA – 27 Febbraio 2017
Avvertenze:
- Consegnare solo fogli formato A4 scritti su un solo lato (no fronte-retro)
- In testa a ciascun foglio scrivere: cognome, nome, numero progressivo di pagina rispetto al totale
- Esempio per il secondo foglio di 3 consegnati: Giuseppe Russo 2/3
- Mantenere sul banco il libretto o altro documento di riconoscimento fino a controllo avvenuto
- Niente altro deve trovarsi sul banco: non è consentito consultare libri, dispense, appunti, ecc.
- La correzione di riferimento per l'autovalutazione verrà effettuata subito dopo l'esame.
-
(24 punti) Sia dato un file di testo esame.dat, di lunghezza non nota, che contiene su ciascuna riga 2 stringhe di al massimo 30 caratteri che rappresentano rispettivamente il cognome e il nome di uno studente e un intero che indica il voto ottenuto in esame. Costruire una struttura data idonea a contenere i dati indicati sopra: due stringhe (una per il cognome e l’altra per il nome) e un intero (per il voto).
- Scrivere un programma che leggendo i dati dal file, li inserisca in una lista ordinata secondo un ordinamento crescente rispetto al cognome dello studente.
- Stampare a video l'intera lista ordinata.
- Calcolare la media dei voti (float) e stampare a video il valore della media ottenuto.
ESEMPIO: esame.dat
Rossi Paolo 27Bianchi Luigi 29Verdi Remo 30Alberani Rosa 19Zanetti Lorenzo 25Neri Francesca 24Viola Valentino 21
-
Che cosa stampa il seguente programma? (Riportare l’intero ragionamento) (6 punti)
#include <stdio.h> int funz(int *x, int y); int main() { int x=0, y=4; if (funz(&x, y)) printf("\n%d, %d \n", y, funz(&y, x)); else printf("\n%d, %d \n", funz(&y, x), y); return 0; } int funz(int *a, int b) { *a+=b; return *a-b++; }