| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Karl Mitgründer
Anmeldedatum: 17.10.2006 Beiträge: 18
|
Verfasst am: 23.10.2006, 18:48 Titel: [C/C++] for schleife will nicht |
|
|
hab ein problem mit der for schleife, die den "Zeiger" erhöht
und ja ich weiß, code ist nicht optimal und eigentlich sinnlos, aber das sollte ja nur ein test sein (;
und das einiges noch keinen sinn macht ist mir klar^^
| Code: |
using namespace std;
// Switsch funktion zum einfacherem einlesen!
//int wechsler(int | vllt in hauptfunktion?, switch
// multiplikator berechnung!
// double Einlesen::multipl(char Waehler)
double multipl (char Waehler)
{
double m1,m2,m3,m4;
if (Waehler == 'k')
{
return m1=1000;
}
else
{
return 1;
}
if (Waehler == 'M')
{
return m2=1000000;
}
else
{
return 1;
}
if (Waehler == 'm')
{
return m3=0.001;
}
else
{
return 1;
}
if (Waehler == 'n')
{
return m4=0.000001;
}
else
{
return 1;
}
}
//class Einlesen
int main ()
{
// realer einleser, um die richtige abfrage zu machen
int wechsler;
switch (wechsler)
{
case 1:
cout <<"Widerstand :";
case 2:
cout <<"Sonstnochwas :";
default:
cout <<"gib einfach was ein :";
}
// noch ne menge cases (je nachdem was man braucht, vllt auch eigene classe/funktion)
// Alllgemein: char Eingabe[128], cout << (übergabewert aus hauptfunktion)
char Widerstand[128];
//nicht allgemein: cout << "Widerstand :";
// cin >> Eingabe
cin >> Widerstand;
cout << Widerstand;
system("PAUSE");
int Zeiger=0;
// entdecken der abkürzungen
//do
//{
//Zeiger++;
//}
//while (Widerstand[Zeiger]!= 'M' ||'k' || 'm' || 'n' );
//Allg: Eingabe[Zeiger]
//hier ist das prob
// vllt andere lösung suchen!
for (;Widerstand[Zeiger]!= 'M', Widerstand[Zeiger]!= 'k',Widerstand[Zeiger]!= 'm',Widerstand[Zeiger]!= 'n';Zeiger++)
{
cout << Zeiger<<" ";
}
system("PAUSE");
cout <<" "<< Zeiger;
// Allg: Eingabe[Zeiger]
double multi = multipl (Widerstand[Zeiger+1]);
// berechnen der zahl , wenn abkürzung entdeckt wurde
//if(Widerstand[Zeiger] == M || k || m || n)
//{
//Zeiger = Zeiger -1;
//Allg: double Realwert
double RWiderstand;
for (int basis =0; basis < Zeiger; basis++)
{
double Potenz = 128 - (128 - Zeiger);
RWiderstand += (std::pow ( 10, Potenz)) * Widerstand[basis];
Zeiger == Zeiger -1;
cout << RWiderstand;
}
//Allg: double Realwertmulti = Realwert * multi;
double RWiderstandR = RWiderstand * multi ;
cout << RWiderstandR;
system("PAUSE");
} |
|
|
| Nach oben |
|
 |
synapsis Administrator

Anmeldedatum: 15.10.2006 Beiträge: 384 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), php, JS, AJAX, (Python) Compiler: MS VS2005 SE
|
Verfasst am: 23.10.2006, 18:57 Titel: |
|
|
In der for-Schleife stehen bei dir Kommas, aber da müssten eigentlich AND-Operatoren stehen,
also muss es heißen
Widerstand[Zeiger]!= 'M' && Widerstand[Zeiger]!= 'k' && Widerstand[Zeiger]!= 'm' && Widerstand[Zeiger]!= 'n'
anstatt von
Widerstand[Zeiger]!= 'M', Widerstand[Zeiger]!= 'k',Widerstand[Zeiger]!= 'm',Widerstand[Zeiger]!= 'n' |
|
| Nach oben |
|
 |
Karl Mitgründer
Anmeldedatum: 17.10.2006 Beiträge: 18
|
Verfasst am: 23.10.2006, 19:00 Titel: |
|
|
k thx, mit einzelnen && operatoren gehts^^
aber auch nur wenn ich Widerstand[Zeiger] != 'M' && Widerstand[Zeiger] != .... ):
so jetzt muss nur noch ddie exponentialfunktion irgendwie hinhaun, dann könnt man da was schönes draus machen^^ |
|
| Nach oben |
|
 |
synapsis Administrator

Anmeldedatum: 15.10.2006 Beiträge: 384 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), php, JS, AJAX, (Python) Compiler: MS VS2005 SE
|
Verfasst am: 25.10.2006, 14:11 Titel: |
|
|
Warum schreibst du da eigentlich in der multipl-Funktion "return m4 = 1000;" und nicht "return 1000". Außerdem kann die Funktion gar nicht richtig funktionieren, weil sie, wenn das Zeichen nicht 'k' ist einfach nur 1 zurückgibt. Sie kann also nie Werte für M m und n zurückgeben.
Es müsste also so heißen
| Code: |
if (Waehler == 'k')
{
return 1000;
}
else if (Waehler == 'M')
{
return 1000000;
}
else if (Waehler == 'm')
{
return 0.001;
}
else if (Waehler == 'n')
{
return 0.000001;
}
else
{
// Keines der Zeichen
return 1;
} |
Und noch was:
Mit atoi(char* char) kann man ganz einfach Zahlen in Char-Arrays in integer umwandeln.
Andersrum gibts itoa und für double gibts auch was, des heißt glaub ich gvct oder so |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|