• Non ci sono risultati.

0 CORSO di LAUREA in INGEGNERIA delle TELECOMUNICAZIONI

N/A
N/A
Protected

Academic year: 2021

Condividi "0 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 – 27/9/2001 - C++

1. Dato un file di testo parole.txt si scriva una funzione scrivi_random() che costruisce il file recipiente.txt secondo il seguente criterio:

a. si legge una parola dal file parole.txt b. si calcola la lunghezza n della parola letta;

c. si scrive questa parola in recipiente.txt;

d. si leggono n parole dal file parole.txt senza scriverle in recipiente.txt

e. si riparte dal punto a. fino alla fine del file.

2. Si scriva una funzione ok=verifica_formato(M) che riceve in ingresso una matrice M a valori interi. La funzione verifica che M abbia il formato illustrato in figura e restituisce T in caso affermativo, restituisce F altrimenti.

3.Sia data una lista circolare semplice a valori interi l ordinata in senso decrescente. Si scriva una funzione inserisci (l) che legge da tastiera un valore intero e, se non esiste alcun elemento in l con campo informativo uguale a n, inserisce un nuovo elemento nella lista l con campo informativo uguale a n mantenendo l’ordinamento. Altrimenti non modifica la lista e stampa sul monitor un messaggio congruente.

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

Risultati e Soluzione del compito:http://www.iei.pi.cnr.it/~glami/elenco-compiti.htm

1

2 1

3 2 1

0

4 3 2 1

N N-1 2 1

(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

10 10 10 3

#include <fstream.h>

#include <string.h>

void scrivi_random () {

char *s1; *s2;

fstream f,g;

int salti;

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

g.open(“recipiente.txt”, ios::out);

while(f>>s1) {

salti=strlen(s1);

g<<s1;

while(salti>0) {

salti--;

if(f>>s1);

else return;

} } f.close();

g.close();

}

2.

enum bool{F;T};

const nit N=12;

bool verifica_formato(int M[N][N]) {

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

if ((A[i][j]==0) &&(j>i));

else if (A[i][j]== i-j+1);

else return F;

} return T;

}

(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

3.

#include <iostream.h>

struct elem { int info;

elem* next;

} void inserisci( elem*& l) {

int val;

elem* aux, *aux1, *aux3;

cout<<”inserisci un valore\n”;

cin>>val;

//caso lista vuota

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

aux2->info = val;

l=aux2 ; aux2->next =l ; return; } //inserimento in testa if (l->info<val)

{ for(aux3=l; (aux3->next!=l); aux3=aux3->next) ; aux2=new elem;

aux2->info = val;

aux2->next =l ; l=aux2,

aux3->next=l ; }

//caso generale aux1=l ;

for(aux3=l->next; (aux3!=l)&&(aux3->info>val); aux3=aux3->next) aux1=aux3;

if (aux3->info != val) //se si deve inserire { aux2=new elem;

aux2->info=val;

aux1->next=aux2;

} else

cout<<”elemento già presente!!!\n”;

}

Riferimenti

Documenti correlati

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

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