Tu sei qui: Frasi.net » community » forum » computer » programmare in c!
elenco forum | discussioni | post | cerca | partecipanti | proponi discussione
649 visite
Sono presenti 14 post.
danut lunedì 5 marzo 2007 19:46 | 1/14 |
Ebbene devo finalmente fare l'esame di informatica di ingegneria che mi tiro dietro da qualche secolo ed è successo un fatto increscioso nella nostra fotocopisteria, tutto il materiale di esempio dell'esame è andato buttato, con tutti gli ovvi problemi che ne arrivano. Vorrei chiedere a chiunque ne abbia un minimo di esperienza un algoritmo risolutivo per il determinante di una matrice quadrata con allocazione dinamica della memoria, io mi fermo alla logica del calcolo, non riesco a tirare fuori nulla di mio ormai!!! Per ora ho creato il modo per leggere il file dove è posta la matrice e la ho allocata dinamicamente ed è tutto perfettamente funzionante. Per chiunque mi possa dare una mano grazie mille davvero che ormai non so più che fare se non inventare di mio mettendoci non poco tempo!!! |
danut martedì 6 marzo 2007 19:12 | 4/14 |
#include <stdio.h> #include <stdlib.h> int **leggi_mat(int n, char *s) { int **a; int i, j; FILE *A; A=fopen(s,"r"); fscanf(A,"%d", &n); a=(int**)malloc(n*sizeof(int*)); for(i=0; i<n; i++) a[i]=(int*)malloc(n*sizeof(int)); for(i=0; i<n; i++) for(j=0; j<n; j++){ fscanf(A, "%d", &a[i][j]); printf("%3d\n", a[i][j]);} fclose(A); return a; } int determinante_matrice(int **a,int n) { int r, i, j, det; int diagpos[n], diagneg[n]; for(r=0; r<n; r++) {j=r; diagpos[r]=1; for(i=0; i<n; i++) {diagpos[r]=diagpos[r]*a[i][j]; j++; if(j==n) j=0;} printf("somma diagonale positiva:%d\n", diagpos[r]);} for(r=n-1; r>=0; r--) {j=r; diagneg[r]=1; for(i=0; i<n; i++) {diagneg[r]=diagneg[r]*a[i][j]; j--; if(j<0) j=n-1;} printf("somma diagonale negativa %d :%d\n", r, diagneg[r]);} det=0; for(r=0; r<n; r++) det=det+diagpos[r]-diagneg[r]; printf("il determinante della matrice e': %d\n", det); } int main(int argc, char *argv[]) { int n, determinante; int **a; a=leggi_mat(n, argv[1]); determinante=determinante_matrice(a, n); } Ecco finalmente il programma che dovevo fare, semplicemente calcola il determinante delle matrici, ed ora ne sto facendo uno che legge tutti gli elementi in diagonale della stessa. Mi chiederete, ma che cavolo serve??? Bhe posso rispondere, non lo so, ma con questo esame faccio un altro gradino per la laurea, anche se è un gradino completamente inutile. Ciao ciao |
danut martedì 6 marzo 2007 20:29 | 7/14 |
Bhe, ho scoperto ora che ha funzionato per un puro miracolo...non riesco a leggere e mantenere nella memoria il numero delle riche ed il numero delle colonne della matrice...il tutto ovviamente con alcune parti prese da vari testi che dovrò consigliare come carta igienica!!! |
danut giovedì 8 marzo 2007 15:55 | 8/14 |
Comunque sia oggi ho fatto l'esame di informatica che mi correva dietro da più di 5 anni e che io provai a fare...ma mi schifai. In meno di 4 settimane senza esempi oggi l'ho dato ed anche se non so come sia andato è stata una bella soddisfazione perchè sarei il primo ad esserci riuscito in un tempo così piccolo (bhe non dico che studiavo anche in orari impossibili agli altri ). E adesso finalmente posso fare un altro esame inutile, economia politica, sarà interessante ma...che cavolo centra con il mio corso di studi??? Capirei qualcosa che possa integrare il mio corso di impianti industriali, che sarebbe ottimizzazzione delle procedure industriali e via dicendo, ma economia politica??? Bhe alla prossima =) |
Bokko martedì 20 marzo 2007 12:24 | 12/14 |
beh, direi mica male. fai come faccio io, non chiederti come ci sei riuscito. ci sei riuscito e basta. l'unico esame in cui ho provato a dire qualcosa sulla correzione a momenti mi trova un altro errore. da allora se è passato non ci si lamenta più....cmq che ingegneria fai? |