Buon giorno ragazzi,sono uno studente di un instituto tecnico,e sto svolgendo un esercizio in C++,l'esercizio consiste:
-ingrandire una matrice faccendo si che un quadrato della matrice di partenza corrisponda a un quadrato 2x2 della nuova matrice
-rimpicciolire la matrice faccendo si che un quadrato 2x2 della matrice di partenza corrisponda a un quadrato della nuova matrice
ecco il mio codice (ho sviluppato solo l'ingrandimento per ora):
codice:#include <iostream> #define Mp 3 #include <conio.h> #include <stdlib.h> #include <windows.h> using namespace std; void menu (int c); void movimento_cursore(int &c); void dimensionamento (int &righe,int &colonne); void ingrandisci (int righe,int colonne,bool matrice[][colonne],bool m[][c]); void caricamento(bool matrice[][colonne],int righe, int colonne); int main() { int righe,colonne; dimensionamento(righe,colonne); int r=righe*2,c=colonne*2; bool matrice[righe][colonne],m[r][c]; caricamento(matrice,righe,colonne); int opzione=0; bool b=0; do{ movimento_cursore(opzione); switch (opzione) { case 0: { ingrandisci(matrice,righe,colonne,m); break; } case 1:{ break; } case 2: { b=1; break; } } } while (b==1); system("cls"); cout<<"Hai terminato il programma: ARRIVEDERCI! :D"; return 0; } void movimento_cursore(int &c){ int key=0,opzione=0; while (key != 13){ //tasto enter menu (c); key = getch(); switch (key) { case 72: //sopra { if (c>0) c--; else c=Mp-1; } break; case 80: //sotto { if (c<Mp-1) c++; else c=0; } break; } } } void menu (int c){ system ("cls"); if(c==0)cout<<"--->";cout<<"Ingrandisci la matrice"<<endl; if(c==1)cout<<"--->";cout<<"Rimpicciolisci la matrice"<<endl; if(c==2)cout<<"--->";cout<<"Esci dal programma"<<endl; } void dimensionamento (int &righe,int &colonne){ cout<<"Inserisci le dimensioni della matrice (ATTENZIONE: se si vuole rimpicciolire la matrice le dimensioni devono essere multipli di 2)"<<endl<<endl; cout<<"riga: "; cin>>righe; cout<<endl<<"colonne: "; cin>>colonne; cout<<endl<<"Inserimento avvenuto con successo"; system ("pause"); system ("cls"); } void caricamento(bool matrice[][colonne],int righe,int colonne){ for (int i=0;i<righe;i++){ for (int j=0;j<colonne;j++){ cin>>matrice[i][j]; } } } void ingrandisci (bool matrice[][colonne],int righe,int colonne,bool m[][c]){ bool comodo; int r_comodo,c_comodo; for (int i=0;i<righe;i++){ for (int j=0;j<colonne;j++){ comodo=matrice[i][j]; r_comodo=i*2; c_comodo=j*2; m[r_comodo][c_comodo]=comodo; m[r_comodo][c_comodo+1]=comodo; m[r_comodo+1][c_comodo]=comodo; m[r_comodo+1][c_comodo+1]=comodo; } } }
ma il compilatore (CodeBlocks) mi da un errore che non riesco a capire:
riga 12 error: use of parameter 'colonne' outside function body
perchè? nella riga 12 dichiaro un prototipo di una funzione che uso dopo,i parametri (in questo caso righe e colonne) vengono passati dal main alla funzione,qual'è il suo problema? XD

Rispondi quotando