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

1. Sia dato un file chiamato dati.dat ciascuna riga del quale contiene un nome (stringa di lunghezza massima 24 caratteri) e due valori interi v1 e v2.

Si scriva una funzione trova() che legge il file dati.dat e stampa sul monitor il nome corrispondente al valore massimo di v1 fra quelli contenuti nel file. Se esiste più di un nome corrispondente al valore massimo di v1 si sceglie quello che ha il valore di v2 più piccolo.

3. Si scriva una funzione in_coda(l) che riceve in ingresso il puntatore l a una lista semplice a valori interi. La funzione legge il valore n del campo informativo della testa della lista e inserisce in coda a l un numero di elementi pari a n leggendo i dati da tastiera.

4. Dati i numeri decimali A=64, B=-64 e C=52, si determini il minimo numero di bit necessario per rappresentare contemporaneamente i suddetti numeri in complemento a due e se ne dia la rappresentazione. Utilizzando poi lo stesso numero di bit, si esegua l’operazione D=B-A-1 e si dica se il risultato è o no significativo

10 10 10 3

2. Si scriva una funzione bool verify_matrix(int M[N][N]) che riceve in ingresso una matrice M di dimensione NxN e verifica che M abbia una struttura come quella indicata nella figura a fianco nel qual caso restituisce true, restituisce false altrimenti

1 2 1

3 2 1 0 4 3 2 1 5 4 3 2 1

N N-1 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

#include <fstream.h>

void trova() {

fstream f;

char nome[25], nome_m[25];

int v1, v2, v1m, v2m;

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

if(f >> nome_m<<v1m<<v2m);

else return;

while (f>> nome >>v1>>v2) { if (v1 > v1m)

{ strcpy(nome_m, nome);

v1m=v1 ; v2m=v2 ; }

else if(v1==v1m) if(v2<v2m)

{ v2m=v2;

strcpy(nome_m, nome);

} }

cout<<nome_m;}

const int N=10;

boolean verify_matrix (int M[N][N]) {

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

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

if(i>=j && M[i][j]==i-j+1 || i<j && M[i][j]==0);

else

return false;

} return true;}

void in_coda (elem *l)

{ int n ;

elem *aux, *aux1;

if(l==0) return ; n=l->info;

aux=l;

while(aux->next != 0) aux=aux->next ; for(int i=0; i<n; i++) {

aux1=new elem;

aux1->next=0;

cout<<”inserisci dato:”;

cin>>aux1->info ; aux->next=aux1 ; aux=aux1 ; }}

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

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,

Sia dato un file chiamato elenco.txt contenente in ciascuna riga una stringa di caratteri e un valore numerico che rappresentano rispettivamente il nome (stringa

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