Matrici e funzioni impostabili

di il
21 risposte

Matrici e funzioni impostabili

Ciao a tutti ragazzi , sono un aspirante programmatore , più aspirante che programmatore per il momento.

Ho studiato da poco gli array e so ad esempio come impostare un ciclo che chieda all ' utente di inserire 1 valore per ogni coordinata della matrice ; ma per lo sviluppo di alcuni programmi avrei bisogno data una matrice di [xRighe][yColonne] di far scegliere all ' utente la coordinata esatta dove inserire un determinato valore.

Ad esempio : "scegli una colonna" ,cin>>coordinata colonna e dato il comando la cella di quelle coordinate si riempirà di un dato valore . Ho specificato colonna perchè ad esempio vorrei limitare la scelta in alcuni casi (imposto che la riga deve essere perforza 3 e il programma , scelta la colonna dall ' utente , metterà il valore nell ' "y" slot della riga").

Spero di essere stato chiaro , a quest ' ora dopo aver sbattuto un po la testa su C++ la libreria <<italiano>> tentenna un po.



PS : non mi è chiara neanche un ' altra cosa : una volta modificata la matrice , come faccio a MEMORIZZARLA per mandarla in stampa con una funzione stampa preimpostata?

21 Risposte

  • Re: Matrici e funzioni impostabili

    E il problema qual è?

    Cosa non sai fare di quello che hai descritto?

    L'ultima domanda non l'ho capita ... l'array è già in memoria ...
  • Re: Matrici e funzioni impostabili

    oregon ha scritto:


    E il problema qual è?

    Cosa non sai fare di quello che hai descritto?
    Non so far scegliere all ' utente in quale coordinata mettere un determinato valore SENZA l ' implementazione di un ciclo :


    invece dello scorrimento dell ' intero array e l ' inserimento di tutti i valori , vorrei che all ' utente apparisse su schermo un qualcosa del genere "Quale coordinata vuoi modificare" ? Lui seleziona la coordinata della matrice [x][y] e in quella precisa cella viene inserito un valore o il valore da lui scelto .

    Di conseguenza vorrei che stampando la stessa matrice [x][y] che portava ad esempio tutti valori 0 , comparisse in una nuova stampa il valore aggiunto dall ' utente .
  • Re: Matrici e funzioni impostabili

    Laliluleilo ha scritto:


    invece dello scorrimento
    Sai come inserire un valore in una variabile con la funzione scanf ?
  • Re: Matrici e funzioni impostabili

    oregon ha scritto:


    Laliluleilo ha scritto:


    invece dello scorrimento
    Sai come inserire un valore in una variabile con la funzione scanf ?
    no .
  • Re: Matrici e funzioni impostabili

    Beh, allora devi studiarla. In genere si studia prima degli array, insieme alla funzione printf usata per visualizzare dati. Ne trovi la documentazione su qualsiasi libro (spero tu ne usi uno ...) o in rete, ad esempio

    http://www.cplusplus.com/reference/cstdio/scanf

    Senza conoscere queste funzioni di base non potrai neanche scrivere esercizi semplici. Ti consiglio di studiarle prima.
  • Re: Matrici e funzioni impostabili

    oregon ha scritto:


    Beh, allora devi studiarla. In genere si studia prima degli array, insieme alla funzione printf usata per visualizzare dati. Ne trovi la documentazione su qualsiasi libro (spero tu ne usi uno ...) o in rete, ad esempio

    http://www.cplusplus.com/reference/cstdio/scanf

    Senza conoscere queste funzioni di base non potrai neanche scrivere esercizi semplici. Ti consiglio di studiarle prima.

    Grazie della risposta . Guarda sentivo che mi mancasse qualcosa , perchè anche se so quali sono i passi necessari alla costruzione e all ' implementazione delle funzioni corrette del programma a cui mi sto dedicando ,mi mancano dei piccoli mattoncini per poterlo costruire .
  • Re: Matrici e funzioni impostabili

    L'uso della scanf prevede anche la conoscenza del concetto di puntatore (che del resto si studia prima degli array).

    Non so con quale criterio stai studiando ed affrontando i vari argomenti, ma mi sa che è sbagliato.
  • Re: Matrici e funzioni impostabili

    oregon ha scritto:


    L'uso della scanf prevede anche la conoscenza del concetto di puntatore (che del resto si studia prima degli array).

    Non so con quale criterio stai studiando ed affrontando i vari argomenti, ma mi sa che è sbagliato.
    Lo credo anchio . Mi son stati presentati vari argomenti con un certo ordine , ma io sono un tipo più pratico in queste cose , vorrei conoscere gli strumenti che mi permettono di svolgere una determinata funzione o di fare una certa cosa e sperimentare varie combinazioni.
  • Re: Matrici e funzioni impostabili

    Sì, ma come vedi, un certo ordine nello studio è necessario. Ti consiglio di seguire le indicazioni dei docenti.
  • Re: Matrici e funzioni impostabili

    So cosa intendi e sto facendo il possibile per seguire quest ' ordine . Riesaminando il materiale però non c ' erano i riferimenti alle funzioni che mi hai introdotto tu e credo che per ora devo muovermi con gli strumenti in mio possesso.

    Sono riuscito ad allocare un valore preciso in una matrice su richiesta dell ' utente , ma ora sono bloccato a quel punto che avevo previsto : l ' utente seleziona 1 valore da dare a una certa cella della Y colonna ora vorrei in qualche modo precludere quella cella dall ' utilizzo da parte dell ' utente , "hai già selezionato quella cella" e costringerlo a utilizzare quella inferiore . Ci sono riuscito in parte nel senso che riesco a farlo per la cella immediatamente inferiore di una stessa colonna , ma poi
    o mi tocca impostare un inverosimile ciclo if else (enorme e non funzionale) oppure mi blocco.

    Ho una matrice di facciamo x=4 righe e y=6colonne :

    L ' utente seleziona una colonna y ad esempio la prima e il valore da lui inserito va a posizionarsi automaticamente nella cella matrice[x1][y1] , nel caso dovessere selezionare nuovamente la stessa colonna il suo valore deve impostarsi perforza nella cella [x2][y1] e così via ([x3][y1],[x4][y1]) fino a x<=4 in questo caso ovviamente . Sono riuscito , come dicevo , a implementare la soluzione per le prime 2 righe e ho tentato in più modi a cambiare il valore di X , ma se inserisco nel programma 1 sola costante questa poi avrà effetto anche su altre colonne .


    Come dicevo all ' inizio non voglio implementare un ciclo for perchè l ' utente , fino a terminazione celle disponibili , deve avere la facoltà di scegliere in quale colonna inserire un determinato valore .



    In parole povere voglio dire al programma :


    hai scelto [x1][y1] , la prossima volta che scegli Y1 come colonna sarà tirato in causa x2 e poi x3 ecc...
  • Re: Matrici e funzioni impostabili

    Non so cosa tu stia facendo ma se la matrice, all'inizio, contiene in tutti gli elementi un valore noto (ad esempio -1), puoi esaminare tale valore alle coordinare scelte e se diverso, cercare in avanti il primo -1 disponibile.
  • Re: Matrici e funzioni impostabili

    Ottimo ! Credo sia proprio quello che sto cercando , ci avevo pensato ma non so proprio come implementarla .

    Da quello che mi stai dicendo devo stabilire il valore iniziale di ogni coordinata della matrice giusto ? Lo 0 di ogni valore che è presente nella matrice vuota non vale come valore da ricercare vero?


    Il problema è che non conosco una shortcut per implementare un valore iniziale a tutte le coordinate della matrice e nel caso di una matrice molto grande sarebbe davvero complesso sia per me sia per chi dovessere metterci le mani.
  • Re: Matrici e funzioni impostabili

    DI che matrice si tratta praticamente?
  • Re: Matrici e funzioni impostabili

    Void ricerca() //nome funzione per cercare 1 valore che sia 1, dato che la sto testando
    //ogni volta che viene occupata , una cella assume il valore 1

    {
    cout << "inserisci la colonna desiderata "; cin >> y; //si inserisce la colonna y desiderata

    bool esiste = FALSO; //setto variabile booleana esiste(1)
    //a 0
    do
    {
    for (x = 0; x < R ;x++) //x iniziale =0 ,x<R(righe),x aumenta
    {
    if (matrice[x][y-1] == 1) //cerco l ' 1 e quando lo trova (se esiste)


    {
    esiste = VERO;
    }

    }

    } while ((!esiste) && (x < R ));

    if (esiste = VERO)

    {
    matrice[x -1][y - 1] = 1; ...//stampo la matrice
    //con 1 settato nella // casella sovrastante

    stampamatrice(matrice);
    }

    else {

    struttura[4][y - 1] = 1;
    stampamatrice(matrice);
    }
    return ricerca();
    }




    Commenti : scusa il disordine , sostanzialmente ho impostato un ciclo di ricerca, che SOTTOLINEO non funziona per ora per cercare il valore 1 . Il valore 1 viene assunto da una casella della matrice se l ' utente l ' ha selezionata . Se non trova l ' 1 , la casella della matrice di [xMINIMO, nel mio caso 5][Yscelto] assume valore 1 , quindi mi aspetto che riselezionando la stessa colonna lo assuma anche la casella sovrastante [x-1[[y] ma ciò non succede.
Devi accedere o registrarti per scrivere nel forum
21 risposte