• 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 12/01/2007

1. Sia dato un array A a valori booleani di lunghezza maggiore di 3. Si definisca una classe MAN_A che permette le seguenti operazioni sull’array:

• MAN_A (int n): costruttore che crea l’array A di dimensione n, e lo inizializza con valori false;

• Inverti(): modifca l’array A invertendolo (i.e. scambiando fra loro i valori di A[i] e A[n-i-1] con i=0, …,(n-1)/2);

• int Somma(): restituisce il numero di elementi di A con valore true.

• ∼MAN_A (): distruttore.

2. Siano dati due file di testo non vuoti T1.txt e T2.txt. Il file T2.txt è identico al file T1.txt tranne che per alcuni caratteri che sono stati omessi. Scrivere una funzione int missing() che confronta i due file e restituisce il numero di caratteri omessi in T2.txt.

3. Sia data una lista l semplice a valori interi composta da almeno due elementi. Si scriva una funzione elimina(l) che riceve in ingresso la lista l e legge il campo informativo x della coda di l. Se x è pari allora dealloca l’elemento di coda di l, altrimenti ne dealloca il penultimo elemento.

4. Dati i numeri decimali A=115, B=127 e C=-113, 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+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

1.

//MAN_A.h

class MAN_A { boolean *A;

int dim;

public:

MAN_A(int n);

void inverti ();

int soma ();

~MAN_A();}

//MAN_A.cc

#include “MAN_A.h”

MAN_A::MAN_A (int n) { A= new boolean[n];

dim=n;

for(int i=0; i<n; i++) A[i]=false;

}

void MAN_A::inverti() { boolean x;

for(int i=0; i<dim/2; i++) { x=A[i];

A[i]=A[dim-1-i];

A[dim-1-i]=x; } }

int MAN_A::somma() { int cont=0;

for(int i=0; i<dim; i++) if(A[i]) cont++;

return cont;

}

MAN_A::MAN_A() { delete [] A; }

2.

#include <fstream.h>

int missing() { fstream f, g;

boolean continua=false;

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

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

int cont=0;

char c1, c2;

while(f.get(c1)) {

if(!g.eof()) g.get(c2);

//ramo else per T2.txt mancante dei caratteri finali di T1.txt else { continua=true;

break; }

(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

while(c1!=c2) {

cont++;

f>>c1;

if(f.eof()) break;}

}

if (contiuna)

while (f.get(c1) cont++;

return cont; }

3.

void elimina(elem *& l) { elem *aux, aux1, aux2;

aux=l; aux1=l->next;

if(aux1->next==0) {

if(aux1->info%2==0) { aux->next=0;

delete aux1;

return; }

else { l=aux1;

delete aux;

return; } }

aux2=aux1->next;

while(aux2->next!=0) { aux=aux1;

aux1=aux2;

aux2=aux2->next; }

if(aux2->info%2==0) { aux1->next=0;

delete aux2;

return; } else {

aux->next=aux2;

delete aux1;

return; } }

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

- x=migliore(): restituisce l’indice corrispondente alla cassa che ha il minor numero di clienti in coda (se le casse con il minor numero di clienti in coda sono

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