candaluar ha scritto:
Prova ora a riscrivere la funzione che calcola il prodotto scalare, partendo come base dalla stampaDueVettori().
Considera che il valore di ritorno ora sarà int e non più void.
Se non ti senti ancora pronto, fai un passo intermedio: per ciascuna coppia stampa anche il prodotto.
Io ho provato un po' a pensare a quale algoritmo utilizzare per il prodotto scalare.
Considerando che un prodotto scalare tra due vettori:
a = (a', a'', a''')
b = (b', b'', b''')
è pari ad uno scalare c = a'b'+a''b''+a'''b''', ho pensato di poter utilizzare innanzitutto un ciclo for che calcola i prodotti degli elementi di ugual posto dei due vettori e poi di calcolare la sommatoria dei valori ottenuti. Cosa te ne pare? Qualcosa del tipo:
int ProdottoScalare (int Vettore1[], int Vettore2[], int N){
int i, x, y;
for (i=0; i<N; i++){
x = Vettore1[i]*Vettore2[i]; }
y += x;
cout << y;
}
Credo di aver commesso comunque qualche errore, perché provando ad implementarlo nel programma precedente, mi da 15 quando dovrebbe darmi 26 con i vettori precedenti.
P.s.
Ho comunque implementato la stampa del prodotto di ogni coppia:
void stampaDueVettori(int Vettore1[], int Vettore2[], int N)
{ int i;
for (i=0; i<N; i++){
cout << Vettore1[i] << " " << Vettore2[i] << " e il prodotto e':" << Vettore1[i]*Vettore2[i];
cout << endl;
}
}