Hallo zusammen, ich beschäftige mich etwas mit c++, bin darin neu und habt etwas verständnis dafür wenn der programmcode nicht sonderlich schön sein sollte
Ich möchte ein Programm Widerstände berechnen) schreiben in dem ich bis zu 10 Werte eingeben kann, aber man braucht ja nicht alle 10, bloß bei meinem Code will der aber werte haben sonst ist das ergebnis immer null, wie kann ich das anstellen, einfach erklärt für einen Laien?
hier mal der bisherige code:
#include
using namespace std;
int main () {
float R1 = 0;
float R2 = 0;
float R3 = 0;
float R4 = 0;
float R5 = 0;
float R6 = 0;
float R7 = 0;
float R8 = 0;
float R9 = 0;
float R10 = 0;
float Summe;
cout \> R1;
cout \> R2;
cout \> R3;
cout \> R4;
cout \> R5;
cout \> R6;
cout \> R7;
cout \> R8;
cout \> R9;
cout \> R10;
if (R1 = (1/R1));
if (R2 = (1/R2));
if (R3 = (1/R3));
if (R4 = (1/R4));
if (R5 = (1/R5));
if (R6 = (1/R6));
if (R7 = (1/R7));
if (R8 = (1/R8));
if (R9 = (1/R9));
if (R10 = (1/R10));
Summe = R1+R2+R3+R4+R5+R6+R7+R8+R9+R10;
Summe = 1/Summe;
cout
Hallo zusammen, ich beschäftige mich etwas mit c++, bin darin
neu und habt etwas Verständnis dafür wenn der Programmcode
nicht sonderlich schön sein sollte
Schon ok
Ich möchte ein Programm Widerstände berechnen) schreiben in
dem ich bis zu 10 Werte eingeben kann, aber man braucht ja
nicht alle 10, bloß bei meinem Code will der aber werte haben
sonst ist das ergebnis immer null, wie kann ich das anstellen,
einfach erklärt für einen Laien?
OK, machen wir …
hier mal der bisherige code:
#include
using namespace std;
int main () {
Dafür erscheint jetzt:
#include
#include
using namespace std;
#define N 10
int main ()
{
Wir legen also eine Anzahl N=10 vorher fest und
verwenden ‚string‘-Funktionen.
Brauchen wir nicht. R1-R10 wird
nur intern zur Berechnung von ‚Summe‘
verwendet, kann also weggelassen werden. Also:
cout
Da wir nicht wissen, wie viele Werte eingegeben werden,
benutzen wir einen Zähler 'anzahl' und ein _flag_
'fertig', um zu signalisieren, dass nichts mehr eingegeben
werden braucht. Sowohl 'anzahl' als auch 'Summe' müssen
initialisiert werden. Und 'fertig' sind wir am Anfang
auch noch nicht.
> cout \> R1;
> cout \> R2;
> cout \> R3;
> cout \> R4;
> cout \> R5;
> cout \> R6;
> cout \> R7;
> cout \> R8;
> cout \> R9;
> cout \> R10;
> if (R1 = (1/R1));
> if (R2 = (1/R2));
> if (R3 = (1/R3));
> if (R4 = (1/R4));
> if (R5 = (1/R5));
> if (R6 = (1/R6));
> if (R7 = (1/R7));
> if (R8 = (1/R8));
> if (R9 = (1/R9));
> if (R10 = (1/R10));
> Summe = R1+R2+R3+R4+R5+R6+R7+R8+R9+R10;
Das bauen wir zu einer Schleife um:
while(!fertig) { // solange nicht fertig mit Schleife
cout
Das solltest Du mal Zeile für Zeile durchgehen
Und schließlich - aus:
> Summe = 1/Summe;
> cout
machen wir:
Summe = 1.0/Summe;
cout
da Deine 'main'-Funktion angeblich ein 'int' zurückgibt.
Viele Grüße
CMb
wow danke, hatte schon weiter „probiert“ hatte zumindest die rechnung schon richtig, allerdings mußte ich immer alles eingeben, mit dem code ist das natürlich nicht mehr möglich super danke, jetzt such ich gerade eine möglichkeit, das er eine Ausgabe macht das die Zahl Positive sein muß wenn jemand eine Negative Zahl eingibt und so lange fortfährt bis er dies getan hat, übung macht den meister, mir machts richtig spaß, und wenn man solch tolle hilfe bekommt noch mehr, tausend dank!
jetzt such ich gerade eine möglichkeit, das er eine Ausgabe
macht das die Zahl Positive sein muß wenn jemand
eine Negative Zahl eingibt und so lange fortfährt bis er dies
getan hat, übung macht den meister, mir machts richtig spaß,
und wenn man solch tolle hilfe bekommt noch mehr, tausend
dank!
Da würde ich eine Funktion basteln (z.B.: sanitize_input(), die
immer dann, wenn kein gültiger R eingegeben wurde, R auf 0.0 setzt)
was dazu führt, das der Zähler in der Schleife nicht hochge-
zählt wird.
Vereinfacht:
#include
#include
using namespace std;
double sanitize\_input(const string& s)
{
double r = atof( s.c\_str() );
if(r
Grüße
CMb