| |
|
|
Gary12345 | Hallo,
ich habe eine Include basierend auf leichtem XPROFAN Code erstellt.
Download
Funktionen aus dem Code ablesbar! |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Gary12345 | Warum? Scheint doch alles richtig zu gehe? Ich verstehe einfach das return nicht ganz, obwohl ich es tausendmal in der Hilfe nachgelesen habe o.O |
|
|
| |
|
|
|
Jörg Sellmeyer | Da sind wir alle froh, dass die ganzen Rechenoperationen nicht mehr mit Funktionen ausgeführt werden müssen, sondern direkt mit den Operanden erledigt werden können und du willst sie wieder einführen?
Return kehrt aus einer Prozedur direkt an der Stelle zurück in das Hauptprogramm. Wenn man Nach Return einen Wert schreibt, wird dieser Wert als Ergebnis aus der Prozedur zurückgeliefert: KompilierenMarkierenSeparieren Das ist eine wenig elegante Methode, zeigt aber, wie Return funktioniert. Besser wäre gewesen, in der If-Abfrage den String Rueckgabe$ mit dem gewünschten Ergebnis zu bestücken und ganz am Ende die Prozedur mit Return Rueckgabe$ zu verlassen: KompilierenMarkierenSeparieren |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.01.2013 ▲ |
|
|
|
|
Gary12345 | Hallo, KompilierenMarkierenSeparieren'Include programmiert von Gary12345
Proc Summe
parameters a!,b!
declare Summe!
set("decimals",2)
Summe! = a!+b!
return ROUND(Summe!,2)
EndProc
Proc Minus
parameters a!,b!
declare Minus!
set("decimals",2)
Minus! = a!-b!
return ROUND(Minus!,2)
EndProc
Proc Teilen
parameters a!,b!
declare Teilen!
set("decimals",2)
Teilen! = a!/b!
return ROUND(Teilen!,2)
EndProc
Proc Multiplizieren
parameters a!,b!
declare multiplizieren!
set("decimals",2)
multiplizieren! = a!*b!
return ROUND(Multiplizieren!,2)
EndProc
Proc Wurzel
parameters a!
declare Wurzel!
set("decimals",2)
Wurzel! = sqrt(a!)
return Round(Wurzel!,2)
EndProc
Proc ADreieck
parameters a!,b!
declare ADreieck!
set("decimals",2)
ADreieck! = 0.5*a!*b!
return ROUND(ADreieck!,2)
EndProc
Proc AQuadrat
parameters a!
declare Quadrat!
set("decimals",2)
Quadrat!=a!*a!
return ROUND(Quadrat!,2)
EndProc
Proc ARechteck
parameters a!,b!
declare Rechteck!
set("decimals",2)
Rechteck! = a!*b!
return ROUND(Rechteck!,2)
EndProc
Proc AKreis
parameters a!
declare Kreis!
set("decimals",2)
Kreis! = @Pi()*a!
return ROUND(Kreis!,2)
EndProc
Proc ATrapez
parameters a!,c!,h!'Trapezformel: 0.5*(a+c)*höhe! (h!)
declare Trapez!
set("decimals",2)
Trapez! = 0.5*(a!+c!)*h!
return ROUND(Trapez!,2)
EndProc
Proc AParallelogramm
parameters g!,h!
declare Parallelogramm!
set("decimals",2)
Parallelogramm! = g!*h!'Grundfläche*Höhe
return ROUND(Parallelogramm!,2)
EndProc
Proc VWürfel
Parameters a!
declare Würfel!
set("decimals",2)
Würfel! = a!*a!*a!
return ROUND(Würfel!,2)
EndProc
Proc VQuader
Parameters a!,b!,c!
declare Quader!
set("decimals",2)
Quader! = a!*b!*c!
return ROUND(Quader!,2)
EndProc
Proc VKugel
parameters r!
declare Kugel!
set("decimals",2)
Kugel! = 4/3*@PI()*r!*r!*r!
return ROUND(Kugel!,2)
EndProc
Proc VKegel
parameters r!,h!
declare Kegel!
set("decimals",2)
Kegel! = 1/3*@PI()*r!*r!*h!
return ROUND(Kegel!,2)
EndProc
Sprich, das wäre dann richtig?
LG |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Gary12345 | Nimm Option2. Die ist zwar länger, aber scheint mir leichter zu sein. Dann ist mein Code doch richtig.
Werde dann vll nochmals nachfragen, weil ich auf ein Problem gestoßen bin. Erstmal auf Handarbeit nachrechnen und dann den Fehler suchen (In Mathe bin ich ja nich der beste ;) )
Danke! |
|
|
| |
|
|
|
Gary12345 | KompilierenMarkierenSeparieren Ich definiere, was ich machen will:
1. Was ist eine quadratische Gleichung?
ax²+bx+c=0
Beispiel: 3x²+2x+4=0
2. Wie kann man solche quadratischen Gleichungen ausrechnen?
Da gibt es eine offizielle Formel (genannt Lösungsformel der quadratischen Gleichungen):
-b+Wurzel(b²-4⋅a⋅c) / 2*a -b-Wurzel(b²-4*a*c) / 2*a
Soweit verstanden?
3. Wie kann ich das in XPROFAN umwandeln?
Oben habt ihr bisher geschriebenen Code für diese Formel. Nun liefert sie falsche Werte und stürzt bei negativen Werten ab? (EDIT: Stürzt nicht nur bei negativen Werten ab!)
Habe das in praktischer Form versucht (also handschriftlich), komme jedoch immer noch nicht zur Lösung des Problems (Umwandlung in XPROFANCODE).
Testwert, wo es bei mir abstürzt: KompilierenMarkierenSeparieren Danke für eure Hilfe schon mal im Vorraus! |
|
|
| |
|
|
|
Dieter Zornow | Das set("decimals",2) braucht man doch nicht in jeder proc. Einmal am Anfang außerhalb der Procs einfügen reicht doch. KompilierenMarkierenSeparieren Dann könnte der User auch noch als Option die Anzahl der Nachkommastellen festlegen.
an& = readini ......... set("decimals",an&) |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 28.01.2013 ▲ |
|
|
|
|
Thomas Freier | Ich gehe sogar soweit, dass weder DECIMALS noch ROUND etwas in der PROC zu suchen zu haben. Das ist im Programm zu regeln. Berechnungen sollten max. Nachkommastellen haben um weitere Berechnungen nicht zu verfälschen. |
|
|
| |
|
|
|
Gary12345 | Jo Danke. Ich würde ehrlicherweise erstmal noch paar Funktionen einbauen, danach könnte ich mich um dieses Problem kümmern.
Hat jemand eine Ahnung von quadratischen Gleichungen. Post siehe 2-3 Beiträge über mir
LG |
|
|
| |
|
|
|
| Ehm?
r!=b!+sqrt(b!*b!-4*a!*c!) / 2*a! |
|
|
| |
|
|