• Non ci sono risultati.

1.Sia dato il file

N/A
N/A
Protected

Academic year: 2021

Condividi "1.Sia dato il file"

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

ESAME DI FONDAMENTI DI INFORMATICA - SIMONCINI – 1/6/2006 - C++

1. Sia dato il file naturali.txt composto da N (N>0) righe.

Ciascuna riga contiene almeno un valore intero positivo. Si scriva una funzione int riga_max() che restituisce il numero x (1<=x<=N) della riga avente la somma dei valori che la compongono massima.

2. Sia data una lista semplice a valori interi non vuota l. Scrivere una funzione elimina(l) che riceve in ingresso la lista l e la modifica eliminando tutti gli elementi che hanno il campo informativo uguale a quello dell’ultimo elemento.

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=-101, B=-64 e C=91, 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+C-Be si discuta se il risultato ottenuto è o no significativo.

Punteggio:

Es.1 Es.2 Es.3 Es.4

10 10 10 3

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

#include <fstream.h>

const int N=100;

int riga_max () {

int n, max, indice, indice_max;

int somma=0;

int somma_max=0;

fstream f;

char c;

f.open(naturali.txt, ios::in);

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

do {

f.get(n);

f.get(c);

somma+=n;

} while (c!=’\n’ && !f.eof()) if(somma>somma_max)

{

somma_max=somma;

indice_max =indice;

somma=0;}

}

return indice_max }

Es. 2

Void elimina(elem *& l) { elem *aux, *aux1;

int val_coda;

int n;

aux=l;

while(aux!=0) {

val_coda=aux->info;

aux=aux->next;

} aux=l;

while(aux->info==val_coda) {

l=l->next;

delete aux;

aux=l;

}

aux1=aux->next;

while(aux1!=0) {

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

delete aux1;

aux1=aux->next;

} aux=aux1;

aux1=aux1->next;

(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

}

Es.3

Boolean verifica(char *S) {

char c;

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

c=S[i];

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

}

return true;

}

Riferimenti

Documenti correlati

Scrivere una funzione elimina(l) che riceve in ingresso la lista l e la modifica eliminando tutti gli elementi che hanno il campo informativo uguale a quello

 se n è minore o uguale al numero di elementi di l, elimina tutti gli elementi di l che hanno il campo informativo uguale a quello dell’n- esimo elemento

Scrivere una funzione booleana verifica_ord(l) che riceve in ingresso la lista l e restituisce il valore true se gli elementi di l sono ordinati in senso

Si scriva una funzione elimina (l) che modifica la lista l eliminando tutti gli elementi con campo informativo maggiore del campo informativo dell’elemento

Si scriva una funzione elimina(l) che riceve in ingresso la lista l ed elimina dalla lista l’elemento con campo informativo massimo.. Utilizzando poi lo stesso

Non abbiamo quindi modo di modificare le chiavi degli elementi della lista in modo da essere sicuri di riconoscere gli elementi su cui si ` e gi` a passati.. Proviamo dunque

A partire dal contenuto del file esami-ematici crei un array associativo $elencoesami usando come chiave il nome dell’esame e come valore un vettore contenete il valore

Il ciclo termina quando da tastiera si inserisce la stringa “*” che verrà comunque scritta nella pipe vocaboli. Il padre