anzi sinceramente l'operazione che esegue il programma è: (a+b+c)*(d+e+f) io invece dovevo fare (a*b*c)+(d*e*f)
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 ?
grazie mille funziona alla perfezioneadesso me lo studio per capire la logica... grazie!
esatto, ho fatto cosi. Non ho capito come impostare i cicli alterni però.
Cioè se a i=3 arrivo cosi
poi come faccio a dirgli a i=5, i=7, i=9... di farefor(int i=1;i<=n;i++)
{
cout<<"inserisci numero di questi n numeri"<<endl;
cin>>a;
p=p*a;
if(i==3)
{
somma=somma+c;
c=a;
}
}
cout<<"somma risulta "<<somma<<endl;
somma=somma+p*a
5 non è un ,multiplo di 3. Dovrei impostare un altro for che da i=5 fino a i=7 fa la somma, e poi da i=7 a i=9. OK.
Ma coma faccio a passare da i=3 a I=5?
Devo introdurre un'altra variabile k=2?
Ti basta controllare se l'indice è pari o disparicodice:#include <iostream> using namespace std; int main() { int a, sum = 0, p = 0, n; cout << "Quanti numeri vuoi sommare?"; cin >> n; for(int i = 0; i < n; ++i) { cin >> a; if(i % 2 == 0) { sum += p * a; p = a; } else { p *= a; } } cout << "Il risultato è " << sum << endl; return 0; }
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
Non ho capito alcune cose è cioè:
1. parti da int i=0. quando c'è i=1 il resto vale esattamente 0? in teoria no, o forse si perchè i è variabile intera?
2. non dovrei valutare i%3==0, dovendoi fare la moltiplicazione di 3 numeri?
ciao e grazie
Il resto vale: 0 1 0 1 0 1 0 1 0 1 0 1 ...
1 2 3
_ _ 3 4 5
_ _ _ _ 5 6 7
_ _ _ _ _ _ 7 8 9
E' vero che devi sommare 3 numeri, ma come vedi dallo schema sopra devi "partire con una moltiplicazione" ogni altro ciclo!
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares