• Non ci sono risultati.

CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI

N/A
N/A
Protected

Academic year: 2021

Condividi "CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI"

Copied!
2
0
0

Testo completo

(1)

U N I V E R S I T À D E G L I S T U D I D I P I S A F A C O L T À D I I N G E G N E R I A

CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI

Risultati e Soluzione del compito: http://www1.isti.cnr.it/~glami/

ESAME DI FONDAMENTI DI INFORMATICA - 27/06/2008 - C++

1. Siano dati due file F1.dat e F2.dat contenenti ciascuno un elenco non vuoto di valori interi ordinati in senso crescente. Si scriva una funzione booleana controlla(), che restituisce il valore true se non ci sono valori comuni nei due file, false altrimenti. Si tenga presente che la soluzione ottimale prevede una sola lettura di ciascuno dei due file.

2. Date due liste semplici a valori interi L1 e L2 non vuote. Si scriva una funzione unisci (L1, L2) che:

unisca le due liste collegando la lista L2 in coda a L1 e

renda la lista risultante circolare.

3. Sia data una matrice M a valori interi di dimensione N1xN2. Si scriva una funzione booleana verifica(M) che restituisce true se ciascuna riga della matrice è ordinata in senso crescente, false altrimenti.

4. Dati i numeri decimali A=129, B=96 e C=-218, si determini il minimo numero di bit necessari per rappresentare contemporaneamente i suddetti numeri in complemento a 2 e se ne dia la rappresentazione.

Utilizzando poi lo stesso numero di bit, si esegua l'operazione D=B+C e si discuta se il risultato ottenuto è o no significativo.

Punteggio:

Es.1 Es.2 Es.3 Es.4

10 10 10 3

(2)

U N I V E R S I T À D E G L I S T U D I D I P I S A F A C O L T À D I I N G E G N E R I A

CORSO di LAUREA in INGEGNERIA ELETTRONICA

Es.1

#include <fstream.h>

boolean controlla () {

fstream f, g;

f.open(F1.dat, ios::in);

g.open(F2.dat, ios::in);

int x1, x2;

g>>x2;

while (f>>x1) {

while(x1>x2) {g>>x2;}

if(x1==x2) return false;

}

return true;

}

Es. 2

Void unisci (elem *L1, elem *L2) { elem *aux;

aux=L1;

while(aux->next!=0) aux=aux->next;

aux->next=L2;

aux=L2;

while(aux->next!=0) aux=aux->next;

aux->next=L1;

}

Es.3

const int N1=10;

const int N2= 8;

boolean verifica (int M[N1][N2]) { int x;

for(int i=0; i<N1; i++) x=M[i][0];

for(j=1;j<N2; j++)

if(M[i][j]<=x) return false;

else x=M[i][j];

return true;

}

Riferimenti

Documenti correlati

Si scriva una funzione crea_file() che legge l’ultimo valore del file numeri.dat e costruisce un nuovo file solo_maggiori.dat contenente i soli elementi di numeri.dat maggiori

Si scriva una funzione booleana incluso() che restituisce true se tutti gli elementi di F1.dat sono contenuti in F2.dat, false altrimenti.. Sia data una lista semplice circolare

Un file chiamato dati.txt contiene per ciascuna riga una stringa di lunghezza massima 24 caratteri che rappresenta il nome di uno studente e un valore intero che

Un parcheggio per automobili è rappresentabile mediante un array P a valori binari dove ciascun elemento dell’array rappresenta un posto auto nel parcheggio e

Si scriva una funzione booleana scegli_sala(int n, int p) che cerca nel file la sala che contenga almeno n persone e il cui costo di affitto sia minimo (comunque inferiore a

Scrivere una funzione cerca_estremi() che legge il file e stampa sul monitor il numero più grande e quello più piccolo contenuti in esso.. Si scriva una funzione rendi_pari(l)

Si scriva una funzione raggruppa() che costruisce un nuovo file F3.dat che contiene tutti i valori pari contenuti in F1.dat e F2.dat e, a seguire, tutti i

Dati due array B1 e B2 di dimensione N a valori booleani, si scriva una funzione booleana unione(B1, B2) che riceve in ingresso i due array e costruisce un nuovo array B3