FAQ Suchen Synapsis Wiki Projekte Mitgliederliste Benutzergruppen Profil Einloggen, um private Nachrichten zu lesen Registrieren Login

[C/C++] for schleife will nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    Syncom.org Foren-Übersicht -> Compilersprachen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Karl
Mitgründer


Anmeldedatum: 17.10.2006
Beiträge: 18



BeitragVerfasst am: 23.10.2006, 18:48    Titel: [C/C++] for schleife will nicht Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
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

BeitragVerfasst am: 23.10.2006, 18:57    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Karl
Mitgründer


Anmeldedatum: 17.10.2006
Beiträge: 18



BeitragVerfasst am: 23.10.2006, 19:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
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

BeitragVerfasst am: 25.10.2006, 14:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Syncom.org Foren-Übersicht -> Compilersprachen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.


Powered by php B. B. © 2001, 2005 php B. B. Group
Template xabbBlue für php B. B. Foren - created by php b. b. styles
Modified by synapsis
Protected by CTracker