Esercizio: date due resistenze inserite in input al nostro software, calcolare il valore del loro parallelo. Svoli lo stesso esercizio date in ingresso un numero N imprecisato di resistenze.
Per risolvere l’esercizio, fermiamoci un attimo: è inutile scrivere codice se non sappiamo cosa sia il parallelo di due resistenze e la formula matematica che ne calcola il parallelo equivalente.
Date due resistenze, espresse con numeri interi o decimali, R1 e R2, la resistenza parallela equivalente vale Rp= (R1 * R2) / (R1 + R2)
Quindi a conti fatti, che sappiate o meno il concetto, il nostro software deve fare poco: una somma, un prodotto, una divisione! Vediamo subito il codice.
#include <iostream>
using namespace std;
int main()
{
//Dichiarazione delle varibili
int r1 = 0; //variabili di input
int r2 = 0; //variabili di input
float rp = 0; //variabile di output
float prodotto = 0.0; //varibili di lavoro / work
float somma = 0.0; //varibili di lavoro / work
//Lettura delle variabili
cout << "Inserisci R1" << endl;
cin >> r1;
cout << "Inserisci R2" << endl;
cin >> r2;
//Corpo principale
prodotto = r1 * r2;
somma = r1 + r2;
rp = prodotto / somma;
//Mostrare il risultato
cout << "Rp= " << rp;
getchar();
return 0;
}
Il prodotto e la somma sono stati inseriti in una variabile float anche se intuitivamente il prodotto di numeri interi o la somma di numeri interi sia ovviamente a sua volta un numero intero. Il problema è che alcuni compilatori C++, quando procedono ad effettuare la divisione, se trovano interi effettuano la divisione intera troncando la parte decimale. Inizializzate sempre le variabili numeriche a zero, soprattutto quelle di output e lavoro per evitare valori anomali se non ci sono assegnazioni sulle stesse.
La stessa versione per un numero N di resistenze è poco più difficile: si tratta di leggere più valori e usare due accumulatori per le somme e i prodotti. Occhio a come inizializziamo l’accumulatore prodotto: il valore neutro è 1 e non zero con cui iniziare.
#include <iostream>
using namespace std;
int main()
{
//Dichiarazione delle varibili
int r = 0; //varibile input;
int n = 0; //variabile input
float rp = 0; //variabile di output
float prodotto = 1; //varibili di lavoro / work
float somma = 0; //varibili di lavoro / work
//Lettura delle variabili
cout << "Quante resistena vuoi inserire?" << endl;
cin >> n;
//Corpo principale
for (int i=0; i < n; i++ )
{
cout << "Inserisci la resistenza" << endl;
cin >> r;
prodotto = prodotto * r;
somma = somma + r;
}
rp = prodotto / somma;
//Mostrare il risultato
cout << "Rp= " << rp;
getchar();
return 0;
}
Ultima modifica 5 Aprile 2023