c++ code

Alles Wissenswerte über Skripte, Browser, Makros, PhP, HTML...

Moderatoren: Moderatoren, Redakteure

Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

Alpha-x hat geschrieben:wie kommst du denn von m1*x+b1=m2*x+b2 auf (b2 - b1) / (m1 - m2) ?

m1*x+b1=m2*x+b2 | -b1 -(m2*x)

m1*x-m2*x = b2-b1
ausklammern
x(m1-m2 ) = b2-b1 | :(m1-m2)
x=(b2-b1) / (m1-m2 )
Benutzeravatar
Raeyz-x
Beiträge: 1856
Registriert: 02.11.2008 15:25
Persönliche Nachricht:

Beitrag von Raeyz-x »

jau,soweit hab ich gar nicht gedacht.
danke für eure hilfe!
Benutzeravatar
sieby
Beiträge: 55
Registriert: 19.08.2009 23:29
Persönliche Nachricht:

Beitrag von sieby »

Will kein neues Thema anfangen auch wenn es sich um C statt C++ handelt:

Und zwar hock ich hier inner Berufsschule (2. Tag und versuche C zu lernen^^).
Wir sollten ein Programm erstellen und mein Problem ist eigtl ganz simpel.
Erst der Code:

Code: Alles auswählen

 double Uo, R1, R2, Rges, I, U1, U2, I1, I2;
	char rp;
    printf("Programm zur Berechnung von Reihen- und Parallelschaltung 2-er Widerst‰nde\n\n");
    printf("\nBitte geben Sie die Gesamtspannung in V ein : ");
    scanf("%lf",&Uo);fflush(stdin);
    printf("\nBitte geben Sie den Widerstand R1 in Ohm ein : ");
    scanf("%lf",&R1);fflush(stdin);
    printf("\nBitte geben Sie den Widerstand R2 in Ohm ein : ");
    scanf("%lf",&R2);fflush(stdin);
	printf("\nReihen- oder Prarallelschaltung (R/P)? :");
    scanf("%char",&rp);fflush(stdin);
	printf("Eingabe: %char",rp);
Mein Problem ist nun das er in der Variablen rp immer den Zeilenumbruch speichert. Also die Bestätigung der Eingabe und nicht R oder P wenn ich diese eingebe.
Das Problem dürfte laut meiner bisherigen Erkenntnisse der Puffer sein was ich nicht ganz verstehe da es bei den drei vorherigen Anweisungen ja klappt.
Ich benutze Xcode von Apple...
Kann mir da vllt. jmd. helfen?
Benutzeravatar
DonElik
Beiträge: 14
Registriert: 30.05.2008 15:33
Persönliche Nachricht:

Beitrag von DonElik »

Hallo sieby,

hol dir mal den "rp" so:

Code: Alles auswählen

scanf("%c",&rp);fflush(stdin); 
Dann wird ein Schuh draus ;).

vg
donelik
Benutzeravatar
sieby
Beiträge: 55
Registriert: 19.08.2009 23:29
Persönliche Nachricht:

Beitrag von sieby »

DonElik hat geschrieben:Hallo sieby,

hol dir mal den "rp" so:

Code: Alles auswählen

scanf("%c",&rp);fflush(stdin); 
Dann wird ein Schuh draus ;).

vg
donelik
Da ändert sich leider nix =/
aber der einzige Unterschied ist ja auch das du %c statt wie ich %char benutzt oder? Sonst fällt mir jedenfalls nichts auf.

Das Problem scheint bei Windows wohl auch nicht aufzutreten jedenfalls bin ich der Einzige der das hat und der Einzige der Xcode benutzt also Mac OS X ...
Angeblich funktioniert fflush nicht bei allen OS...
Benutzeravatar
DonElik
Beiträge: 14
Registriert: 30.05.2008 15:33
Persönliche Nachricht:

Beitrag von DonElik »

Hallo sieby,

ok dann entschuldige bitte meinen Klugscheisserton im vorherigen Post.

Ich kenne mich leider nur mit Win32 Anwendungen und deren Runtimes aus.
"%char" würde z.b. beim Visual Studio nicht korrekt funktionieren.

Code: Alles auswählen

scanf("%char",&rp);fflush(stdin); 
rp würde befüllt werden mit "Xhar" wobei X das eingegebene Zeichen ist. (Davon mal abgesehen das char nur Platz für ein Zeichen hat ...).

Ich such trotzdem mal weiter ...

vg
DonElik
Benutzeravatar
sieby
Beiträge: 55
Registriert: 19.08.2009 23:29
Persönliche Nachricht:

Beitrag von sieby »

ok danke =) Im Übrigen kann char mehrere Zeichen aufnehmen ;) Fungiert dann als Arrey.. einfach char text[x] wobei x die Anzahl der Zeichen ist =)
Hatte schon überlegt es so zu machen und mal auf 10 oder so zu setzen gucken wo das Zeichen bleibt und es dann irgendwie rausfiltern aber ich hab grad erst mit C angefangen ... weiß gar nicht ob des geht kenn mich bisher nur mit PHP aus
Benutzeravatar
DonElik
Beiträge: 14
Registriert: 30.05.2008 15:33
Persönliche Nachricht:

Beitrag von DonElik »

Jop Arrays ist halt klar. Aber bei %c wird nur ein Zeichen aus der stdin geholt ....

http://www.cplusplus.com/reference/clib ... dio/scanf/

Anders sieht es bei %s es aus. Dort wird dann ein String geholt welche in ein char Array gespeichert werden kann.

Sobald du ein bissel Erfahrung in C++ hast, rate ich dir die STL zu benutzen ;).

Code: Alles auswählen

std::string strText1 = "Hallo";
std::string strText2 = " sieby!";
std::string strText3 = strText1 + strText2;
Das mit den Strings verbinden kennst du ja sicher aus PHP....

Die STL kann aber natürlich noch viel mehr ... wenn du Interesse hast, meld dich bei mir!

vg
DonElik
Benutzeravatar
Raeyz-x
Beiträge: 1856
Registriert: 02.11.2008 15:25
Persönliche Nachricht:

Beitrag von Raeyz-x »

Ich hab mal wieder einen Code wo ich den Fehler nicht finde.Wer lust hat kann ja mal drüber gucken
Ich will die Nullstellen einen quadratischen Funktion berechnen ;)
Der Fehler ist übrigens beim p = eingabe ("p");

Ka ob da noch mehr drin sind,bestimmt^^

Code: Alles auswählen

#include <cstdlib>
#include <iostream>


using namespace std;

float berechneNullstelle1(float p, float q);
float berechneNullstelle2(float x2);
void linie();
void linie2();
void ausgabeNullstelle1(float x1);
void ausgabeNullstelle2(float x2);


int main()
{
    float wahl;
    
    
    cout << "Willkommen zur Nullstellenberechnung von quadratischen Funktionen!" << endl;
    linie();
    cout << "1.Nullstellenberechnen" << endl;
    linie();
    cout << "2.Programm beenden" << endl;
    linie2();
    cin >> wahl;
    linie2();
    
    if (wahl == 1)
    {
             float p, q, x1, x2;
             
             cout << "Sie haben sich für die Nullstellenberechnung entschieden." << endl;
             
             p = eingabe ("p");
             q = eingabe ("q");
             
             x1 = berechneNullstelle1(p,q);
             
             x2 = berechneNullstelle2(p,q);
             
             ausgabeNullstelle1;
             ausgabeNullstelle2;
             
             
             
             
             
           
             
             
          
    }
                      
    if (wahl == 2)
    {
             cout << "Das Programm wird beendet." << endl;
             }  
   
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
    
         
}         
         
void linie()
{
     cout << "_____________________________" << endl;
     }         
         
void linie2()
{
     cout << "_____" << endl;
     }   
         
float berechneNullstelle1(p,q)
{
      return -p/2+sqrt((p/2)^2-q)
      }         
         
float berechneNullstelle2(p,q)
{
      return -p/2+sqrt((p/2)^2-q)
      }         
         
void ausgabeNullstelle1
{
     cout << "Die Nullstelle 1 ist " << x1 << endl;
     }
                          
void ausgabeNullstelle2
{
     cout << "Die Nullstelle 2 ist " << x2 << endl;
     }          
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

Welcher Fehler tritt auf?
Wie ist denn der Prototyp von eingabe()?
Wo ist die Funktion "eingabe"?
Oder willst Du uns so nur mitteilen dass du nicht weisst wie man Tastendrücke abfragt? :P
rya.
Benutzeravatar
Raeyz-x
Beiträge: 1856
Registriert: 02.11.2008 15:25
Persönliche Nachricht:

Beitrag von Raeyz-x »

Ops.Ich hab das float eingabe(string s) oben vergessen.

Aber jetzt kommt der Fehler bei meiner pq Formel.

Kann es sein, dass ich das sqrt falsch geschriebn habe,benutz ich zum ersten mal.

Danke für deine Antwort Scorcher24!
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

Braucht sqrt nicht #include <cmath>? Grade keine Shell offen :P.
http://www.cplusplus.com/reference/clibrary/cmath/sqrt/
rya.
Benutzeravatar
Raeyz-x
Beiträge: 1856
Registriert: 02.11.2008 15:25
Persönliche Nachricht:

Beitrag von Raeyz-x »

Hm ich habs mit #include <math> und <cmath> versucht,klappt beides nicht,jedes mal wird wieder die pq formel angestrichen.
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

machs doch mit alternativ ^0.5

man muss sich doch nur zu helfen wissen ;)


falls das noch nicht hattest: hoch 1/2 ist das gleiche wie quadratwurzel
Benutzeravatar
Raeyz-x
Beiträge: 1856
Registriert: 02.11.2008 15:25
Persönliche Nachricht:

Beitrag von Raeyz-x »

dann siehts so aus

return -p/2 - (p^2/4 - q)^0,5;

und es wird immernoch als fehler angestrichen.

zudem möcht ich wissen wie das mit dem sqrt funktioniert.ich hab leider keinen blassen schimmer mehr was da jetzt falsch ist O.o