Aber es ist doch schon so, dass
man jede gegebene math. funktion in einer prozeduralen methode programmieren kann?
Ne da kriegt man ganz schnell Probleme. Alleine die Realität gibt einem da grenzen. In der Informatik kann man ja nur endliche Mengen haben. Also die ganzen Zahlen (Alle Positiven und Negativen Zahlen ohne Komma) sind ja schon unendlich groß und dafür reicht der Speicher Platz nicht.
Wenn man sich jetzt einfach nur auf Turing Maschinen Konzentriert, dann hat man das Problem jetzt nicht aber vielleicht sagt die das Halte Problem was? Also das ein Computer nicht sagen kann ob der Algorithmus irgendwann abricht oder unendlich lange weiter läuft. Daraus kann man auch eine Funktion definieren die man nicht Programmieren kann, weil es sonnst dem Halte Problem widersprechen würde.
Und weiter, in der Mathematik beschäftigt man sich ja auch nicht nur mit der Menge der Zahlen sondern es gibt deutlich größere Mengen. Zum Beispiel die Menge aller Polynome zum Beispiel. Oder die Menge der Funktionen auf der Menge aller Polynome. Das kann man ja immer so weiter machen. Das wird schwierig das zu Programmieren.
Es gibt auch Funktionen die man gar nicht angeben kann. Vielleicht sagt dir das Auswahlaxiom was? Das Auswahlaxiom Postuliert eine bestimmte art von Funktion und man kann zeigen das man diese art von Funktionen im allgemeinen nicht durch eine Konstruktion angeben kann. Da können sehr schnell Sachen schief gehen, wenn man nicht genau aufpasst. Daher kommt auch das Banach Tarski Paradox, was besagt das man nur durch Zerschneiden und Drehung der Einzelteile, aus einer Kugel zwei kriegen kann: https://de.wikipedia.org/wiki/Banach-Tarski-Paradoxon
Und ich versuche in meinem code weitestgehend, doppelte variablenverwendung wie o.g. x=x+1 zu vermeiden. Auch Schleifen usw. ersetze ich lieber durch sprachintegrierte abfragen (z.b. ms linq)
Das hat sich einfach so als "good practice" erwiesen für mich, ich meine aber mal zu dem schluss gekommen zu sein, dass sich damit der code besser in funktionale sprachen portieren lässt.
Interessant. Immer wenn ich Programmiere ist mir sowas immer egal. Aber ich Programmiere ja natürlich auch nicht so große Projekte wie du, da behält man ja so oder so leicht den überblick. Bei Haskell, was ich immer ganz cool fand ist das es da überhaupt keine while Schleifen gibt sondern man alles über rekursives aufrufen der Funktionen machen muss. Haskell ist aber trotzdem Turing complete. Also insgesamt würde ich schon sagen das ich mit Haskell den meisten Spaß beim Programmieren hatte.
Hm, kennst du Wolfram Alpha? Vielleicht ist das ja schon das was du meinst?
Es geht natürlich da nicht alles. So oder so ist Integrieren ein sehr Schwieriges Problem für das es nicht immer eine Antwort gibt und mit vielen Trickserein. Das ist auch nichts womit ich viel zu tun hab. Aber ein paar einfachere und vielleicht auch schwerere Integrale kriegt wolfram Alpha schon hin.
Was ich Persönlich noch sehr interessant finde, bezüglich diesen Mathe Programmen ist Lean.
https://en.wikipedia.org/wiki/Lean_(proof_assistant)
Das ist aber wahrscheinlich eher für die reinen Mathematiker Interessant da es dort Primär darum geht Beweise zu verifizieren und zu formalisieren.
Ich weiss nicht, ob du da aus meiner Bemühung was rausziehen konntest, einige grundsätze der oop zu vermitteln.
Dazu ggf. später mehr.
Ein bisschen OOP kannte ich schon. Vor allem mit Python hab ich schon ein bisschen rum gespielt, da mich vor dem Studium vor allem Neuronale Netze interessiert hat und damit hab ich ein bisschen experimentiert. Aber in diesem Semester muss ich ein paar Sachen mit Java machen. Kann also sein das ich vielleicht mal deine Hilfe brauchen :P.