• 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!
3
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://www.iei.pi.cnr.it/~glami/elenco-compiti.htm

ESAME DI FONDAMENTI DI INFORMATICA - 28/06/2007 - C++

1. Sia dato un file interi.txt composto da N (N>0) righe. Ciascuna riga contiene 2 valori interi. Si scriva una funzione int riga_min() che restituisce il numero x (1<=x<=N) della riga avente la somma dei valori che la compongono minima.

2. Sia data una lista semplice a valori interi non vuota l. Scrivere una funzione elimina(l, n) che riceve in ingresso la lista l. La funzione si comporta nel seguente modo:

 se n è minore o uguale al numero di elementi di l, elimina tutti gli elementi di l che hanno il campo informativo uguale a quello dell’n- esimo elemento e restituisce il valore true.

 Se n è maggiore degli elementi di l, restituisce il valore false senza modificare l.

3. Siano dati due file numeri1.txt e numeri2.txt contenenti entrambi un elenco di numeri interi. Si scriva una funzione int conta (A) che riceve in ingresso un vettore A a valori interi di dimensione N. La funzione restituisce il numero degli elementi di A il cui valore compare sia in numeri1.txt che in numeri2.txt.

4. Dati i numeri decimali A=-98, B=125 e C=222, 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=A+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

1.

#include <fstream.h>

void riga_min () { fstream f;

f.open(“interi.txt”, ios::in);

int n1, n2, somma, min;

int cont=1;

int n_riga=1;

if (f>>n1>>n2) min =n1+n2;

while(f>>n1>>n2) { cont++;

somma=n1+n2;

if(somma<min) { min=somma;

n_riga=cont;

}

f.close();

return n_riga;

}

2.

boolean modifica (elem *&l, int n) { elem *aux1, *aux2;

int cont=0;

int x;

for(aux1=l; aux!=0; aux1=aux1->next) { cont++;

if(cont==n) x=aux1->info ; }

if(cont<n) return false;

aux1=l;

while(aux1->info==x && aux1!=0) { l=l->next;

delete aux1;

aux1=l; } if(l==0) return true;

aux1=l;

aux2=aux1->next;

while(aux2 !=0) {

if(aux2->info == x) { aux1->next=aux2->next ; delete aux2 ;

aux2=aux1->next ; }

else { aux1=aux2 ;

aux2=aux2->next ; } }

return true ; }

(3)

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

3.

#include <fstream.h>

const int N=10;

int controlla (int A[N]) {

fstream f, g;

boolean b1=false;

boolean b2=false;

int n=0;

for(int i=0; i<N; i++) {

f.open(“numeri1.txt”, ios::in);

g.open(“numeri2.txt”, ios::in);

while(f>>n1) { if(n1==A[i]) { b1=true;

break; } while(g>>n2) { if(n2==A[i]) { b2=true;

break; } if(b1 && b2) n++;

b1=false, b2=false;

f.close();

g.close();

}

return n;

}

Riferimenti

Documenti correlati

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

Scrivere una funzione int missing() che confronta i due file e restituisce il numero di caratteri omessi in T2.txt.. Sia data una lista l semplice a valori interi composta

Sia dato un file non vuoto azienda.dat contenente su ciascuna riga le seguenti informazioni: la ragione sociale di una azienda (stringa di al più 28 caratteri), il

Si scriva una funzione elimina(l) che riceve in ingresso la lista l ed elimina dalla lista l’elemento con campo informativo massimo.. Utilizzando poi lo stesso

Scrivere una funzione booleana controlla(A) che riceve in ingresso un vettore A di dimensione N=50 a valori interi e restituisce il valore true se l’indice corrispondente al