1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Wo ist mein Fehler

  • Frisco
  • 20. November 2007 um 12:28
  • Unerledigt
  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 12:28
    • #1

    Halllo ich habe da ein kleine Problem beim Programmieren mit arrays,
    hier die aufgabe und meine quellcode:
    Implementiert in der Methode arrays( int n ) in der zuvor genannten Klasse Übung04
    folgende Schritte:
    1. Deklariert drei Arrays a, b und c mit jeweils n Elementen vom Datentyp int.
    2. Setzt die Werte im Array a, so dass jedes Element seine Position im Array als Wert
    hat. D.h. das erste Element an Position 0 den Wert 0, das zweite Element an Position
    1 den Wert 1, u.s.w., bis zum n-ten Element an Position n - 1 mit dem Wert n - 1.
    3. Setzt die Werte im Array b, so dass es eine Kopie der Werte im Array a in umgekehrter
    Reihenfolge enthalt. D.h. das erste Element in b hat den Wert n - 1, und das letzte
    den Wert 0.
    4. Multipliziert die Elemente der beiden Arrays a und b und speichert das Ergebnis im
    Array c, d.h. ai * bi =ci
    5. Gebt den Inhalt von a, b und c auf der Konsole aus.

    dazu habe ich jetzt erst mal folgendes geschrieben:

    public class Übung04{
    public static void arrays( int n ){

    int[] a=new int [ n ];
    int[] b=new int [ n ];//java.util.Arrays.copyOf(a, a.length);
    int[] c=new int [ n ];
    for ( int i = 0; i < n; i++ ){
    a[i]=i;
    System.out.println( a[i] );}

    for ( int i=n-1; i >= 0; --i){
    b[i]=i;
    System.out.println( b[i] );}

    }
    }
    nun möchte ich den aufgabenteil 4.) machen aber wegen den forschleifen und den {} sind ja nur darin b[i] bzw a[i] implementiert,
    wo ist da nun mein fehler kann mir da vielleicht jemadn dabei helfen??

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 20. November 2007 um 13:11
    • #2

    nach

    Code
    System.out.println( b[i] );}


    kannst du 4 machen.
    a,b,c sind in der ganzen methode arrays definiert

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 13:35
    • #3

    okey
    aber ich weiß nicht wie ich das schreiben soll, das ist ja genau mein Problem...
    ich hatte mal es so gedacht aber da ist sicher ein fehler
    c[i]=a[i]*b[i];
    System.out.println( c[i] );
    aber da kommt ein fehler
    "cannot find symbol variabl i"
    vielleicht weißt du da ja weiter

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 20. November 2007 um 13:50
    • #4
    Zitat von Frisco

    okey
    aber ich weiß nicht wie ich das schreiben soll, das ist ja genau mein Problem...
    ich hatte mal es so gedacht aber da ist sicher ein fehler
    c[i]=a[i]*b[i];
    System.out.println( c[i] );
    aber da kommt ein fehler
    "cannot find symbol variabl i"
    vielleicht weißt du da ja weiter

    Alles anzeigen


    Das i ist nur innerhalb der Schleife deklariert.

    Dipper dipper dii dipper dii dipper dii duuu

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 20. November 2007 um 14:02
    • #5

    mach halt eine neue schleife:

    Code
    for (int i=0;i<n;i++){
    c[i]=a[i]*b[i]
    }


    oder schreibs gleich in die schleife vom b rein

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 14:06
    • #6

    ja aber ich habe ja einmal die b[i] bestimmt die dann so z.b. aussieht:
    4,3,2,1,0
    und die a[i] sieht ja da so aus 0,1,2,3,4
    dann kommen bei mir aber andere werte heraus wie sie herauskommen wollten
    da liegt mein fehler auch noch....
    ich verstehe das nicht er weiß ja nur so lange eine for-schleife "läuft" was passiert danach ist ja die schleife vorbei...
    ich hoffe du verstehst was ich meine??

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 20. November 2007 um 14:19
    • #7

    das liegt daran weil du b von hinten durchgehst und a von vorne(beim abspeichern der int werte), du sagst:
    a[0]=0,a[1]=1 etc
    b[4]=4,b[3]=3 etc
    --> a und b schaun genau gleich aus

    ja genau aber wenn du in der for schleife was speicherst was für die ganze methode gilt(also nach dem beginn der methode deklariert ist) dann kannst du in der gesamten methode drauf zugreifen zb a,b,c.

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 14:33
    • #8

    stimmt danke jetzt habe ich es verstanden,
    und wie kann ich jetzt meinem compiler noch sagen das die ergebnisse vielleicht nebeneinander oder hintereinander ausgegeben werden sollen??
    das wäre noch super, aber ich denke ich habs solnagsam verstanden
    schon mal 10000 dank

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 20. November 2007 um 14:36
    • #9

    zb

    Code
    for ( int i = 0; i < n; i++ ){
    a[i]=i;
    System.out.print( a[i]+" " );}
    System.out.println("");

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 14:50
    • #10

    okey ich habe also nun meinen quellcod wiefolgt hier stehen und da ist aber ein kleiner fehler drin beim berechnen von c
    public static void arrays( int n ){

    int[] a=new int [ n ];
    int[] b=java.util.Arrays.copyOf(a, a.length); //new int [ n ];
    int[] c=new int [ n ];

    System.out.println("Hier die Ausgabe des Arrays a");
    for ( int i = 0; i < n; i++ ){
    a[i]=i;
    System.out.println( a[i]+" " );}
    System.out.println("");

    System.out.println("Hier die Ausgabe des Arrays b");
    for ( int i=n-1; i >= 0; --i){
    b[i]=i;
    System.out.println( b[i] );}
    System.out.println("");

    System.out.println("Hier die Ausgabe des Arrays c");
    for (int i=0;i<n;i++){
    c[i]=a[i]*b[i];
    System.out.println( c[i] );}
    }
    und zwar wenn ich n=3 nehme dann ist ja
    a=0,1,2
    b=2,1,0
    dann müsste ja c=0,1,0 sein da kommt aber bei mir raus
    c=0,1,4 wie kann ich den fehler noch beheben??

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 20. November 2007 um 15:21
    • #11

    selbes problem wie vorher: a==b
    du solltest in b aber x-0 und in a 0-x speichern

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 15:30
    • #12

    leider verstehe ich nicht was du damit meinst, wie sllte ich es dann programmieren??

  • Bug
    4
    Bug
    Mitglied
    Reaktionen
    1
    Punkte
    121
    Beiträge
    23
    • 20. November 2007 um 15:43
    • #13

    Versuchs mal so:

    Code
    for ( int i = 0; i < n; i++ ){
         a[i]=i;
         System.out.println( a[i]+" " );
    }
    
    
    System.out.println("");
    System.out.println("Hier die Ausgabe des Arrays b");
    
    
    for ( int i=0; i <n; ++i){
          b[i]=n-i;
          System.out.println( b[i] );}
    
    
    System.out.println("");
    Alles anzeigen

    Viele Menschen sind zu gut erzogen, um mit vollem Mund zu sprechen,
    aber sie haben keine Scheu, es mit leerem Kopf zu tun.
    (Orson Welles)

  • MickeyM
    3
    MickeyM
    Mitglied
    Reaktionen
    4
    Punkte
    89
    Beiträge
    15
    • 20. November 2007 um 15:47
    • #14
    Code
    public class Uebung04
    {
     public static void arrays( int n )
     { 
      int[] a = new int[n];
      int[] b = new int[n];
      int[] c = new int[n];
      for(int i = 0; i < n; i++)
       a[i] = i; //array a füllen
     
      for(int i = 0; i < n; i++)
      {
       b[i] = a[n - i - 1]; //array b füllen
       c[i] = a[i] * b[i]; //array c errechnen
     
       //alle 3 arrays ausgeben
       System.out.println("a[' + i + ']: " + a[i] + "\t" +
            "b[' + i + ']: " + b[i] + "\t" +
            "c[' + i + ']: " + c[i]);
      }
     }
    }
    Alles anzeigen



    hf

    In theory there is no difference between theory and practice. In practice there is.

  • Frisco
    4
    Frisco
    Mitglied
    Punkte
    100
    Beiträge
    16
    • 20. November 2007 um 17:03
    • #15

    danke

  • Kampi
    27
    Kampi
    Mitglied
    Reaktionen
    193
    Punkte
    7.828
    Beiträge
    1.468
    • 20. November 2007 um 18:01
    • #16
    Zitat von RedFalcon
    Code
    public class Uebung04
    {
     public static void arrays( int n )
     { 
      int[] a = new int[n];
      int[] b = new int[n];
      int[] c = new int[n];
      for(int i = 0; i < n; i++)
       a[i] = i; //array a füllen
     
      for(int i = 0; i < n; i++)
      {
       [B]b[i] = a[n - i - 1]; //array b füllen[/B]
       c[i] = a[i] * b[i]; //array c errechnen
     
       //alle 3 arrays ausgeben
       System.out.println("a[' + i + ']: " + a[i] + "\t" +
            "b[' + i + ']: " + b[i] + "\t" +
            "c[' + i + ']: " + c[i]);
      }
     }
    }
    Alles anzeigen

    hf

    wenn man zum fuellen von 'b' wirklich 'a' verwendet, dann kommt man um 2 for ned rum. so gings auch in einer:

    Code
    for ( int i=0; i < n; i++)
            {
                    a[i] = i;
                    b[i] = n-i-1;
                    c[i] = a[i] * b[i];
                    //printing
            }

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung