• 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 14/02/2008

1. Sia dato un vettore A1 a valori interi. Si definisca una classe MAN_A1 che permette le seguenti operazioni sul vettore:

MAN_A1 (int n): costruttore che crea il vettore A1 di dimensione n, e lo inizializza con valori nulli;

Modifica(): modifca il vettore A1 scambiando fra loro i valori di A1[2*i] e A1[2*i+1] con i=0, …, (n-2)/2;

int Somma_elem_ind_pari() : restituisce la somma degli elementi di A1 con indice pari.

Aggiorna(int n, int i):incrementa A1[i] di n;

• ∼MAN_A1 (): distruttore.

2. Sia dato un file chiamato num1.dat ciascuna riga del quale è composta da 4 numeri interi. Si scriva una funzione estrai() che calcola la media aritmetica m dei terzi elementi di ciascuna riga del file e quindi costruisce un nuovo file chiamato num2.dat composto dalle sole righe di num1.dat aventi il primo valore minore di m.

3. Sia data una lista semplice l a valori interi. Si scriva una funzione elimina che riceve in ingresso la lista l e legge il campo informativo x dell’elemento di coda di l. Se x è pari allora la funzione dealloca l’elemento di coda di l, altrimenti dealloca tutti gli elementi di l.

4. Dati i numeri decimali A=125, B=137 e C=-124, 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_A1.h

class MAN_A1 { int *A1;

int dim;

public:

MAN_A1 (int n);

void modifica ();

int somma_elem_ind_pari ();

~MAN_A1();}

//MAN_A1.cc

#include “MAN_A1.h”

MAN_A1::MAN_A1 (int n) { A1= new int[n];

dim=n;

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

}

void MAN_A1::modifica() { int x;

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

A1[2*i]=A1[2*i+1];

A1[2*i+1]=x; } }

int MAN_A1::somma_elem_ind_pari() { int cont=0;

for(int i=0; i<dim/2; i++) cont += A1[2*i];

return cont;

}

void MAN_A1::aggiorna(int x, int i) { if(i>=dim) return;

A1[i]+=x; }

MAN_A1::∼MAN_A1() { delete [] A1; }

2.

#include <fstream.h>

void estrai () {

int m, primo, secondo, terzo, quarto;

int somma=0;

int cont=0;

fstream s, z;

s.open(num1.dat, ios::in);

(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 (s>>primo>>secondo>>terzo>>quarto) {

cont++;

somma+= terzo;

}

if(cont==0) return;

m=somma/cont;

s.close();

s.open(num1.dat, ios::in);

z.open(num2.dat, ios::out);

while (s>>primo>>secondo>>terzo>>quarto) {

if(primo<m)

z<<primo<<”\t”<<secondo<<terzo<<”\t”<<quarto<<”\n”;

}

z.close();

s.close();

}

3.

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

if(l==0 ) return;

if(l->next==0) { delete l;

l=0;

return; }

aux=l; aux1=l->next;

for(; aux1->next!=0; aux1=aux1->next) aux=aux1;

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

return; } else {

while(l!=0) { aux=l ; l=l->next ; delete aux ; }

}

Riferimenti

Documenti correlati

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

Si scriva una funzione estrai() che calcola la media aritmetica M_A degli abitanti delle città contenute nel file e crea un nuovo file città_piccole.dat che

La gestione della fila al banco del check-in di un aeroporto è organizzato mediante il seguente criterio: i passeggeri vengono accettati secondo un ordine cronologico,

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