Programma ANSI C

di Anonimizzato8080 il
52 risposte
Ciao a tutti...
dovrei scrivere un programma ansi c che acquisisca da file due matrici A e B n*n...
sull'acquisizione del file ci sono ma dopo non so come fare per individuare gli elementi delle matrici dentro al file...cioè come caricarle dentro un array dinamico...
mi potete aiutare????
grazie in anticipo

52 Risposte

  • Qual'è il tuo file di input?
  • Un file ti testo che devo creare io e il quale contenga le matrici...
  • Se sei d'accordo ti mando il testo preciso in un messaggio privato
  • Allora lo posto io per te.

    Scrivere un programma ANSI C che acquisisca da ?le 2 matrici quadrate A e B di valori interi e di
    dimensione N (A(i, j),B(i, j) ? N, ?i = 1 ? N, ?j = 1 ? N) ed esegua le seguenti elaborazioni:
    1. Calcoli la traccia (ovvero la somma degli elementi lungo la diagonale) di A e B
    2. Calcoli le matrici trasposte di A e B
    3. Calcoli la matrice prodotto P = A · B
    4. Calcoli i valori massimo, minimo, medio (x) e la deviazione standard (s) degli elementi di A,
    di quelli di B e di quelli di P
    La complessit´a dell’algoritmo deve essere calcolata analiticamente e confrontata con una sua
    valutazione sperimentale.

    Punto 0. Acquisire due matrici da file. Cosa hai fatto fino ad adesso?
    Una matrice lo puoi creare in un file di testo con numeri divisi da spazio. Da quel che ho capito le matrici devono essere uguali di dimensione tra di loro.

    un esempio:

    1 4 6 9 0
    4 6 7 8 9
    1 3 5 8 10
    4 6 3 2 4
  • Si devono avere entrambe le stesse dimensioni e devono essere matrici quadrate... cmq x ora ho provato a fare una main di prova x l'acquisizione di una della matrici da file e una volta acquisita che me la stampi, solo che una volta compilato ed eseguito ma cosa ke mi stampa non è neanche lontanamente simile a cio che doverbbe leggere dal file...

    CODICE:
    #include <stdio.h>

    int main (void)
    {
    int riga;
    int colonna;
    int matrice[3][3];
    FILE *a;
    a = fopen("matrice_A.txt", "r");

    for(riga=0; riga<3; riga++)
    for(colonna=0; colonna<3; colonna++)
    fscanf(a, "%d", &matrice[riga][colonna]);

    printf("%d\n", matrice);

    fclose(a);
    return(0);
    }



    nel file.txt la matrice è 3x3 e in questa prova ho provato a dargli delle dimensioni fisse preimpostate...

    1 2 3
    4 5 6
    7 8 9

    ....mmmmmmmm xke non funziona ??? :'(
  • Il tuo inserimento è OK. Fai la cosa inversa con printf.
  • Ps.... mi sono dimenticata una cosa fondamentale...si tratta di algoritmi e strutture dati...quindi invece ke in un array potrei inserire le mie "care" matrici in una struttura dati tipo INSERTTSORT...
  • Anche con printf m da sempre un risultato errato...
  • Che centra insertionsort che è un algoritmo di ordinamento con l'inserimento dati della matrice.

    Inizia da quì
    
    #include <stdio.h>
    
    int main (void)
    {
    	int riga;
    	int colonna;
    	int matrice[3][3];
    	FILE *a;
    	a = fopen("matrice_A.txt", "r");
    
    	for(riga=0; riga<3; riga++)
    		for(colonna=0; colonna<3; colonna++)
    			fscanf(a, "%d", &matrice[riga][colonna]);
    
    	fclose(a);
    
    	for(riga=0; riga<3; riga++)
    	{
    		for(colonna=0; colonna<3; colonna++)
    			printf("%d ", matrice[riga][colonna]);
    		printf("\n");
    	}
    	
    	return(0);
    }
    
  • -.-'' ke figura...oddio credo ke doveri andare a dormire!!! grazie mille...
    cmq tu cosa ne pensi del discorso di INSERTSORT??
  • Ti ho risposto prima. InsertionSort è un algoritmo di ordinamento.
  • Ok...quindi ricreando lo stesso codice anche x il file con la matrice B e poi iniziare con la sottofunzioni(tipo pordotto etc...) va bene? basta cosi x questo progetto? e sopratutto il discorso della complessità come lo doveri gestire?
  • La complessità è una cosa teorica. la deviazione standard ha una complessità pari a O(N) seconda la formula di sopra.
Devi accedere o registrarti per scrivere nel forum
52 risposte