Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ungerade zahlen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ]
020
11.10.2003, 17:17 Uhr
~(un)wissender
Gast


@0xdeadbeef
Warum soll eigentlich %2 portabler sein als &1?
OK, &1 setzt das binäre System voraus, aber ich denke das geht schon klar.

(@ao: Ja, ja, %2 ist etwas lesbarer und der Compiler macht vermutlich eh &1 draus.)

@rammellaus(Nachtrag)
Wenn dir nicht klar ist, wie Potenzen berechnet werden, dann solltest du das explizit sagen, ansonsten geht hier jeder davon aus, das du wissen willst, wie das in C++ geht und da ist es nunmal von Vorteil Codebeispiele anzugeben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
11.10.2003, 17:22 Uhr
~(un)wissender
Gast



Zitat:
~rammellaus postete
sorry


kann mir aber jetzt vielleicht noma einer verraten wieso er sagt pow hat zuwenig parameter?


Code:
x1 = -(p / 2) + pow ((pow (p / 2),2) - q), 1 / 2) ;



Deine Klammerung stimmt nicht.
Wenn du etwas komplexere Berechnungen hast, dann mach sie mit Variablen, d.h. mach immer nur einen oder zwei Schritte.

Ungefähr so:
pow1 = pow((p /2), 2)
pow1 -= q
pow2 = pow(pow1, 1/2)

Ich hoffe, ich habe das richtig verstanden.
end_erg = -(p / 2) + pow2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
11.10.2003, 17:27 Uhr
Pablo
Supertux
(Operator)


Wenn du etwas potenzieren willst, brauchst du 2 Zahlen:
1. Die Basis
2. Die Pontenz.

Im allegemeinen Fall schreibt man als basis^potenz (sprich: basis hoch potenz) und die Definition davon ist, dass Basis hoch 0 stets eins ist, und Basis hoch n ist Basis * Basis n-1.

Was das bedeutet ist, dass Basis hoch Exponent ist die Exponent-malige Multiplikation von der Basis mit sich selbst.

2^5 = 2*2*2*2*2=32

Die Funktion pow (aus dem Englischen power = Potenzierung) übernimmt 2 Parameter: Die Basis und die Potenz. Im @Flos Beispiel ist x die Basis, wobei x eine Variable ist, und 2 die Potenz, also x².

Sei f(x)=x² mit |D = |R+. (|D = Definitionsmenge; |R+ = Die reellen positiven Zahlen)
Diese Funktion ordent jedem x seine Quadratzahl zu. Diese Funktion mit dieser Definitionsmenge hat eine Umkerfunktion. Ein Umkerfunktion tut genau das "Gegenteil".
f(x) = x^(1/2) ist äquivalent zu f(x) = Wurzel(x).

C/C++ bietet diese Funktion als sqrt (Square-root) an, wobei y (bzgl. @Flos Beispiel) die Zahl ist, von der wir die Wurzel ziehen wollen. Da f(x)=x^(1/2) die Umkerfunktion von f(x)=x² ist, dann gilt: sqrt(x) = pow(x,0.5), wie @Windalf erwähnt hat.

Im Prinzip gilt: n-Wurzel aus x ist äquivalent zu x^(1/n)

Für f(x)=x^0 = 1 gibt es keine Umkerfunktion, also ist die 0-Wurzel aus x nicht definiert, weil x^(1/0) nicht definiert ist.


Zitat:
~rammellaus postete
sorry


kann mir aber jetzt vielleicht noma einer verraten wieso er sagt pow hat zuwenig parameter?


Code:
x1 = -(p / 2) + pow ((pow (p / 2),2) - q), 1 / 2) ;


@Unwissender sagt schon, die Klammerung ist fehlerhaft.

Guck genau hin
-(p / 2) + pow ((pow (p / 2),2) - q), 1 / 2)

Da ist der Fehler.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 11.10.2003 um 17:29 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
11.10.2003, 17:41 Uhr
~rammellaus
Gast


sqrt(x) = pow(x,0.5), <-- also is sqrt die wurzel und pow potenzieren! soweit so klar, was aber wenn ich von x nicht die zweite sondern zum beispiel die dritte wurzel ziehen will? pow(x,0.5) = sqrt.......?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
11.10.2003, 17:50 Uhr
DerLiebeGast




Zitat:
Pablo Yanez Trujillo postete
Im Prinzip gilt: n-Wurzel aus x ist äquivalent zu x^(1/n)



Irgend jemand hat vorhin gesagt du sollst lesen was die Leute geschrieben haben!!
Und jetzt kommst du mit dritter Wurzel "pow(x,0.5) = sqrt.......?"

MfG
KeineLustMehrHabenderLieberGast
--
if(lesen)
wissen++;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
11.10.2003, 17:58 Uhr
~r.
Gast


ich glaub derliebegast versteht da was nicht!!!!

sqrt(x) ist die 2. wurzel!!!! jetzt wollte ich wissen wie ich die 3. abfrage, die frage is doch wohl berechtig? das es auch so geht is klar x^(1/n), aber wie mach ichs dann mit sqrt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
11.10.2003, 18:04 Uhr
DerLiebeGast



Ist pow(x,0.5) die Umkehrfunktion der 3.Wurzel????
--
if(lesen)
wissen++;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
11.10.2003, 18:07 Uhr
~r.
Gast


oh sorry, ich meinte natürlich pow (x,0.3)


ich geh gleich auf die knie wegen nem schreibfehler
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
11.10.2003, 18:27 Uhr
~r.
Gast


noch was anderes:
ich will die pq formel ausrechnen mit folgendem quelltext:


C++:
#include <vcl.h>
#include <stdio.h>
#include <math.h>
#include <iostream.h>

int main ()
{     int a;
double p, q, x1, x2, x1a, x1b, x1c, x1d;

cout << "Bitte geben sie p ein:" << endl;
cin >> p;
cout << "Bitte geben sie q ein:" << endl;
cin >> q;


x1a = -(p / 2) ;
x1b = pow ((p / 2), 2);
x1c = x1b - q          ;
x1d = pow (x1c, 0.5)    ;
x1 = x1a + x1d          ;


x2 = -(p / 2) - pow ((pow ((p / 2),2) - q), 1 / 2) ;

cout << "Hier kommt x1:" << x1 << endl;
cout << "Hier kommt x2:" << x2 << endl;

  cin >> a;
  return 0;
}





x1 reche ich in schritten und x2 in einer zeile! aber dennoch kommt nicht das raus was aufem taschen rechner rauskommt ^^ wieso?

--edit: Pablo. [ code ] --> [ cpp ] umgewandelt --

Dieser Post wurde am 11.10.2003 um 19:04 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
11.10.2003, 19:03 Uhr
Pablo
Supertux
(Operator)



Zitat:
~r. postete
oh sorry, ich meinte natürlich pow (x,0.3)


ich geh gleich auf die knie wegen nem schreibfehler



Ja genau, Wurzel 3 aus x ist äquivalent x^(1/3) in C/C++ äquivalent zu pow(x,1/3)

@R.
ich würde so machen: Ich habe deinen Code sehr schnell überflogen, habe aber nicht nach dem Fehler gesucht, weil du zu kompilziert gemacht hast.

C++:
#include <iostream>
#include<cmath>

int main()
{
    double p,q;
    std::cout << "Geben sie p und q ein: ";
    std::cin >> p >> q;

    double diskriminante = p*p-4*q;
    if (diskriminante < 0) {
        std::cout << "Die Funktion hat keine Lösung.\n";
        return 0;
    }
    if (diskriminante == 0) {
       std::cout << "Die einzige Lösung ist " << -p/2 << std:.endl;
       return 0;
    }
    // ansonsten ist disk > 0 ==> 2 Lösung

    std::cout << "Die erste Lösung ist: " << (-p+sqrt(diskriminante))/2 << std::endl;
    std::cout << "Die zweite Lösung ist: " << (-p-sqrt(diskriminante))/2 << std::endl;

    return 0;
}





Zitat:
~r. postete
ich glaub derliebegast versteht da was nicht!!!!

sqrt(x) ist die 2. wurzel!!!! jetzt wollte ich wissen wie ich die 3. abfrage, die frage is doch wohl berechtig? das es auch so geht is klar x^(1/n), aber wie mach ichs dann mit sqrt?



Nein, ich glaube unser Liebergast hat Recht und hat alles richtig verstanden. Mann muss lessen, was andere posten, auch wenn es lang ist. Ich finde dass seine Signatur

Zitat:

if(lesen)
wissen++;


ist sehr gut
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 11.10.2003 um 19:08 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: