Java Programmcode?

3 Antworten

c) Einfach mal austesten:

i = 1 -> Bedingung nicht erfüllt

i = 2 -> Bedingung nicht erfült

i = 3 -> Bedingung erfüllt

i = 4 -> Bedingung nicht erfüllt

i = 5 -> Bedingung nicht erfüllt

i = 6 -> Bedingung erfüllt

Ergo ist die Bedingung erfüllt für 3, 6, 9, 12, 15, 18, ...

Daraus ergibt sich:

for (int i = 3; i < 30; i += 3) {
   // ...
}


d) Ersetzen ist kein Problem, denke ich. Für die weitere Anforderung benötigst du einen zusätzlichen Counter (j), der bis 20 zählt und in diesem Fall die Zahlen mit print ausgibt, nach jedem Umbruch mit println. Alternativ kann man natürlich wieder mit Modulo arbeiten.


e) Das sind absolute Grundlagen, die man definitiv hinbekommen sollte. Eigentlich werden while-Schleifen vor den for-Schleifen durchgenommen.

Vielen Dank dir für die Hilfe :)

Bei der d) würde ich noch gerne wissen wenn ich unter dem
for (int i =1; i < 1000; ++i)        den zusätzlichen counter 
int j = 20;      einfüge (stimmt der counter?) wie bringe ich den Zeilenumbruch mit dem print hin? habe öfters was von \n in irgendwelchen Foren gelesen aber begreife das nicht wirklich. 

0
@Student111

stimmt der counter?

Das müsste so in der Art aussehen:

for (int i = 3, j = 1; i < 1000; i += 3, j++) {
System.out.print(i + " ");
if (j == 20) {
j = 0;
System.out.println();
}
}

wie bringe ich den Zeilenumbruch mit dem print hin? habe öfters was von \n in irgendwelchen Foren gelesen aber begreife das nicht wirklich.

Das ist nicht erforderlich. print gibt aus, println (print line) gibt aus und macht einen Zeilenumbruch.

Alternativ könnte man das ganze aber auch mit dem Modulo-Operator lösen:

for (int i = 3; i < 1000; i += 3) {
System.out.print(i + " ");
if (i % 60 == 0) {
System.out.println();
}
}

Das ist kürzer, aber vielleicht komplexer.

1

Deine Hausaufgaben sind dafür da, selbst gemacht zu werden.

1. nicht um 1, sondern um 3 jeweils hochzählen lassen

2. das System.out.println() aus der for-Schleife nur dann ausführen lassen, wenn die Zählvariable modulo 60 ist

3. While-Schleifen googlen ...

glaub mir ich google schon die ganze Zeit :D kann leider überhaupt nicht programmieren versuche mir den ganzen Spaß gerade beizubringen

0

Bitte den Code auf Pastebin laden und die Frage strukturierter stellen. Da krieg ich echt nen Brechreiz wenn ich das lese sry

Die Fragen sind vom Prof. gestellt tut mir leid

0

Im Array nach einer bestimmten Zahl suchen brauche hilfe?

import java.util.Scanner; 

public class Felder
{
public static void main(String[] args)
{
// Beschreibung des Programms

System.out.println("Erstellung eines Arrays mit n-Feldern");
System.out.println();


//Scanner zur Einagbe der Feldgröße

Scanner sc = new Scanner(System.in);

System.out.print("Bitte geben sie die Größe des Arrays ein ");
int feldgroesse = sc.nextInt();


int[] a = new int[feldgroesse];

System.out.println("Nun füllen Sie das Array mit ganzen Zahlen");
System.out.println();


// Schleife zum füllen des Arrays

for (int i=0; i<feldgroesse;i++)
{
System.out.print("Bitte geben Sie eine Ganzzahl ein: ");
a[i] = sc.nextInt();
}

for (int i; i = 0; i++)
{
if(a[i] = = 5)
{
System out println(„Der Array enthält die gesuchte Zahl: “ + a[i]);
}
}
printFeld(a);
sc.close();
}

public static void printFeld(int[] a)
{

//gibt das Arrays auf der Konsole aus
System.out.println();
System.out.println("Ausgabe des Arrays");
System.out.println();
for (int i=0; i<a.length;i++)
{
System.out.println("Feld "+ i + " = " +a[i]);
}
}
}

Komme nicht weiter bitte mit einer code Antwort helfen hänge seit 3 Tagen an dieser Aufgabe. Danke Eine eigene Methode schreiben(suchIndex(int[] a, int wert)) die eine vom Nutzer abgefragte Zahl im zuvor erstellten Array sucht und wenn es gefunden wird mit dem entsprechenden Index ausgibt

...zur Frage

Warum funktionert mein Tascherecher in Java nicht??

das ist der Code ..

import java.util.Scanner;

public class Calc {

public static void main(String args []) {
    Scanner s = new Scanner (System.in) ;
    int w,x,y,z ; 
    System.out.println("Geben sie hre erste Zahl ein");
    w = s.nextInt();
    System.out.println("Nun Ihre zweite");
    x = s.nextInt();  
    System.out.println("Welche Rechenart wollen sie benutzen ?");
    System.out.println("1. Addition");
    System.out.println("2. Subtraktion");
    System.out.println("3. Multiplikation ");
    System.out.println("4. Division ");
    System.out.println("Geben Sie die zugehörige Zahl ein ");
    y= s.nextInt(); 
    
    if(y==1) {
        z = 1111;}
            else if (y==2)  { 
                z = 2222;}
                    else if (y==3)
                        {z = 3333;}  
                            else  if (y==4)
                                {z = 4444;}
                                else; 
                                    {z= 8888;}

    System.out.println("Hier ist ihr Ergebnis " + z);
        
}

} Das soll ein Taschenrechner sein Warum geht das nicht ?

...zur Frage

Java: Wie kann man das Programm nochmals durchlaufen lassen?

Man soll bei cash das Geld eingeben und wenn man genug Geld hat, soll alles nochmal durchlaufen werden (bei while ( isRunning )). Wie kann man das am besten lösen, ohne das eine Fehlermeldung kommt? Sorry für den langen Code :D

PS: Die Mitte des Codes ist relativ unwichtig.

//S. 244-245

public class Snake {

public static void main(String[] args) {
    
    boolean isRunning = true;
    boolean ok = true;
    while ( isRunning ) {
        if ( ok )
    System.out.println("Cash einwerfen:");
        ok = false;
    int cash = new java.util.Scanner( System.in ).nextInt();

    java.awt.Point playerPosition = new java.awt.Point( 10, 9 );
    java.awt.Point snakePosition  = new java.awt.Point( 39, 0 );
    java.awt.Point goldPosition   = new java.awt.Point( 6, 6 );
    java.awt.Point doorPosition   = new java.awt.Point( 0, 5 );
    java.awt.Point gold2Position   = new java.awt.Point( 20, 8 );
    boolean rich = false;
    boolean rich2 = false;
    
    while ( true ) {
        
        for ( int y = 0; y < 10; y++ ) {
            for ( int x = 0; x < 40; x++) {
                java.awt.Point p = new java.awt.Point( x, y );
                if ( playerPosition.equals ( p ) )
                    System.out.print('&');
                else if ( snakePosition.equals( p ) )
                    System.out.print('S');
                else if ( goldPosition.equals( p ) )
                    System.out.print('$');  
                else if ( gold2Position.equals( p ) )
                    System.out.print('$');                      //Wichtig: print statt println
                else if ( doorPosition.equals( p ) )
                    System.out.print('#');
                else System.out.print('.');
              }
            System.out.println();
            }
        
        //Textausgaben
        if ( rich && rich2 && playerPosition.equals( doorPosition ) ) {
            System.out.println("Gewonnen!");
            break;
        }
        if ( playerPosition.equals( snakePosition ) ) {
            System.out.println("Game Over!");
            break;
        }
        if ( playerPosition.equals ( goldPosition ) ) {
            rich = true;
            goldPosition.setLocation( -1, -1 );
        }
        if ( playerPosition.equals ( gold2Position ) ) {
            rich2 = true;
            gold2Position.setLocation( -1, -1 );
            
        
            goldPosition.setLocation( -1, -1 );
        }
        
        switch ( new java.util.Scanner ( System.in ).next() ) {
        case "w" : playerPosition.y = Math.max( 0, playerPosition.y - 1); break; 
        case "s" : playerPosition.y = Math.min( 9, playerPosition.y + 1); break;
        case "a" : playerPosition.x = Math.max( 0, playerPosition.x - 1); break;
        case "d" : playerPosition.x = Math.min( 39, playerPosition.x + 1); break;
        case "wa": playerPosition.y = Math.max( 0, playerPosition.y - 1);
                   playerPosition.y = Math.max( 0, playerPosition.x - 1 ); break;
        case "wd": playerPosition.y = Math.max( 0, playerPosition.y - 1);
                   playerPosition.x = Math.min( 39, playerPosition.x + 1); break;
        case "sa": playerPosition.y = Math.min( 9, playerPosition.y + 1);
                   playerPosition.x = Math.max( 0, playerPosition.x - 1); break;
        case "sd": playerPosition.y = Math.min( 9, playerPosition.y + 1);
                   playerPosition.x = Math.min( 39, playerPosition.x + 1); break;
        }
        
...zur Frage

In for schleife werden Spieler immer mehr?

Hallo. Ich habe eine Frage. Ich Programmiere Java Minecraft Plugins. Ich habe in einem Scheduler der, jede Sekunde ausgeführt wird, eine for schleife, in der alle Spieler in all abgespeichert werden. Jedoch ist es so, dass die Funktion (gekennzeichnet mit //a) mehrmals ausgeführt wird, je mehr Spieler auf dem Server waren. Kann man das Irgendwie verhindern?

Hier ein Video um zu erläutern wie ich das Meine; https://youtu.be/-_26qo3DTJ4

Code:

public void onKick(Player p) {
    if(!Bukkit.getScheduler().isCurrentlyRunning(sched)) {
        sched = Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable() {
            
            @Override
            public void run() {
                
                if(Bukkit.getOnlinePlayers().size() == 0) {
                    Bukkit.getScheduler().cancelTask(sched);
                    return;
                }
                
                long jetzt = System.currentTimeMillis();
                
                for(Player all : Bukkit.getOnlinePlayers()) {
                    if(zeit.containsKey(all.getName())) {
                        int rest = (int) ((zeit.get(all.getName()) + (1*1000*60)) - jetzt);
                        if(rest/1000 == 30) {
                            MSG(all.getName(), 30); //a
                        }else if(rest/1000 == 20) {
                            MSG(all.getName(), 20); //a
                        }else if(rest/1000 == 10) {
                            MSG(all.getName(), 10); //a
                        }else if(rest/1000 == 5) {
                            MSG(all.getName(), 5); //a
                        }else if(rest/1000 == 4) {
                            MSG(all.getName(), 4); //a
                        }else if(rest/1000 == 3) {
                            MSG(all.getName(), 3); //a
                        }else if(rest/1000 == 2) {
                            MSG(all.getName(), 2); //a
                        }else if(rest/1000 == 1) {
                            MSG(all.getName(), 1); //a
                        }else if(rest/1000 <= 0) { //&lt;= bedeutet kleiner gleich
                            all.kickPlayer("§cDu wurdest gekickt, da deine Spielzeit abgelaufen ist!");
                            zeit.remove(all.getName());
                            if(Bukkit.getOnlinePlayers().size() == 0) {
                                Bukkit.getScheduler().cancelTask(sched);
                            }
                        }
                    }
                }
            }
        }, 0, 20);
    }
}

 //a
public void MSG(String name, int i) {
    if(main.getConfig().getBoolean("KickCountdown."+name)){
        Bukkit.broadcastMessage("§b"+name+ " §7wird in §b"+i+" §7Sekunden gekickt!");
        main.getConfig().set("KickCountdown."+name, false);
        main.saveConfig();
        Bukkit.getScheduler().runTaskLater(main, new Runnable() {
            
            @Override
            public void run() {
                main.getConfig().set("KickCountdown."+name, true);
                main.saveConfig();
            }
        }, 19);
    }
}
...zur Frage

Mit Java Daten zu MySQL Datenbank hinzufügen

Ich habe ein Programm geschrieben, das Primzahlen errechnet. Ich würde diese nun auch gerne in einer MySQL Datenbank abspeichern, weiß aber nicht genau wie ich das anstellen soll (eigentlich habe ich überhaupt keine Ahnung :) ).

Hier das ursprüngliche Programm:

public class Primzahlen {
 public static void main (String[] args) {
  double d1;
  int[] p;
  p = new int[350000000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000000000; Zahl++) {

   for(int  b = 0; b < 2000000000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      break;

     }
    }
   } 
  }
 }
}

Und hier mein kläglicher Versuch die Zahlen in der Datenbank zu speichern:

import java.sql.Connection;
public class Primzahlen {
 public static void main (String[] args) {
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:4001?user=schueler&password=0");
  stmt = con.creatStatement();

  double d1;
  int[] p;
  p = new int[1000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000; Zahl++) {

   for(int  b = 0; b < 2000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      stmt.executeQuery(INSERT INTO schueler_primzahlen.primzahlen (Primzahl Nr. , Wert);
      VALUES (a, Zahl);


      break;

     }
    }
   } 
  }
 }
}

Ich wäre sehr froh, wenn jemand mich von den Qualen des "Herumprobierens" erlösen könnte.

...zur Frage

Hilfe bei Java Quellcode über ein Bücherregal?

Hallo! Ich arbeite da an einem kleinen Projekt, muss aber gestehen, ich hänge fest. Folgende Quellcodes habe ich schon: [code] public class Buecherregal {

//   ....

public Buecherregal(int bretter) {
    int AnzahlBretter = bretter;
    dieRegalbretter = new Regalbretter[bretter];
    for (int i =0; i<bretter; i++)
        dieRegalbretter[i] = new Regalbretter();
}

public int gibKapazitaet() {
    return AnzahlBretter*30;
}

public double gibBelegung() {
    double Buecher = 0;
    for (int i =0;i< AnzahlBretter;i++)
        Buecher = Buecher + dieRegalbretter[i].gibAnzahlBuecher();
    return Buecher / gibKapazitaet()*100;
}

public void buchHinzufuegen(Buch b, int regalNr) {
    return;
}
// ...

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Regalbrett [] regalbrett = new Regalbrett[9];
    
}

} [/code] [code]

public class Buch {

public Buch(String titel, String autor, String verlag ) {
    this.titel=titel; 
    this.autor=autor; 
    this.verlag=verlag;
}

String titel;
 public String gibTitel() {
 return titel;
}

String autor;
public String gibAutor() {
    return autor;
}

String verlag;
public String gibVerlag() {
    return verlag;
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

}

} [/code] [code]

public class Regalbrett {

//   ....
public void buchHinzufügen(Buch b) {
    return;
}

public Buch suchen(String titel) {
    for(int i =0; i< AnzahlBuecher;i++) {
        if (dieBuecher[i].gibTitel().equals(titel))
            return dieBuecher[i];
    }
    return null;
} 

public static void main(String[] args) {
    // TODO Auto-generated method stub


    Buch[] buecher = new Buch[29];
}

} [/code]

Ich hätte in der Konsole gern folgende ausgabe:

Regalbrett1: Buch1, Buch2, Buch3, ...
Regalbrett2: Buch1, Buch2, Buch3, ...
Regalbrett3: Buch1, Buch2, Buch3, ...

Was muss ich machen, damit dies geschehen kann?

(Variablen wie AnzahlBuecher, dieBuecher, AnzahlBretter, dieBretter sind rot unterstrichen)

Hoffe ihr könnt mir helfen :-)
LG Max

...zur Frage

Was möchtest Du wissen?