Java – die neusten Beiträge

wie berechne ich das Produkt eines Arrays?

Ich habe echt alle jetzt hinbekommen aber jetzt fehlt mir das Produkt ich wollte das so machen

int produkt = 0;

produkt *= Array[i]; system.out... (produkt);

aber da kommt immer ein Fehler in der console undzwar :** Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at Array.main(Array.java:36) 0**

hier erstmal mein Code import java.util.Scanner;

public class Array {

public static void main(String[] args)
{
    // TODO Auto-generated method stub
    {
        Scanner input=new Scanner(System.in);
        int summe=0;
       

        System.out.print("Wie groß soll das Array sein?");
        int Arraygroeße=input.nextInt();

        int Array[]=new int[Arraygroeße]; // erstellt ein Array mit der
                                          // Größe
                                          // die man eingibt

        int i;
        for (i=0; i<Array.length; i++)
        {
            System.out.print("Feldwert an Stelle "+i+" eingeben: ");
            Array[i]=input.nextInt(); // soll den Wert einlesen den der
                                      // Nutzer
                                      // haben möchte bis das ganze Array
                                      // ausgefüllt ist
        }

        for (i=0; i<Array.length; i++)



            summe+=Array[i];
        System.out.println("Die Summe ist :"+summe);

        int max=Array[0];
        for (i=0; i<Array.length; i++)
            if (max<Array[i])
                max=Array[i];

        System.out.println("Größter Wert des Arrays ist "+max);

        int min=Array[0];
        for (i=0; i<Array.length; i++)
            if (min>Array[i])
                min=Array[i];

        System.out.println("Kleiner Wert des Array ist "+min);

        double mittel=0; // Mittelwert auf 0 setzen
        mittel=summe/Array.length; // Mittelwert berechnen durch Summe
                                   // geteielt durch die Anzahl der Zahlen
                                   // im Array
        System.out.println("Der Mittelwert beträgt:  "+mittel);
        
       
        input.close();

    }
  }
}

kann mir jemand bitte helfen wie ich das Produkt berechnen kann ? ( Java)

PC, Computer, Programm, programmieren, Java, Praktikum

Ubuntu: sudo apt-get upgrade , schlägt Fehl?

Ich hab heute einfach mal wieder in der Konsole meine Updates und Upgrades laufen lassen wollen. Nach dem ich "sudo apt-get upgrade" eingegeben hab schlug es fehl und mir ist nicht ganz klar wieso. (Habe Ubuntu 14.04 LTS 3)

Hier mal alles nach der eingabe von "sudo apt-get upgrade":

fabian@fabian-MS-7373:~$ sudo apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Probieren Sie »apt-get -f install«, um dies zu korrigieren.
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 openjdk-7-jre : Hängt ab von: openjdk-7-jre-headless (= 7u85-2.6.1-5ubuntu0.14.04.1) aber 7u79-2.5.6-0ubuntu1.14.04.1 ist installiert
E: Unerfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen.

Und nun wenn ich den empfohlenen befehl "sudo apt-get -f install" mache oder "sudo apt-get -f upgrade" oder "sudo apt-get upgrade -f" kommt das :

fabian@fabian-MS-7373:~$ sudo apt-get upgrade -f
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Abhängigkeiten werden korrigiert ... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
  openjdk-7-jre-headless
1 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
2 nicht vollständig installiert oder entfernt.
Es müssen noch 0 B von 41,4 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 92,2 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] 
(Lese Datenbank ... 323943 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../openjdk-7-jre-headless_7u85-2.6.1-5ubuntu0.14.04.1_i386.deb ...
Entpacken von openjdk-7-jre-headless:i386 (7u85-2.6.1-5ubuntu0.14.04.1) über (7u79-2.5.6-0ubuntu1.14.04.1) ...
dpkg-deb (Unterprozess): Archiv-Element wird dekomprimiert: lzma-Fehler: komprimierte Daten sind beschädigt
dpkg-deb: Fehler: Unterprozess <Dekompression> gab den Fehlerwert 2 zurück
dpkg: Fehler beim Bearbeiten des Archivs /var/cache/apt/archives/openjdk-7-jre-headless_7u85-2.6.1-5ubuntu0.14.04.1_i386.deb (--unpack):
 Extrahierte Daten für »./usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client/libjvm.so« können nicht nach »/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client/libjvm.so.dpkg-new« kopiert werden: Unerwartetes Ende der Datei oder des Datenstroms
E: Sub-process /usr/bin/dpkg returned an error code (1)
fabian@fabian-MS-7373:~$ 

Bitte um Hilfe!

Linux, Konsolen, Java, Ubuntu, Update, Error, Upgrade, apt-get

Gibt es eine Methode in Java, mit der Tastendruck abgefragt werden kann?

Guten Abend,

ich arbeite momentan an einem Projekt für die Schule, nämlich Pong (https://de.wikipedia.org/wiki/Pong), für welches ich die sogenannte Shapes and Sprites Bibliothek verwende, welche für zweidimensionale Projekte im Rahmen des schulischen Unterrichtes gedacht ist.

Soo, nun habe ich das grundlegende Spiel fertig programmiert und bin gerade dabei, einige neue Features zu implementieren, zu denen unter Anderem ein Computergegner gehört. Um das zu realisieren habe ich mir gedacht, dass wenn der Benutzer die Taste c drückt, der rechte Schläger nicht mehr über die Pfeiltasten (Über diese wird der Schläger nämlich bedient) erreichbar ist. Nun besteht die Möglichkeit, mittels der Methode tastaturobjekt.isPressed('c') abzufragen, ob die Taste c gedrückt wird.

Nun habe ich sowohl mit einem Integer computer = 0, dessen Wert einfach um 1 erhöht wird, wenn c gedrückt wird, als auch mit einem Boolean, über eine If-Verzweigung mit der Bedingung, dass der Integer-Wert = 0 bzw der Boolean istGedrueckt = false ist, den Schläger angewiesen, bei Druck der Pfeiltaste gedrückt zu werden, also quasi wie folgt:

 if(tastatur.down() && schläger2.getShapeY()<495 && (istGedrueckt == false)){
        schläger2.move(0,10);
    }

(getShapeY gibt hierbei die Y-Koordinate des Objekts an)

Nur leider besteht hierbei das Problem, dass der Schläger nur dann nicht mehr manuell bewegt werden kann, wenn C tatsächlich gedrückt gehalten wird und nicht nach einmaligem Druck. Deshalb lautet meine Frage, ob das JDK vielleicht eine Möglichkeit mit sich bringt, nach Möglichkeit ohne zehntausend andere Bibliotheken, einen Tastendruck zu überprüfen.

Das soll keine Bitte sein, meine Hausaufgaben zu erledigen, ich will keinen konkreten Quelltext für mein Projekt, sondern bitte einfach nur eine Antwort auf diese mehr oder weniger (ich hoffe) simple Frage, da Google mir dabei leider keine besonders hilfreichen Ergebnisse geliefert hat.

Liebe Grüße, Adrian.

Schule, programmieren, Java, Informatik

BlueJ - illegal start of expression. Wo liegt der Fehler?

Hallöchen, wir habe in der Schule vor kurzem mit dem Programmieren angefangen und dazu benutzen wir "BlueJ" und die Klassenbibliothek "Stifte und Mäuse".

Nun habe ich allerdings ein Problem und weiß nicht mehr weiter: In der Klasse Polygon bekomme ich in der Zeile mit "public void zeichne()" eine Fehlermeldung und zwar "illegal start of expression".

import sum.kern.*;

public class Polygon
{
    // Referenzen
    Stift meinStift;
    Polygon meinPolygon;
    Polygon meinPolygon1,meinPolygon2;

    // Konstruktor
    public Polygon(int pN,int pLaenge,int pHPosition,int pVPosition,int pWinkel)
    {
        // Objekte
        meinStift = new Stift();
        this.zeichne(pN, pLaenge, pHPosition, pVPosition, pWinkel);

        // Methoden
        public void zeichne() 

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
    }
}

Und die oben genannte Klasse Polygon soll auf die Klasse Steuerung "basieren". Liegt vielleicht hier der Fehler?

import sum.kern.*;

public class Steuerung
{
    // Referenzen
    Bildschirm meinBildschirm;

    // Konstruktor
    public Steuerung()
    {
        // Instanzvariable initialisieren
        meinBildschirm = new Bildschirm(800, 800);

        //methoden

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
    }
}

Ich würde mich sehr freuen, wenn mir jemand helfen würde.

Schule, programmieren, Java, BlueJ, Fehlermeldung

Java-Ausgabe rechtsbündig machen?

Hallo,

ist es möglich die Ausgabe rechtsbündig zu machen (siehe Screenshot) Code:

import java.text.DecimalFormat;

public class Aufgabe1 {

public static void main(String[] args) {
    DecimalFormat myFormat = new DecimalFormat("##,000.00");



    final double zinsenProzent = 0.04; 
    final double lottogewinn = 90000; 
    final double rateMonat = 1000; 
    final double rateJahr = rateMonat * 12; 
    double zinsenEUR = 0;
    double zinsenMonat = 0;
    double lottogewinnReduziert = lottogewinn;
    double aktuellesVermoegen = lottogewinn;


    int monatsZaehler = 0;
    int jahresZaehler = 0;
    double zinsenNormal = zinsenProzent * 100;


    System.out.println("Auszahlungsplan fuer Anlagekapital " + myFormat.format(lottogewinn)
            + " EUR und Zinssatz von " + zinsenNormal + "%");
    System.out.println("Monatlicher Entnahmebetrag: " + myFormat.format(rateMonat) + " EUR \n");
    System.out.println("Jahr \t \t Rate pro Jahr \t Zins pro Jahr \t Aktuelles Vermoegen");
    while (aktuellesVermoegen > 0 && jahresZaehler < 100) {

        monatsZaehler = monatsZaehler + 1;           
        if (monatsZaehler <= 12) {
            zinsenEUR = lottogewinnReduziert * zinsenProzent / 12;
            zinsenMonat = zinsenEUR + zinsenMonat;
            lottogewinnReduziert = lottogewinnReduziert - rateMonat;
            aktuellesVermoegen = lottogewinnReduziert + zinsenMonat;
        }


        if (monatsZaehler == 12) {
            monatsZaehler = 0;
            jahresZaehler = jahresZaehler + 1;
            lottogewinnReduziert = aktuellesVermoegen; 


            System.out.println(+jahresZaehler + ". Jahr \t " + myFormat.format(rateJahr) + " \t "
                    + myFormat.format(zinsenMonat) + " \t " + myFormat.format(aktuellesVermoegen) + "");
            zinsenMonat = 0;

        }
    }

    System.out.println("Kapitalverzehr nach " + jahresZaehler + " Jahren " + monatsZaehler + " Monat(en)");
}}

Geht wohl irgendwie mit %F oder so...kriege das aber nicht hin. Bitte um Hilfe. LG

Bild zum Beitrag
programmieren, Java

Wie sieht die Punktnotation in Java aus oder wie kann ich auf auf andere Klassen zugreifen?

Wie kann ich in der Klasse Telefon die Methoden aus der Klasse Telefonbuch verwenden ? Wenn ich es mit Punktnotation versuche wie z.B.

public void eintrag_hinzufuegen(String name)
{
    Telefonbuch.hinzufuegen(name);
}

, kommt die Fehlermeldung : non static method cannot be referenced from a static context

1)

import java.util.ArrayList;
public class Telefon
{
protected ArrayList <Telefonbuch> telefonbuch;
protected boolean eingeschaltet;
        
        public Telefon()
    {
        // initialise instance variables
        telefonbuch = new ArrayList <Telefonbuch>();
    }
    
    public void anrufen (String name)
    {
    }
    
    public void einschalten()
    {
        eingeschaltet = true;
    }
    
    public void telefonbuch_uebersicht()
    {
        
    }
    
    public void eintrag_hinzufuegen(String name)
    {
    }
    
    public void eintrag_entfernen(String name)
    {
    }
    
    public boolean eintrag_suchen(String name)
    {
    }
}

2)

import java.util.Arrays;

/**
 * Write a description of class Telefonbuch here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Telefonbuch
{
    // instance variables - replace the example below with your own
    private int anzahl_eintrag;
    private int kapazitaet;
    private String[] name_liste;
    protected boolean gefunden;

    /**
     * Constructor for objects of class Telefonbuch
     */
    public Telefonbuch()
    {
        // initialise instance variables
        String [] name_liste = new String[kapazitaet];
        gefunden = false;
    }
    
    public void set_kapazitaet(int x)
    {
        kapazitaet = x;
    }
    
    public void telefonbuch_uebersicht()
    {
        for(int i=0; i < name_liste.length; i++)
        {
        System.out.println(name_liste[i]);
        }
    }
    
    public void hinzufuegen(String name)
    {
        
    }
    
    public void entfernen(String name)
    {
    }
    
    public boolean suchen(String name)
    {
        for(int i=0; i < name_liste.length; i++)
        {
         if(name_liste[i].equals(name))
         {
         gefunden = true;
         }
         else
         {
         //Abbruch
         }
        }
        return gefunden;
    }
}

programmieren, Java, Informatik

LibGDX - Wie generiert man eine Welt (2D) einmalig?

Hallo Leute.

Ich hatte bereits mehrfach wegen LibGDX gefragt, allerdings nie eine richtige Antwort bekommen. Darum erkläre ich es hier kurz einfacher:

Ich bin gerade dabei, ein 2D Spiel in LibGDX, also Java (Eclipse) zu programmieren. Dafür habe ich bereits Blocktexturen erstellt und auf dem Bildschirm generieren lassen.

Das Problem ist aber, dass sich der "GameScreen" ja immer wieder updatet und somit bei einer zufallsgenerierten Welt alles durcheinander fliegt. Ich finde aber auch keine andere Lösung, um dieses Problem selbst zu beheben.

Wenn jemand sich wirklich damit auskennt und bitte auch wirklich NUR Leute, die sich damit auskennen: Wie lässt man etwas nur EINMALIG generieren, also möglichst außerhalb der batch.draw()-Schleife? Bedeutet, die Welt verändert sich nicht mehr, nachdem sie generiert wurde. (Falls Quellcode nötig ist, sollte bei meinen letzten 2 Fragen etwas dabei sein)

Und falls es noch jemand weiß: Wie könnte man eine Welt generieren, die über den Bildschirm hinaus geht bzw. wie generiert man die Welt weiter, wenn man aus dem Bildschirm läuft und die Kamera sozusagen "mitzieht"?

Ich würde mich freuen, wenn wenigstens eins der beiden Probleme gelöst wird, am Liebsten natürlich das Hauptproblem mit dem einmaligen generieren. Wenn jemand antwortet, würde ich auch darum bitten, bei Antworten meinerseits auch zu reagieren und nicht direkt das Thema zu vergessen und als "erledigt" anzusehen.

MfG xSh4kerx

Spiele, programmieren, Java, Eclipse, LibGdx

Meistgelesene Beiträge zum Thema Java