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

    [C] Matrice

    Buongiorno a tutti gli utenti del forum. Mi stavo esercitando con qualche esercizio per il mio corso universitario di fondamenti di informatica quando ho trovato questo:

    1) Definire mediante flow-chart l'algoritmo che valuti il valore mediano dell'insieme degli elementi interi appartenenti alle due diagonali (principale e secondaria) di una matrice quadrata d'ordine N (per l'algoritmo ipotizzare già assegnati sia il valore di N sia gli elementi interi della matrice).
    2) Scrivere in linguaggio C il programma che implementa l'algoritmo definito al punto precedente, in modo strutturato e modulare.

    Suggerimenti per la risoluzione? Come potrei procedere? Magari possiamo confrontare le idee e trovare quella più adatta.. Vi ringrazio in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Proponi la tua idea e il tuo codice e vediamo i problemi.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    diciamo che ho solo l'idea che è quella di considerare una matrice 3x3 ad esempio, e di creare un vettore V che contenga solo gli elementi della diagonale principale e della diagonale secondaria.. i primi basta considerarli con il ciclo for(i=0;i<3;i++) di "matrice[i][i]", i secondi invece non so con quale criterio prenderli.. per il mediano di un vettore basta fare mediano=vettore[dimensione/2]

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Ho provato a risolvere il tuo problema e ho , praticamente addottato il tuo stesso
    approccio .
    io ho dichiarato una matrice 10 x 10

    e suddiviso il programma in due funzioni "moduli"

    #define N 10
    void Trova_diagonali(int X[][N],int out[]);
    float Media(int dati[]);


    ti posto il codice della funzione trova diagonali cosi puoi avere un idea


    codice:
    
    void Trova_diagonali(int x[][N],int out[])
    {
        int i,j,k;
        
        
        for(i=0;i<N;i++)
        {
              // prima diagonale
             out[i]=x[i][i];
         
         }
       for(j=N-1,k=0;j>=0;j--,i++,k++)
          {
              
                //seconda diagolane
                      
                out[i]=x[j][k];
              
           }     
          
          
        }
    Tecnologia

  5. #5
    non potevi utilizzare lo stesso indice i e creare il vettore della seconda diagonale con matrice[i][N-1-i]?

  6. #6
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Si forse è un metodo più elegante , ma io uso un solo vettore per i dati delle due diagonali,
    quindi il mio approccio è il primo che mi sia venuto in mente.
    di contro , e qui ti do ragione ,che uso due cicli , quando , usando due vettori ne basta uno.

    P.S.
    io avevo capito che non riuscivi a trovare la seconda diagonale ,
    quindi ti ho mostrato una possibile soluzione , evidentemente non gradita
    Tecnologia

  7. #7
    nono, anzi è molto gradita la tua soluzione, è proprio questo che cercavo infatti: un confronto di idee, e non può che farmi piacere il tuo aver partecipato

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.