• 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!
2
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.isti.cnr.it/~glami/

ESAME DI FONDAMENTI DI INFORMATICA 23/07/2009

1. Siano dati due file NUM1.dat e NUM2.dat ciascuno dei quali è composto da una sequenza di numeri interi alternativamente positivi e negativi. La lunghezza di NUM1.dat può essere diversa da quella di NUM2.dat. 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 NUM1.dat e NUM2.dat.

2. Sia data una lista circolare a valori interi l composta da almeno 2 elementi. Si scriva una funzione scambia(l) che modifica la lista l scambiando l’elemento puntato da l con l’elemento che lo precede.

3. Scrivere una funzione booleana verifica(S) che riceve in ingresso una stringa S di lunghezza qualsiasi. La funzione restituisce true se non esistono elementi ripetuti all’interno di S, false altrimenti. .

4. Dati i numeri decimali A=131, B=128 e C=-249, 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 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.

#include <fstream.h>

void unisci() { fstream f1, f2, f3;

f1.open(“NUM1.dat”, ios::in);

f2.open(“NUM2.dat”, ios::in);

f3.open(“NUM3.dat”, ios::out);

int n1, n2, n3;

while (f1>>n1) { f3<<n1<<”\n”;

f1>>n1; } while (f2>>n2) { f3<<n2<<”\n”;

f2>>n2; }

f1.close(); f2.close();

f1.open(“NUM1.dat”, ios::in);

f2.open(“NUM2.dat”, ios::in);

f1>>n1;

while (f1>>n1) { f3<<n1<<”\n”;

f1>>n1; } f2>>n2;

while (f2>>n2) { f3<<n2<<”\n”;

f2>>n2; }

f1.close(); f2.close(); f3.close(); }

2.

void scambia (elem *& l) {

elem * aux, *aux1;

aux1=l;

aux=l->next;

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

aux=aux->next; }

aux1->next=l;

aux->next=l->next;

l->next=aux;

}

3.

boolean verifica(char *S) {

for(int i=0; S[i]!=0; i++) {

for(int j=i+1; S[j]!=0; j++) if(S[i]==S[j]) return false; } return true; }

Riferimenti

Documenti correlati

Si scriva una funzione crea_file() che legge l’ultimo valore del file numeri.dat e costruisce un nuovo file solo_maggiori.dat contenente i soli elementi di numeri.dat maggiori

Si scriva una funzione booleana incluso() che restituisce true se tutti gli elementi di F1.dat sono contenuti in F2.dat, false altrimenti.. Sia data una lista semplice circolare

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

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