grazie mille funziona alla perfezioneadesso me lo studio per capire la logica... grazie!
grazie mille funziona alla perfezioneadesso me lo studio per capire la logica... grazie!
anzi sinceramente l'operazione che esegue il programma è: (a+b+c)*(d+e+f) io invece dovevo fare (a*b*c)+(d*e*f)
comunque l'ho sistemato l'ho modificato in c++ e inoltre ho sistemato i calcoli per renderlo come mi serviva...
il codice completo in C++ è:
codice:#include<iostream> using namespace std; int main() { int a, b=1, n=0, somma=0, count=0; cout<<"quanti valori vuoi calcolare?"<<endl; cin>>n; if(n%3!=0) { cout<<"errore, inserisci dei multipli di 3 per eseguire correttamente il programma"<<endl; system("pause"); return 0; } cout<<"inserisci questi "<<n<<" valori"<<endl; for (int i=1;;i++) { cin>>a; b = b*a; count++; if (i==3) { somma = somma + b; i=0; b=1; } if (count==n) break; } cout<<"il risultato dell operazione e: "<<somma<<endl; system("pause"); return 0; }
ok, grazie anche io pensavo di agire in quella direzione.
Ma come posso dire al secondo accumulatore che deve partire da a2 e non da a1? Il problema è che il prodotto a2*a3 non viene effettuato nel primo caso e quindi non posso impostare un for con i=2.
Forse devo considerare tre variabili a b c ?
usi 3 variabili:
somma = 0
p1 = 0
p2 = 0
più una variabile a che contiene il nuovo numero.
ad ogni ciclo:
somma = somma + p1 * a
p1 = p2 * a
p2 = a
in questo modo nei primi 2 cicli verrà sommato 0 e in seguito i vari prodotti parziali
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
grazie, finalmente ce l'ho fatta, ecco il ciclo funzionante
Nel caso invece debba fare somma=(a1*a2*a3)+(a3*a4*a5) come posso fare? Non posso usare la soluzione di prima, ho provato a introdurre un terzo accumulatore ma non è corretto perchè farebbe il prodotto di 4 numeri . Se uso un accumulatore solo neanche va bene.
#include<iostream>
using namespace std;
int main ()
{
cout<<"quanti numeri metti ";
int n;
cin>>n;
int a;
int prodotto1=0;
int prodotto2=0;
int somma=0;
for(int i=1;i<=n;i++)
{
cout<<"inserisci numero di questi n numeri"<<endl;
cin>>a;
somma=somma+prodotto1*a;
prodotto1=prodotto2*a;
prodotto2=a;
}
cout<<"somma risulta "<<somma<<endl;
system("pause");
return 0;
}
sto provando a risolvere in questo modo: da i=1 a i=3 fai la somma classica a1*a2*a3 utilizzando somma=somma+prodotto*a e l'accumulatore prodotto=prodotto*a. Poi alla fine di questo ciclo con i=3 pongo a=3. Ora dovrei dire a C di fare la stessa cosa però non con i=6 ma con i=5 cioè facendo 2 iterazioni. Il mio problema è che dovrei fare: i=3, i=3+2=5, i=5+2=7....e qui mi sono bloccato. Dovrei fare forse due cicli for annidati?