Traccia
Scrivere un programma che legge due interi N ed M seguiti da una matrice di interi N x M e che determina se tutte le righe della matrice contengono almeno un elemento negativo. Si assuma che la matrice da leggere possa avere al massimo 50 righe e 50 colonne. Procedere nel modo seguente:
• usare un primo sottoprogramma di tipo funzione che svolge il seguente compito:
riceve come parametri una matrice di interi con le sue dimensioni e restituisce un valore logico che indica se tutte le righe della matrice contengono almeno un elemento negativo
• usare un secondo sottoprogramma di tipo procedura che svolge il seguente compito:
riceve come parametri una lista di interi (array + riempimento) e restituisce, sempre attraverso un parametro di scambio, un valore logico che indica se la lista contiene almeno un elemento negativo
--------------------------------------------------------------------------------------------
Questa la mia soluzione per il primo sottoprogramma
codice:
#include <iostream.h>
#include <stdlib.h>
#define MAX 50
bool TutteRigheConNegativo (int matrice[][MAX], int N, int M);
int main()
{
int matrice[MAX][MAX],N,M,i,j;
cout << "Inserisci il numero di righe -> ";
cin >> N;
cout << endl << "Inserisci il numero di colonne -> ";
cin >> M;
for(i=0;i<N;i++)
for(j=0;j<M;j++){
cout << endl << "Inserisci l'elemento (" << i+1 << "," << j+1 << ") -> ";
cin >> matrice[i][j];
}
if( TutteRigheConNegativo(matrice,N,M) )
cout << endl << "Tutte le righe contengono almeno un elemento negativo.";
else
cout << endl << "Almeno una riga non contiene elementi negativi.";
cout << endl;
system("PAUSE");
return 0;
}
bool TutteRigheConNegativo (int matrice[][MAX], int N, int M){
int i,j; bool TrovatoElementoNegativo;
bool TrovataRigaSenzaNegativo=false;
for(i=0; i<N && !TrovataRigaSenzaNegativo; i++){
TrovatoElementoNegativo=false;
for(j=0; j<M && !TrovatoElementoNegativo ;j++)
if(matrice[i][j]<0)
TrovatoElementoNegativo=true;
if(!TrovatoElementoNegativo)
TrovataRigaSenzaNegativo=true;
}
return !TrovataRigaSenzaNegativo;
}
------------------------------------------------------------------------------------------
Adesso non saprei come fare per il secondo programma. Io ricordo di averlo applicato nel primo sottoprogramma, anche se mi sembrava una cosa contorta. Grazie ancora.
Ciao.