[Hilfe] einfachste sachen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von J0rd4N, 23. November 2005 .

  1. 23. November 2005
    also mal wieder die schule ..
    mein kumpel der informatik studiert sagte mir jetzt nach ~15 schulstunden das ich komplett falsch gelernt habe und nie mal nen quellcode selbst neu geschrieben habe .. da hatter recht, ich haette mich zuhause hin setzten sollen und nochma alles von neu ALLEiNE schreiben sollen, aber leider isses dafuer jetzt zu spaet das so nachzuholen, da freitag morgen die erste arbeit stattfindet.. is nur theorie in der arbeit, aber trozdem will ja dann auch weiterkommen in java (mit jbuilder) ..

    also ich dachte mir ich progge erstmal was selbst .. und zwar ne addition von 2 variablen die ich dann deklariere und die anwendungsparameter im jbuilder setze ..

    Code:
    public class klasse1
    {
    
     double a;
     double b;
     
    
     public klasse1(String[] werte);
     {
     a = Double.parsedouble(werte[0]);
     b = Double.parsedouble(werte[1]);
     }
    
     public static void main (String[] args)
     {
     System.out.println("ergebnis=" a + b);
     };
    }
    
    da willer nich so ganz, mein schulkollege meinte heute auch (leider kein unterricht am pc gehabt, also konmnt er mirs nich so zeigen), das da auch der "verweiss" oder sowas fehlt, dass der bei system.out.println... nich weiss welches "a" und "b" der da nehmen soll ..

    und nun mal zum aktuellen stand wie weit wir da eigentlich schon sein sollten:

    Code:
    public class Wertetafel { //Bestimmt die Werte, welche in dem Programm benötigt werden.
     double xAnf;
     double xEnd;
     double schrittWeite;
     double a;
     double b;
     double c;
     int xPara;
     double d;
     Oberflaeche dieOberflaeche =new Oberflaeche();
    
     private Wertetafel(String[] werte) {/**Man sagt dem Konstruktor, dass er die Werte im Konstruktor berechnen soll, sodass man eine weitere Schubladenschrank öffnet.*/
     xPara = werte.length; /**Auftrag zur Parameteranzahl*/
     xAnf = Double.parseDouble(werte[0]); //werden parameter zugeweiesen
     xEnd = Double.parseDouble(werte[1]); //werden parameter zugeweiesen
     schrittWeite = Double.parseDouble(werte[2]); //werden parameter zugeweiesen
     a = Double.parseDouble(werte[3]); //werden parameter zugeweiesen
     b = Double.parseDouble(werte[4]); //werden parameter zugeweiesen
     c = Double.parseDouble(werte[5]); //werden parameter zugeweiesen
     dieOberflaeche.setVisible(true);
     if (xPara == 7) { /**Parameter kann man im Konstruktor abfragen bzw. ihn auftragen eine neue Parameterzahl hinzufügen*/
     d = Double.parseDouble(werte[6]);
    
     }
     }
    
    
     public static void main(String[] args) { //main = die Methode
     int x;
     x = args.length;
     switch (x) { /**Switch ist die Mehrfach-Verzweigung*/
    
     case 1:{
     System.out.println(x+" parameter eingegeben, es fehlen Endwert, Schrittweite, a, b, c, (d)");
     break;}
     case 2:{
     System.out.println(x+" parameter eingegeben, es fehlen Schrittweite, a, b, c, (d)");
     break;}
     case 3:{
     System.out.println(x+" parameter eingegeben, es fehlen a, b, c, (d)");
     break;}
     case 4:{
     System.out.println(x+" parameter eingegeben, es fehlen b, c, (d)");
     break;}
     case 5:{
     System.out.println(x+" parameter eingegeben, es fehlen c, (d)");
     break;}
     case 6:
    
     case 7:{
    
    
     Wertetafel wertetafel = new Wertetafel(args);//Warum ein Objekt? In main ein erstes Projekt, wir brauchen Perspektive.Die Klasse enthält die Beschreibung dieses Objektes.Wir möchten ja auch verschiedene Objekte.
     wertetafel.ausgeben();//Ausgeben in der Main-Methode ist die elegantere Art
     break; } //System.out.println(Ausgabe1.berechneY(100))
     default:
     System.out.println(" keine oder zuviele parameter eingegeben");
     break; //Break ist ein essenzieler Begriff. Man muss nach jeder Ausgabe sozusagen abbrechen
     }
     }
    
     public double berechneY(double x) { //nimmt die Variable x und berechnet sie
     if (xPara == 6) {
     return a * x * x + b * x + c;
     } else {
     return a * x * x * x + b * x + c * x + d;
     } //gibt sie wieder durch return zurück
     }
    
     public void ausgeben() {//Berechnet die Werte, die ich dem Programm, bzw. ihm zur Verfügung stelle.
     double x = xAnf;
     while (x <= xEnd) {
     double y = berechneY(x);
     System.out.println("x = " + x + "\t\t" + "y = " + y);
     x = x + schrittWeite;
     dieOberflaeche.textErgaenzen("x = " + x + "\t\t" + "y = " + y);
     }
     }
    
    
    }
    
    bin fuer jede hilfe dankbar (10er sowieso)
     
  2. 23. November 2005
    hm, also bei deinem ersten code ist der fehler meines wissens dass du den tabelleninhalt nicht definiert hast, also sowas in der art:

    Code:
    werte[0] = "1.0";werte[1] = "2.0";
    denn wie will er eine tabelle auslesen die nix drin hat?den zweiten code hab ich jetzt noch nicht näher angeschaut, da ich mit den case systemen noch nicht so vertraut bin.
    mfg swissmaster
     
  3. 23. November 2005
    danke fuer deine antwort. 10er sofort ..
    also beim ersten code isses so adss man die werte ja bei den anwendungsparametern direkt im jbuilder ueber so ne benutzeroberflaeche eingeben kann.

    bei dem 2ten code funktioniert alles .. nur eben sind die inner schule halt schon so weit und ich kann nich mal den code da oben alleine auf die beine stellen.
     
  4. 23. November 2005
    ach so, das wusste ich nicht. aber mir ist soeben noch was aufgefallen:

    Code:
     System.out.println("ergebnis=" a + b);
    
    also das funzt nicht, wenn du willst dass alles angezeigt wird dann würde ich erstmal eine variable machen die die zahlen zusammenzählt:
    Code:
    double x = a+b;
    und danach kommt dann das fenster:
    Code:
    System.out.println("ergebnis = "+x);
    also du musst ein plus setzen zwischen dem text und der variable, nur so zeigt der alles an. und für den fall dass er dann immer noch nicht will wandelst du halt die variable noch in ein string:
    Code:
    String y = Double.toString(x);
    so sollte es dann gehen.
    mfg swissmaster
     
  5. 23. November 2005
    nur jetzt bringt der das hier >>
    CLiCK
    ich muss ja irgendwie sagen, dass der darauf auf x zugreifen muss .. nur wie mach ich das?

    EDiT: mitschueler hat mir mal gerade online bisschen geholfen:
    CLiCK
    bei ihm kommt der fehler nich, aber bei mir ..

    EDiT: so beim antworten kommt gerade Sie sind nicht berechtigt innerhalb von 1440 Minute(n) mehrere Antworten direkt hintereinander auf ein Thema abzugeben. Bitte editieren Sie Ihren vorherigen Beitrag. .. obwohl du ja schon geschrieben hast .. naja egal ..

    jedenfalls klappts jetzt so:

    Code:
    public class klasse1 {
    
    
     public klasse1(String[] werte) {
     double a;
     double b;
     double x;
     a = Double.parseDouble(werte[0]);
     b = Double.parseDouble(werte[1]);
     x = a + b;
    
     System.out.println("Ergebnis = " + x);
    
     }
    
     public static void main(String[] args) {
     klasse1 kl = new klasse1(args);
     }
    
    }
    
    es lag also an der grossschreibung bei parseDouble :|

    nuja, schon versuch ich weiter zumachen mit "for (int i=0;1<10;i++) und sowas geht wieder nix und ich weiss nich wie usw .. bohr man is das schrott
     
  6. 23. November 2005
    Code:
     public klasse1(String[] werte){
    a = Double.parsedouble(werte[0]);
    b = Double.parsedouble(werte[1]);
    double x = a+b;
    public static void main (String[] args) {
    System.out.println("ergebnis=" a + b);
    }
    }
    
    
    ach so, ich weiss was er anders gemacht hat. du darfst da wo die klasse anfängt kein strichpunkt setzen, also nach public klasse1 (String[] werte) kein strichpunkt, direkt { und auch sonst keine strichpunkte am ende einer klasse oder methode, also am ende von public static void main(String [] args){}kein strichpunkt.jetzt würde ich wenn ich du wäre folgendes machen:
    Code:
     public class klasse1 {
    
    double x = 0.0;
    
    public klasse1(String[] werte){
    
    double a = Double.parsedouble(werte[0]);
    double b = Double.parsedouble(werte[1]);
    this.x = a+b;
    public static void main (String[] args) {
    System.out.println("ergebnis=" +x);
    }
    }
    }
    
    dadurch sollte der statisch fehler verschwunden sein. und ddie anderen fehler werden dadurch weg sein dass du vor dem a und dem b noch vergessen hast anzugeben was das für welche sind, also schreibst du einfach double a und double b anstatt nur a und b. einfach nochmals zur repetition: beim schreiben einer methode nie ein strichpunkt nach der klammer, immer direkt eine solche klammer : {

    mfg swissmaster
     
  7. 24. November 2005
    Moin,

    also wie ich das sehe ist das ein mieser Programmierstil den du dir da gerade aneignest.

    Warum programmiert ihr alle im Konstruktor rum?
    Oder lernt ihr das so in der Schule?

    Wenn du klein anfangen willst, dann hol dir mal ein Anfänger Tut.

    "Java in 21 Tagen" gibts im Netz.

    Da lernst du so grundlegende Sachen, wie was eine Methode ist usw.

    Und dann programmier mal deine addition nochmal neu.

    Code:
    public class klasse1 {
     
     public double addiere(double a, double b){
     double erg = a+b;
     return erg;
     }
     
     public static void main (String[] args){
     klasse1 kl = new klasse1();
     double x = kl.addiere(4,6);
     System.out.println(x);
     }
    }
    Dann sieht das so aus.
    Natürlich kann man hier auch noch rum parsen und andere Scherze machen.

    Ok in zwei Tagen lernt man jetzt nicht so viel. Aber ich rate dir, benutze bei der Java Programmierung "Eclipse". Da wäre das Problem mir parseDouble z.B. nicht aufgetreten.

    Und was ist jetzt dein Problem mit For - Schleifen?
     
  8. 24. November 2005
    besten dank, wir ham eben nur so gelernt dass wir im main nur n verweiss im kontrukter machen sollen bzw waere es besser oder so .. naja egal ich lern da einfach mal mit so wie`s is, weil so kommts ja dann auch bei der arbeit (die is allerdings nur theorie ohne pc) drankommt ..

    das mit den for-schleifen hat sich erledigt .. for heisst ja nur dass man ne variable deklariert und beschreibt und so weiter .. is ja was komplett anderes als ne if-schleife oder while-schleife

    .. 10er bekommste sofort
     
  9. 24. November 2005
    hätte dir echt gerne geholfen aber in der schule hab ich java nie verstanden weil unserer lehrer das immer so kirre erklärt hat....

    aber zum glück gibt es ja leute die etwas mehr drauf haben als ich ^^
     
  10. 25. November 2005
    hehe passt ja schon danke
    also arbeit ham wa heute gerade eben geschrieben .. lief okay, aufgabe 1,2,4 hab ich bestimmt zu 70% richtich und die 3te war programmieren auf m blatt, der rest war nur so allgemine fragen zum verstaendnisses des codes usw ..

    die 3te hab ich so zu 30%

    im endeffekt liefs also ganz okay

    vielen dank nochmal leute fuer eure hilfe!

    thread bitte offen lassen, weil ich komm bestimmt bald nich mehr weiter in dem fach ^^
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.