Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8

    [C++]Struttura che simula matrici e funzione

    Ciao a tutti,
    ho questa struttura
    Codice PHP:
    struct AL {int *a,righe,colonne;}; 
    che simula una matrice; il campo a punta al primo elemento della matrice, righe e colonne ovviamente sono il n° di righe e colonne della matrice.
    Quindi se per esempio la matrice è A[2][2], la struttura è definita così:
    Codice PHP:
    x.a=&A[0][0];
    x.righe=2;
    x.colonne=2
    Devo realizzare una funzione
    Codice PHP:
    int dai_elemento (AL xint iint j
    che restituisce per riferimento A[i][j], cioè l'elemento della matrice di indice i e j..
    come posso fare?

  2. #2

    Re: [C++]Struttura che simula matrici e funzione

    Originariamente inviato da jaci87
    Codice PHP:
    x.a=&A[0][0]; //basta anche semplicemente scrivere x.a=A
    x.righe=2;
    x.colonne=2
    Devo realizzare una funzione
    Codice PHP:
    int dai_elemento (AL xint iint j
    che restituisce per riferimento A[i][j], cioè l'elemento della matrice di indice i e j..
    come posso fare?
    codice:
    #define ERROR_INVALID_INDEXES=1;
    //...
    int & dai_elemento (AL x, int i, int j)
    {
    if(i>=x.righe||j>=x.colonne)
        throw ERROR_INVALID_INDEXES;
    return x.a[i*x.colonne+j];
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    Ciao MItaly, grazie per la risposta

    codice:
    #define ERROR_INVALID_INDEXES=1;
    //...
    if(i>=x.righe||j>=x.colonne)
        throw ERROR_INVALID_INDEXES;
    //...
    Immagino questo sia un controllo che i e j non superino il n° di righe e colonne della matrice, giusto? Non avevo mai visto questo throw .

  4. #4
    Originariamente inviato da jaci87
    Immagino questo sia un controllo che i e j non superino il n° di righe e colonne della matrice, giusto? Non avevo mai visto questo throw .
    Si tratta della gestione strutturata degli errori; in questo caso sollevo un'eccezione di tipo int che ho definito come ERROR_INVALID_INDEXES. Sono dovuto ricorrere alla gestione strutturata degli errori (e non ad un valore di ritorno particolare, come si è soliti fare in C) perché la funzione in realtà può restituire qualunque valore (in un array in effetti ci può essere qualunque valore).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    chiarissimo, grazie ancora

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.