PDA

View Full Version : [c++]esame di oggi..help


saso87
20-12-2007, 14:03
scrivere una matrice quadrata...si sommino gli elementi della diagonale principale...gli elementi al di sopra anch'essi sommarli sempre in \ e gli elementi al di sotto moltiplicarli sempre in \... :confused: :confused:

\=diagonale

marko.fatto
20-12-2007, 14:28
qual'è la domanda? vuoi il programma fatto? :mbe:

isAlreadyInUse
20-12-2007, 14:29
Io direi che per farla quadrata è indispensabile un buon righello :asd:

saso87
20-12-2007, 14:30
allora la somma la riesco a fare...ma la moltiplicazione sotto la diagonale cm si fa?

marko.fatto
20-12-2007, 14:36
Io direi che per farla quadrata è indispensabile un buon righello :asd:

:asd:

allora la somma la riesco a fare...ma la moltiplicazione sotto la diagonale cm si fa?

come se dovesi fare la somma solo che moltiplichi... e continui a "passare" le diagonali finchè non arrivi ad avere un solo elemento da moltiplicare a quelli precedenti :stordita:

saso87
20-12-2007, 14:39
potresti scrivere il frammento di codice nn so ma mi blocco io ho qst:

#include <iostream>
#include <vector>
using namespace std;

int main() {
int righe,
colonne,
diagsize;

cout << "Inserire il numero di vettori della matrice quadrata" << endl;
cin >> righe;

colonne = righe;

diagsize = ( ( 2 * righe ) - 1 );

double **matrice = new double * [righe];

vector< double > diagonale( diagsize );

for(int i = 0; i < righe; ++i)
matrice[i] = new double[colonne];


for(int i = 0; i < righe; i++)
for(int j = 0; j < colonne; j++) {
cout << "Inserisci Elemento" << (i+1) <<" " << (j+1) << endl;
cin >> matrice[i][j];
}



for(int i = 0; i < righe; i++)
for(int j = 0; j < colonne; j++)
diagonale[righe-i+j] += matrice[i][j];

for(int i = 1; i <= diagsize; i++)
cout << "La somma della " << (i+1) << " diagonale e': " << diagonale[i] << endl;

system("PAUSE");
return 0;

}

ke mi fa la somma di tt le diagonali della matrice \ ora per fare la moltiplicazione al di sotto di qll princiaple cosa devo modificarE??

marko.fatto
20-12-2007, 15:02
i tag codeeee :cry:

comunque non l'ho provato ma è tipo questo :stordita:
double sotto=1;

for(int i=1;i<righe;i++)
for(int j=i-1;j<i;j++);
sotto*=matrice[i][j];

saso87
20-12-2007, 15:05
e qst qui ke hai scritto..dv lo devo inserire..?? alla fine al posto di qlks?

marko.fatto
20-12-2007, 15:09
qualsiasi posto dopo aver letto la matrice va bene (non dentro ad altri cicli :asd:)

saso87
20-12-2007, 15:13
mi dai un errore in sotto*=matrice[i][j];:mc:

marko.fatto
20-12-2007, 15:16
che errore?

saso87
20-12-2007, 15:24
-name lookup of `i' changed for new ISO `for' scoping
- using obsolete binding at `i'
-`j' undeclared (first use this function)

marko.fatto
20-12-2007, 15:26
ehm ce un ; di troppo...

double sotto=1;

for(int i=1;i<righe;i++)
for(int j=i-1;j<i;j++)
sotto*=matrice[i][j];

saso87
20-12-2007, 15:34
cmq l ho levato...compila pero nn fa la moltiplicazione continua a fare la somma delle diagonali help me

marko.fatto
20-12-2007, 16:05
ma lo fai stampare? :mbe: comunque se lasci così com'è ti stamperà sempre tutte le diagonali prima...

saso87
20-12-2007, 16:07
tu hai detto solo inseriscilo XD cmq no nn lo fatto stampare cm deve fare??(scusa sto alle prime armi):Prrr:

marko.fatto
20-12-2007, 16:15
:fagiano: :fagiano:

da così
for(int i = 1; i <= diagsize; i++)
cout<< "La somma della " << (i+1) << " diagonale e': " << diagonale[i] << endl;

a così
for(int i = 1; i <= diagsize; i++)
cout<< "La somma della " << (i+1) << " diagonale e': " << diagonale[i] << endl;
cout<<"La moltiplicazione della parte inferiore alla diagonale principale e': "<<sotto<<endl;

però questo potevi pensarci anche te a farlo :mbe:

-Slash
20-12-2007, 16:24
ma tu stavi all'esame con me!!!!

comunque il programma io l'ho fatto, se vuoi appena mi calmo un po' me lo ricordo e te lo posto

saso87
20-12-2007, 16:24
ok ora va...pero mi da solo la moltiplicazione dei due elementi al di sotto della matrice,qnd invece mi serve anke qll dell uniko elemento(esempio 3*3 primo elemento 3 riga)

marko.fatto
20-12-2007, 16:31
puoi fare un esempio?

saso87
20-12-2007, 16:35
allroa ho una matrice
1 1 1
1 1 1
1 1 1

allroa la somma della diagonale principale è 3...qll degli elementi al di sopra è 2 e 1...invece la moltiplicazione al di sotto e 1 e 1..ok???

marko.fatto
20-12-2007, 16:49
allroa ho una matrice
1 1 1
1 1 1
1 1 1

allroa la somma della diagonale principale è 3...qll degli elementi al di sopra è 2 e 1...invece la moltiplicazione al di sotto e 1 e 1..ok???

come 1 e 1? ma devi fare la moltiplicazione di ogni diagonale a parte o di tutti gli elementi al di sotto della diagonale principale?

saso87
20-12-2007, 16:55
allora qll li al di sotto della diagonale principale devono essere moltiplicati pero sempre in \ quindi 1*1=1 e poi l unico elemenke ho 1...quindi sotto ho 1 e 1

marko.fatto
20-12-2007, 16:57
ah avevo capito male allora... :stordita:

adesso però devo scappare.. dopo se riesco lo rivedo

saso87
20-12-2007, 17:01
ok ti asp:p