Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C++] matrici

  1. #1
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572

    [C++] matrici

    codice:
    class labirinto
    {
    private:
    	int matrice[11][11];
    	int posizione[2];
    
    public:
    	labirinto(void);
    	~labirinto(void);
    	void disegna(void);
    };
    
    inline labirinto::labirinto(void)
    {
    	      matrice = {{1,1,1,1,1,1,1,1,1,1,1},
    			 {1,0,0,0,0,0,0,0,0,0,1},
    		  	 {1,1,1,0,1,1,1,1,1,1,1},
    			 {1,0,1.0,1,0,0,0,1,0.1},
    			 {1,0,1,0,1,0,1,0,1,0,1},
    			 {1,0,1,0,1,0,1,0,1,0,1},
    			 {1,0,1,0,1,0,1,0,1,0,1},
    			 {1,0,1,0,0,0,1,0,0,0,1},
    			 {1,0,1,1,1,1,1,1,1,0,1},
    			 {1,0,0,0,0,0,0,0,0,0,1},
    			 {1,1,1,1,1,1,1,1,1,1,1}};
    };
    labirinto.cpp:14: error: parse error before `{' token

    non riesco a trovare esempi che inseriscano un array intero a 2 dimensioni
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  2. #2
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    cosi invece funziona benone..
    codice:
    inline labirinto::labirinto(void)
    {
    	    int matrice_2[11][11] = 
                          { {1,1,1,1,1,1,1,1,1,1,1},
    			{1,0,0,0,0,0,0,0,0,0,1},
    			{1,1,1,0,1,1,1,1,1,1,1},
    			{1,0,1.0,1,0,0,0,1,0.1},
    			{1,0,1,0,1,0,1,0,1,0,1},
    			{1,0,1,0,1,0,1,0,1,0,1},
    			{1,0,1,0,1,0,1,0,1,0,1},
    			{1,0,1,0,0,0,1,0,0,0,1},
    			{1,0,1,1,1,1,1,1,1,0,1},
    			{1,0,0,0,0,0,0,0,0,0,1},
    			{1,1,1,1,1,1,1,1,1,1,1} };
    
    };
    il fatto è che non posso fare questo:
    codice:
    class labirinto
    {
    private:
    	int matrice[11][11] = = { {1,1,1,1,1,1,1,1,1,1,1},
    				  {1,0,0,0,0,0,0,0,0,0,1},
    				  {1,1,1,0,1,1,1,1,1,1,1},
    				  {1,0,1.0,1,0,0,0,1,0.1},
    				  {1,0,1,0,1,0,1,0,1,0,1},
    				  {1,0,1,0,1,0,1,0,1,0,1},
    				  {1,0,1,0,1,0,1,0,1,0,1},
    				  {1,0,1,0,0,0,1,0,0,0,1},
    				  {1,0,1,1,1,1,1,1,1,0,1},
    				  {1,0,0,0,0,0,0,0,0,0,1},
    				  {1,1,1,1,1,1,1,1,1,1,1} };
    	int posizione[2];
    
    public:
    	labirinto(void);
    	~labirinto(void){};
    	void disegna(void);
    };
    perchè in fase di inizializzazione me lo vieta (g++)
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Il motivo per cui non puoi fare:

    matrice = {{1,1,1,1,1,1,1,1,1,1,1},
    ecc
    ecc
    ecc

    è perche un array è un puntatore COSTANTE che non puo essere riassegnato, non dipende dal fatto che lo inizializzi con {{...}, ecc ecc.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    mmh, non c'è un modo per poterlo fare?
    pensavo a un array bidimensionale di puntatori
    codice:
    int main()
    {
    	int* matrice[11][11];
    	for(int i = 0; i<11; i++)
    	{
    		for(int k = 0; k<11; k++)
    		{
    			matrice[i][k] = new int;
    		}
    	}
    	
    	*matrice = { {1,1,1,1,1,1,1,1,1,1,1},
    		     {1,0,0,0,0,0,0,0,0,0,1},
    		     {1,1,1,0,1,1,1,1,1,1,1},
    		     {1,0,1.0,1,0,0,0,1,0.1},
    		     {1,0,1,0,1,0,1,0,1,0,1},
    		     {1,0,1,0,1,0,1,0,1,0,1},
    		     {1,0,1,0,1,0,1,0,1,0,1},
    		     {1,0,1,0,0,0,1,0,0,0,1},
    		     {1,0,1,1,1,1,1,1,1,0,1},
    		     {1,0,0,0,0,0,0,0,0,0,1},
    		     {1,1,1,1,1,1,1,1,1,1,1} };
    };
    però mi sa che sto andando un po' troppo a casaccio..
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  5. #5
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Secondo me ti conviene usare un array monodimensionale
    E' molto piu' semplice da gestiree per trovare l'elemnto a coordinate X, Y lo trovi con Y*DIMENSIONE_Y+X...

    Questo metodo presenta alcune difficolta', ad esempio se vuoi tagliare due righe o due colonne devi farti una funzione che sposti tutti gli elementi successevi di uno etc etc...


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.