Welche Sprache für Anfänger?

AW: Welche Sprache für Anfänger?

Jo ich schau bei allen Sprachen eigentlich auch mal gern bei Openbooks nach, wenn ich keine Bücher gerade da hab :)
 
AW: Welche Sprache für Anfänger?

Habe mir ja mittlerweile auch das Open-book von "Java ist auch eine Insel" gezogen:

Galileo Computing :: Java ist auch eine Insel (8. Auflage)

Geht das dann am Ende auch als Nachschlagewerk?
Wie hier schon mehrfach erwähnt wurde ist es sogar DAS Nachschlagewerk für Java.
Ich hab zwar auch die "Vollversion" im Regal stehen(hat sich meine Mum mal gekauft), benutzen tue ich aber eigentlich nur die Onlineversion. Erstere ist einfach viel zu dick und bringt auch keine Suchfunktion mit.
 
AW: Welche Sprache für Anfänger?

Programmieren auf Papier tu ich maximal zwei mal im Jahr und dabei sind auch keine Bücher erlaubt ;) .
 
AW: Welche Sprache für Anfänger?

Da das Buch, was ich mir gekauft habe, mit den Prog1Tools arbeitet (ansammlung von Befehlen, die den Scanner ersetzen, z.B. readDouble), wollte ich die auch benutzen aber Eclipse kennt die nicht und streicht mir die immer als falsch an (also alle Befehle, wo Prog1Tools bzw. IOTools drin vorkommt). Aber mit der Eingabeaufforderung funktionieren die Programme (habe die passende Umgebungsvariable zu den Prog1Tools ja gesetzt).

Gibts irgendeine Möglichkeit, dass Eclipse auch diese Prog1Tools bekannt zu machen, dass ich also auch in Eclipse diese benutzen kann und Eclipse mir diese nicht immer als falsch anstreicht?



EDIT: Wollte jetzt auch einen Rechner programmieren, der einem errechnet, wie viele km man jährlich Fahren muss, damit sich ein Diesel lohnt. Die Gleichung in der Mathematik zur bestimmung der Kilometerleistung, bei der beide gleich viel kosten würden wäre ja:

Steuern von Auto 1 + (km-Kosten von Auto 1 * x) = Steuern von Auto 2 +(km-Kosten von Auto 2 * x)

Würde man es auflösen käme dann als x ja die benötigte Kilometerleistung/Jahr raus.


Habt ihr eine Idee, wie man das mit Java realisiert? Also das da die oben stehende Gleichung (natürlich mit passenden Variablen) aufgelöst wird und x errechnet wird?
 
Zuletzt bearbeitet:
AW: Welche Sprache für Anfänger?

Du musst Eclipse die benötigten Libs mitgeben bzw. den Pfad:
Properties vom Projekt -> Java Build Path -> dann z. B. Libraries. Hängt davon ab, als was der Kram vorliegt!
 
AW: Welche Sprache für Anfänger?

Würde man es auflösen käme dann als x ja die benötigte Kilometerleistung/Jahr raus.


Habt ihr eine Idee, wie man das mit Java realisiert? Also das da die oben stehende Gleichung (natürlich mit passenden Variablen) aufgelöst wird und x errechnet wird?
Nach x Auflösen musst du schon selbst.
Rechnen kann dann Java.

Ein Programm dass Gleichungen mit einer (oder mehr) Unbekannten löst könnte man zwar sicher auch schreiben, das wäre aber deutlich komplizierter und aufwändiger.
 
AW: Welche Sprache für Anfänger?

Ich kann ja schlecht auflösen, wenn die entsprechenden Daten vom Benutzer eingegeben werden sollen.


Wenn ich jetzt bei der Gleichung (Steuern von Auto 1 + (km-Kosten von Auto 1 * x) = Steuern von Auto 2 +(km-Kosten von Auto 2 * x)) mal Beispielswerte einsetzen würde, würde die dann z.B. so aussehen:


160 + (5.50 * x) = 300 + (4.0 * x)

Würde dann so gelöst werden:

160 + 5.50x = 300 + 4.0x | -4x
160 + 1.5 x = 300 |-160
1.5x = 140 |*2/3
x = 93 1/3


Dann würde also ab einer Jährlichen Leistung von ~93km der Diesel besser sein. Da das (mir bekannte Aquivalenz-umformungs-)Verfahren ja aber nur funktioniert, wenn man die Werte kennt, kann ichs ja so nicht in ein Programm schreiben, welches die Werte aus Eingaben nimmt.

 
AW: Welche Sprache für Anfänger?

Du kannst natürlich mit kleinen X anfangen, immer größer werden und abbrechen, wenn Seite 2 größer wird als Seite 1. Dann liegt die Gleichheit zwischen dem letzten und vorletzten Schritt. Das wäre wohl die Variante, die am wenigsten Code braucht.

Du könntest natürlich auch zwei Kilometerwerte nehmen, bei denen ein Mal Auto A und ein Mal Auto B mehr kostet. Dann guckst du, ob der Wert in der Mitte für Auto A oder B günstiger ist und schachtelst so immer weiter ein. Das ist von der Laufzeit deutlich besser, benötigt aber drei Mal so viel Speicher. (Bei der Menge ist das natürlich vollkommen egal…) Der Vorgang wäre dann so:
A=0, B=100; A=50, B=100; A=75, B=100; A=87.5, B=100; A=87.5, B=93.75 ; A=90.625, B=93.75; …;genau genug: Abbruch.
Das ist dann für einen Anfänger schon etwas schwieriger zu implementieren, aber lohnt sich wie gesagt von der Laufzeit.

Die Königsdisziplin wäre, den Bereich zwischen geschätztem oberen und unterem Wert in ein Grid aufzuteilen ähnlich wie im ersten Ansatz zu rechnen, nur alle Gridpunkte gleichzeitig zu berechnen. Damit erreicht man dann auf der Grafikkarte in einem Takt schon die Genauigkeit, für die der erste Ansatz hunderte Schritte braucht und der zweite Ansatz immerhin noch einige duzend.

PS: Gleichungen numerisch Lösen ist aber auf jeden Fall schon fortgeschrittene Programmierung. Zumindest, wenn man es ernst nimmt.
 
AW: Welche Sprache für Anfänger?

Ich kann ja schlecht auflösen, wenn die entsprechenden Daten vom Benutzer eingegeben werden sollen.


Wenn ich jetzt bei der Gleichung (Steuern von Auto 1 + (km-Kosten von Auto 1 * x) = Steuern von Auto 2 +(km-Kosten von Auto 2 * x)) mal Beispielswerte einsetzen würde, würde die dann z.B. so aussehen:


160 + (5.50 * x) = 300 + (4.0 * x)

Würde dann so gelöst werden:

160 + 5.50x = 300 + 4.0x | -4x
160 + 1.5 x = 300 |-160
1.5x = 140 |*2/3
x = 93 1/3

Natürlich kannst du die Gleichung allgemein lösen.
Du musst dir in dem Beispiel nur noch klar machen was was ist.

Im Endeffekt sollte dann das hier raus kommen (wenn ich mich nicht vertan habe):
x=(Steuern von Auto 2 - Steuern von Auto 1)/(km-Kosten von Auto 1 -km-Kosten von Auto 2)

Da du ja die vier Variablen hinter dem =-Zeichen vom User bekommst kann Java so x problemlos ausrechnen. ;)
 
AW: Welche Sprache für Anfänger?

…ob damit wirklich gemeint ist, dass er die Gleichung von Hand auflösen und dann nur noch den Quotienten in Java ausrechnen will? Das ist doch mal echt ein dämliches Anwendungsbeispiel: Programmiere einen Taschenrechner, der nur eine Aufgabe lösen kann. Die analytische Lösung von Hand berechnen und dann nur noch maschinell einsetzen ist doch langweilig. Dann lieber gleich maschinell arbeiten und nummerisch lösen.
 
AW: Welche Sprache für Anfänger?

Was alles? Du wirst es doch hinbekommen, mit ner Schleife linke und rechte Seite zu berechnen und die Ergebnisse zu vergleichen?

Naja, aber hier mal das einfachste mit Pseudocode:
Code:
x = Anfangswert mit Kosten für Benziner kleiner
ggf. gewünschte Schrittweite abfragen
solange Kosten für Benziner kleiner{
    berechne Kosten für Benziner bei x Kilometern Laufleistung
    berechne Kosten für Diesel bei x Kilometern Laufleistung
    verschiebe x um Schrittweite nach Rechts
}
Ausgabe: "Diesel lohnt sich ab x Kilometern. (Das Ergebnis kann um die eingegebene Schrittweite nach unten abweichen.)"
 
Zuletzt bearbeitet:
AW: Welche Sprache für Anfänger?

So hat soweit geklappt ;)

Aber mir ist noch etwas aufgefallen: Wenn ich ein Programm mit Eclipse schreibe und dann speichere und dann mit Eclipse wieder öffne, ist die automatische Korrektur aus, der streicht mir also nichts mehr als falsch an. Kann man das so einstellen, dass die Nachher auch noch an ist? So muss ich immer den Quellcode kopieren und ein neues Projekt machen und da dann einfügen.
 
AW: Welche Sprache für Anfänger?

Das ist aber ungewöhnlich... hast du mal versucht, das Programm dann zu starten? Normalerweise müsste der das dann nämlich nochmal checken. Visual Studio (bzw. C#) nörgelt manche Fehler auch erst beim Startversuch an...
 
AW: Welche Sprache für Anfänger?

Dieses automatische Anzeigen von Fehlern resultiert ja nur aus dem automatischen Kompilieren. Heißt, Eclipse ist so eingestellt, dass es nach jeder Änderung an dem File versucht, es zu übersetzen.

Vielleicht ist das bei dir einfach ausgestellt. Die Option müsste sich Auto Build nennen, wenn ich das richtig im Kopf hab.
 
AW: Welche Sprache für Anfänger?

Dieses automatische Anzeigen von Fehlern resultiert ja nur aus dem automatischen Kompilieren. Heißt, Eclipse ist so eingestellt, dass es nach jeder Änderung an dem File versucht, es zu übersetzen.

Vielleicht ist das bei dir einfach ausgestellt. Die Option müsste sich Auto Build nennen, wenn ich das richtig im Kopf hab.
Jo, genau das gibt's auch noch. Dann erstellt der das nämlich beim Speichern neu und checkt die Fehlerchen :D
 
Zurück