bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
|
Geschrieben am: 14.06.2011 um 20:43 Uhr
|
|
Hallo Zusammen,
ich muss eine Programmierung machen und hab da noch n paar Start-Probleme.
Wir sollen ein Programm in Java schreiben, welches naher zu einem Roboter passen sollen. Der Roboter soll theoretisch von Tür zu Tür fahren und vor jeder Tür kurz stehen bleiben. Vorher soll geprüft werden, ob er beladen ist.
Befehle wären z.B bot.fahre, bot.rechts, bot.warte
ich hab aber immer und überall eine Fehlermeldung
Ich weiß aber auch nicht, wie man sowas Deklariert :(
Wäre dankbar für jede Hilfe...
wenn euch noch ne Info fehlt, einfach bescheid geben :)
DANKEEEEE
public class Roboter {
String bot;
int fahre;
String rechts;
String links;
int warten =30;
int warte =5;
boolean istbeladen = true
while (bot.istbeladen()) {
bot.fahre(-400);
bot.rechts();
bot.fahre(300);
bot.warten(30);
bot.rechts();
bot.fahre(250);
}
while (bot.istbeladen(false)) {
bot.warte(5);
}
}
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
eddy_s - 38
Anfänger
(offline)
Dabei seit 11.2010
6
Beiträge
|
|
Geschrieben am: 14.06.2011 um 20:52 Uhr
|
|
Wenn du einen wert in klammern übergibst, muss du dazu eine methode schreiben. also in die klasse "roboter" zum beispiel für bot.fahre(-400) die methode: public void fahre(int){ ... }
dann brauchst noch nen konstruktor und ne main-methode in der du dann alles ausführst.
|
|
Hard_Eddy
Halbprofi
(offline)
Dabei seit 02.2010
350
Beiträge
|
|
Geschrieben am: 14.06.2011 um 21:01 Uhr
|
|
ich würde der Einfachheit halber mit Parent und Child arbeiten. Das macht die Klasse übersichtlicher
Ja, ich weiß.
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
|
Geschrieben am: 14.06.2011 um 21:36 Uhr
|
|
super danke
hab schonmal ein paar Fehlermeldungen weg :D
habe die Methoden gemacht und das hat geholen
Konstruktor hat ich auch schon überlegt, aber dann nich so ganz verstanden wozu ich den brauche, weil ich ja nichts ausgeben möchte, also mit den Parametern
sieht jetzt so aus:
public class Roboter {
int fahre;
String rechts;
String links;
int warten =30;
int warte =5;
boolean istbeladen = true;
Roboter bot = new Roboter ();
// Methoden
private void fahre(int i) {
}
private void warten(int i) {
}
private void rechts() {
}
private void warte(int i) {
while(bot.istbeladen) {
bot.fahre(-400);
bot.rechts();
bot.fahre(300);
bot.warten(30);
bot.rechts();
bot.fahre(250);
}
while (bot.istbeladen(false)) {
bot.warte(5);
}
while(bot.istbeladen) {
bot.warten(30);
bot.rechts();
bot.fahre(300);
}
while(bot.istbeladen(false)) {
bot.rechts();
bot.fahre(300);
}
while(bot.istbeladen) {
bot.warten(30);
bot.rechts();
bot.fahre(250);
}
while (bot.istbeladen(false)) {
bot.rechts();
bot.fahre(250);
}
while (bot.istbeladen) {
//fängt hier von Stelle 3 wieder an ->
}
while (bot.istbeladen(false)) {
//fängt hier von vorne wieder an
}
}
private boolean istbeladen(boolean b) {
return false;
}
public static void main (String[] args) {
new Roboter();
}
}
ich bin mir aber total unsicher, ob das was ich da fabrizier was taugt :D
bin absoluter neuling und das ist eine selbstlernaufgabe fürs studium
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
download - 33
Halbprofi
(offline)
Dabei seit 07.2006
181
Beiträge
|
|
Geschrieben am: 14.06.2011 um 21:53 Uhr
|
|
Zitat: ich bin mir aber total unsicher, ob das was ich da fabrizier was taugt :D
Nicht wirklich^^
z.B. erstellst du in der Deklaration der Klasse Roboter eine Instanz zu einem neuem Roboter.
Leider kann ich nicht direkt Java sondern C++ aber eines kann ich dir sicher sagen:
Zitat: private void fahre(int i) {
}
So eine Funktion hat gar keinen Zweck, wenn die aufgerufen wird passiert absolut nichts.
http://ouned.de
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
|
Geschrieben am: 14.06.2011 um 21:56 Uhr
|
|
ja denk ich mir
diese Methoden hat mir Eclipse aus den Fehlermeldungen erstellt... und ich hab sie einfach mal so blind übernommen
weil mir derzeit jeder ansatz fehlt... ich weiß nich wie ich deklarieren muss oder was auch immer
steh grad voll auf m schlauch
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
RoHaN - 45
Profi
(offline)
Dabei seit 04.2006
698
Beiträge
|
|
Geschrieben am: 14.06.2011 um 22:13 Uhr
|
|
vieleicht solltest du dir erstmal etwas einfachere bsp anschauen wo es um die grundstruktur eines Programms geht und dann mit methodenaufrufen usw anfangen
Alcohol doesn't solve any problems, but if you think again, neither does Milk !!!
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
|
Geschrieben am: 14.06.2011 um 22:27 Uhr
|
|
Zitat von RoHaN: vieleicht solltest du dir erstmal etwas einfachere bsp anschauen wo es um die grundstruktur eines Programms geht und dann mit methodenaufrufen usw anfangen
mit den methoden hab ich ansich kein problem
die anfänge kenn ich von java
ich bin nur im zusammenhang mit genau dem beispiel überfordert
bisher waren es halt aufgaben, wo naher enifach am bildschirm ausgegeben wurden und nich auf ein Roboter bezogen
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
Thulsadoom - 36
Champion
(offline)
Dabei seit 01.2006
2051
Beiträge
|
Geschrieben am: 14.06.2011 um 22:47 Uhr
Zuletzt editiert am: 14.06.2011 um 22:48 Uhr
|
|
was mal super wäre, wäre die komplette aufgabenstellung zu sehen, und nicht nur codeschnipsel. dann könnte man dir vielleicht besser helfen.
Warum? Weil ich es kann!
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 15.06.2011 um 01:07 Uhr
|
|
Zitat von bumble_beee:
Konstruktor hat ich auch schon überlegt, aber dann nich so ganz verstanden wozu ich den brauche, weil ich ja nichts ausgeben möchte, also mit den Parametern
Dein Konstruktor wird durchlaufen wenn du ein neues Objekt vom Typ Klasse anlegst. Also hier was du eben mit new Roboter() fabrizierst. Hier haben Ausgaben/Eingaben herzlich wenig verloren, er ist schlichtweg dazu da, um deine Klasse auf "Starteinstellungen" zu bringen. (Bspw. startet das Attribut "Point Ausgangsposition" immer mit "= new Point(0,0);" oder das Attribut "int AnzahlFuesse = 4;" solche geschichten. hier kannst du desweiteren brav deine exceptions werfen um sicher zu gehn ob das objekt von $Klasse korrekt erstellt wurde (Konstruktor ohne Prrobleme durchlaufen? Voila, es existiert).
Du kannst innerhalb deines Konstruktors natürlich auch direkt Werte die Übergeben wurden verwenden ( = new Mammal(eHuman, 2, 2) führt zu einem Objekt vom Typ Mammal einem enum "eHuman", 2 Händen und 2 Füßen... wär in dem Fall unsauberes klassendesign aber sollte klarmachen wozu's dient)
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 15.06.2011 um 01:12 Uhr
|
|
Zitat von bumble_beee: ja denk ich mir
diese Methoden hat mir Eclipse aus den Fehlermeldungen erstellt... und ich hab sie einfach mal so blind übernommen
weil mir derzeit jeder ansatz fehlt... ich weiß nich wie ich deklarieren muss oder was auch immer
steh grad voll auf m schlauch 
Deklarieren musst du gar nichts. gott mädel, lies bitte die Grundsätze OOP. Deine Methoden stellen abstrakt "Dinge dar die eine instanz der Klasse so und so kann" bspw. wenn du in deinem Auto sitzt und gas gibst, würde die Methode "DeinAuto.Beschleunige()" aufgerufen bis deine gewünschte Geschwindigkeit erreicht ist.
Du versuchst nun deinen "Roboter" drehen, laufen oder sowas zu lassen also müsstes du bspw. "Laufe einen schritt nach rechts" folgendes gestalten (angenommen wir befinden uns an x/y eines 2D koordinatensystems, das deiner Klasse "Roboter" in den Attributen pos_x und pos_y bekannt ist ("hier befinden ich mich")):
private void SchrittNR()
{
this.pos_x++;
}
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|
bLaDemaSTeR - 39
Halbprofi
(offline)
Dabei seit 01.2005
346
Beiträge
|
|
Geschrieben am: 16.06.2011 um 08:37 Uhr
|
|
Aufgabenstellung wäre ganz okay aber ich versteh schon in etwa was du machen musst.
Was studierst du denn? IMUK an der HS NU?
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
Geschrieben am: 16.06.2011 um 13:36 Uhr
Zuletzt editiert am: 16.06.2011 um 15:17 Uhr
|
|
Achja noch eine Antwort: Zitat: In der Informatik und Programmierung ist eine Deklaration die Festlegung von Dimension, Bezeichner, Datentyp und weiteren Aspekten einer Variablen oder eines Unterprogramms. Durch die Deklaration wird dem Übersetzer (Compiler oder Interpreter) diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit zulässig, diese an anderen Stellen im selben Quelltext zu verwenden.
Danke wiki für die schöne Hilfe mir nichts einfallen lassen zu müssen. D.h. eine Logik findet dort _nicht_ statt. Bitte erst mit den Basics befassen, dann HL2 nachcoden.
/e: Weil mir nahe gelegt wurde ich sei schon viel zu nett gewesen: RTFM!
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|