Xcode 4 Modus zu Degree wechseln

chris1810

Mitglied
Thread Starter
Registriert
26.03.2011
Beiträge
27
Reaktionspunkte
5
Hi. Ich bin gerade dabei meinen selbst programmierten Taschenrechner zu erweitern und habe auch sin, cos, tan und sinh, cosh und tanh hinzugefügt. Jedoch habe ich das Problem, dass die Ergebnisse nicht in Degree ausgegeben werden. Kann mir jemand sagen, wie ich das ändern kann und vielleicht auch, wie ich eine Taste in den Rechner einbaue (welcher Code), um zwischen Degree, Neugrad und Radiant zu wechseln.
Vielen Dank.
 
Mathe büffeln?
http://mawa.heimat.eu/aktu5c/voy_wima.pdf

Kleiner Tipp:
Programmieren != Fragenstellen.
1.) Das Problem inhaltlich / thematisch verstehen (z.B. mathematisch)
2.) Nach dem Verstehen der Fragestellung einen logischen Lösungsweg überlegen (Modus = RadioButtons oder Button mit Schleife und Beschriftung)
3.) Umsetzen in Programmiersprache Deiner Wahl => Syntax lernen.
Beim Weg von 1.) zu 3.) ist es zwingend notwendig, sich durch diverse Dokus zu wühlen.


Sorry, aber wenn Dir irgend jemand einen fertigen Code abliefert -was hast Du dann gelernt??

Ja, Programmieren lernen ist ätzend, anstrengend und frustrierend. Es ist fast so schlimm wie Golfspielen lernen.
 
Jetzt mal ne Frage nebenbei.
Wie hast du das ganze mit cos gelöst?
Mir zeigt Xcode einen falschen wert für cos an.
Gebe im Textfeld "faktor" eine zahl ein und Xcode gibt den Wert falsch aus.
Im Programm sieht es so aus:

double faktor = [faktorTextField doubleValue];

Später dann zur Rechnung:

double result1 = 1.7320508 * laenge * belastung * cos(faktor)

Wert bei "1" ist im Debugger: 2011-09-13 16:20:39.579 Electric[1674:100b] Cos von Faktor = 0.540302

Hab ich was falsches gemacht im Code? mit acos zeigt er auch was falsches an.
Bitte um kurze Hilfe und Erklärung da ich bei Google nichts gefunden habe.

Danke schon mal

Gruß
 
Wenn ich in Xcode folgenden Code ausprobiere kommt folgendes heraus:

double y = cos(60);
NSLog( @"y =%f", y);

Ergebnis Debugger: 2011-09-13 18:11:52.742 Electric[4785:100b] y =-0.952413


Bearbeitet wegen falsch Aussage.

Sorry @falkgottschalk
 
Zuletzt bearbeitet:
a) es ist nicht meine Homepage
b) Wenn ich den Taschenrechner von Apple bemühe und umschalte von DEG auf RAD, dann kommt wie erwartet als COS(60) genau das raus was Du gepostet hast.
c) warum verzichtest Du auf Erklärungen, die Dein Problem beschreiben und lösen?
 
Gib im Taschenrechner mal cos(60) ein. Dann ist das Ergebnis 0,5 genauso wie cos(90) gleich 0 ist.
Es geht nur rein darum was Xcode mit der Funktion cos(60) macht.
Es war ja nicht böse gemeint die Aussage.
Es kam nur so rüber so quasi "lern erstmal Mathe bevor was schreibst"
Deswegen schrieb ich am Schluss nicht böse gemeint.
 
Gib im Taschenrechner mal cos(60) ein. Dann ist das Ergebnis 0,5 genauso wie cos(90) gleich 0 ist.
Ja, weil der Taschenrechner Grad als Eingabe erwartet. cos() dagegen erwartet Radiant – wie es auch in der Dokumentation von cos() steht…
 
Gib im Taschenrechner mal cos(60) ein. Dann ist das Ergebnis 0,5 genauso wie cos(90) gleich 0 ist.
Es geht nur rein darum was Xcode mit der Funktion cos(60) macht.
Es war ja nicht böse gemeint die Aussage.
Es kam nur so rüber so quasi "lern erstmal Mathe bevor was schreibst"
Deswegen schrieb ich am Schluss nicht böse gemeint.

XCode rechnet korrekt, denn cos(60)=-0.9524129804151562926938165959929332 ist korrekt (Quelle: Wolfram Alpha). XCode rechnet nämlich, wie es üblicher Standard ist in radiant, du möchtest aber wahrscheinlich den Cosinus von 60° berechnen. Daher musst du vorher die Gradangabe in radiant umrechnen.
Und genau weil dir diese Grundlage noch nicht klar zu sein scheint, ist der Hinweis doch erstmal die mathematischen Grundlagen zu lernen und zu verstehen, genau richtig. Ein kleiner Tipp, für das Umrechnen braucht es nur simplen Dreisatz.
 
[winkel(DEG)=winkel(RAD)*(360°/2*pi)]
Das meinst du mit der Umrechnung :D
 
Pi ( für das Beispiel = 3.1415) jetzt mal nur geschrieben
die 60 in der Formel wird dann durch eine variable ersetzt


x = 2*3.1415*60/360;
double y = cos(x);
NSLog( @"y =%f", y);

2011-09-13 18:51:45.597 Electric[5244:100b] y =0.500027

also von rad in deg :-D
danke Jungs und sorry @falkgottschalk

aber wie gib ich pi richtig in xcode ein?
 
mit variable

double a = 90;
x = 2 * 3.1415 * a / 360;
double y = cos(x);
NSLog( @"y =%f", y);

also nur "pi" eingeben oder was?
 
Ergebnis:
double faktor = [faktorTextField doubleValue];

double x = faktor;

// Umrechnung von RAD auf DEG
double y = cos(2 * pi * x / 360);

// Zwischenergebnis 1
double result1 = 1.7320508 * laenge * belastung * y;
NSLog( @"Zwischenergebnis 1 = %f", result1 );
NSLog( @"Umrechnung RAD auf DEG = %f", y);
 
Ich habe den Rechner so programmiert, dass er das Ergebnis immer in Degree umrechnet --> cos(prevResult * pi / 180), wobei prevResult meine Eingabe ist und ich erhalte dann das richtige Ergebnis.
 
Ja das umrechnen habe ich schon hinbekommen. jetzt verkopfe ich mich mit NSPopUpButton
Ich kann es so auslesen:

NSLog(@"%@",[voltpopupButton titleOfSelectedItem]);

Gibt 3 Item. mV, V, kV

jetzt möchte ich einer Variablen ( x ) einen bestimmten wert zu weisen wenn mV, V, kV ausgewählt ist.
Jetzt muss ich nur noch die sch... herauslesen können und vergleichen.
Leider ohne erfolg bis jetzt :-(

Möchte die Ausgabe von [voltpopupButton titleOfSelectedItem] hernehmen und diese in ein "if" Anwendung einzubauen

Quasi if ( das ausgewählte Item gleich "mV") {
x = 10;
}

so ungefähr. nur weis ich den code noch nicht genau wie ich das ganze umzusetzen habe. das nach dem if ist kein problem. aber das if an sich macht mir kopf zerbrechen. hänge gerade voll
 
Zuletzt bearbeitet:
Zurück
Oben Unten