• Non ci sono risultati.

1.Sia dato un file

N/A
N/A
Protected

Academic year: 2021

Condividi "1.Sia dato un file"

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 – 31/01/2003 - C++

1. Sia dato un file numeri.dat contenente un insieme di numeri interi maggiori di zero e diversi fra loro. Si scriva una funzione ordina() che crea un nuovo file chiamato num_org.dat che contenga gli stessi numeri del file numeri.dat ma ordinati in senso decrescente.

2. Si scriva una funzione inserisci_dopo_il_max(c, l) che riceve in ingresso un carattere c ed il puntatore ad una lista semplice a valori di tipo carattere l. La funzione inserisce un nuovo elemento con campo informativo uguale a c immediatamente dopo l’elemento di l con campo informativo alfabeticamente massimo. Per semplicità si assuma che non vi siano elementi ripetuti nella lista l.

3. Si scriva una funzione ok=controlla_3_stringhe(s1, s2, s3) che riceve in ingresso tre stringhe s1, s2 e s3 di ugual lunghezza e verifica che queste non abbiano caratteri in comune.

4. Dati i numeri decimali A=111, B=43 e C=-76, 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-C e si discuta se il risultato ottenuto è o no significativo.

Punteggio:

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

10 10 10 3

1.

#include <fstream.h>

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

void ordina() { int n1, n,

fstream leggi, scrivi;

int cont=1;

leggi.open(“num.dat”, ios::in);

scrivi.open(“num_ord.dat”, ios::out);

if (leggi>>n1);

else return;

while(leggi>>n) {

if(n>n1) n1=n;

cont++;

} scrivi<<n1;

leggi.close( );

leggi.open(“num.dat”, ios::in);

int nb=0;

int nu=n1;

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

while(leggi>>n) { if(nb<n<nu)

{ nb=n; n1=n; } } scrivi<<n1; nb=0; nu=n;

leggi.close();

leggi.open(“num.dat”, ios::in);

} }

2.

void inserisci_dopo_il_max(char c, elem *&l) {

elem *aux, *aux1;

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

l->info = c;

l->next =0;

return; } c1 = l->info;

for(aux = l; aux !=0; aux->aux->next) {

if(aux->info > c1) c1=aux->info;

} aux=l;

while(aux->info != c1) aux=aux->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 aux1=new elem;

aux1->info = c;

aux1->next = aux->next;

aux->next=aux1;

} 3.

boolean controlla_3_stringhe (char *s1, char *s2, char *s3) {

int cont=0;

for(int i=0; s[i]!=’\0’; i++) cont++;

for(i=0; i!=cont; i++)

for(int j=0; j!=cont; j++)

if(s1[i]==s2[j] || s1[i]==s3[j]) return F;

for(i=0; i!=cont; i++)

for(int j=0; j!=cont; j++)

if(s2[i]==s3[j]) return F;

return T; }

Riferimenti

Documenti correlati

• Magazzino: è vettore di struct dichiarato nel main e passato prima alla funzione di lettura del magazzino e poi alla funzione di ricerca degli articoli mancanti

La funzione controlla che ogni riga i-esima della matrice m1 contenga tutti e soli gli elementi della colonna i-esima della matrice m2 e in tal caso restituisce

Dato un file testo.txt composto da almeno N righe di testo non vuote, si scriva una funzione stringa_da_file() che crea una stringa di N caratteri composta dall’ultimo

Questa funzione deve anche costruire un nuovo file numeri_bis.txt che contiene gli stessi elementi di numeri.txt con l’eccezione di tutte le occorrenze del massimo e

Sia dato un file città.dat contenente, in ogni riga, una stringa di lunghezza massima 36 caratteri che contiene il nome di una città e un valore intero che ne rappresenta il numero

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

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

Si scriva una funzione estrai() che calcola la media aritmetica m dei terzi elementi di ciascuna riga del file e quindi costruisce un nuovo file chiamato num2.dat