Schrift
[thread]1109[/thread]

Routine für Lösg. math. Funktionen: Brauche Idee oder Vorschlag (Seite 4)



<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten
Ronnie
 2004-05-08 16:52
#10984 #10984
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
@crian: Müsste es nicht: 1 5 + 1 2 - 5 * + 1 + sein?!
@janek: Wenn es dich interessiert, sieh dir mal folgende Seite bei HP an: RPN\n\n

<!--EDIT|Ronnie|1084021048-->
lichtkind
 2004-05-11 13:02
#10985 #10985
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
@janek
es gibt einen weitere sprachen subforum, wenn du es dort gepostet hättest gäbe es vielleicht weniger verwirrung und gross PASCAL drüber schreiben
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
esskar
 2004-05-11 14:20
#10986 #10986
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
witzig: genau die selbe aufgabenstellung muss meine übungsgruppe diese woche auch lösen; diesmal aber wirklich in c/c++
Crian
 2004-05-11 16:26
#10987 #10987
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Ronnie,08.05.2004, 14:52]@crian: Müsste es nicht: 1 5 + 1 2 - 5 * + 1 + sein?![/quote]
Nein, das ist dann die umgekehrte Notation.

[quote=janek,08.05.2004, 12:50]Was meinst Du denn mit der logischen Eingabe? Kannst Du mir vieleicht das mit +++15*-1251 erklären?[/quote]
Naja, eigentlich sind die Grundrechenarten doch Funktionen auf zwei Argumenten:

Code: (dl )
1
2
3
4
+(x,y) = x+y
-(x,y) = x-y
*(x,y) = x*y
/(x,y) = x/y


Wenn man sie in der logischen Funktionenschreibweise schreibt, werden die Klammern und die Kommata aber überflüssig, da klar ist, was die Parameter sind:

Code: (dl )
+ + + 1 5 * - 1 2 5 1

 

Fangen wir vorne an: das erste Plus braucht zwei Parameter, nämlich  + + 1 5 * - 1 2 5  und 1. Immer wenn man statt auf eine Zahl auf eine Funktion stößt, muss man deren Wert natürlich berechnen. So kommt man ganz zwangsläufig zu einer leichten rekursiven Abarbeitung:

Code: (dl )
1
2
3
4
5
6
7
8
+ ( + + 1 5 * - 1 2 5 , 1 )
    + ( + 1 5 , * - 1 2 5)
        + ( 1 , 5 ) = 6
                * ( - 1 2 , 5)
                    - (1, 2) = -1
                * ( -1, 5) = -5
    + ( 6, -5) = 1
+ (1, 1) = 2


So wird nach und nach folgendermaßen umgewandelt:

Code: (dl )
1
2
3
4
5
6
+ + + 1 5 * - 1 2 5 1
+ + 6 * - 1 2 5 1
+ + 6 * -1 5 1
+ + 6 -5 1
+ 1 1
2


Alles klar?\n\n

<!--EDIT|Crian|1084278945-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
lichtkind
 2004-05-11 17:27
#10988 #10988
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
@esskar bin jetzt durch mit der l&ösung (theoretisch)
wenn du willst kannst noch material bekommen
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
janek
 2004-05-11 19:37
#10989 #10989
User since
2004-02-02
17 Artikel
BenutzerIn
[default_avatar]
@crian
Ok das habe ich verstanden. Wenn ich wüsste, wie ich funktionen in diese form transferieren kann, könnte ich es so probieren.

Doch wie ich dann die Routine mache, die diese Rechnung durchführt, wüsste ich auch nicht.

Wie geht man denn da vor? Wie wird die punkt vor strich rechnung berücksichtigt?

Ich muss bis morgen eine Lösung haben. Und ich steige in keiner Weise durch.\n\n

<!--EDIT|janek|1084290915-->
esskar
 2004-05-11 20:09
#10990 #10990
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=lichtkind,11.05.2004, 15:27]@esskar bin jetzt durch mit der l&ösung (theoretisch)
wenn du willst kannst noch material bekommen[/quote]
nicht ich muss; die gruppe, die ich betreue, muss!
<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten



View all threads created 2004-05-06 15:50.