Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-01-2010, 16:22   #1
Stallwars
Junior Member
 
Iscritto dal: Dec 2009
Messaggi: 10
[C] Calcolo det matrice

Raga ho provato a sviluppare un programma per il calcolo del determinante di una matrice max 1000 per 1000 ma mi da errore: ARITHMETIC ON POINTER AN INCOMPLETE TYPE... cioè??
Help!!! xD

Eccovi il codice se può servire... L'errore me lo da sulle righe 119 e 139.
Credo scambi la moltiplicazione per un puntatore ma nn so come risolvere.

Codice:
#include<stdio.h>


void load(int *h, int x, int y);
long determinante (long X[][], int x);
long totdet(long X[][], long mx, int h);


void 
main ()
{

long M[1000][1000];
int i=1, j=1, x, y;

printf("\t\tCALCOLO DETERMINANTE MATRICI QUADRATE.\n
\t\tIL CALCOLO VIENE ESEGUITO SU ELEMENTI\n
\t\tCOMPRESI TRA -3000 e 3000.\n\n
\t\tDIMENSIONE MASSIMA MATRICE: 1000x1000\n\n");







//CARICAMENTO GRANDEZZA MATRICE
          
do
{
     if(i<1||i>1000) printf("\n\nIl valore inserito e' errato, inserire un valore compreso tra 1 e 1000.");
                              
     printf("\n\n\n*Inserire il numero di righe (e colonne) della matrice: ");
     scanf("%d",&i);
}
while(i<1||i>1000);


j=i;


printf("\n\n\n\n\n");


do
{
        for(x=0; x<i; x++)
        {
        load(&M[y][x], y, x);    
        }
        
        y++;
}
while(y<j);


printf("\n\n\n\t\tIl determinante della matrice è: %ld", determinante(M ,x ));


system("PAUSE");

}



_______________FINE MAIN_______________





void 
load(int *h, int y, int x)
{
       do
       {
        
        if(*h<-3000||*h>3000) printf("\n\nINSERISCI UN VALORE CORRETTO\n\n");
        
        printf("***Inserire l'elemento di indici %d,%d della matrice: ", y+1, x+1);
        scanf("%d",&*h);
        
        }
        while(*h<-3000||*h>3000);
     
}










long 
determinante(long X[][], int x)
{
      
          int h, DET=1, TOTDET;


          for(h=0;h<x-1;h++)
          {
             DET=X[h][h]*(DET);        /*vedi teorema di laplace*/
          }

          h++;

          TOTDET=totdet(X , DET, h);

          return TOTDET;

     }








long 
totdet(long X[][], long mx, int h)
{

         return mx*(((X[h][h])*(X[h+1][h+1]))-((X[h+1][h])*(X[h][h+1])));

     }

Ultima modifica di Stallwars : 24-01-2010 alle 15:08.
Stallwars è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2010, 17:17   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Illeggibile
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2010, 17:49   #3
Stallwars
Junior Member
 
Iscritto dal: Dec 2009
Messaggi: 10
Scusate... Aggiusto e riposto. =)

Aggiungo: fino al caricamento tutto ok. Le righe sono nella funzione "totdet" e nella funzione "determinante"
Il resto dovrebbe fungere dato k l'ho testato.

Ultima modifica di Stallwars : 23-01-2010 alle 18:00.
Stallwars è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2010, 18:23   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Il calcolo del determinante secondo Laplace e' ricorsivo, ma nel codice non vedo la ricorsione.
E non penso sia opportuno supportare una matrice 1000x1000 e poi inserire i dati uno ad uno con una scanf...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2010, 15:02   #5
Stallwars
Junior Member
 
Iscritto dal: Dec 2009
Messaggi: 10
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Il calcolo del determinante secondo Laplace e' ricorsivo, ma nel codice non vedo la ricorsione.
E non penso sia opportuno supportare una matrice 1000x1000 e poi inserire i dati uno ad uno con una scanf...

No la ricorsione c'è... Praticamente l'indice h punta in maniera incrementale agli elementi con indici eguali... E' come se applicassi tante volte laplace finchè non ottieni un minore 2x2... A quel punto calcola il minore.

Per quanto riguarda la scanf... Forse c'è qlke altro metodo + pratico! xD
Cmq credo mi riconosca le moltiplicazioni come puntatori
Stallwars è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2010, 16:12   #6
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Guarda che stai praticamente moltiplicando solo i termini della diagonale maggiore, e poi il determinante delll'ultima sotto-matrice 2X2 in basso a destra.
Mancano tutti gli altri contributi, ed e' li' che ci si diverte.

Inutile correggere la versione corrente quando comunque non funzionerebbe.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2010, 17:58   #7
Stallwars
Junior Member
 
Iscritto dal: Dec 2009
Messaggi: 10
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Guarda che stai praticamente moltiplicando solo i termini della diagonale maggiore, e poi il determinante delll'ultima sotto-matrice 2X2 in basso a destra.
Mancano tutti gli altri contributi, ed e' li' che ci si diverte.

Inutile correggere la versione corrente quando comunque non funzionerebbe.
Cavolo... Erroraccio nell'interpretazione del teorema... xD
Stallwars è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2013, 13:17   #8
coidrok
Member
 
L'Avatar di coidrok
 
Iscritto dal: Jan 2009
Messaggi: 123
io mi son tenuto un pò più stretto.Qui potete trovare un file eseguibile java per calcolare determinante e rango di matrici 3x3
http://uosew.weebly.com/software.html
coidrok è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2013, 14:20   #9
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Se vuoi restare su questo thread devi postare il codice, che e' quello che ci interessa.
Se invece si tratta solo di eseguibile, devi spostarti su "Programmi e Utility"

Poi vabbe', il thread originale era di 3 anni fa
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
I datacenter non piacciono? OpenAI prova...
Cupra Raval sfida BMW, Volvo e le altre:...
BYD supera per la prima volta le 300.000...
Crisi RAM, spunta un prezzo incredibile ...
Ginux, un nuovo kernel compatibile con L...
Gemini Notebook si aggiorna: arrivano i ...
Svolta per l'emulazione della prima Xbox...
Narwal celebra 10 anni: l'evoluzione tec...
TIM Enterprise acquisisce il 70% di VoiS...
Altro che dicembre, la RTX 5080 da 24 GB...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v