• Non ci sono risultati.

4. . 1. CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI

N/A
N/A
Protected

Academic year: 2021

Condividi "4. . 1. CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI"

Copied!
1
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

ESAME DI FONDAMENTI DI INFORMATICA - SIMONCINI – 23/6/2006 - C++

1. Sia dato un file chiamato elenco.txt contenente in ciascuna riga una stringa di caratteri e un valore numerico che rappresentano rispettivamente il nome (stringa di lunghezza massima 24 caratteri) e l’età di una persona. Si scriva una funzione trova() che stampa sul monitor il nome della persona più giovane e di quella più anziana che si trovano nel file. Se le persone più giovani (anziane) sono più di una, si deve stampare il nome di quella alfabeticamente minore (maggiore).

2. Siano date due liste l1 e l2 semplici a valori interi non vuote e senza elementi ripetuti al loro interno. Si scriva una funzione in_comune(l1, l2) che costruisce una nuova lista l3 composta degli elementi comuni sia a l1 che a l2. La funzione restituisce il puntatore a l3.

3. Sia data una matrice G di dimensione NxM a valori interi. Si scriva una funzione booleana controlla(G) che riceve in ingresso la matrice e restituisce True se per ogni i (i<=0<N-1) la somma degli elementi della riga i-esima è minore della somma degli elementi della riga i+1-esima, False altrimenti.

4. Dati i numeri decimali A=-105, B=65 e C=103, 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+B e si discuta se il risultato ottenuto è o no significativo.

Punteggio:

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

10 11 9 3

Risultati e Soluzione del compito:http://www.iei.pi.cnr.it/~glami/elenco-compiti.htm

(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>

#include <string.h>

void in_comune() { fstream f;

int eta1, eta2, max, min;

char nome[25], giov[25], anz[25];

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

if(f>>giov>>min) ; else return;

if((f>>anz>>max);

{ cout<<"una sola persona nell'elenco: "<<giov;

return; } if(max<min) {

strcpy(giov, nome);

strcpy(anz, giov);

strcpy(nome, anz;);

eta1=max;

max=min;

min=eta1;

}

while (f>>nome>>eta) { if(eta<min) {

strcpy(nome, giov);

min=eta;

continue;}

if(eta==min) {

if(strcmp(nome,giov)<0) {

strcpy(nome, giov);

min=eta;

continue;}

} if(eta>min) {

strcpy(nome, anz);

max=eta;

continue;}

if(eta==max) {

if(strcmp(nome,anz)>0) {

strcpy(nome, anz);

max=eta;

continue;}

} }

cout >> giov << ‘ ‘<<anz<<’\n’ ; f.close();

}

Es. 2

(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

elem * in_comune(elem *l1, elem *l2) { elem *aux1, *aux2, *aux3;

elem *l3=0;

aux1=l1;

aux2=l2;

while(aux1!=0) {

while(aux2!=0) {

if(aux1->info == aux2->info) {

aux3=new elem;

aux3->info=aux1->info;

aux3->next =l3;

l3=aux3;

break;

}

aux2=aux2->next;

}

aux1=aux1->next;

aux2=l2;

}

return l3;

}

Es.3

boolean controlla (int G[N][M]) { cont_prec =0;

cont =0;

for(int i=0; i<N; i++) cont_prec+=G[0][i];

for(int i=1; i<N; i++)

{ for(int j=0; j<M; j++) cont+=G[i][j];

if(cont_prec >= cont) return false;

cont_prec=cont;

cont=0;

}

return true;

}

Riferimenti

Documenti correlati

Õ&ÖÕ§×Öd؉ىڝۉÜ?ÖÛ ÝÞXßdà&á„â3ã3äoåGæ7çè èoå éQå!æ1ê#ã3ëãJì íî›ïYðWñò ó!î ô‘õ!ïYöpõ!÷ øùðuøùdò /õ ú$ú7ïYîWûõGü

17 563 ./0123453.67893:2;??89@A=B3C83:DEFG.3/=@3F=@2113L/CA2=C;3MN3O3PQR STTUTTVUWXYZ[Y\UT]ZWTUY^YWZ_Y`ab cZV]dUXUY\UT]ZWTUY e fg\XhgdY\UT]ZWTUY ijY`ikb lXgmdUYnhTUgTUY

[r]

[r]

`èegtºé7kGa¸tèq jgkëêÆchÉìKíqsck©d qîtHêa jgkÂe_t ìïkBì¤êqîd nðhut+a¸t_k¢nsh jgkãnña¸tHêïcòa¸f©fBa... qðjÝkihutHêq

[r]

[r]

[r]