Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-09-2002, 16:45   #1
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
tra alcuni giorni ho l'esame, datemi qualche dritta

ciao a tutti!
tr un pò di giorni ho l'esame di fondamenti 1;
fin'ora mi sono esercitato su esercizi elementari come verifica del triangolo, equazione di secondo grado etc usando i tipi di dato, istruzioni condizionali switch if....else, cicli do...while, while e for...e me la sono cavata bene!

ora ho scaricato ilo programma dell'esame dal sito uni e la traccia dovrebbe come questa:

Si realizzi un progamma strutturato tramite funzioni che consenta:
di leggere da standard input un matrice di numeri interi, facendo
scegliere all'utente il riempimento di riga e di colonna (funzione
acquisisci);
di leggere da standard input una seconda matrice, le cui dimensioni
di riga e colonna siano fissate e pari a quelle della prima matrice
(funzione acquisisci2);
di stampare una matrice (funzione stampa);
di trovare il minimo di una matrice, restituendolo come valore di
ritorno della funzione (funzione minimo);
di sommare gli elementi sulla diagonale principale di una matrice
(funzione somma_diagonale);
di calcolare la somma delle due matrici salvando il risultato in una
terza matrice (funzione somma);

probabilmente non vorrà tutto il codice, ma solo di completarlo...e ho alcune domanducce da fare....:

1)
#define N 10
#define M 15

cosa significano?

2)
void acquisisci(int mat[N][M],int *n,int *m);
void stampa(int mat[N][M],int n,int m);
int minimo(int mat[N][M],int n,int m);
void acquisisci2(int mat[N][M],int n,int m);
void somma(int mat1[N][M],int mat2[N][M],int mat3[N][M],int n,int m);
int somma_diagonale(int mat[N][M],int n);

è necessario il void? perchè?
acquisisci e somma_diagonale sono 2 funzioni giusto? qual è il significato preciso del cotenuto delle parentesi?

aiutooooooooooooooooooo

__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 19:21   #2
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Re: tra alcuni giorni ho l'esame, datemi qualche dritta

Quote:
Originariamente inviato da Gremo
[b]ciao a tutti!
tr un pò di giorni ho l'esame di fondamenti 1;
fin'ora mi sono esercitato su esercizi elementari come verifica del triangolo, equazione di secondo grado etc usando i tipi di dato, istruzioni condizionali switch if....else, cicli do...while, while e for...e me la sono cavata bene!

ora ho scaricato ilo programma dell'esame dal sito uni e la traccia dovrebbe come questa:

Si realizzi un progamma strutturato tramite funzioni che consenta:
di leggere da standard input un matrice di numeri interi, facendo
scegliere all'utente il riempimento di riga e di colonna (funzione
acquisisci);
di leggere da standard input una seconda matrice, le cui dimensioni
di riga e colonna siano fissate e pari a quelle della prima matrice
(funzione acquisisci2);
di stampare una matrice (funzione stampa);
di trovare il minimo di una matrice, restituendolo come valore di
ritorno della funzione (funzione minimo);
di sommare gli elementi sulla diagonale principale di una matrice
(funzione somma_diagonale);
di calcolare la somma delle due matrici salvando il risultato in una
terza matrice (funzione somma);
Argh!!! Quando ho fatto fondamenti 1 mi hanno fatto scrivere una specie di parser di file Pascal, in Pascal !!

Quote:
[b]
probabilmente non vorrà tutto il codice, ma solo di completarlo...e ho alcune domanducce da fare....:

1)
#define N 10
#define M 15

cosa significano?
In pratica sono costanti. Dove inserisci le parole N e M nel testo, esse vengono sostituite con 10 e 15 prima della compilazione.

Quote:
[b]
2)
void acquisisci(int mat[N][M],int *n,int *m);
void stampa(int mat[N][M],int n,int m);
int minimo(int mat[N][M],int n,int m);
void acquisisci2(int mat[N][M],int n,int m);
void somma(int mat1[N][M],int mat2[N][M],int mat3[N][M],int n,int m);
int somma_diagonale(int mat[N][M],int n);

è necessario il void? perchè?
Quando non lo metti è perché il compilatore lo sottintende. Diciamo che non fa mai male metterlo, per eleganza e completezza.

Vedi N e M nelle dichiarazioni di funzioni, quando compili al posto di N e M vengono messe le due suddette costanti.

Quote:
[b]
acquisisci e somma_diagonale sono 2 funzioni giusto? qual è il significato preciso del cotenuto delle parentesi?
A occhio:

ACQUISISCI deve riempirti la matrice MAT con i valori inseriti da tastiera e ritornarti in "n" e "m" le sue dimensioni in righe colonne. Infatti sia MAT che "n" che "m" sono passati per indirizzo.

SOMMA_DIAGONALE deve sommare la diagonale della matrice, la cui dimensione unica è "n", unica perché per esserci una diagonale devi avere una matrice quadrata in cui il numero di righe è uguale a quello delle colonne. La funzione deve ritornare il valore della somma.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 22:28   #3
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
grazie per le risposte
una cosa: sto da ore per chiarirmi il concetto di array, ho fatto ricerche, ma sto impazzendo....
so cos'è (un contenitore di elementi dello stesso tipo, caratterizzati da indice che li distingue, da 0 a n-1 )...ma non so assolutamente le operazioni da fare sui suoi elementi, l'utilità , e sopratutto come sono utilizzati nel documento allegato e perchè sono (a quanto ho capito) strettamente legati al ciclo for...

se avete qualche link, o avete la pazienza di spiegarmelo in parole povere (sopratutto il legame con il ciclo for, e l'incremento i++), o volete mandarmi un insulto , fatelo qui vi prego!

ciaooooo
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 22:28   #4
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
ecco il code
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 22:30   #5
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
eccolo non era andato!
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 23:27   #6
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
allora, se chiarisci meglio quali sono i tuoi dubbi sull'uso degli array ti possiamo dare delle spiegazioni più chiare.

l'utilità innanzitutto è inutile che te la spieghi...
se devi memorizzare mettiamo 100 valori tu che fai? crei 100 variabili? no! fai un array di 100 elementi...
hai voglia a fare 100 assegnamenti ad ognuna delle variabili, fai il ciclo e con 2 istruzioni sei a posto...

operazioni da fare sugli elementi?
quelle che fai su una variabile...

perché sono legati al ciclo for?
perché un array ha l'indice, tu scrivendo array[i] ad esempio indichi che vuoi l'iesimo elemento (in realtà sarebbe l'iesimo + 1 visto che gli indici di un array partono da 0).
quando tu dici array[i] dici al programma che ti interessa prendere ciò che c'è in memoria all'indirizzo array + i, hai afferrato il concetto?
un array è un'area di memoria contigua di x byte, dove x lo specifichi tu quando crei l'array.
quando usi il for, con l'incremento della i, significa che ad ogni iterazione del ciclo consideri il successivo elemento dell'array, fino ad arrivare alla fine.

il codice non l'ho visto, cmq se hai altri dubbi sii più specifico.

ciao
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 00:37   #7
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
forse inizio a capire qualcosa!
quindi, quando dopo la dichiarazione di array trovo:
for(i=1;i<100;1++)
questo ciclo non fa altro che "dare un numero" agli arrai da 0 a 99?
non mettendo il ciclo, cosa accadrebbe?
potre lo stesso operare su qualsiasi array, come "array[10]=pippo" ?
qual'è il legame con le matrici?

cia e grazie per l'aiuto

ps: che bello il nome della tua città
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 06:13   #8
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da Gremo
[b]
ps: che bello il nome della tua città
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 08:21   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Gli array con na dimensione (int a[N]) li puoi in pratica accomunare alle matrici riga o colonna...mentre gli array bidimensionali (int m[N][M]) li puoi accomunare alle matrici...

Per accedere agli array puoi farlo direttamente :
a[10] = 100; //scrivi nell'undicesima posizione dell'array (ricordandoti che partono da zero)
a[9][4] = 15; //scrivi nella decima riga, quinta colonna

Oppure tramite una variabile intera :

a[x]
a[i][j]

In pratica i for o while (o qualsiasi altro ciclo) ti servono per operare sugli array variando i,j o x come faresti in negli algoritmi che lavorano sulle matrici...

Ad esempio "Sommatoria con i cha va da 1 a N(v(i))" dove v è un vettore di N elementi si traduce in questo modo :

int v[N];
int i, somma;

somma = 0;
for(i = 0; i < N; i++)
   somma += v[i];
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 14:01   #10
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
Quote:
Originariamente inviato da Gremo
[b]forse inizio a capire qualcosa!
quindi, quando dopo la dichiarazione di array trovo:
for(i=1;i<100;1++)
questo ciclo non fa altro che "dare un numero" agli arrai da 0 a 99?
non mettendo il ciclo, cosa accadrebbe?
potre lo stesso operare su qualsiasi array, come "array[10]=pippo" ?
qual'è il legame con le matrici?

cia e grazie per l'aiuto

ps: che bello il nome della tua città
certo che puoi operare su un array al di fuori di un ciclo, nessuno ti vieta di dire array[10] = qualcosa per assegnare il contenuto della variabile qualcosa all'undicesima posizione.
però è raro che accada, se fai un array in genere è perché vuoi operare proprio con un ciclo...

se vuoi usare le matrici puoi fare come ti dice cionci più sopra, usi un doppio indice array[i][j] dove la i ti indica le colonne e la j le righe, oppure indicizzi l'array solo un una variabile e tieni conto che dopo x elementi (dove x è il numero di colonne) vai "a capo" nella riga successiva.

cmq anche tu hai notato il nome della città...
in genere la battutina è "ma a Erba ve ne fumate tanta?"
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 15:56   #11
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
vediamo se ho capito, giudicate voi:


#include <stdio.h>
#define R 2/*max numero righe*/
#define C 2/*max numero colonne*/

main()
{
int determinante,a[R][C];
scanf("%d",&a[0][0]);
scanf("%d",&a[1][0]);
scanf("%d",&a[0][1]);
scanf("%d",&a[1][1]);
determinante=((a[0][0]*a[1][1])-(a[0][1]*a[1][0]));
printf("%d",determinante);
}


calcola il determinante della matrice quadrata 2x2. però non ho usato il for!!!
perkè ancora non ci arrivo? sono stupido?
non era lo stesso operare con 4 variabili??
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 16:03   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Gremo
[b]vediamo se ho capito, giudicate voi:


#include <stdio.h>
#define R 2/*max numero righe*/
#define C 2/*max numero colonne*/

main()
{
int determinante,a[R][C];
scanf("%d",&a[0][0]);
scanf("%d",&a[1][0]);
scanf("%d",&a[0][1]);
scanf("%d",&a[1][1]);
determinante=((a[0][0]*a[1][1])-(a[0][1]*a[1][0]));
printf("%d",determinante);
}


calcola il determinante della matrice quadrata 2x2. però non ho usato il for!!!
perkè ancora non ci arrivo? sono stupido?
non era lo stesso operare con 4 variabili??
Certo...va bene il modo in cui hai operato...
Ma richiedi il numero di ricghe e il numero di colonne da tastiera e poi dimmi...oppure metti R = 50 e C = 50... In teoria potresti svilupparti anche tutto il prodotto, ma avrebbe poco senso...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 16:29   #13
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
ho iniziato così, x me sbagliando:


#include <stdio.h>
#define R r/*ho detto che la variabile R deve essere r*/
#define C c/*ho detto che la variabile C deve essere c*/
main()
{
int a[R][C],a[r][c],determinante; /*dichiarazione dei 2 array*/
printf("INSERIRE IL NUMERO DI RIGHE: ");
scanf("%d",&r);
printf("INSERIRE IL NUMERO DI COLONNE: ");
scanf("%d",&c);
printf("%s%d%s%d%s","MATRICE A: ",r,"RIGHE E: ",c,"COLONNE");
a[r][c]=a[R][C];/*qui dico che la matrice a r righe e c colonne, definite dall'utente, deve corrispondere alla matrice a R righe e C colonne*/
for(r=0,r<R,r++);/*qui inizializzo r a 0, po dico che se r è minore di R, deve incrementerlo fino a raggiungere il valore di R;
for(c=0,c<C,c++);


dopo di questo non so come continuare;
se ho capito, l'utente inserisce ad esempio il valore arbitrario r; r all'inizio vale zero, con il ciclo for viene aumentato fino a R;
mettiamo caso r=4; for aumenta r da 0 fino a R=4;
in questo modo la matrice a[r][c] assume tutti i valori (crescenti) fino al valore definito dall'utente....

se il mio ragionamento non è sbagliato, x il prodotto della diagonale (a parte mettere una condizione x la matrice quadrata) sarebbe impensabile fare come ho fatto prima (però l'utente potrebbe anche mettere 100000 come valore) e non sarebbe neanche giusto porre un limite per righe e colonne!

come faccio?

grazie mille x mi siete di grande aiuto, è moltobrutto leggere su un foglio che non risponde alle domande

__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 16:59   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Scusa, ma mi sembra che tua abbia un po' di confusione in testa...non solo sugli array, ma anche sul C

Le #define in quel modo non si possono usare (o meglio...le puoi usare, ma non servono a niente in questo caso...
Devi assegnare a R e C due valori che non vuoi siano superati durante l'immissione del numero di righe e colonne...
Ad esempio 50...

Quando immetti il numero di righe e colonne devi appunto controllare che r e c siano minori di R e C...altrimenti richiedi nuovamente i valori...

Non capisco cosa intendi per : int a[R][C],a[r][c]
a è già dichiarata...non puoi farlo più di una volta...
Basta che tu dichiari a[R][C] e poi durante il programma userai solo una parte di questa matrice...cioè quella r * c con r e c immessi da tastiera...

E non capisco nemmeno cosa vuoi fare qui :

a[r][c]=a[R][C];

for(r=0,r<R,r++);/*qui inizializzo r a 0, po dico che se r è minore di R, deve incrementerlo fino a raggiungere il valore di R;
for(c=0,c<C,c++);

Perchè vuoi sporcare il valore di r e c che hai immaesso da tastiera ? Dopo ti servono pechè indicano le dimensioni delle matrici che devi usare all'interno del programma...

D'accordo che funziona, ma al posto di questo :

printf("%s%d%s%d%s","MATRICE A: ",r,"RIGHE E: ",c,"COLONNE");

potresti scrivere tranquillamente questo :

printf("MATRICE A: %dRIGHE E: %dCOLONNE",r,c);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 17:40   #15
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
Quote:
Originariamente inviato da cionci
[b]Scusa, ma mi sembra che tua abbia un po' di confusione in testa...non solo sugli array, ma anche sul C
ne sono consapevole sono agli inizi, ora giustificherò le cose che ho scritto;

Quote:
Le #define in quel modo non si possono usare (o meglio...le puoi usare, ma non servono a niente in questo caso...
Devi assegnare a R e C due valori che non vuoi siano superati durante l'immissione del numero di righe e colonne...
Ad esempio 50...
semplicemente volevo dire che R non doveva essere superiore a r immesso da tastiera, quindi scriverò:

#define R 5
#define C 5
che sonno costanti e corrispondono al massimo indice dell'array che dopo definisco, giusto? quindi in questo caso max 5, cioè valori da 0 a 4. potrei farlo anche con if giusto?
nel caso di define C 5, cosa succede se l'utente immette più di 5 valori? quale istruzione esegue? (in pratica, non esiste un else?)
se non ricordo male, e mi puoi confermare, il compilatore se ne frega, con conseguenza che l'array supera la sua dimensione fissa e potrebbe dare errori?
tu dici che come conviene farlo? define o if?

Quote:
Non capisco cosa intendi per : int a[R][C],a[r][c]
a è già dichiarata...non puoi farlo più di una volta...
Basta che tu dichiari a[R][C] e poi durante il programma userai solo una parte di questa matrice...cioè quella r * c con r e c immessi da tastiera...
volevo dichiarare 2 array per poi fare un confronto...

Quote:
E non capisco nemmeno cosa vuoi fare qui :
a[r][c]=a[R][C];
qui volevo assegnare un array ad un altro array.....
capisco che ho sbagliato!

Quote:
for(r=0,r<R,r++);/*qui inizializzo r a 0, po dico che se r è minore di R, deve incrementerlo fino a raggiungere il valore di R;
for(c=0,c<C,c++);
Perchè vuoi sporcare il valore di r e c che hai immaesso da tastiera ? Dopo ti servono pechè indicano le dimensioni delle matrici che devi usare all'interno del programma...
allora, ancora una volta non ho capito il significato del for
pensavo che servisse a dare gli indici all'array, che atrimenti sarebbero stati tutti 0...
nella mia testa, ovviamente
quindi non serve il for?

Quote:
D'accordo che funziona, ma al posto di questo :

printf("%s%d%s%d%s","MATRICE A: ",r,"RIGHE E: ",c,"COLONNE");

potresti scrivere tranquillamente questo :

printf("MATRICE A: %dRIGHE E: %dCOLONNE",r,c);
gusto personale

so che sono insistente, e ti ringrazio per la tua pazienza....
se hai icq, potrei chiederti alcune cose direttamente li!

alla fine dopo aver detto che l'array deve essere max 5x5, come faccio a indicargli il prodotto di una colonna x esempio? o di una diagonale?
devo scrivere per forza:
a[0][0]*......
oppure c'è un metodo più elegante/veloce?
e ancora, se non voglio un max di righe e colonne, come faccio?

spero di essere stato chiaro!

ps: che uni fai?
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2002, 18:50   #16
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
non mi lasciate solo con i miei dubbi plz
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2002, 09:42   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Al massimo ti posso fare un esempio...per chiarere i tuoi dubbi mi sa che ti serve un manuale o un libro sul C
Codice:
#include <stdio.h>

#define R 10 //massimo numero di righe
#define C 10 //massimo numero di colonne

void main()
{
	int a[R][C], b[R][C], c[R][C];
	int ar, ac, br, bc, i, j, k, somma;

	do {
		printf("\nInserire il numero di righe della matrice A : ");
		scanf("%d",&ar);
		//controllo che il numero immesso sia compreso fra 1 e R
		if(ar < 1 || ar > R)
			printf("\nIl numero di deve essere compreso fra 1 e %d\n",R);
	} while(ar < 1 || ar > R);

	do {
		printf("\nInserire il numero di colonne della matrice A : ");
		scanf("%d",&ac);
		//controllo che il numero immesso sia compreso fra 1 e C
		if(ac < 1 || ac > C)
			printf("\nIl numero di deve essere compreso fra 1 e %d\n",C);
	} while(ac < 1 || ac > C);

	//il numero di righe di B deve essere pari al numero di colonne di A
	printf("\nIl numero di righe di B e' %d. Necessario per fare il prodotto.\n",ac);
	br = ac;

	do {
		printf("\nInserire il numero di colonne della matrice B : ");
		scanf("%d",&bc);
		//controllo che il numero immesso sia compreso fra 1 e C
		if(bc < 1 || bc > C)
			printf("\nIl numero di deve essere compreso fra 1 e %d\n",C);
	} while(bc < 1 || bc > C);

	printf("\nIMMISSIONE DELLA MATRICE A\n");
	for(i=0; i<ar; ++i)
		for(j=0; j<ac; ++j)
		{
			printf("Inserire A(%d,%d) : ",i+1,j+1);
			scanf("%d",&a[i][j]);
		}

	printf("\nIMMISSIONE DELLA MATRICE B\n");
	for(i=0; i<br; ++i)
		for(j=0; j<bc; ++j)
		{
			printf("Inserisci B(%d,%d) : ",i+1,j+1);
			scanf("%d",&b[i][j]);
		}

	//Prodotto righe-colonne : c è una matrice ar*bc
	//Con i primi due for in pratica scorro gli elementi di c
	for(i=0; i<ar; ++i)
		for(j=0; j<bc; ++j)
		{
			//Ora devo sommare il prodotto fra gli elementi della
			//i-esima riga di a e la j-esima colonna di b
			//Con questo for scorro gli elementi dell'i-esima riga di a
			//e della j-esima colonna di b (ac == br)
			somma = 0; //uso questa varibile per comodità (e perchè è più veloce)
			for(k=0; k<ac; ++k)
				somma += a[i][k] * b[k][j];
			c[i][j] = somma;
		}
	
	//Visualizzo C
	printf("\nVISUALIZZAZIONE DELLA MATRICE C (%d righe x %d colonne)\n\n   ", ar, bc);
	for(j=0; j<bc; ++j)
		printf("%6d", j+1);
	printf("\n  |");
	for(j=0; j<bc; ++j)
		printf("------");

	for(i=0; i<ar; ++i)
	{
		printf("\n%2d|", i+1);
		for(j=0; j<bc; ++j)
			printf("%6d", c[i][j]);
	}
	printf("\n\n");
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2002, 16:56   #18
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
bhè mi sono un pò chiarito le idee e qualche programma l'ho fatto e funzionante per l'acquisizione, stampa a video e stampa su file...

ora vorrei chiederti come potrei sviluppare una bella funione per il calcolo del DETERMINANTE di una matrice!
qualcuno mi da qualche spunto?

ciao
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2002, 17:21   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Lo sai l'algoritmo per il calcolo del determinante ? Ecco...basta applicarlo alla lettera
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2002, 20:27   #20
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
Quote:
Originariamente inviato da cionci
[b]Lo sai l'algoritmo per il calcolo del determinante ? Ecco...basta applicarlo alla lettera
col complemento algebrico?
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Le immagini nell'occhio dell'uragano Mel...
Anche gli USA inseguono l'indipendenza: ...
TikTok: i content creator guadagneranno ...
Nothing Phone (3a) Lite disponibile, ma ...
Emissioni globali per la prima volta in ...
Bancomat lancia Eur-Bank: la stablecoin ...
NVIDIA supera i 5.000 miliardi di dollar...
I ransomware fanno meno paura: solo un'a...
Pixel 10a si mostra nei primi rendering:...
Intel Nova Lake-S: i dissipatori delle p...
1X Technologies apre i preordini per NEO...
Tesla Cybercab cambia rotta: nel taxi de...
L'industria dell'auto europea a pochi gi...
VMware tra cloud privato e nuovi modelli...
Amazon Haul lancia il colpo di genio: pr...
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: 00:32.


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