Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Esercizio matrice

    Ciao ragazzi. Ho bisogno di aiuto; stavo provando a scrivere un progrmma che letta una matrice 9x9 da tastiera verifichi che in ogni riga,in ogni colonna e in ogni "quadrato" 3x3 ci sono soltanto i numero da 1 a 9 senza ripetizioni.Infine comunica a video il risultato del controllo.
    Ebbene non riesco a trovare un algoritmo di risoluzione preciso e vorrei da voi qualche idea su come fare. In particolare come faccio a confrontare su ogni riga e colonna un elemento con tutti gli altri?
    Tenete conto che ho da poco iniziato a programmare e non ho ancora fatto i sottoprogrammi, puntatori ecc....

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Linguaggio?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Per fare il controllo su una riga o su una colonna il principio è lo stesso di un bubblesort,solo che nel confronto dell' array se trovi due elementi simili la funzione ritorna falso,lo stesso avviene se trovi un elemento che non è compreso tra 1 e 9.
    codice:
    bool correct(int *ptr)
    {
        int i;
        int j;
        for(j=0;j<9;j++)
            for(i=0;i<9;i++)
            {
                if(ptr[j]<1||ptr[j]>9)
                    return false;
                if(ptr[j]==ptr[i]&&j!=i)
                    return false;
            }
        return true;
    }
    Confronta gli elementi di un array con procedimento a bolle,cioè prendendo prima il primo elemento e confrontandolo con gli altri 8,poi il secondo,poi il terzo,ecc...La condizione j!=i è necessaria,altrimenti è sempre verificato che ptr[0]=ptr[0],perchè il numero è identico.
    Se l' algoritmo riesce ad arrivare fino in fondo significa che la condizione è soddisfatta e la funzione ritorna true,la riga (o colonna) è corretta.
    Per fare lo stesso con un blocco 3x3 basta fare una piccola variante di questa funzione.
    Occhio che non l' ho testata,l' ho scritta così al volo,potrebbe non funzionare.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,318

    Moderazione

    Invito l'autore a prendere visione del Regolamento interno. In particolare, è obbligatorio indicare il linguaggio di programmazione usato (facendo attenzione, anche, ad essere nel forum corretto: Java ha un forum dedicato e lo stesso vale per VB e i linguaggio .NET).

    E' richiesto che il titolo sia quanto meno generico possibile: "Esercizio matrice" può voler indicare qualunque tipo di problema che abbia a che fare con le matrici...

    Inoltre, sarebbe opportuno corredare la richiesta con il codice sviluppato in modo da dare agli utenti qualcosa su cui basare i loro aiuti (vedere il punto 6 del regolamento per conoscere come usare il tag CODE).

    Correggo il titolo e attnedo di conoscere il linguaggio usato per integrarlo ed, eventualmente, spostare la discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Mi scuso per aver posto il problema con molta generalità,sono registrato da ieri sul forum
    Comunque il codice non l'ho proprio scritto visto che non avevo idee.Invece per quanto riguarda il linguaggio di programmazione è il C++.
    Ringrazio Remy 89 per avermi proposto la sua soluzione, proverò a utilizzarla.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.