Potreste correggermi la parte sul campo di variazione?

di il
2 risposte

Potreste correggermi la parte sul campo di variazione?

Salve mi è stato assegnato questo esercizio sono al terzo anno di scuola superiore(studio informatica)
Data una matrice numerica di ordine N x M sviluppare i seguenti metodi:
• inserimento dei dati in modo casuale con valore compreso tra -10 e +10 nella matrice di max 10 righe e max 5 colonne;
• visualizzazione della matrice;
• determinare qual è la colonna con il massimo campo di variazione (diff. fra max e min);
• modificare i dati della matrice rendendo positivi tutti gli elementi negativi.
Ho un problema al punto 3 questo è il resto del codice(l'ho scritto in oop)
file.h
class simulazione
{
private:
int n;
int m;
ma num;
public:
void genera_matrice(int &N, int &M, ma &NUM)
{
do
{
cout<<"Inserire righe:";
cin>>N;
}
while(N<1 || N>10);

do
{
cout<<"Inserire colonne:";
cin>>M;
}
while(M<1 || M>5);
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
NUM[j]=rand()%(10+10)-10;
}
}
}
void visualizza(int N, int M, ma NUM)
{
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
cout<<NUM[j]<<" ";
}
cout<<endl;
}
}
void maxcampovariazione(int N, int M, ma NUM)
{
int max;
int min;
for(int j=0;j<M;j++)
{
max=min=NUM[j][0];
for(int i=0;i<N;i++)
{
if(NUM[j]>max)
{
max=NUM[j];
}
if(NUM[j]<min)
{
min=NUM[j];
}
}
cout<<"MAX="<<max<<endl;
cout<<"MIN="<<min<<endl;
}
}
void modifica_matrice(int N, int M, ma &NUM)
{
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
if(NUM[j]<0)
NUM[j]*=-1;
}
}
}
};
file .cpp
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
typedef int ma[10][5];
#include"simulazione.h"
main()
{
int n;
int m;
ma num;
simulazione s;
s.genera_matrice(n,m,num);
s.visualizza(n,m,num);
s.maxcampovariazione(n,m,num);
s.modifica_matrice(n,m,num);
cout<<endl;//per distanziare le matrici
s.visualizza(n,m,num);
}
Grazie per l'attenzione

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte