PDA

View Full Version : problema c++


lewis88
20-05-2008, 20:39
salve raga...dovrei consegnare tra max 1 settimana un programma con c++ per l esame...però non capisco perchè mi fà un sacco di errori...l intestazione è
"Siano dati in ingresso i riempimenti di riga e colonna di 2 matrici di elementi float A e B. Si elabori un algoritmo e si progetti un programma ke ritorna a una terza matrice C data dal prodotto delle matrici A e B.Si stampino le matrici A,B e C. "


Secondo voi dove sbaglio?è fatto bene?

#include <iostream.h>
#include <stdlib.h>
using namespace std;
const int nMaxCol=30;
const int nMaxRaw=30;

typedef float TElemento;
typedef TElemento TMatrice [nMaxRaw][nMaxCol]

void LeggiMatrice(TMatrice m , const int nMaxCol, const int nMaxRaw, int nCol, int& nRaw);
void ScriviMatrice(const TMatrice m, const int nRaw, const int nCol);

int main ()
{
TMatrice m1;
int nCol1;
int nRaw1;
TMatrice m2;
int nCol2;
int nRaw2;
cout<<"Matrice 1:\n";
LeggiMatrice(m1, nMaxCol, nMaxRaw, nCol1, nRaw1);
cout<<"Matrice 2:\n";
LeggiMatrice(m2, nMaxCol, nMaxRaw, nCol2, nRaw2);
if(nCol1=nRaw2)
{
int nRaw3=nRaw1;
int nCol3=nCol2;
TMatrice m3;
//Allocazione di una nuova matrice
for (int i=0; i<nRaw3; i++)
for (int j=0; j<nCol3; j++)
{
m3[i][j]=0;
for (int k=0; k<nRaw2; k++) {
m3 [i][j]= m3[i][j]+ m1[i][k]* m2[k][j];
}
}
cout<<"La matrice prodotto e':\n";
ScriviMatrice (m3, nRaw3 ,nCol3);
}
else cout<<"Errore numero colonne Matrice1 diverso da numero righe Matrice2:\n";
system("PAUSE");
return 0;
}
void LeggiMatrice (TMatrice m, const int nMaxCol, const int nMaxRaw, int& nCol, int nRaw)
{
//Acquisizione numero righe
do {
cout<<"Inserisci no.righe (max"<<nMaxRaw<<"):";
cin >> nRaw
}
while ((nRaw<0)||(nRaw>nMaxRaw));
//Acquisizione numero colonne
do{
cout<<"Inserisci no.colonne (max"<<nMaxCol<<"):";
cin>>nCol;
}
while ((nCol<0)||(nCol>nMaxCol));
//Acquisizione degli elementi
for(int i=0; i<nRaw; i++)
for (int j=0; j<nCol; j++)
{
cout<<"Inserisci elemento m["<<i<<"," <<j<<"]:";
cin>>m[i][j];
}
}
void ScriviMatrice (const TMatrice m, const int nRaw, const int nCol)
{
for (int i=0, i<nRaw; i++)
{
for (int j=0, j<nCol; j++)
{
cout<<endl;
}
}

Albi89
20-05-2008, 20:51
Non ti si riesce proprio a seguire... riposta col tag CODE per mantenere l'indentazione ;)
Poi ci diamo un occhiata insieme con piacere

Edit: me lo sto guardando... è pieno zeppo di errori del tipo "unt" invece di int, ; mancati a fine riga, return0 scritto senza spazio... correggi prima questi errori di distrazione e dopo se c'è ancora qualcosa che non va discutiamo dei problemi del procedimento ;)

lewis88
20-05-2008, 21:07
corretti i grossolani "orrori ortografici"... ma riguardo il procedimento come va?

VICIUS
20-05-2008, 21:20
Chiuso.
http://www.hwupgrade.it/forum/showthread.php?t=1649196