FISI AZUBI 2014 Geschrieben 15. April 2013 Geschrieben 15. April 2013 Hallo Leute, ich schreibe am Freitag eine Klausur zum Thema Java/ Arrays und jetzt hab ich mir mal ein altes Programm von einem Klassenkammeraden vorgenomen, kann aber mit den Befehlen nichts anfangen. Ich fänd es super wenn einer von euch mir dabei weiterhelfen kann und mir in DAU (dümmster anzunehmender User ) Deutsch die unten stehenden Befehle erklären kann. private static int wer = 0; private static double [] ar; private static String strAusgabe = ""; private static String strsAusgabe = ""; private static int ln; Vielen Dank FISI AZUBI 2014 Zitieren
pr0gg3r Geschrieben 15. April 2013 Geschrieben 15. April 2013 Oje oje.... Das sind absolute Grundlagen! Ich bin mal so nett: private = Sichtbarkeit (Galileo Computing :: Java ist auch eine Insel – 5.2 Privatsphäre und Sichtbarkeit) static = statische Variable/Member (Galileo Computing :: Java ist auch eine Insel – 5.3 Statische Methoden und statische Attribute) int, double, Sting = Datentypen (Datasource :: Programmierung :: Java-Datentypen) [] = Array (Java ist auch eine Insel – 3.8 Arrays) = "", = 0, ... = Initialisierung (Wertzuweisung) Mach am besten von Anfang an ein Tutorial durch... Zitieren
FISI AZUBI 2014 Geschrieben 15. April 2013 Autor Geschrieben 15. April 2013 Mir ging es mehr um die befehle private static int wer = 0 private static int ln private static double [] ar Zitieren
Klotzkopp Geschrieben 15. April 2013 Geschrieben 15. April 2013 Mir ging es mehr um die befehleDas sind alles keine Befehle. Was int ist, hat pr0gg3r erklärt. wer, ln und ar sind Variablennamen. Die könnten auch hund, katze und maus heißen. Weißt du, was eine Variable ist? Zitieren
FISI AZUBI 2014 Geschrieben 15. April 2013 Autor Geschrieben 15. April 2013 Ja das weis ich aber danke jetzt steig ich durch, mein Problem war nur die Interpretation der Variabelen Namen Zitieren
FISI AZUBI 2014 Geschrieben 15. April 2013 Autor Geschrieben 15. April 2013 (bearbeitet) Hier mal der gesammte Code und jetzt erklär mir doch bitte mal jemand wozu das private static int wer = 0 gebraucht wird. import javax.swing.*; public class MessVer2{ private static int wer = 0; private static double [] ar; private static String strAusgabe = ""; private static String strsAusgabe = ""; private static int ln; public static void array (){ ln = Integer.parseInt(JOptionPane.showInputDialog(null, "Bitte geben sie die Anzahl der Werte an!")); ar = new double[ln]; } public static void eingabe(){ if (ln >0) { for (int i=0; i<ar.length; i++) { String strWert= JOptionPane.showInputDialog(null, "Messwert "+ +(i+1) +" von "+ar.length+" eingeben"); double wert= Double.parseDouble(strWert); ar[i] = wert; } } else { meldung(); } } public static void meldung(){ JOptionPane.showMessageDialog(null, "Sie haben noch kein Array erstellt!", "Error", JOptionPane.ERROR_MESSAGE); } public static void kleinsterwert(){ if (ln >0) { double kwrt = ar[0]; for (int i=1; i<ar.length; i++) { if (kwrt > ar[i]) { kwrt = ar[i]; } } JOptionPane.showMessageDialog(null, "Der kleinste Messwert beträgt: "+kwrt); } else { meldung(); } } public static void größterwert(){ if (ln >0) { double gwrt = ar[0]; for (int i=1; i<ar.length; i++) { if (gwrt < ar[i]) { gwrt = ar[i]; } } JOptionPane.showMessageDialog(null, "Der kleinste Messwert beträgt: "+gwrt); } else { meldung(); } } public static void ausgabe(){ if (ln >0) { for (int i=0;i<ar.length;i++) { strAusgabe = strAusgabe + Double.toString(ar[i]) + "\n"; } JOptionPane.showMessageDialog(null, "Messewerte:\n\n" + strAusgabe); strAusgabe = ""; } else { meldung(); } } public static void durchschnitt(){ if (ln >0) { double sum = 0; for (int i=0 ; i<ar.length; i++ ) { sum += ar[i]; } double dr = (sum/ar.length); dr = Math.round(dr*100.00)/100.00; JOptionPane.showMessageDialog(null, "Der durchschnitt beträgt: " + dr); return; } else { meldung(); } } public static void sortierung(){ for (int i=0 ; i<ar.length-1; i++ ) { double temp; int min = i; for (int j=i+1;j<ar.length ;j++ ) { if (ar[j] < ar[min]){ min = j; } temp = ar[min]; ar[min] = ar[i]; ar[i] = temp; } } } public static void main (String[]Args){ while (true) { char input; input = JOptionPane.showInputDialog(null, "*****Hauptmenü***** \n Z = Anzahl der Messungen eingeben \n B = Programm beenden \n \n").charAt(0); switch (input) { //case 'e' : case 'E' : eingabe(); break; case 'a' : case 'A' : ausgabe(); break; case 'z' : case 'Z' : array(); eingabe(); break; default : JOptionPane.showMessageDialog(null, "Falsche eingabe. \nBitte versuchen sie es erneut!", "Error", JOptionPane.ERROR_MESSAGE); } if (ln>0){break;} } // end of while while (true) { char input; input = JOptionPane.showInputDialog(null, "*****Hauptmenü***** \n Z = Anzahl der Messungen eingeben \n E = Eingabe \n A = Ausgabe \n D = Durchschnitt \n K = Kleinster Wert \n G = Größter Wert \n S = Sortierung \n B = Programm beenden \n \n").charAt(0); switch (input) { case 'e' : case 'E' : eingabe(); break; case 'a' : case 'A' : ausgabe(); break; case 'z' : case 'Z' : array(); eingabe(); break; case 'd' : case 'D' : durchschnitt(); break; case 'k' : case 'K' : kleinsterwert(); break; case 'g' : case 'G' : größterwert(); break; case 's' : case 'S' : sortierung(); ausgabe(); break; case 'b' : case 'B' : System.exit(1); break; default : JOptionPane.showMessageDialog(null, "Falsche eingabe. \nBitte versuchen sie es erneut!", "Error", JOptionPane.ERROR_MESSAGE); } } } } Bearbeitet 15. April 2013 von Klotzkopp Code-Tags hinzugefügt Zitieren
pr0gg3r Geschrieben 15. April 2013 Geschrieben 15. April 2013 In Java gilt: // Deklaration: sichtbarkeit (strict) datentyp variablename; // Initialisierung (setzt Deklaration voraus) variablename = wert; // Deklaration + Initialisierung auf einmal: sichtbarkeit (strict) datentyp variablename = wert; Zitieren
Klotzkopp Geschrieben 15. April 2013 Geschrieben 15. April 2013 Hier mal der gesammte Code Benutz bitte Code-Tags. und jetzt erklär mir doch bitte mal jemand wozu das private static int wer = 0 gebraucht wird.Die Variable wird nirgends verwendet, also ist sie überflüssig. Zitieren
FISI AZUBI 2014 Geschrieben 15. April 2013 Autor Geschrieben 15. April 2013 und das bedeutet jetzt was genau? sorry für die dummen Fragen, aber Programmieren ist nicht geade mein Lieblingsfach und ich verzweifel hier gerade i iwe dran Zitieren
pr0gg3r Geschrieben 15. April 2013 Geschrieben 15. April 2013 und das bedeutet jetzt was genau? sorry für die dummen Fragen, aber Programmieren ist nicht geade mein Lieblingsfach und ich verzweifel hier gerade i iwe dran Wenn ich dich jetzt mal mit meinen Mitschülern aus der Berufsschulklasse vergleiche: Das ganze Jahr über Flashgames zocken, im Unterricht nicht aufpassen und dann kurz vorm Test/Prüfung Panik schieben... Da sag ich nur: Selber schuld! Klar kann es sein, dass man einfach nicht gut darin ist, aber die einfachsten Sachen, sprich Grundlagen, sollte man hinkriegen, wenn man sich damit befasst. Eine drei ist, denke ich, auf jeden Fall drin wenn man sich damit befasst. Selbst dann, wenn mans nicht mag... Also ich rate dir: Mach Tutorials, sonst bringen auch die besten Erklärungen nichts. Zitieren
FISI AZUBI 2014 Geschrieben 15. April 2013 Autor Geschrieben 15. April 2013 Bei mir ist das Problem das ich letztes Schuljahr den Anfang bzw. die Grundlagen vercheckt habe und jetzt nicht mehr hinterher komme Zitieren
Klotzkopp Geschrieben 15. April 2013 Geschrieben 15. April 2013 und das bedeutet jetzt was genau? Das bedeutet, dass diese Variable nicht gebraucht wird. Das passiert schon mal, wenn man Code häufiger ändert. Da bleiben dann unbenutzte Reste von alten Versuchen zurück. Zitieren
FISI AZUBI 2014 Geschrieben 16. April 2013 Autor Geschrieben 16. April 2013 Ich hab da nochmal ne Frage Was bewirkt Double.toString ? Zitieren
Klotzkopp Geschrieben 16. April 2013 Geschrieben 16. April 2013 Was bewirkt Double.toString ? Hast du dir darüber auch nur eine Minute Gedanken gemacht? Double to String, was könnte das wohl tun? Deine erste Anlaufstelle für solche Fragen sollte dann auch die Dokumentation sein. Zitieren
Joey P Geschrieben 16. April 2013 Geschrieben 16. April 2013 Die toString Methode gibt einen für die Klasse entsprechenden String zurück. Double (mit großem D) ist eine containerklasse für fließkomma Werte (double mit kleinem d) da jede Klasse in Java direkt oder indirekt von der Klasse Object erbt und die toString Methode in object drin ist ist sie auch in jeder unterklasse drin. Diese muss um was vernünftiges zurück zu geben in der unterklasse überschrieben werden. Kurz gesagt hast du eine Klasse Double mit dem Wert 0.5 drin gibt Double.toString "0.5" als String zuruck Zitieren
speedi Geschrieben 19. April 2013 Geschrieben 19. April 2013 Du bist vielleicht hart drauf^^ Kannst du überhaupt irgendwas, was mit programmieren oder vielleicht Java zu tun hat? Ich versuchs trotzdem mal. import javax.swing.*; public class MessVer2{ // Initialisierung von Variablen. // Alle Variablen die man hier sieht sind als private und static initialisiert. // private bedeutet du kannst auf diese Variable nur innerhalb dieser Klasse zugreifen. Von einer anderen Klasse aus // ist die Variable nicht sichtbar. // static bedeutet das diese Variable nicht an eine Instanz dieser Klasse gebunden ist. Sondern für alle Instanzen die // selbe Variable benutzen. Man benötigt nicht mal eine Instanz der Klasse sondern kann direkt über die Klasse selbst // auf die Variable zugreifen. // int ist ein Datentyp. Steht für Integer. Also ganze Zahlen. Positiv wie negativ. 32bit. Wertebereich von -2^31 bis // 2^31 // "wer" ist der name der Variablen. Der Zugriff im programm erfolgt über diesen Namen. private static int wer = 0; // double ist ein Datentyp für Gleitkommazahlen mit doppelter Genauigkeit. [] Gibt an das es sich um ein Array // handeln soll private static double [] ar; // String hat nichts mit Unterwäsche zu tun - sondern ist ein komplexer Datentyp, welcher eine Zeichenkette // beliebiger Länger aufnehmen kann. private static String strAusgabe = ""; private static String strsAusgabe = ""; private static int ln; // Das ist eine Methode. Spricht ein programmbaustein den man aufrufen kann. // public bedeutet, dass diese Methode von überall aus aufgerufen werden kann. static bedeutet dass gleiche wie // oben auch // void ist der Rückgabetyp. Jede Methode hat so einen. Er steht immer vor dem Methodennamen. void ist ein // Datentyp der eigentlich keiner ist. Es bedeutet "nichts!". D.h. man braucht auch kein return. public static void array (){ // JOptionPane ist eine Klasse aus dem Swing-Framework (für grafische Oberflächen). Sie bietet Schnittstellen zum // einfachen erstellen von Dialogen. Mit der Methode showInputDialog wird ein Eingabe-Dialog erstellt und // angezeigt. Nachdem der Benutzer die Eingabe abgeschlossen hat gibt die Methode einen String zurück. // Integer.parseInt ist eine Methode welche eine String (also eine Zeichenkette) zu einer Zahl umrechnet mit der // der Computer rechnen kann. // "ln =" weist der Variable ln den Rückgabewert der parseInt-Methode zu. ln = Integer.parseInt(JOptionPane.showInputDialog(null, "Bitte geben sie die Anzahl der Werte an!")); ar = new double[ln]; } // ____________________Probiers ab hier mal selbst____________________ public static void eingabe(){ if (ln >0) { for (int i=0; i<ar.length; i++) { String strWert= JOptionPane.showInputDialog(null, "Messwert "+ +(i+1) +" von "+ar.length+" eingeben"); double wert= Double.parseDouble(strWert); ar[i] = wert; } } else { meldung(); } } public static void meldung(){ JOptionPane.showMessageDialog(null, "Sie haben noch kein Array erstellt!", "Error", JOptionPane.ERROR_MESSAGE); } public static void kleinsterwert(){ if (ln >0) { double kwrt = ar[0]; for (int i=1; i<ar.length; i++) { if (kwrt > ar[i]) { kwrt = ar[i]; } } JOptionPane.showMessageDialog(null, "Der kleinste Messwert beträgt: "+kwrt); } else { meldung(); } } public static void größterwert(){ if (ln >0) { double gwrt = ar[0]; for (int i=1; i<ar.length; i++) { if (gwrt < ar[i]) { gwrt = ar[i]; } } JOptionPane.showMessageDialog(null, "Der kleinste Messwert beträgt: "+gwrt); } else { meldung(); } } public static void ausgabe(){ if (ln >0) { for (int i=0;i<ar.length;i++) { strAusgabe = strAusgabe + Double.toString(ar[i]) + "\n"; } JOptionPane.showMessageDialog(null, "Messewerte:\n\n" + strAusgabe); strAusgabe = ""; } else { meldung(); } } public static void durchschnitt(){ if (ln >0) { double sum = 0; for (int i=0 ; i<ar.length; i++ ) { sum += ar[i]; } double dr = (sum/ar.length); dr = Math.round(dr*100.00)/100.00; JOptionPane.showMessageDialog(null, "Der durchschnitt beträgt: " + dr); return; } else { meldung(); } } public static void sortierung(){ for (int i=0 ; i<ar.length-1; i++ ) { double temp; int min = i; for (int j=i+1;j<ar.length ;j++ ) { if (ar[j] < ar[min]){ min = j; } temp = ar[min]; ar[min] = ar[i]; ar[i] = temp; } } } public static void main (String[]Args){ while (true) { char input; input = JOptionPane.showInputDialog(null, "*****Hauptmenü***** \n Z = Anzahl der Messungen eingeben \n B = Programm beenden \n \n").charAt(0); switch (input) { //case 'e' : case 'E' : eingabe(); break; case 'a' : case 'A' : ausgabe(); break; case 'z' : case 'Z' : array(); eingabe(); break; default : JOptionPane.showMessageDialog(null, "Falsche eingabe. \nBitte versuchen sie es erneut!", "Error", JOptionPane.ERROR_MESSAGE); } if (ln>0){break;} } // end of while while (true) { char input; input = JOptionPane.showInputDialog(null, "*****Hauptmenü***** \n Z = Anzahl der Messungen eingeben \n E = Eingabe \n A = Ausgabe \n D = Durchschnitt \n K = Kleinster Wert \n G = Größter Wert \n S = Sortierung \n B = Programm beenden \n \n").charAt(0); switch (input) { case 'e' : case 'E' : eingabe(); break; case 'a' : case 'A' : ausgabe(); break; case 'z' : case 'Z' : array(); eingabe(); break; case 'd' : case 'D' : durchschnitt(); break; case 'k' : case 'K' : kleinsterwert(); break; case 'g' : case 'G' : größterwert(); break; case 's' : case 'S' : sortierung(); ausgabe(); break; case 'b' : case 'B' : System.exit(1); break; default : JOptionPane.showMessageDialog(null, "Falsche eingabe. \nBitte versuchen sie es erneut!", "Error", JOptionPane.ERROR_MESSAGE); } } } } Zitieren
Empfohlene Beiträge
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.