Problema con un programma in C sulle matrici

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

All'università mi hanno dato un programma da fare solo che ho un piccolo problema, vi posto il link dove andare a vedere il testo dato dal prof e il mio codice con tanto di spiegazione del problema che hò, se volete potete anche rispondere sull'altro link o qui è indifferente... Spero che mi possiate aiutare sto impazzendo...

http://www.turboweb.it/forum/ut__@ubutu ... 8633469743

Grazie a tutti per l'aiuto
Ultima modifica di Danlo8600 il venerdì 21 settembre 2007, 16:05, modificato 1 volta in totale.
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

Scusa ma tu devi mettere un valore e dire se è nella matrice ?
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Re: Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

esatto e anche in quale posizione della matrice si trova esempio:

1  2  3  4
5  6  7  8

x = 5

5 è presente nella matrice e si trova a posizione : Riga 1 Colonna 0
funziona con tutti i numeri ora tranne che con 4...Spero che l'esempio sia stato chiaro ;)
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

Codice: Seleziona tutto

for (i=0; i < N; i++)
  {
  for (j=0; j < M; j++)
    {
      if (x == A[i][j] )
        printf ("\n %d è in posizione %d %d", x, i, j);
    }
  }

ma non è più semplice così ?
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Re: Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

si ma cosi facendo uso 2 iterazioni... che pultroppo non posso usare visto che è specificato tra parentesi CON UNA SOLA ITERAZIONE...  (rotfl)  è da (mad) sto programma...
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

in effetti non avevo capito il significato di quell'espressione ma il problema è di facile soluzione

Codice: Seleziona tutto

for (i=0; i < N*M; i++)
  {
      if (x == A[(i/M)][(i%M)] )
        printf ("\n %d è in posizione %d %d \n", x, (i/M) +1, (i%M) +1);
  }
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Re: Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

ma erro o così facendo non và un granchè??? cioè così se metto 5 mi dice che è a posizione 2 1

ma a posizione 2 1 c'è nulla... le righe partono da 0 quindi poi c'è riga 1 ma riga 2 non c'è però anche se il 2 è per la colonna a riga 2 colonna 1 c'è il 6 e non il 5...oppure erro??
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Re: Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

a ok non avvo visto i + che avevi messo...comunque spigami una cosa che cavolo hai fatto qui???

Codice: Seleziona tutto

 if (x == A[(i/m)][(i%m)] )
cosa vuoldire i /m ???? e i%m??? non capisco

altra cosa gli elementi della matrice li devo iniziare a contare da 0 o da 1???
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

posizione 2,1 intendevo seconda riga ma se vuoi puoi mettere uno togliendo i due +1 ....

questo

Codice: Seleziona tutto

 if (x == A[(i/m)][(i%m)] )
è il succo, si usa una sola variabile iterativa e conoscendo il numero di colonne (m) puoi ottenere la riga i/m e la colonna i%m ... i/m è la divisione intera di i per m mentre i % m dà il resto della divisione di i per m .... se ci pensi è giusto. ..
Danlo8600
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 546
Iscrizione: mercoledì 22 novembre 2006, 21:30

Re: Problema con un programma in C sulle matrici

Messaggio da Danlo8600 »

cavoli è vero allora sono un genio in sede di esami ci ero arrivato mooolto vicino a una cosa del genere però non sapevo che si potesse fare nelle [][] :) grazie mille....hihihi ho imparato qualcosa di nuovo molto bene...
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

provalo per sicurezza, lo ho scritto qui in due minuti senza controllo... al massimo usi i puntatori e vai sul sicuro...
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Problema con un programma in C sulle matrici

Messaggio da difesaparcosempione »

Scusate IL RITARDO  (rotfl) ma io avrei fatto anche cosi ..

avrei creato una matrice bidimensionale in union con un vettore lungo quanto gli elementi della matrice.

Poi avrei letto la matrice con il vettore , usando il % modulo avrei beccato le coordinate ...

ciao
:)

(good)
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

@ difesaparcosempione: non è un pochino troppo complicato rispetto alla risposta di cui sopra ?
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Problema con un programma in C sulle matrici

Messaggio da difesaparcosempione »

(rotfl) no anzi ...

sfrutti il fatto che grazie alla union vedi una area di memoria con "viste" diverse.
Anzichè a struggermi per far n calcoli ho visitato l'area senza fare due cicli come voleva il testo dell'esercizio ...

Questa soluzione è stata pensata in n micro-secondi, l'unica attenzione per il programmatore è la gestione dell'indice in modulo.

ciao ciao  :)
Forse forse cosi si fanno meno calcoli ...
ri ciao
(good)
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

Anzichè a struggermi per far n calcoli ho visitato l'area senza fare due cicli come voleva il testo dell'esercizio ...
ma il testo ne richiedeva uno veramente..
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Problema con un programma in C sulle matrici

Messaggio da difesaparcosempione »

oops ho sbagliato a scrivere ...

Infatti con un solo loop (giro) , unico indice io riesco cosi a scovare l'elemento.
Il testo diceva con un SOLO indice ?

ciao
:)
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

il testo dice con una sola iterazione
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Problema con un programma in C sulle matrici

Messaggio da difesaparcosempione »

quindi ok,  (yes)
un lista (vettore) si naviga con una sola iterazione

BYE BYE  ;D
Avatar utente
Rospo Zoppo
Rampante Reduce
Rampante Reduce
Messaggi: 5291
Iscrizione: martedì 16 gennaio 2007, 20:35

Re: Problema con un programma in C sulle matrici

Messaggio da Rospo Zoppo »

un'ultima considerazione però; se quello è un esercizio che gli è stato assegnato, non credo abbia fatto le strutture di cui parli.. :D
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Problema con un programma in C sulle matrici

Messaggio da difesaparcosempione »

Questo non lo so, comunque sarà bene che inpari l'utilizzo delle union !!
ciao
(b2b)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti