• Non ci sono risultati.

1. Un file

N/A
N/A
Protected

Academic year: 2021

Condividi "1. 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 ELETTRONICA

ESAME DI FONDAMENTI DI INFORMATICA - SIMONCINI – 23/9/99 - C++

1. Un file coordinate.txt contiene per ciascuna riga una coppia di numeri reali che rappresentano rispettivamente l’ascissa e l’ordinata di un punto nello spazio cartesiano. Si scriva una funzione dist_minima() che legge tale file e stampa sul monitor le coordinate del punto più vicino all’origine degli assi.

Si supponga che il file non sia vuoto.

2. Si scriva una funzione ok=controlla(m1, m2) che riceve come parametri di ingresso due matrici di interi di dimensione NxN. 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 il valore true. Altrimenti restituisce il valore false. Si assuma per semplicità che gli elementi di ciascuna matrice siano diversi fra loro.

3. Si scriva una funzione l=cerca(lc, n) che riceve in ingresso il puntatore ad una lista circolare di elementi interi lc ed un intero n. La funzione ricerca nella lista il primo elemento con valore uguale a n. Se l’elemento viene trovato la funzione restituisce il puntatore all’elemento corrispondente, altrimenti restituisce il puntatore nullo.

4. Dati i numeri decimali A=79, B=-49 e C=119, 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.

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>

# include <math.h>

void dist_ min () { struct punto {

double ascissa;

double ordinata; }

double min, m1;

punto p,m;

fstream.f;

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

f>>m. ascissa >>m.ordinata;

min= sqrt ((m.ascissa* m.ascissa)+(m.ordinata* m.ordinata));

while (f>>p. ascissa >> p. ordinata)

{m1=sqrt ((p.ascissa* p.ascissa)+(p.ordinata* p.ordinata));

if (m1<<min) {m.ascissa= p.ascissa;

m.ordinata= p.ordinata;

min=m1; } }

cout<<m.ascissa<<m.ordinata;

f.close;

}

(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

2)

enum booleano {F, T}

const int N=6;

booleano controlla (int m1[N][N], int m2[N][N]) { booleano trovato;

booleano continua=T;

int i=0;

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

while ((i<N) && (continua)) { trovato = F;

int k=0;

while ((k<N) && (!trovato)) {

if (m1[j][i] == m2[k][j]) trovato=T;

else {

if (k==(N-1)) continua = F;

k++;

} } i++;

}

return continua;

}

(4)

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)

elem *cerca(elem *p0, int i) {

elem *p;

if (p0 == 0) return 0; // lista vuota

if (p0 ->inf == n) return p0; // cerca nel primo elemento p= p0 ->pun;

while (p != p0) {

if (p->inf == n) return p;

p = p ->pun;

} return 0;

}

Riferimenti

Documenti correlati

Dunque tutti i concetti definiti per uno spazio vettoriale qualsiasi si possono dare anche per questo spazio vettoriale, cos`ı si potr` a parlare di combinazioni lineari di funzioni,

[r]

Una matrice quadrata in cui tutti gli elementi con indici diversi sono nulli si dice

Come ogni altra matrice di proie- zione su un sottospazio di dimensione 1, la matrice v i v i ∗T ha rango unitario, ha un autovalore unitario e tutti gli altri

Si scriva una funzione booleana controlla(G) che riceve in ingresso la matrice e restituisce True se per ogni i (i&lt;=0&lt;N-1) la somma degli elementi della

Prevede di scrivere una matrice dove è una matrice triangolare superiore e le sono le matrici elementari di Gauss che ogni volta “azzerano l’i-esima colonna al di sotto della

Notiamo che vi è un solo bit di ridondanza x n =x 1 +x 2 +…..+x n-1 : ricordando che la somma di (n-1) bits 0,1 in Z 2 è 0 se il numero di bits=1 è pari, ed è 1 se il numero di

/*Verifica se la riga i-esima della matrice contiene tutti e soli i numeri da 0 a k-1 (dove k è la dimensione della matrice) e restituisce true in caso positivo e false in