Zum Inhalt springen

Programmierung mit BlueJ


Empfohlene Beiträge

Geschrieben

Hallo,

Ich brauche "etwas" Hilfe mit BlueJ.

Und zwar möchte ich ein Programm erstellen, dass die Widerstandsfarben in den Wert umwandelt, so wie hier,

bloß nich so komplieziert.

Ich brauch keine Oberfläche.

Es soll 4 Eingabefelder geben,in die man die Farben (eben als Wort zb. Rot, Grün...) einträgt.

Das Programm soll nun den Wert des Widerstands anzeigen.

Toleranz kann außer acht gelassen werden.

Kann man so ein Programm überhaupt mit BlueJ machen? Wenn ja, wie ??

Ich bitte um Eure Hilfe

MfG

dieruebe

Geschrieben (bearbeitet)

Ich brauch keine Oberfläche.

Es soll 4 Eingabefelder geben...

WTF??

Ich habe noch nicht mit BlueJ gearbeitet aber lt. Wikipedia ist es eine einfache Entwicklungsumgebung für Anfänger.

Generell wird ein Java-Programm eigentlich nicht durch die Entwicklungsumgebung beschränkt sondern durch die Fähigkeiten des Programmierers und die Fähigkeiten von JAVA selbst.

Du kannst auch mit Notepad komplexe JAVA-Programme schreiben (ist allerdings nicht sehr komfortabel und wird zugegebener Maßen recht unübersichtlich).

Zum Erstellen einer Oberfläche ist die Klasse JFrame Interessant Eingabefelder kannst du mit JTextField realisieren.

Bearbeitet von speedi
Geschrieben

anscheinend möchtest du konsolenbasiert (Text) bleiben, anstatt eine Swing / AWT Oberfläche zu erstellen.

Eigentlich geschieht das dann in drei Schritten:

Mit einer for-Schleife liest du 4 mal hintereinander die Konsoleneingabe des Benutzers. (Man muss Streams verwenden - am besten Google danach durchforsten, gibt gute Beispiele)

Dann prüft man mit IFs, welche Farbe eingegeben wurde und ordnet dann denn entspr. Widerstand zu.

Dann muss man die Widerstandswerte ausgeben.

Da brauch nich viel zu, das müsstest du mit den Standart-Libraries und einer abgespeckten Entwicklungsumgebung hinkriegen!

Geschrieben

Bei BlueJ erscheinen aber auch schon "eingabefelder" wenn man man einfach folgendes schreiben würde....

public void berechneWiderstand(String Farbe1, String Farbe2, String Farbe3, String Farbe4)

{

//farben kontrollieren und berechnen.....

}

und jetzt könnte man ja mit BlueJ die methode manuell aufrufen wenn man dieses tut...erscheinen die eingabe felder in die du die Farben eintragen kannst.

meinst du sowas?:confused:

Geschrieben

@ elSusto

genau sowas mein ich, aber ich kapier nich wie ich das mit der ausgabe machen soll, denn die farben sind ja in einer bestimmten reihenfolge angeordnet und verändern ihren wert je nach Stelle.

Geschrieben

dann nehme doch 4 eingabe strings farbe1, farbe2, farbe3, farbe4 und fragen für jeden string einzeln ab per switch anweisung oder mit vielen ifs..

also jedesmal bekommt eine variable dann den zugewiesenen wert.

Also theoretisch so:


public void berechneWiderstand(String farbe1, String farbe2, String farbe3, String farbe4)

{

if(farbe1.equals("Rot")) ersteVariable = 1;

if(farbe1.equals("Grün")) ersteVariable = 2;

.....

if(farbe2.equals("Rot")) zweitevariable = 10;

if(farbe2.equals("Grün")) zweitevariable = 20;

.....

if(farbe3.equals("Rot")) zweitevariable = 100;

if(farbe3.equals("Grün")) zweitevariable = 200;

.....

if(farbe4.equals("Rot")) zweitevariable = 1000;

if(farbe4.equals("Grün")) zweitevariable = 2000;

}

und nachher rechnest du dann mit ersteVariable, zweiteVariable, dritteVariable, vierteVariable den Widerstandswert aus und gibst ihn per return zurück.

So kann man auch 3 mal rot eingeben und hat für jedes rot ein anderen wert.

Ist eigentlich sehr einfach zu realsieren..Mfg

Geschrieben

ausgabe ganz billig einfach per return wert. Bei BlueJ wird der dann einfach in einem Feld ausgegeben. Ich seh grad das die Methode falsch war ^^


public int berechneWiderstand(String farbe1, String farbe2, String farbe3, String farbe4)

{

...

}

Falls man jetzt in BlueJ diese Methode aufruft, wird man zum eingeben der vier Strings gebeten. Hat man dies getan wird die Methode ausgeführt und ein popup mit dem rückgabewert blendet ein.

achja, noch ne kleiner änderung zum code. Ich würde vorher noch jeden string in kleinbuchstaben umwandeln, damit du "falsche" eingaben abfangen kannst, wie z.B. rOt oder gRüN...

Geschrieben

also das mit der groß - kleinschreibung könnte er ja auch einfach mit "equalsIgnoreCase" machen dann wäre das am einfachsten...

also:

if(farbe1.equalsIgnoreCase("rot")

{

// wertzuweisung....

}
hab gedacht er will das mit
System.out.println(); 
ausgeben deswegen hatte ich void genommen. Aber dabei sehe ich ja kein problem deswegen verstehe ich nicht wo das Problem bei der Ausgabe liegen soll?! oder hat sich das damit schon geklärt?


public void berechneWiderstand(String farbe1, String farbe2, String farbe3, String farbe4)

{

if(farbe1.equalsIgnoreCase("rot")

{

// wertzuweisung....

}

...


//berechnung


System.out.println("Ergebnis der Berechnung");

}

Geschrieben

im grunde ist es ja egal wie man die ausgabe macht, sowohl deine als auch meine möglickeit kann gewählt werden.

es ist nur wichtig wie das programm verwendet werden soll. wenn man später noch mit dem widerstandwert rechnen soll, würde ich meine bevorzugen, da man ihn per aufruf gleich in einer variablen speichern kann. Bei simpler Anzeige bevorzuge ich natürlich die mit system.out.println(....).

Aber ist alles eher geschmacksache :D

PS:das mit equalsIgnoreCase() ist übrigens auch ne sehr gute idee. besser als das erst alles in kleinbuchstaben umzuwandeln xD

Geschrieben

ja also ich denke auch das im allgemeinen deins besser ist für die ausgabe da man den wert wirklich besser weiter verwenden kann...macht auch mehr sinn wie ich finde da man es später auch besser in einem größerem oder anderem projekt verwenden kann.

villt wird uns der Threadstarter ja mal zeigen wie er es implementiert hat...

Geschrieben

nein es gibt 12 verschiedene farben, die an 4 verschiedenen stellen stehen können. also insgesamt 48 werte die es geben kann.

ich würde sagen du musst 48 ifs machen.

wenn du mit combifelder und textfeldern arbeiten würdest geht das einfacher aber so mit bluej ohne jframe, applet musst du das so umständlich machen. oder mir fällt immo nix ein ^^. naja viel erfolg..ist halt viel zu schreiben..aber wofür gibt es strg + c und strg + v ^^

Geschrieben

ich würde sagen du musst 48 ifs machen.

Ohhh Gott, dafür gehört man standrechtlich erschossen ! :old

Codiere die visuellen Werte entsprechend und hinterlege z.B. die Werte in RadioButtons. In jedem Wert ist Farbe und Position codiert, dann muss man nur über die Eingabe einmal iterieren und kann aus den selektierten Daten Position und Farbe bestimmen. Wenn Du die "Farbe" auch direkt passend codierst, dann kannst Du direkt mit der Position und dem Farbenwert numerisch den Widerstand bestimmen

Phil

Geschrieben (bearbeitet)

wie gesagt, nur wenn du nicht mit frame oder applet arbeiten willst.

und ich glaube das du gerade damit angefangen bist und dich noch nicht so damit auskennst. wenn du da schon ahnung von hast kannst du es natürlich auch mit einen jframe und kombifeldern machen.

es führt aber kein weg daran vorbei für jede bedingung, also stelle wo die farbe stehen kann eine anweisung zu machen.

das wären für 12 farben a 4 stellen = 48 anweisungen. weil ich meine die werte für rot, grün, braun etc sind nicht berechenbar sondern fest -> also können nicht mit irgendeinem multiplikator berechnet werden.

wie du das nachher verpackts ist natürlich dir überlassen.

Bearbeitet von p2k
Geschrieben (bearbeitet)

wie wäre es mit ner HashMap?!

import java.util.ArrayList;

import java.util.HashMap;


public class main {


    private int m_IntValOne;

    private int m_IntValTwo;

    private int m_IntValThree;

    private int m_IntValFour;

    private int m_IntResult;

    private ArrayList<String> colors = new ArrayList<String>();

    private HashMap<String, String> col1 = new HashMap<String, String>();

    private HashMap<String, String> col2 = new HashMap<String, String>();

    private HashMap<String, String> col3 = new HashMap<String, String>();

    private HashMap<String, String> col4 = new HashMap<String, String>();


public void makeMap()

    {


    	col1.put("farbe1", "10");

    	col1.put("farbe2", "20");

    	col1.put("farbe3", "30");

    	col1.put("farbe4", "40");

    	col1.put("farbe5", "50");

    	col1.put("farbe6", "60");

    	col1.put("farbe7", "70");

    	col1.put("farbe8", "80");

    	col1.put("farbe9", "90");

    	col1.put("farbe10", "100");

    	col1.put("farbe11", "110");

    	col1.put("farbe12", "120");


    	col2.put("farbe1", "10");

    	col2.put("farbe2", "20");

    	col2.put("farbe3", "30");

    	col2.put("farbe4", "40");

    	col2.put("farbe5", "50");

    	col2.put("farbe6", "60");

    	col2.put("farbe7", "70");

    	col2.put("farbe8", "80");

    	col2.put("farbe9", "90");

    	col2.put("farbe10", "100");

    	col2.put("farbe11", "110");

    	col2.put("farbe12", "120");



    	col3.put("farbe1", "10");

    	col3.put("farbe2", "20");

    	col3.put("farbe3", "30");

    	col3.put("farbe4", "40");

    	col3.put("farbe5", "50");

    	col3.put("farbe6", "60");

    	col3.put("farbe7", "70");

    	col3.put("farbe8", "80");

    	col3.put("farbe9", "90");

    	col3.put("farbe10", "100");

    	col3.put("farbe11", "110");

    	col3.put("farbe12", "120");


    	col4.put("farbe1", "10");

    	col4.put("farbe2", "20");

    	col4.put("farbe3", "30");

    	col4.put("farbe4", "40");

    	col4.put("farbe5", "50");

    	col4.put("farbe6", "60");

    	col4.put("farbe7", "70");

    	col4.put("farbe8", "80");

    	col4.put("farbe9", "90");

    	col4.put("farbe10", "100");

    	col4.put("farbe11", "110");

    	col4.put("farbe12", "120");


    }

    public int berechneWiderstand(String pStrCol1,

                                    String pStrCol2,

                                    String pStrCol3,

                                    String pStrCol4)

    {

    	m_IntValOne   = Integer.parseInt(col1.get(pStrCol1));

    	m_IntValTwo   = Integer.parseInt(col2.get(pStrCol2));

    	m_IntValThree = Integer.parseInt(col3.get(pStrCol3));

    	m_IntValFour  = Integer.parseInt(col4.get(pStrCol4));


    	//berechne widerstand

    	m_IntResult = m_IntValOne + m_IntValTwo + m_IntValThree + m_IntValFour;

    	///////////////////

        return m_IntResult;

    }

}

so sollte das auch funktionieren...oder?

PS.: so hast du nicht mal ein IF =)

Bearbeitet von elSusto

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...