Anteprima
Vedrai una selezione di 1 pagina su 5
Prova del 21/01/2014 Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Modulo di Fondamenti di Informatica (9 CFU)

Prova del 21/01/2014 - n. 1

per allievi CdL Ingegneria Informatica

Prof. C. Sansone (durata: 1 ora e mezza)

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Salvare periodicamente il proprio lavoro.

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Testo della prova

Sia data una matrice quadrata M di interi positivi memorizzata in un file di testo (Mat.txt),

che contiene nella prima riga il riempimento (riemp) e nelle successive gli elementi della

matrice (come illustrato negli esempi che seguono). Si ipotizzi che gli elementi della matrice

contengano tutti valori diversi.

Il “punto di sella” di una matrice quadrata è definito come l’elemento minimo della riga e

massimo della colonna a cui appartiene. Nel caso in cui tutti i valori della matrice sono

diversi, il punto di sella, è unico.

se esiste,

Si progettino (almeno) tre funzioni:

- leggi_mat, che legge da file il riempimento ed i valori di una matrice quadrata di interi

positivi;

- calc_ind_min, che riceve in ingresso un vettore e restituisce come parametro di uscita

l'indice del valore minimo in esso contenuto;

- trova_punto_sella, che riceve in ingresso una matrice quadrata M ed il suo riempimento

e, sfruttando (almeno) la funzione calc_ind_min, restituisce come parametro d'uscita una

struttura contenente due campi: un campo booleano (sella) che indica se esiste o meno il

punto di sella ed un campo di tipo intero (val) che rappresenta il valore del punto di sella. Nel

caso in cui il punto di sella non esiste (e quindi sella è uguale a false) il valore val sarà

indefinito. La funzione trova_punto_sella può anche utilizzarne altre, opportunamente

definite;

e si scriva un programma che, utilizzando queste funzioni, legga M da file, verifichi se esista

o meno il punto di sella e ne stampi il valore in caso affermativo, o un opportuno messaggio

nel caso in cui il punto di sella non esiste (vedi esempi - nel primo il valore del punto di sella

è riportato in grassetto).

---------------------------------------------------------------------------------------------------------------------------

Esempi

INPUT:

Mat.txt

4 2 17 19 22

3 20 7 9

25 23 32 40

13 21 27 39

OUTPUT:

Punto di sella: 23

INPUT:

Mat.txt

4 1 6 6 4

7 18 4 2

1 2 13 7

12 4 3 7

OUTPUT:

La matrice non ha un punto di sella

#include <iostream>

#include <fstream>

std;

using namespace

MAX=20;

int const matrice[MAX][MAX];

typedef int vettore[MAX];

typedef int

//Prototipi

leggi(matrice,

void int&);

stampa(matrice,

void int);

minimo(vettore,

int int);

massimo(vettore,

int int);

sella(matrice,int);

void

main(){

int

matrice m;

riemp=0;

int

leggi(m,riemp);

cout<<"LETTURA ESEGUITA! "<<"\n";

stampa(m,riemp);

sella(m,riemp);

system("pause");

} leggi(matrice m, riemp){

void int&

r,c;

int cont=0;

int

ifstream input;

input.open("dati.txt");

if(input.fail())

exit(1); // equivale a input.eof()==false

(!input.eof()){

while

if(cont==0){

input>>riemp;

cont++;

} else

{ for(r=0;r<riemp;r++)

for(c=0;c<riemp;c++)

input>>m[r][c];

}

}

input.close();

} stampa(matrice m, riemp){

void int

r,c;

int

r=c=0;

for(r=0;r<riemp;r++){

for(c=0;c<riemp;c++){

cout<<m[r][c]<<" ";

}

cout<<"\n";

}

}

Dettagli
Publisher
A.A. 2014-2015
5 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cikenthebest di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Sansone Carlo.