• 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

ESAME DI FONDAMENTI DI INFORMATICA - SIMONCINI – 17/02/2005 - C++

1. Si definisca una classe che rappresenta una lista di attesa con priorità FIFO (First In First Out). La lista di attesa è rappresentabile mediante una lista semplice i cui elementi hanno nel campo informativo una stringa di lunghezza massima 24 caratteri. Le possibili operazioni sono:

L_A()

: costruttore che crea una lista vuota;

in_attesa(nome):

se non esiste alcun elemento con il campo informativo uguale a

nome

viene inserito un nuovo elemento in coda alla lista e si restituisce

true

, altrimenti la lista non viene modificata e si restituisce

false

;

chiamata():

se la lista non è vuota, elimina l’elemento in testa alla lista;

~L_A():

distruttore che dealloca la lista.

2. Un file chiamato

numeri.dat

contiene un insieme di valori interi positivi.

Scrivere una funzione booleana

cerca()

che cerca nel file i valori multipli di 3. Se il file contiene almeno un multiplo di 3 la funzione stampa il più grande multiplo di 3 e restituisce

True

, altrimenti restituisce

False

.

3. Sia data una matrice

M

di dimensione

NxN

a valori interi maggiori di zero. Si scriva una funzione

non_nulle(M)

che riceve in ingresso la matrice

M

e restituisce il numero totale di righe di

M

che hanno almeno un valore diverso da zero.

4. Dati i numeri decimali A=111, B=-88 e C=-59, 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

11 9 10 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

1.

//L_A.h struct elem {

char* nome;

elem * next; };

class L_A { elem* l;

public:

L_A() {l=0;};

boolean in_attesa (char nome[25]);

void chiamata ();

~L_A(); } //L_A.cc

#include <string.h>

#include "L_A.h"

boolean L_A:: in_attesa(char nome[25]) {

elem *aux, *aux1;

if(l==0) { aux=new elem ;

strcpy(aux->info, nome);

aux->next =0;

return true; } aux=l->next;

aux1=l ;

boolean trovato=false ; while(aux !=0)

{

if(strcmp(aux->nome, nome)==0) trovato=true;

aux1=aux;

aux=aux->next;

}

if(trovato) return false ; aux=new elem;

strcpy(aux->info, nome);

aux->next=0;

aux1->next=aux ; return true ; }

void L_A::chiamata() {

if (l==0) return;

elem *aux ; aux=l ; l=l->next;

delete aux;}

L_A::~L_A() { elem* aux=l;

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

delete aux;

aux = l;

} }

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

#include <fstream.h>

bool cerca(int n) {

fstream f;

int num;

int n_max=0;

f.open (“numeri.dat”, ios::in);

while(f>> num) {

if (num%3==0) {

if(num>m_max) n_max=num;

} } f.close();

if (n_max>0) {

cout<<n_max;

return true; } return false;

}

3.

const int N=26;

int non_nulle(int M[N][N]) {

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

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

if(cont>0)

cont_R++;

cont=0;

}

return cont_R;

}

Riferimenti

Documenti correlati

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

Si scriva una funzione unisci() che costruisce un nuovo file NUM3.dat che contiene prima tutti i valori positivi e, a seguire, tutti i valori dispari contenuti in