• 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!
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 – 24/06/2004 - C++

1. Un supermarket ha n casse che sono rappresentabili mediante un vettore C di dimensione n a valori interi. Il valore dell’elemento i-esimo di C indica quanti clienti sono in coda alla cassa corrispondente. Si definisca una classe Supermarket ogni oggetto della quale rappresenta le casse di un supermarket.

Sugli oggetti di tale classe è possibile effettuare le seguenti operazioni:

- Supermarket(): costruttore che inizializza il supermarket con tutte le casse senza coda (cioè senza alcun cliente in coda);

- in_coda(i): il numero di clienti in coda alla cassa corrispondente all’indice i viene incrementato di 1;

- out_coda(i): il numero di clienti in coda alla cassa corrispondente all’indice i viene decrementato di 1;

- 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 più di una, si restituisce quella corrispondente all’indice maggiore).

2. Un file chiamato dati.txt contiene per ciascuna riga un valore booleano, una stringa di lunghezza massima 24 caratteri e un valore intero. Scrivere una funzione ok = stampa_stringhe(n) che stampa sul monitor le stringhe del file che hanno sulla stessa riga il valore booleano uguale a F e il valore intero minore di n. Se almeno una stringa viene trovata, la funzione restituisce T, altrimenti restituisce F.

3. Sia data una lista semplice l a valori interi. Si scriva una funzione n_consecutivi(l) che stampa sul monitor il numero di elementi di l il cui campo info è maggiore del campo info dell’elemento precedente e minore del campo info dell’elemento successivo.

4. Dati i numeri decimali A=82, B=-39 e C=131, 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-A e si dica se il risultato ottenuto è o no significativo.

Punteggio:

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

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

//Supermarket.h const int n=15;

class Supermarket { int C[n];

public:

Supermarket ();

in_coda(i) { C[i]++;};

out_coda(i) { if(C[i]>0) C[i]--;

else cout<<”Cassa senza coda\n”;};

int migliore ();

} ;

//Supermarket.cc

#include ‘Supermarket.h’

Supermarket ::Supermarket() { for (int i=0; i<n; i++)

C[i]=0;

}

int migliore () { int nc=C[0];

for (int i=1; i<n; i++) { if(C[i]<=nc) {

nc= C[i];

i_m=i;

} } return i_m;

} 2.

#include <fstream.h>

bool stampa_stringhe(int n) {

fstream f;

int num;

bool vb;

char stringa[25];

bool controllo=F;

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

while(f>>vb>>stringa>>num) {

if (!vb && (num<n)) {

cout<< stringa <<”\n”;

controllo = T;}

}

f.close();

return controllo;

} 3.

#include <iostream.h>

(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

void n_consecutivi(elem *l) {

elem *aux1, *aux2, *aux3 ; int cont=0 ;

if(l==0) return;

aux1=l ;

if(aux1->next==0) return;

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

{ if(aux1->info<aux2->info<aux3->info) cont++ ;

aux1=aux2 ; aux2=aux3 ; aux3=aux3->next ; }

cout<< cont ; }

Riferimenti

Documenti correlati

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

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