Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    1

    [C] Determinante di una matrice

    Salve gente, non ho capito bene se bisogna presentarsi e se si dove, ma comunque questo sito è fantastico!
    Sono entrato da poco nel mondo della programmazione e vorrei delle dritte per alcune cose. Vorrei creare un programma che mi ricavi il determinante di una matrice. La formula da utilizzare è la seguente



    quindi è uno sviluppo progressivo. Il determinante di una matrice 1x1 è l'elemento stesso e per la matrice 2x2 si ha una formula banale (credo anche per una matrice 3x3). Conoscendo questo, io ho pensato di utilizzare (e mi sembra l'unico metodo in questo momento) i cicli for, perché comunque è una sommatoria.

    Ora sono riuscito a creare insieme ad una mia amica un programma che mi permetta di decidere il numero di righe e colonne e scrivere i vari singoli elementi all'interno. Il programma è questo:

    codice:
    #include <stdio.h>
    #define MAX_ROW 10
    #define MAX_COL 10
    
    int main()
    {
      int r=0,c=0;
      int m[MAX_ROW][MAX_COL];
      int i,j;
    
      do{
        printf("il numero di righe e': ");
        scanf("%d",&r);
        if (r>MAX_ROW){
          printf("il numero di righe deve essere minore di 10\n");
        }
      }
      while(r>MAX_ROW);
      
      do{
        printf("il numero di colonne e': ");
        scanf("%d",&c);
        if(c>MAX_COL){
          printf("il numero di colonne deve essere minore di 10\n");
        }
      }
      while(c>MAX_COL);
    
      for(i=0;i<r;i++){
        for(j=0;j<c;j++){
          printf("L'elemento [%d,%d] e' ",i+1,j+1);
          scanf("%d", &m[i][j]);
          printf("\n");
        }
      }
      printf("La matrice %dx%d e':\n",r,c);
      for(i=0;i<r;i++){
        for(j=0;j<c;j++){
          printf("%5d",m[i][j]);
        }
        printf("\n");
      }
      if(r==c){  
        printf("La trasposta e':\n");
        for(i=0;i<r;i++){
          for(j=0;j<c;j++){
            printf("%4d",m[j][i]);
          }
          printf("\n");
        }
      }  
      else{
      printf("La matrice non e' quadrata, non posso fare la trasposta!\n");
      }
    return 0;
    }
    Ora il primo passo che vorrei fare è quello di fargli salvare la matrice da me data. Non riesco a capire come fare, perché sono solo dei singoli elementi, non riesco proprio a capire come possa fargliela passare per matrice, a fargli capire che non sono semplici numeri, ma elementi di qualcosa.

    Grazie

  2. #2
    Sono e rimarranno dei semplici numeri, sei tu poi a decidere come usarli .
    In questo programma inserisci dei numeri, il computer li memorizza soltanto in posizioni vicine, ognuna identificata da un indirizzo ( [a],[b] ). Quando stampi la matrice verso la fine prendi quei numeri già inseriti, ma con ordine differente.
    Non capisco che intendi per salvare, il programma salva già i numeri che inserisci nella ram.

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.