Beiträge von a9bejo
-
-
Zitat von SuperMario
Hallo ihr!
Ich tue mich schwer mit den Mengenoperationen in Java!
Ich soll zu jeder der folgenden Methoden eine Datenstruktur nennen, bei der diese Methode besonders effizient implementiert werden kann und das dann auch noch meine Wahl begründen.
Ich wäre für hilfe sehr dankbar!Lies dir mal diese Übersicht über die wichtigsten Datenstrukturen durch.
im package java.util findest Du zu den meisten die dazugehörigen Implementationen in Java.
Wenn Du dann noch weitere Fragen haben solltest, einfach nochmal nachfragen.
Vielleicht sind die ja dann auch etwas detaillerter: Einfach nur Deine Hausaufgaben posten hat ja bis jetzt auch nicht funktioniert
liebe grüsse, Benjamin Ferrari
-
Zitat von thongsong
Ist hier vielleicht unpassend, aber ich habe da mal trotzdem eine Frage. Wo bekomme ich eine Kurzreferenz zu Pseudocode. Oder kann mir jemand eine didaktisch wertvolle Literatur zu diesem Thema vorschlagen?:confused:
Es gibt meines wissens nach keine spezifizierung, wie pseudocode auszusehen hat. Wenn es so etwas geben würde, währe das 'pseudo' ja nicht mehr zutreffend.
Die einizge Vorraussetzung ist, das der leser versteht was du meinst.
Also z.b:
ist alles gültiger pseudocode
-
ich denke was du suchst ist JTabbedPane.setSelectedIndex(int)
Java
Alles anzeigenimport java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; /* * Created on 05.06.2004 * */ /** * @author benjamin ferrari * */ public class Frame1 extends JFrame { private static final String NL = System.getProperty("line.separator"); private JTabbedPane tpane; private JTextArea resultArea; public Frame1() { JPanel contentPane = new JPanel(); JPanel formTab = new JPanel(); JPanel resultTab = new JPanel(); resultArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(resultArea); JButton button = new JButton("search"); tpane = new JTabbedPane(); this.setContentPane(contentPane); contentPane.setLayout(new BorderLayout()); formTab.add(button); resultTab.setLayout(new BorderLayout()); resultTab.add(scrollPane); tpane.addTab("Tab 1", formTab); tpane.addTab("Tab 2", resultTab); contentPane.add(tpane); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { searchAction(); } }); } private void searchAction(){ //search... //select results tab: tpane.setSelectedIndex(1); //show search results resultArea.append("next searchresult "+NL); resultArea.append("next searchresult "+NL); resultArea.append("... "+NL); } public Dimension getPreferredSize() { return new Dimension(200, 200); } public static void main(String[] args) { Frame1 frame = new Frame1(); frame.pack(); frame.setVisible(true); } }
-
-
Ich habe gute Erfahrungen mit 'Programming C# ', von Jesse Liberty gemacht. Wird von O'Reilly publiziert und sowohl die Sprache C#, als auch die .NET Platform wird sehr gut erklährt.
Der Author verlangt zwar gleich zu Beginn zumindest Grundkenntnisse in einer höheren Programmiersprache. Beim Lesen hatte ich aber eher den Eindruck, das es auch ohne solche gegangen währe. Ich habe die ersten Kapitel nur überflogen, aber es wurden dort die Grundlagen ausführlich beschrieben.
Ich bin sicher, das man auch als Programmieranfänger gut zurecht kommt.Wenn es Dir doch zu schwer ist, liest Du einfach die ersten Kapitel aus einem Online Tutorial (wie das, dass winf.wol gepostetet hat), und versuchst es dann noch einmal.
@c# in a nutshell: hatte ich mir auch gekauft, ist aber meiner Meinung nach eines der schlechteren Werke aus der '...in a Nutshell' - Reihe:
Eine API Referenz findet man bei MSDN viel ausführlicher (und vor allem aktueller), und wenn ich von einer anderen Sprache/Platform umsteige, bin ich mit der C# Language Spezification erstmal besstens bedient.
Ich hab das Buch bis jetzt so gut wie nie verwendet.Es gibt übrigens auch 'C# for Java Programmers', das fand ich auch nicht schlecht.
-
Zitat von CommanderMorane
was netbeans anscheinend nicht kann ist zu checken in welchem verzeichnis das ganze zeug liegt
wenn ich das verzeichnis test mounte und darin files ablege und dann ins unterverzeichnis test2 wieder welche reinlege dann geht das zb nicht wenn ich sage
package test.test2;
dann erkennt er es nicht
ich muss in test nochmal das verzeichnis test anlegen und dort das ganze reinkopieren, dann geht es.
trotzdem thx für die antworten
mfgso hatten wir es ja auch geschrieben: man mounted den order(bzw. jarfile) mit dem source, nicht das package selbst.
-
Zitat von CommanderMorane
hi,
muss man bei netbeans irgendwie noch etwas für packages konfigurieren? ich habe meine packete und klassen meiner meinung nach richtig definiert aber er sagt mir dauernd das er ne klasse ned findet obwohl sie da ist?
thx schonmal
mfg
reneIst schon eine weile her, aber so weit ich mich erinnere muss man lediglich den ordner oder ein .jar mit den entsprechenden packages/klassen mounten und das wars dann.
Hab aber auch schon ein Jahr lang nicht mehr reingeschaut und laut IX hat sich seitdem viel getan...
-
Zitat von mika22
Ich brauche ein beispiel wie Tehnische Handbuch geschrieben sein soll.(programmiersprache,unterstüzte betribssysteme-Windows,unterstüzte datenbank,libraries,instalazion und start des programmes)schickt mir bitte e-mail:lolita22@chello.at
-
Oft dreht sich eine Frage um ein konkretes Programm(fragment), das entweder nicht so reagiert wie gewünscht, oder gar nicht erst compiliert.
Leider wird der entsprechende Code oft einfach mit copy&paste in den Beitrag gepostet. Solche Programme sind aber für andere Forenbesucher oft nur sehr umständlich zu verstehen und zu testen.
Nur wenige haben Zeit und Lust, sich mit solchen Problemen lange und gründlich auseinanderzusetzen.Um möglichst viele, schnelle und gute Ratschläge zu erhalten, sollte man seinen Code vor dem Posten wie folgt optimieren. Besser noch ist es, ein eigenständiges Beispielprogramm zu schreiben, das sich ohne weiteres kompilieren und ausführen lässt und das Problem demonstriert.
Wem das zu umständlich oder zeitaufwendig ist, der hat sich offensichtlich selbst noch nicht lange genug mit dem Problem beschäftigt und sollte die Arbeit nicht auf andere übertragen.
-
Das Problem sollte detailliert beschrieben werden.
[INDENT]- Was erwarte ich als Ausgabe?
- Welche Ausgabe erhalte ich tatsächlich?
- Wenn es eine Fehlerausgabe gibt, bitte immer die gesamte Fehlermeldung posten.[/INDENT] -
Alles entfernen, was nicht zum Problem gehört.
[INDENT]Alle Methoden/Funktionen/Variablen/Klassen/...,die das Problem offensichtlich nicht verursachen, gehören nicht in den Code. Nichtrelevante Methoden können dabei entweder gelöscht, oder durch Dummy-Methoden ersetzt werden.
Im Zweifelsfall entfernt/ersetzt man eine Methode erst und prüft so, ob sie für den Schaden (mit)verantwortlich ist.
Oft ist es am einfachsten, aus dem fehlerhaften Programmfragment ein eigenständiges Beispielprogramm zu machen und das dann zu posten. Oft findet man den Fehler dabei ganz von selbst. [/INDENT]
-
Man sollte den Code testen können.
[INDENT]Am besten analysiert man ein Programm, indem man es laufen lässt. Der gepostete Code sollte ohne viel Arbeit mit copy&paste in einen Editor/IDE geladen und getested werden können.
Bitte niemals Code direkt in den Beitrag schreiben, sondern erst testen und dann in den Beitrag kopieren! Nichts ist ärgerlicher, als wenn man Zeit an Programmcode verschwendet, weil sich irgendwo ein Flüchtigkeitsfehler eingeschlichen hat.Manchmal ist das Problem aber, das sich der Code eben nicht compilieren und ausführen lässt.In diesem Fall sollte man zumindest die genaue Fehlermeldung zum Artikel hinzufügen.
Auf jeden Fall aber sollten externe Ressourcen, wie zum Beispiel eine Datei oder eine Datenbankverbindung, möglichst durch dummy-Funktionen ersetzt werden.[/INDENT]
lg, bejo
---------------------
kafkaesk -
Das Problem sollte detailliert beschrieben werden.
-
Zitat von @xid
also ich beschreib mal mein problem:
wenn ich die methode Temperatur(anz,von) starte und dann durchlaufen lasse mit anz = 50 von = -444 gibt es mir 0 aus. wenn ich es aber debuge, dann steht im temp[i] immer ein gültiger wert drinnenhmm, die angabe sieht mir nach spengergasse, Behringer aus ?
zu deiner frage:
in der funktion Temperatur(int,int) erhöhst du _erst_ den index des arrays, und gibst _dann_ den wert des arrays an dieser stelle aus. Das ist also der wert _nach_ dem zuletzt beschriebenen. Und das ist 0, da die elemente eines arrays immer mit dem default wert initialisiert werden, und das ist bei einem integer 0. wenn du i++ hinter den print befehl setzt, bekommst du die richtigen werte.
ansonsten ist dein code wirklich unleserlich, redundant und alles andere als modular. Für einen Einsteiger nicht ungewöhnlich, aber ich würde Dir empfehlen, viel programmcode von anderen Programmierern zu studieren (aus büchern oder open source programmen oder von kollegen), weil sich das allein durch selbst programmieren nicht bessert.
Zur Verwirrung führen zum Beispiel schon die Bezeichnungen deiner Klasse und Methoden:
Deine Klasse heisst 'Temperatur', aber eine Temperatur besitzt sicher keine Liste von Temperaturwerten. Und Du hast eine Methode, die _auch_ Temperatur heisst. Nicht nur das es verwirrend ist, weil jeder erstmal denkt das ist ein Konstruktor. Eine Methode sollte auch immer, wie der Name schon andeutet, die darin enthaltene action beschreiben. Also z.B 'addRandomTemparatureValues' oder sowas.
Methoden beginnen laut Convention übrigens mit einem kleinbuchstaben (zumindest in Java).Ich habe deinen code nicht ganz gelesen und bin mir nicht sicher, was da eigentlich machen soll, trozdem hier eine Temperaturliste mit einer Methode, die sie mit zufallswerten füllt.
vielleicht hilft dir das ja weiter:
Java
Alles anzeigenimport java.util.Iterator; import java.util.Random; public class Test { public static final int MAXIMUM = 50; public static final int MINIMUM = -444; public static final int NUMBER_OF_ELEMENTS = 50; /*programmstart*/ public static void main(String[] args) { TemperaturList tm = new TemperaturList(); tm.addRandomValues(NUMBER_OF_ELEMENTS, MINIMUM, MAXIMUM); /*Ausgabe:*/ for (Iterator iter = tm.iterator(); iter.hasNext();) { Temperatur temperatur = (Temperatur) iter.next(); System.out.println(temperatur.getValue()); } } } /*liste f?r temperaturwerte:*/ class TemperaturList extends java.util.ArrayList { private Random rand = new Random(System.currentTimeMillis()); /** * f?ge 'anz' temperaturen mit werten zwischen 'minimum' und 'maximum' * in die liste ein: * */ public void addRandomValues(int anz, int minimum, int maximum) { for (int i = 0; i < anz; i++) { int value = rand.nextInt(Math.abs(maximum)) - rand.nextInt(Math.abs(minimum)); this.add(new Temperatur(value)); } } } class Temperatur { private int value; public Temperatur(int value) { this.value = value; } public int getValue() { return this.value; } public void setValue(int value) { this.value = value; } }
-
falls Du noch hilfe brauchst, hier ein paar tips (habe eclipse 3.0 beta) :
Zitat von JohnFooWo finde ich die Variable, die im Kommentar nach @author eingefügt wird? Möchte sie ändern.
window->preferences->java->code generation->code and commentsund :
window->preferences->java->editor->templates
Zitat von JohnFoo
Ich möchte die Code-Formatierung so umstellen, dass jede Membervariable ein Präfix erhält (_membervariable). Wo kann ich das umstellen?
window->preferences->java->code generation->namesZitat von JohnFoo
Kann man wie in Visual Studio Membervariablen und Methoden hinzufügen? Wenn ja, wie?Ich weiss nicht, wie man das im VS macht.
Klingt aber nicht nach einem nützlichen feature... -
Mann kann kleine-mittlere webprojekte sicher fein mit PHP oder Perl machen.
tausende programmierer machen das und fahren gut damit.Ich würde dir (und jedem andern) aber empfehlen doch auch andere scriptsprachen in die überlegung einzubeziehen. Die am meisten verwendeten lösungen sind nicht unbedingt die besten.
ich bin kein perl experte, aber nach dem tutorial das ich gelsenen habe und dem was ich so höre, ist es einwahrer Wartungsalbtraum. Und das lese ich sogar in beiträgen wo die sprache ansonsten beworben wird. Wenn ich mich irre, lasse ich mich da gerne eines besseren belehren.
für jedes sprachkonstrukt gibt es offenbar mehrere varianten, was die lesbarkeit von perlcode oft völlig ruiniert.
Und mit PHP habe/musste ich jahrelang arbeiten: die funktionen sind völlig uneinheitlich benannt (zum beispiel 'str_replace', 'substr_replace', 'parse_str') , es gibt nur eine wsehr halbherzige implementierung von objektorientierten sprachelementen (geschweige denn das die api darauf aufbaut) und eine trennung in logic und view ist mühsam und gelingt auch meistens nur halbherzig. Soweit ich weiss wurde PHP damals entwickelt um eine saubere alternative zu perl bereitzustellen. Aber wer seine ziele so niedrig setzt...
Wenn man sich ein gästebuch schreibt ist das vielleicht noch egal (dafür kann man dann aber auch _irgentwas_ nehmen), aber sobald der code etwas wächst, stellt einem PHP plötzlich lauter steine in den weg.
Mein favorit ist hier eindeutig python. Python wird zwar nicht so häufig benutzt wie Perl oder PHP, gerade in den letzten Jahren hat es hat es sich aber sehr stark ausgebreitet. das framework von google läuft zum beispiel mit python, genauso wie die map-services von yahoo
mit python kann man auch sehr schnell und unkompliziert entwickeln, aber wenn das projekt dann doch anwächst skaliert es meiner Meinung nach _viel_ besser.Ein grund, warum manche vor webprogrammierung in python abschrecken ist weil sie man nach einer recherche oft ersteinmal auf zope und dann auf webware stossen.
Dass sind nämlich 2 webframeworks, die zwar sehr mächtig sind, aber eher als application server ala websphere/weblogic konzipiert sind (sozusagen als kleiner bruder zu j2ee). Für ein kleines projekt wirken die dann als würde man mit kanonen auf spatzen schiessen.ich verwende seit einiger zeit python mit SPYCE und dass will ich hier weiterempfehlen:
Mit spyce kann man pythoncode in html einbetten,die installation, genau wie man es von PHP gewöhnt ist. Es sind aber auch taglibraries a la JSP möglich und mit den sog. 'Spyce lambda's' kann man die view ganz schnell und doch sauber von der logic trennen. Ansonsten hatt man natürlich die ganze vielfalt von python APIs zur verfügung...
Und das sich python nicht nur für webentwicklung eigenet ist wahrscheinlich bekanntPS: die IX hatte kürzlich einen netten artikel über spyce, ich glaube teilweise steht der auch online.
-
Zitat von marX
Also versteh das jetzt bitte nicht falsch, aber dieser code sieht nicht danach aus, als ob du java programmieren könntest!!
Nein, Es sieht so aus, als würde er es gerade lernen.
Er will uns seinen code nicht verkaufen, er stellt fragen darüber.Zitat von marX
als erstes brauchst du mal einen konstruktor für die klassen!
jeder der beiden klassen in seinem code _hat_ bereits einen konstruktor.
wenn er nur einen leeren kontruktor ohne parameter benötigt, wieso sollte er ihn dann extra anschreiben?Zitat von marX
2. brauchst du keine "main" routine zu erstellen....
Wenn er Sum.class als Applikation starten will (das ist hier offensichtlich der fall), dann braucht er auch die main-methode.Zitat von marX
3. würde ich schon aus gründen der übersichtlichkeit jede klasse in eine eigene datei stecken....
das tut er doch!Sicka macht offensichtlich gerade seine ersten Schritte als Programmierer. Wenn er gerade lernt, wie er java-source compiliert, muss er noch nichts über OOP design wissen ( Sicka: 'LeseZahl' ist keine gültige bezeichnung für eine klasse).
-
Zitat von Sicka
Jetzt funktioniert es endlich.
Ich habe die ganze Zeit die Klassen getrennt kompiliert, d.h. zuerst:
javac LeseZahl.javaund dann:
javac Sum.javaDas funktioniert nicht. Wenn ich in einem Befehl beide Klassen schreibe:
javac LeseZahl.java Sum.java
funktioniert es. Das war mein Fehler.das ist seltsam! ob getrennt oder gemeinsam compiliert macht eigentlich keinen unterschied! Hauptsache bei 'javac Sum.java' findet der Compiler die 'LeseZahl.class' im classpath.
:confused: -
Zitat von http://www.mysql.com/products/commercial-license.html
MySQL Commercial LicenseThe Commercial License is an agreement with MySQL AB for organizations that do not want to release their application source code. Commercially licensed customers get a commercially supported product with assurances from MySQL. Commercially licensed users are also free from the requirement of making their own application open source.
When your application is not licensed under either the GPL-compatible Free Software License as defined by the Free Software Foundation or approved by OSI, and you intend to distribute MySQL software (be that externally to customers or internally within your organization), you must first obtain a commercial license to the MySQL product.
Typical examples of MySQL distribution include:
*Selling software that includes MySQL to customers who install the software on their own machines.
*Selling software that requires customers to install MySQL themselves on their own machines.
*Building a hardware system that includes MySQL and selling that hardware system to customers for installation at their own locations.
Specifically:
*If you include the MySQL server with an application that is not licensed under the GPL or GPL-compatible license, you need a commercial license for the MySQL server.
*If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries.
* If you include one or more of the MySQL drivers in your non-GPL application (so that your application can run with MySQL), you need a commercial license for the driver(s) in question. The MySQL drivers currently include an ODBC driver, a JDBC driver and the C language library.
* If you distribute MySQL Software within your organization, you should purchase a commercial license.
*GPL users have no direct legal relationship with MySQL AB. The commercial license, on the other hand, is MySQL AB's private license, and provides a direct legal relationship with MySQL AB.
With a commercial non-GPL MySQL server license, one license is required per database server (single installed MySQL binary). There are no restrictions on the number of connections, number of CPUs, memory or disks to that one MySQL database server. The MaxDB server is licensed per CPU or named user.
Non-Profits, Academic Institutions, and Private Individuals
If you represent a non-profit organization or an academic institution, we recommend you publish your application as an open source / free software project using the GPL license. Thereby, you are free to use MySQL software free of charge under the GPL license. We believe that if you have strong reasons to not publish your application in accordance with the GPL, you should purchase commercial licenses. Note that non-profits can apply for free commercial licenses, which will be liberally granted.
If you are a private individual you are free to use MySQL software for your personal applications as long as you do not distribute them. If you distribute them, you must make a decision between the Commercial License and the GPL.
Please note that even if you ship a free demo version of your own application, the above rules apply.
Ich denke, dass Verkaufen von Software, für die man mysql zusätzlich installieren muss, ist hier der entscheidende Punkt:
Wenn ich meine applikation nämlich so aufbaue, dass sie ausser mit mysql noch mit irgendeinem anderen (kommerziellen) DBMS läuft, muss ich meinen eigenen code _nicht_ mehr unter die GPL stellen. Also offiziell auch immer brav für Oracle 10g entwickeln
Oder übersehe ich da jetzt etwas?
JohnFoo:
Ich fand den Artikel(IX) auch sehr, gut, die Rechte und Pflichten bei der Lizensierung waren da aber (fast) kein Thema. -
Zitat von Sicka
Bei dir funktionieren die Klassen, so wie sie sind?
so lautet die genaue Fehlermeldung beim kompilieren:Sum.java: In class `Sum':
Sum.java: In method `Sum.main(java.lang.String[])':
Sum.java:9: Undefined variable or class name: `LeseZahl'.
................int zahl = LeseZahl.einlesen();
..............................^
1 erroram code liegt das problem sicher nicht.Der ist (von der syntax her betrachtet) völlig korrekt.
- compilierst du Sum.java auch sicher _nach_ LeseZahl.java?
- hast du nicht vielleicht noch irgendwo eine 'package' anweisung in deiner klasse stehen?
- Hast du vielleicht irgendwo bei den datei- oder klassennamen gross/kleinbuchstaben verwechselt?am besten nochmal Schritt für Schritt:
Datei: 'Sum.java' :
Code
Alles anzeigenpublic class Sum { public static void main(String args[]) throws java.io.IOException { int n = 0; int zahl = LeseZahl.einlesen(); System.out.println(zahl); } }
Datei: 'LeseZahl.java' :
Java
Alles anzeigenimport java.io.BufferedReader; import java.io.InputStreamReader; public class LeseZahl { public static int einlesen() throws java.io.IOException { System.out.println("Zahl eingeben"); BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); int x = Integer.parseInt(din.readLine()); return (x); } }
in der shell:
-
Zitat von Sicka
Ich möchte ein Javaprogramm mit 2 Klassen schreiben. Dabei muss ichjede Klasse als eigene Datei speichern, Dateiname = Klassenname, oder?
Das ist nicht ganz richtig:Es darf nur eine einzige Klasse mit dem Schlüsselwort 'public' pro datei vorhanden sein, und die muss dann genauso heissen wie die datei.
Du darfst aber beliebig viele weitere Klassen definieren, die nicht public sind:
-
Zitat von hal
Nennt sich "Java Bytecode", und es gibt keine physikalischen Prozessoren, die das direkt ausführen können, ich glaub wegen der Komplexität (es waren mal welche in Planung, das wurde aber alles wieder verworfen).
Soweit ich weiss werden die meisten neueren handies mit java-optimierten prozessoren ausgeliefert.
Es fragt sich natürlich, was man hier wirklich unter 'optimiert' versteht, aber angeblich wurden 2003 mehr java optimierte prozessoren verkauft als intel modelle.
ich hab die quelle leider verschlampt (ich glaub das war ein slashdot artikel), ich suche aber weiter.
-
vielleicht bin ich jetzt auf dem holzweg, aber ich glaube ihr habt euch misverstanden, weil ihr dem begriff 'memory leak' eine unterschiedliche bedeutung gebt:
marX meint damit, das ein objekt im speicher verbleibt, ohne das eine referenz auf das objekt existiert (klassisches c++ problem, wenn man nicht gescheit aufräumt). Das Objekt bleibt dann bis zum Programmende im Speicher, es entsteht ein Leck => Memory Leak.
In Java kann das aber nicht passieren, es sei denn durch einen riesen bug im gc.
Mad_Max spricht glaub ich von Memory Leaks im Sinne von unnötig hohem Speicherverbrauch, der durch designfehler irgendwo im programmcode entstanden ist. Darum will er auch Infos zu den im originalposting erwähnten tools, um die betreffenden Stellen zu finden und den code zu optimieren.
habe ich damit recht oder hab _ich_ jetzt am ziel vorbeigeschossen?
die tools kenne ich übrigens alle nicht (JProbe vom Namen her), wenn du(Mad_Max) die noch testest wäre es nett, wenn die resultate posten könntest.
PS: Ich versuche schon seit wochen, bei solchen postings nur noch in kleinbuchstaben zu schreiben, das ist viel schwerer als man glaubt