• Non ci sono risultati.

D=B-C 4. A=111 B=43 C=-76 dealloca(l) l 3. l (i+1) numeri.txt A[i] (i+1)- A N costruisci(A) 2. numeri.txt N   n=spettacoli_esauriti() T F i i  ok=abbonamento(i) j  Vendita(i, j) i  Botteghino() Botteghino j. i NxM B[i][j] B Z N 1. M CORSO di LAUREA i

N/A
N/A
Protected

Academic year: 2021

Condividi "D=B-C 4. A=111 B=43 C=-76 dealloca(l) l 3. l (i+1) numeri.txt A[i] (i+1)- A N costruisci(A) 2. numeri.txt N   n=spettacoli_esauriti() T F i i  ok=abbonamento(i) j  Vendita(i, j) i  Botteghino() Botteghino j. i NxM B[i][j] B Z N 1. M CORSO di LAUREA i"

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 – 13/02/2003 - C++

1.

La stagione di prosa di un teatro è composta da

M

spettacoli. Per ogni spettacolo è possibile acquistate biglietti negli

N

ordini di posto di cui il teatro dispone. Ciascun ordine di posto ha la capienza di

Z

posti. La biglietteria di un tale teatro può essere rappresentata mediante un matrice

B

di dimensione

NxM

a valori interi, il cui generico elemento

B[i][j]

rappresenta la quantità di biglietti dell’ordine di posto

i

ancora disponibili per la vendita per lo spettacolo

j.

Si definisca una classe

Botteghino

che rappresenta una biglietteria sulla quale sono possibili le seguenti operazioni:

 Botteghino()

: costruttore che inizializza la matrice in modo tale che nessun biglietto sia stato ancora venduto

 Vendita(i, j)

: effettua la vendita di un biglietto di ordine di posto

i

per lo spettacolo

j

 ok=abbonamento(i)

: vende un abbonamento per tutti gli spettacoli per un ordine di posto

i

(effettua cioè una vendita di un biglietto di ordine di posto

i

per ciascuno spettacolo della stagione). Se è possibile vendere l’abbonamento la funzione restituisce

T

, restituisce

F

altrimenti.

 n=spettacoli_esauriti()

: restituisce il numero degli spettacoli che hanno tutti gli ordini di posto esauriti.

2.

Sia dato un file

numeri.txt

composto da almeno

N

righe ciascuna delle quali contiene

N

valori interi. Si scriva una funzione

costruisci(A)

che riceve in ingresso un array di interi

A

e lo modifica in modo tale che il valore del generico elemento

A[i]

sia uguale all’

(i+1)-

esimo elemento della

(i+1)

-esima riga di

numeri.txt

.

3.

Sia data una lista doppia a valori interi

l

. Sia scriva una funzione

dealloca(l)

che dealloca tutti gli elementi di

l

in ordine decrescente, partendo cioè da quello con campo informativo maggiore fino a quello con campo informativo minore.

4.

Dati i numeri decimali

A=111

,

B=43

e

C=-76

, 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:

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 Es.2 Es.3 Es.4

10 10 10 3

1.//botteghino.h const int N=5;

const int M=12;

class botteghino { int B[N][M];

public:

botteghino();

void vendita(int i, int j);

bool abbonamento(int i);

int spettacoli_esauriti();

}

//botteghino.cc

#include “botteghino.h”

#include <iostream.h>

botteghino::botteghino() { for(int i=0; i<N; i++)

for(int j=0; j<M; j++) B[i][j]=Z;

}

void botteghino::vendita(int i, int j)

{ if(B[i][j]==0) cout<<”biglietto non disponibilie\n”;

else B[i][j]--;

}

bool botteghino::abbonamento(int i) { for(int k=0; k<M; k++)

if(B[i][k]==0) { cout<<”no abbonamento\n”;

return F; }

for(intk=0; k<M; k++) B[i][k]--;

}

int botteghino::spettacoli_esauriti() { int cont=0;

bool esaurito=T;

for(int j=0; j<M; j++)

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

{ if (B[i][j]!=0) esaurito=F;}

if (esaurito) cont++;

else esaurito=T;

} }

2.

#include <fstream.h>

const int N=20;

void costruisci(int A[N])

(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

{

fstream f;

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

int a_vuoto;

for(int i=0; i<N, i++)

for(int j=0; j<N; j++) {

if(i==j) f>>A[j];

else f>>a_vuoto;

} f.close();

}

3.

void dealloca(elem *&l) {if (l==0) return;

int pg;

elem *aux, *aux1;

while(l!=0)

{ aux=l;

pg=l->info;

// ricerca del massimo while(aux!=0)

{ if(aux->info > pg) { pg=aux->info;

aux1=aux;

aux=aux->next;

} }

//deallocazione dell’elemento trovato if(aux1==l) {

l=aux1->next;

l->prec=0;

delete aux1; } else if(aux1->next ==0)

{ aux1->prec->next =0;

delete aux1;

}

else {

aux1->next->prec=aux1->prec;

aux1->prec->next=aux1->next;

delete aux1;

} }}

Riferimenti

Documenti correlati

Useremo induzione rispetto alla dimensione n.. Dimostrazione usando

[r]

L’ azione del primo c secondo atto ha luogo in un podere di Laurina poco lontano da Benevento: quella del terzo e quarto succede in un \ illaggio vicino, presso una congiunta

2 - Ravioli di anguilla affumicata e topinambur con uova di salmone 25 € con porro baby alla plancha, emulsione di crescione, erba cipollina, salicornia e crescione. Tempo

Aqua ADAMAS®: il caviale italiano per antonomasia, caviale fresco ottenuto 18 / 42 € dall’incrocio tra lo storione Italiano (Acipenser Naccarii) e quello siberiano.

blue. Optimal prede essors are represented by red ar s. Optimal solutions are indi ated by bolded numbers.. and thi k ar s. we assume that

NB Si rammenti che se questo eserczio ` e sbagliato non si supera l’esame scritto indipendentemente da come sono stati svolti gli altri esercizi, quindi leggete attentamente quello

I programmi disponibili in commercio solitamente sono in grado di risolvere solo alcuni dei problemi tipici dell’ingegneria e il loro costo pu`o essere elevato; inoltre,