Jetzt reicht es ! Java rechnet nicht richtig.

Aus dem Grund habe ich es mir inzwischen hier angewöhnt, nur noch Hinweise zur Lösung zu geben, wenn die Lösung sich durch ein wenig Recherche finden lässt. Nur so lernt man.
 
Es soll auch Leute geben, die zu einem Problem einfach nur eine Lösung suchen ohne das Hintergrundwissen lernen zu wollen.
Bei mir kommt es oft vor, dass ich auf dem Weg zu einem ganz anderen Ziel vor einem Problem stehe, dass ich schnellstmöglich beseitigten will und auch nicht wissen, warum die Lösung funktioniert. Ich will das Problem weg haben und weitermachen.
 
Bei mir kommt es oft vor, dass ich auf dem Weg zu einem ganz anderen Ziel vor einem Problem stehe, dass ich schnellstmöglich beseitigten will und auch nicht wissen, warum die Lösung funktioniert. Ich will das Problem weg haben und weitermachen.

Dann ist er/sie beim nächsten Problem aber wieder genau so weit. Dann ist es halt was anderes ('==', '!=', ':=' usw.). Ist ja alles nicht sprechend, hat sich aber im Laufe der Zeit bei Millionen etabliert.
Von Geheimwissen zu reden ist, denke ich, auch nicht korrekt. Es gibt tonnenweise Literatur (freie und kommerzielle) zu Java und auf den ersten 30 eiten kommt fast immer was zu Deklarationen von Variablen. Da muss man nicht erst 500 Seiten lesen.

Was mich aber immer öfters auch aufregt, ist die "reißerische" Aufmachung der Titel. Erst mal ist alles Sch..., funktioniert nicht, Mistkram...
Und dann wundert man sich, wenn zurückgepflaumt wird.
Aber das ist nur meine Meinung und die interesiert mal wieder keinen ;-)
 
Bei mir kommt es oft vor, dass ich auf dem Weg zu einem ganz anderen Ziel vor einem Problem stehe, dass ich schnellstmöglich beseitigten will und auch nicht wissen, warum die Lösung funktioniert. Ich will das Problem weg haben und weitermachen.

Genau das geht beim Programmieren nicht - es ist quasi ein Widerspruch in sich. Es ist als würdest Du sagen ich kann keine Differentialgleichungen lösen, manchmal will ich sie einfach nur lösen und das Ergebnis nehmen und weitermachen. Das geht eben nicht. Was geht, ist das Du sie Dir lösen läßt von jemandem der DGLs beherrscht. Deswegen ist das was Du da hast ein Konsumentenverhalten, das ist auch völlig o.k. Ich fahr mein Auto auch nur und kann es nicht reparieren - ich beschwere mich aber auch nicht darüber das ich es nicht kann sondern frage Fachleute bei Problemen. Um ein Problem per Programmierung lösen zu wollen mußt DU halt erst lernen ( Algorithmen, Datenstrukturen, Objektorientiertheit, Designpatterns,...). Du mußt längst nicht alles können am Anfang, aber ein Grundwissen aneignen das muß sein.

Für Konsumenten gibt es sowas wie Excel, da kann man mit wenig Grundwissen relativ viel mit berechnen. Aber einfach so eine Lösung haben wollen und erwarten das einem das Wissen dafür mal kurz zufliegt ist halt nicht. Wenn Du Dir ein Minimalwissen aneignen willst um hier und da ein paar Problemchen selbst per Programmierung lösen zu können, dann setze Dich mit Ruby oder Python auseinander. Ruby z.B. kannst Du im Browserfenster lernen und schon in wenigen Minuten erste Dinge erlernen:

http://www.ruby-lang.org/de/documentation/quickstart/
 
Ich liebe solche Threads: Das Problem ist mit der ersten Antwort auf die Frage gelöst und es entbrennt eine herrliche Grundsatzdiskussion ;)

Ich lehne mich zurück und wir sehen uns wieder im Thread, warum Java keine unsigned-Datentypen kennt :D
 
Der Fehler war hier glaub ich einfach die Überschrift, wie wegus schon richtig anmerkte. Ton und Musik und so (nicht zu vergessen der kleine Bruder: Wald und Echo und so) :)
 
Der bezahlt, macht die Musik! :jaja:
 
Unlogisch ist eher, beim Rechnen wie selbstverständlich mindestens vom Zahlenraum ℚ ausgehen zu sollen, wenn nicht gar von ℝ, obwohl für bestimmte Zwecke ℤ ausreicht.

(sach ich ma so als Nichtprogrammierer)

Als Programmierer gebe ich dir Recht.

Wie in der Mathematik ist die Division in Java nur innerhalb eines Zahlenraums definiert. Es gibt keine Division mit ungleichen Typen. Wenn man sowas trotzdem schreibt, gibt es Konversionsregeln, nach denen im Wesentlichen der Wert im kleineren Zahlenraum in den größeren Zahlenraum überführt wird, ohne dass man das explizit hinschreiben muss; die eigentliche Division bleibt dann aber wieder innerhalb dieses Zahlenraums.

Wie in der Mathematik legt man fest, in welchem Zahlenraum man arbeitet. Bei Variablen geschieht dies durch die Angabe des Typs, int für ganze Zahlen in einem gewissen Rahmen, float für Fließkommazahlen in einem gewissen Rahmen mit einer gewissen, eingeschränkten Genauigkeit und so weiter. Bei Konstanten geschieht es über Suffixe, die an die Zahl angehängt werden. Für floats kann z.B. ein f angehängt werden. Ohne weitere Deklaration wird int angenommen.

Wie in der Mathematik wird auch Java nicht annehmen dass eine Zahl mit Punkt in der Mitte eine ganze Zahl ist, deshalb funktioniert auch das Anhängen von .0 an einen der Operanden. (Egal an welchen - die Konversionsregeln greifen vor der Division.)

Das einzige was hier unlogisch wäre, ist, wenn man annimmt, dass Java automatisch weiß, was man will und die Bedeutung der Operatoren sich dementsprechend dynamisch anpasst...

Geheimwissen ist das alles auch nicht, auch wenn es im Fall von Java tatsächlich oft so ist, dass die selben Regeln verwendet werden, die schon seit Äonen in anderen Sprachen verwendet werden. Es steht ja in der Spezifikation der Sprache. Wenn man die nicht lesen will muss man halt damit leben, dass beim Programmieren via Trial and Error eben auch mal die Errors vorkommen...
 
Genau das geht beim Programmieren nicht - es ist quasi ein Widerspruch in sich. Es ist als würdest Du sagen ich kann keine Differentialgleichungen lösen, manchmal will ich sie einfach nur lösen und das Ergebnis nehmen und weitermachen. Das geht eben nicht. Was geht, ist das Du sie Dir lösen läßt von jemandem der DGLs beherrscht. Deswegen ist das was Du da hast ein Konsumentenverhalten, das ist auch völlig o.k. Ich fahr mein Auto auch nur und kann es nicht reparieren - ich beschwere mich aber auch nicht darüber das ich es nicht kann sondern frage Fachleute bei Problemen. Um ein Problem per Programmierung lösen zu wollen mußt DU halt erst lernen ( Algorithmen, Datenstrukturen, Objektorientiertheit, Designpatterns,...). Du mußt längst nicht alles können am Anfang, aber ein Grundwissen aneignen das muß sein.

Recht hast Du, aaaber: Ich kann auch meinen Reifen wechseln, ohne in die Werkstatt zu fahren.

Es hakt doch meistenteils an zwei Dingen in einem Forum:
- Die einen sind im Laufe ihres Lern- und Forenlebens meilenweit vom Newbie entfernt. Die einen haben eine ganz spezielle Fragestellung zu einem tiefergehenden Sachverhalt und die anderen wollen zunächst einmal ein Ergebnis.
- Der Neuling stellt immer die falsche Frage aus einem ganz entscheidenden Grund: Er weiß ja überhaupt nicht wo er suchen muss; er kennt oftmals keinen terminus technicus, der sein Problem beschreibt und wo soll er dann eine Lösung finden?

Bestes Beispiel in einem Nachbarforum. Da lernt jemand Objective-C von Grund auf, formulierte vollkommen zutreffend die Ausgabe für eine Mac-Anwendung und stolperte über eine andere Form der Ausgabe auf einem iPhone. Reflexartig die Antwort: Das sind Grundlagen. Falsch! Die kann er. Das komplette Prozedere seiner Anwendung war so gut, dass die Mac-Anwendung inklusive Ausgabe korrekt lief, bei der iPhone-Umsetzung bis zur Ausgabe die Sache in Ordnung war und dann es an der Formatierung fürs iPhone scheiterte.
Natürlich hätte er suchen können. Aber dann brauchen wir auch keine Foren.
Ich selbst, der sich nun wirklich mit Büchern und teurem Fernlehrgang in Objective-C einarbeitet, habe eine klitzekleine Anwendung für die Firma fertig, die korrekt läuft. Bei der iPhone-Umsetzung gab es naturgemäß Probleme. Im Forum hier ein Problem geschildert = Null Antworten.

Nee, nee, Lernen OK. Bücher und Kurse auch OK. Aber wenn ich mir in mehr als 30 Jahren Datenbankentwicklung mal so ansehe (dBase, ich will mein dBase zurück :p), was tatsächlich von all dem Blödsinn in Gebrauch ist, dann sind dass vielleicht mal 60%. Der Rest ist derart speziell, dass es dafür schlicht und ergreifend keine Verwendung gibt. Aber gelernt hat es müssen.

Die Mitte ist es und wenn hier einige posten "Ich habe Recht"! OK! Was gewonnen?
Und wenn hier gepostet wird: Ich lass dann suchen, da ist der Lerneffekt da! OK, nur wer hat ihm einen Lehrauftrag erteilt?

Kritisch wird es, und dann aber schnell ab in den Biergarten und unter Menschen, wenn Selbstwertgefühl und Selbstüberschätzung aus Foren und damit aus der virtuellen Welt gezogen werden. Der reale Gewinn ist stets 0. Womit wir wieder eine Gleichung hätten :D

Andreas
 
  • Gefällt mir
Reaktionen: buk und wegus
Recht hast Du, aaaber: Ich kann auch meinen Reifen wechseln, ohne in die Werkstatt zu fahren.

stimmt mit dem entsprechenden Grundwissen halt! Ich stimme Deinem Beitrag zu, zusammen mit dem Hinweis auf das Hineinrufen und Hinausschallen aus einem anderen Posting! Es ist schwierig Online zu entscheiden ob einer Schwierigkeiten hat eine Frage zu stellen oder ob er dazu schlicht keine Lust hat und einfach eine Antwort ohne Frage will (auch diese Patienten gibt es im Web). Wenn sich beide Seiten bemühen dann klappt es auch.

Den Lehrauftrag gibt es hier übrigens per se, denn die Foren sind Hilfe zur Selbsthilfe hier, wer also fragt sollte lernen wollen und wer hilft, der erwartet auch genau die Bereitschaft. In letzter Zeit häufen sich halt Threads mit Titeln wie diesem, mit Pauschalen wie "Java ist eh langsam" oder "Xcode ist doof" und dies gepaart mit einem ehrlichen Desinteresse des Fragestellers. Da nimmt es nicht Wunder wenn ein interessierter Fragesteller mit aggressivem Threadtitel mal in der falschen Schublade landet!

dBase, ich will mein dBase zurück

:motz: es ist mir in 2010 (!) gelungen den letzten DBASE-User davon zu überzeugen das man Adressen heute in einer Firma sinnvoller verwalten und Texte denn doch besser mit Office-Tools schreiben kann und ich bin froh kein DBASE mehr hier rumschleppen zu müssen! ;)
 
kannst du "Fernlehrgang" mal näher beschreiben?
Mich würde der Ablauf, die Kosten und der Anbieter interessieren.

Der Kurs, eben auch für die Firma:
http://www.sgd.de/informatik/c-programmierer-windows.php
Kosten 1995 Euro.

+ Amin Negm-Awad "Objective-C und Cocoa"
+ Sebastian Meyer + Torben Wichers: "Objective-C 2.0

Strammes Programm, inklusive Wochenenden und jeden Tag 5 Stunden dafür freigestellt. Inklusive Wochenenden.

Erste Anwendung: "Kostenrechner Datenbankerstellung" für die MacBooks fertig. Läuft. Aufs iPhone portieren: Na ja, da haben auch meine Grundlagen nichts mehr mit zu tun. Da kaufe ich gerade alle Bücher via Amazon auf und suche mir dann das aus, was die Differenzen zur Mac-Programmierung auch wirklich zu erklären weiß.

Wichtig ist: Ich darf mir meine Denke für die DB-Entwicklung nicht versauen. Bei derart viel Input, ich bin 49!, vermischen sich schon die Welten. :)

Viele Grüße
Andreas
 
Ah, ich dachte es handelt sich um einen Fernlehrgang speziell für Objective-C
 
Den gibt es meines Wissens nicht.
 
Ebendeshalb hatte ich ja nachgefragt :)
 
Wurde das Problem nicht auf Seite 1 im 2. Post schon gelöst? :confused:
 
ja sicher, aber davon hat doch der Rest nix zum Streiten :noplan: :D
 
Ist so ähnlich, wenn Bud Spencer und Terence Hill in ne Kneipe "nur" zum Essen kommen ...

Nur zum Essen kommen die nämlich nie! :jaja:
 
Es soll auch Leute geben, die zu einem Problem einfach nur eine Lösung suchen ohne das Hintergrundwissen lernen zu wollen …
Im konkreten Falle wurde die Lösung ja in #2 gegeben :D

Ansonsten ist der Ansatz, nicht das Hintergrundwissen aufzubauen (oder wie hier aus alten Mathematikzeiten wieder ins Gedächtnis zu rufen) bereits mittelfristig Unökonomisch:

Wer versucht, die Prinzipien zu erkennen, die hinter den Dingen stehen, kommt im Zweifel eher zu einer eigenen Lösung; kann zumindest beim Stellen der Frage an Andere jene Frage genauer formulieren – eben in dem Wissen, dass es da wohl einen Grund geben muss, den man im Moment nur nicht erkennt und die Lösungsmethode leider nicht weiß; und nicht voreingenommen einen Programmfehler postuliert, wo keiner ist.

Bei meinem Lieblingsthema MS-Office gibt es hier im Forum auch zuhauf Postings mit dem Tenor, MS für das jeweilige Zipperlein verantwortlich zu machen.

Wenn dann versucht wird, die Zusammenhänge erhellen, warum das Eine oder Andere nicht oder nicht so funktioniert, wie gewünscht, oder aus systemischen Gründen gar nicht so funktionieren kann, kommt auch gerne mal die Antwort, dass "interessiert mich nicht".

Schönes Beispiel sind die Konflikte von MSO mit Apples Spaces, die mit Limitationen in Apples eigenen APIs zusammenhingen. Oder jene Beiträger, die Outlooks Unvermögen, Kalender etwa mit MobilMe zu synchronisieren, nicht auf kommende Änderungen bei MobilMe projizieren (selbst nachdem sie davon wissen), sondern wie selbstverständlich auf MS; und dabei nicht soweit über den Tellerrand kucken, zu erkennen, dass jene Apple-seitigen Änderungen auch für andere Kalenderanwendungen Auswirkungen haben würden, auch wenn nicht MS auf dem Typenschild steht.

Jenes zur Schau getragene Desinteresse halte ich für irgendwo zwischen arrogant und borniert angesiedelt.
 
Jein.
Es ergibt sich, will mal sagen, zwingend –und das ganz ohne Programmiersprachenvorschädigung– aus dem Mathematik-Wissen der Sek I, dass es Zahlenräume gibt, die –und hier der tatsächlich nötige Denktransfer– irgendwie auch bei der Variablendefinition in Programmiersprachen abgebildet werden müssen.
Ja und was haben jetzt Variablendefinitionen mit dem Thema zu tun?

Es geht um die Wirkung von Operatoren und 4/5 spuckt spätenstens nach der Grundschule eine Rationale Zahl aus. Ich weiß nicht mehr wie das in der Grundschule war, aber das hieß da glaube ich „nicht teilbar“. Das entspräche dann meinem Alternativvorschlag, dass das Programm dann einfach abstürzen sollte.


Und genau deshalb muss man LERNEN, wie das mit dem Programmieren und den Eigenwilligkeiten der jeweiligen Sprachen so ist.
Thema verfehlt. Was hat das damit zu tun, ob etwas logisch und intuitiv einleuchtend ist? Richtig, nichts.

ich finde es beeindruckend mit welcher Chuzpe sich hier immer mehr Leute äußern, die nicht vom Fach sind - teilweise keine Ahnung vom Thema haben - aber wie der Threadersteller ganz genau wissen das in jedem Fall ein Fehler vorliegt!
Geht es nicht genau darum? Wenn man nicht vom Fach ist, kann man doch am ehesten beurteilen, ob irgendein Verhalten überraschend ist oder nicht.
 
Zuletzt bearbeitet:
Zurück
Oben Unten