Discussioni su argomenti di Informatica
10/09/2018, 17:37
Salve a tutti,
ho il seguente esercizio:
sono riuscito a scriverlo fino a quando mi chiede di allocare dinamicamente il minore, se esiste, in una nuova matrice. Non riesco a capire come fare a portare gli elementi del minore in una nuova matrice, qualcuno può aiutarmi?
grazie in anticipo
questo è quello che sono riuscito a scrivere, non so se è corretto.
- Codice:
#include <iostream>
using namespace std;
int main() {
int rig, col, i, j, l,m;
for (i=0; i<=rig-k+1; i++)
for(j=0; j<=col-k+1; j++)
{
//verificare se i minori di ordine k hanno elementi tutti maggiori di 0.
bool trovato=false;
int cont=0;
do{
for ( l=i; l<k+i; l++)
for ( m=j; m<k+j; k++)
{
if (cont==k*k&&M[l][m]>0)
trovato=true;
else
cont++;
}}while (cont<k*k&&!trovato );
}
int **M;
M=new int* [rig];
for(i=0;i<rig;i++)
{
M[i]=new int [col];
}
return 0;
}
12/09/2018, 00:08
Per farlo hai prima di tutto bisogno di memorizzarti quale minore hai trovato e non solo se l'hai trovato o meno. Dopodiché devi iterare su tutti gli elementi del minore e copiarli nella matrice allocata dinamicamente. Per il primo punto hai bisogno di memorizzarti tutti i valori necessari a identificare un singolo minore all'interno della matrice. Una volta che sei in grado di identificare tale minore non dovrebbe essere difficile copiare i suoi elementi in una matrice allocata dinamicamente (a meno che il problema non sia in qualche modo legato all'allocazione dinamica?).
12/09/2018, 22:21
Il mio ragionamento è questo riguardo la ricerca e la memorizzazione del minore:
scorro la matrice con 2 cicli "for" per righe "i" e colonne "j", poi con altri due cicli "for", con indici diversi, scorro all'interno della matrice con una lunghezza k per righe e k per colonne(cioè faccio la ricerca del minore di ordine k), se trovo il minore memorizzo gli indici "i" e "j" da cui ho iniziato a scorrere con lunghezza k, partendo da quei due indici copio il minore contenuto nella matrice in un nuova matrice allocata dinamicamente. Se questo ragionamento è corretto, ora non so come copiarli, so come allocare una matrice dinamicamente ma non so come copiare dalla vecchia alla nuova.
Grazie per la risposta.
Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000—
Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.