• Non ci sono risultati.

Se in l esiste già un elemento con campo informativo uguale a c, non modica l e restituisce false

N/A
N/A
Protected

Academic year: 2021

Condividi "Se in l esiste già un elemento con campo informativo uguale a c, non modica l e restituisce false"

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 - SIMONCINI – 08/06/2007 - C++

1. Data una lista l a valori di tipo carattere, si definisca una classe L che permetta di eseguire su l le seguenti azioni:

ƒ L(): costruttore che crea una lista inizialmente vuota.

ƒ bool Inserisci(c): se non esiste alcun elemento in l con campo informativo uguale a c, inserisce un nuovo elemento nella lista con campo informativo uguale a c e restituisce il valore true. L’inserimento deve essere fatto in modo tale che gli elementi della lista risultino ordinati alfabeticamente in senso crescente. Se in l esiste già un elemento con campo informativo uguale a c, non modica l e restituisce false.

ƒ bool elimina(): se esiste un elemento con campo informativo uguale a c, viene eliminato e viene restituito true, altrimenti la lista non viene modificate e si restituisce false.

ƒ int conta(): restituisce il numero di elementi di l.

ƒ ~L(): distruttore.

2. Dati due file di testo F1.txt e F2.txt, si scriva una funzione bool righe() che restituisce il valore true se i due file hanno lo stesso numero di righe, false altrimenti.

3. Dati due vettori A1 e A2 entrambi a valori interi di dimensione N, si scriva una funzione stampa(A1, A2) che riceve in ingresso A1 e A2 e stampa sul monitor due valori: l’elemento più grande e quello più piccolo fra i valori dei due vettori.

4. Dati i numeri decimali A=87, B=-34 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 12 9 9 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

//L.h

struct elem {

char c;

elem * next; };

class L { elem* l;

public:

L ();

bool inserisci (char c);

bool elimina(char c);

int conta();

~L()

} ;

//L.cc

#include ‘L.h’

L::L() { l=0; }

bool L::inserisci (char c) { elem *aux, *aux1, *aux2;

aux2=new elem ; aux2->info=c ;

if(l==0) {

aux2->next=0 ;

l=aux2 ;

return true ; }

if(l->info>c) //inserimento in testa { aux2->next=l ;

l=aux2 ;

return true ; }

for(aux=l; aux!=0 && aux->info<c; aux=aux->next) aux1=aux;

if(aux==0 || aux->info>c) { aux2->next=aux ; aux1->next=aux2 ;

return true ; }

if (aux->info==c) { return false;}

}

bool L::elimina (char c) { elem *aux, *aux1;

if(l==0) return false ;

if(l->info==c) {aux=l ; l=l->next ; delete aux ; return true ; } for(aux=l; aux!=0 && aux->info<c; aux=aux->next)

aux1=aux ;

(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

if(aux==0) return false;

if(aux->info==c) {aux1->next=aux->next;

delete aux ;

return true ; }

else return false;

}

2.

#include <fstream.h>

bool righe() {

fstream f, g;

int num_f=0;

int num_g=0;

char c_f, c_g;

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

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

f.get(c_f);

while(!f.eof()) {

if (c_f == ’\n’) num_f++;

f.get(c_f);

}

f.close();

g.get(c_g);

while(!g.eof()) {

if (c_g == ’\n’) num_g++;

g.get(c_g);

}

g.close();

if(num_f==num_g) return true;

else return false;

}

3.

const int N=10 ;

void stampa_in_ordine (int A1[N], A2[N]) {

int min, max;

max=A1[0];

min=A1[0];

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

if(A1[i]>max) max=A1[i];

if(A1[i]<min) min=A1[i]; } for(i=0; i<N; i++) {

if(A2[i]>max) max=A2[i];

if(A2[i]<min) min=A2[i]; } cout<<max<<min;

}

Riferimenti

Documenti correlati

[r]

larea natural log of the painting area in square centimeters year year in which the auction took place. oil dummy variable (1 if

Si scirva una funzione booleana verifica() che, leggendo i due file, restituisce true se tutti i valori contenuti in dati1.dat sono minori di ciascun valore del

[5.A] La dimensione massima di un file ottenibile con file system ext2fs dipende dalla contiguità con cui sono scritti i blocchi del file su disco. Sì

Leggi x e S=s1 s2...sn. Assegna true ad

Inoltre, definire un metodo per modificare il nome del docente titolare di un corso, un metodo equals che restituisce true se due corsi sono uguali (altrimenti restituisce false) ed

Inoltre, definire un metodo per modificare il nome del docente titolare di un corso, un metodo equals che restituisce true se due corsi sono uguali (altrimenti restituisce false) ed

Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due. segmenti su una