Wie findet ihr meinen Java Taschenrechner?
public static void main(String args []) {
  Scanner s = new Scanner (System.in);
  System.out.println("Hallo, dies ist ein Taschenrechner");
  Methode();
  System.out.println("Möchtest du nochmal rechnen?: j/n");
  String Nochmal = s.next();

  if (Nochmal.equals("j")) {
    Methode();
  }
  else
  {
    System.out.println("Vielen Dank und auf Wiedersehen!");
  }
}

public static void Methode() {
  Scanner s = new Scanner (System.in);
  boolean bool;
  System.out.println("Wähle eine Rechenoperation aus. Zur Auswhl stehen: +,-,/,");
  String Operationszeichen = s.next();

  do {
    if (Operationszeichen.equals("+")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("-")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("/")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else {
      bool = false;
      System.out.println("Eingabe nicht verstanden. Bitte wähle eine gültige Rechenoperation aus.");
      Operationszeichen = s.next();
    }
  }

  while(bool == false);

  System.out.println("Nun gib zwei Zahlen ein, mit denen gerechnet werden soll");
  double a = s.nextInt();
  double b = s.nextInt();
  double c;

  if (Operationszeichen.equals("+")) {
    c = a + b;
  }
  else if (Operationszeichen.equals("-")) {
    c = a - b;
  }
  else if (Operationszeichen.equals("/")) {
    c = a / b;
  }
  else {
    c = a * b;
  }

  System.out.println("Das ergebnis lautet: " + c);
}
programmieren, Java
Ich versuche einen Taschenrechner mit Java zu programmieren, warum wiederholt sich die do-while-Schleife nicht, wenn.....?

man eine ungülgite Rechenoperation auswählt?

Stattdessen springt er aus der Schleife und macht mit der nächsten Ausgabe weiter.

Scanner s = new Scanner (System.in);
        
        
        System.out.println("Hallo, dies ist ein Taschenrechner.\nWähle eine Rechenoperation aus. Zur Auswhl stehen: +,-,/,");         String Eingabe = s.next();                  boolean bool;                           do         {             if (Eingabe.equals("+")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("-")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("/")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("")) {
                System.out.println("Eingabe bestätigt.");
                bool=true;}
            else {System.out.println("Eingabe nicht verstanden. Bitte wähle eine gültige Rechenoperation aus.");
                bool=false;
                Eingabe = s.next();
                
                }
            
        }while(bool = false);
    
        System.out.println("Nun gib zwei Zahlen ein, mit denen gerechnet werden soll");

        

Hier nochmal als Bild

https://www2.pic-upload.de/img/35478781/Unbenannt.png

      

Computer, Schule, programmieren, Java
Frage zu einer C Code Aufgabe?

Das folgende Programm ist lediglich zu Vorführungszwecken gedacht und soll Sie mit Zeigerarithmetik vertraut machen. Gehen Sie daher den Code aufmerksam durch und versuchen Sie die Vorgänge nachzuvollziehen.

Hinweise:

  • Wo werden Adressen oder Werte von Zeigern/Variablen ausgegeben/beeinflusst?
  • Beachten Sie den Platzhalter „%p“, um Adressen von Pointern auszugeben und die notwendige Typenumwandlung der Variablen zu (void*) zu realisieren.
  • Achten Sie auf die Adress-Abstände benachbarter Array Elemente. Was fällt Ihnen auf und wieso verhält es sich so?
  • Es ist ein Befehl im Code enthalten, der nicht wirklich sinnvoll ist, da er keine Aktion ausführt. Welcher ist es? =  

#include <stdio.h>  int main(){//Variablendeklarationint

iAFeld[6] = {3, 7, 7, 9, 6, 9}; int * piZeiger = NULL; int

i = 0;

piZeiger = iAFeld;piZeiger++;.printf ( "Adresse des ersten Arrayelements: %p\n" , ( void )iAFeld); printf ( "Adresse des dritten Arrayelements: %p\n" , ( void )&iAFeld[2]); printf ( "Wert des Zeigers: %p\n\n" , ( void *)piZeiger); .//Ausgabe des Ausgangsarraysfor

(i = 0; i < 6; i++) printf ( "%i " ,iAFeld[i]); printf ( "\n" ); .//1. Schritt*(++piZeiger) = iAFeld[4];.//Ausgabe des Arraysfor

(i = 0; i < 6; i++) printf ( "%i " ,iAFeld[i]);  printf ( "\n" );    //2. Schritt piZeiger+2; ++(*piZeiger);   //Ausgabe des Arrays for

(i = 0; i < 6; i++)  printf ( "%i " ,iAFeld[i]);  printf ( "\n" );    //3. Schritt piZeiger += 2; *(piZeiger+1) = *piZeiger&12;   //Ausgabe des Arrays for

(i = 0; i < 6; i++)   printf ( "%i " ,iAFeld[i]);   printf ( "\n" );     printf ( "\nZeiger zeigt auf die Stelle, dessen Inhalt ist: %i\n" , *(piZeiger++));  printf ( "Zeiger zeigt auf die Stelle, dessen Inhalt ist: %i" , *piZeiger);

   return

0;

 } 

Meine erste Frage: was bedeutet piZeiger&12, meine zweite: warum ist der Befehl Zeiger +2 sinnlos? Es müsste wahrscheinlich heißen Zeiger = Zeiger +2 oder?

Und meine dritte Frage: was hat es mit dem Abstand der Adressen auf sich?

die eine Adresse endet mit d8 die andere mit d0 ansonsten sind sie identisch. ist also der Abstand immer ein Byte?


programmieren, Informatik
Mit zwei Leuten zwei Spiele auf einem PC spielen?

Können zwei Leute auf einem PC parallel zwei Spiele, konkret das Spiel "Flyff", spielen? Der Rechner auf dem wir es versuchen hat als Betriebssystem Windoof 10.

Haben Virtual Box probiert und ein virtuelles Windows 7 eingestellt.

Da meckert das Spiel wegen direct x rum. Außerdem gibt es eine Fehlermeldung dass kein 3D rendering möglich sei.

Grafiktteiber können wir keine installieren, da wohl nur eine virtuelle Grafikkarte für das Virtuelle System zur Verfügung steht.

Direct X 11 ist installiert, das bestätigt auch dxdiag.

Auch gibt es bei versuchter Neuinstallation von Direct X die meldung dass das aktuellste Direct X installiert sei.

Gibt es andere Programme als Virtual Box die sich für unseren Zweck eignen würden?

Oder vielleicht eine Erweiterung für Virtual Box um die Grafikkarte hardwaremäßig zu "parallelisieren", oder anderweitig Abhilfe zu schaffen?

Geht das Ganze vielleicht mit einem anderen Virtuellen betriebssystem wie einem Linuxbasierten besser?

Es gibt ja Tools wie "Wine", die extra dafür sind auf Linux Windows Programme auszuführen; auch wenn etwas umständlich, könnte man Linux auf einer Virtuellen Platte aufspielen, darauf wiederum wine, umd darüber das Spiel? Ist wohl ein völlig amateurhafter Ansatz, aber vielleicht bringt's Euch ja auf Ideen ^^

Computer, Windows, Betriebssystem, Technik, programmieren, Gaming, Technologie, VirtualBox, Spiele und Gaming
Java, Minecraft HackedClient Error?

Guten Tag,

Ich programmiere einen Minecraft HackedClient. Dazu benutze ich logischerweise Eclipse. Ich habe erst das Gerüst gemacht, Module bestehen noch keine.

Immer wenn ich den Client starte (debug oder normal) crasht er, sobald ich eine Welt betrete. Den Client code ich für die 1.8.8. Im Projekt werden mir keine Fehler angezeigt, versucht habe ich ebenfalls: Project -> Clean... | hat aber nicht geklappt.

Die Fehler die mir angezeigt werden sind nicht von mir gecodet, sollten also keine Fehler ergeben.

Crash:

[Client thread/FATAL]: Unreported exception thrown!
java.lang.NoSuchMethodError: net.minecraft.client.renderer.EntityRenderer$1.<init>(Lnet/minecraft/client/renderer/EntityRenderer;)V
	at net.minecraft.client.renderer.EntityRenderer.getMouseOver(EntityRenderer.java:493) ~[bin/:?]
	at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1504) ~[bin/:?]
	at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1324) ~[bin/:?]
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1132) ~[bin/:?]
	at net.minecraft.client.Minecraft.run(Minecraft.java:424) [bin/:?]
	at net.minecraft.client.main.Main.main(Main.java:113) [bin/:?]
	at Start.main(Start.java:11) [bin/:?]

Specs, mit denen der Client auf meinem PC gestartet wird:

CPU: Intel Core i7 7700 | 8 Kern | 3,6GHz

GPU: NVIDIA GeForce GTX 1070 | 8GB Grafikspeicher

RAM: Mein PC: 32 GB | Minecraft zugewiesen: 16GB

Computer, Technik, programmieren, Java, Minecraft, Technologie, Spiele und Gaming
Java Daten nicht untereinander sondern nebeneinander ausgeben?

Hallo Leute!

Ich habe von meinem Lehrer die Aufgabe bekommen, mit Java Punkte vom Lorenzmodell auszurechnen und die Daten (drei Koordinaten) in einer txt-Datei abzuspeichern. So weit bin ich gekommen:

public class Lorenzmodell {
   public static void main(String[] args) {
      // TODO Auto-generated method stub
double x = 0.1;
double y = 0;
double z = 0;
double a = 10.0;
double b = 28.0;
double c = 8.0 / 3.0;
double t = 0.01;
int n = 1000;
int i;

      for ( i = 0; i < n; i++ ){
        double xt = x + t * a * (y - x);
        double yt = y + t * (x * (b - z) - y);
        double zt = z + t * (x * y - c * z);
        x = xt;
        y = yt;
        z = zt;
                 System.out.println(x);
                 System.out.println(y);
                 System.out.println(z);
     }
   }
}

Mein Problem ist jetzt, dass die Daten untereinander ausgegeben werden ich aber möchte, dass alle Werte in einer Art Tabelle rausgegeben werden. Also alle Werte für x in einer Zeile , für y und für z. Könntet ihr mir da weiter helfen?

Außerdem verstehe ich nicht was mein Lehrer mit der Text-Datei meinte. Ist es das mit dem Ausgeben also das mit system.out.println was er gemeint hat?

Wundert euch bitte nicht, dass ich so wenig Ahnung habe, unser Lehrer erklärt uns fast nichts und wir müssen alles dauernd selber recherchieren und ich habe bis jetzt noch nichts mit Java gemacht.

Computer, Schule, programmieren, Java, Informatik
C# User Login: Passwort-Hash vergleichen?

Hallo,

ich programmiere eine Anwendung, in der man Adressen mit SQL-Server verwalten kann. Man kann Benutzer anlegen und sich mit denen beim Start der Anwendung einloggen.

Nun möchte ich das Passwort hashen. Beim Erstellen des Benutzers wird bereits ein Hashwert generiert und in der Passwort-Spalte in der Datenbank angezeigt. Beim Einloggen soll auch das Passwort gehasht werden und dann der Hash vom Einloggen mit dem aus der Datenbank auf Übereinstimmung verglichen werden.

Ich habe mich an folgendem Tutorial orientiert: https://dotnetcodr.com/2017/10/26/how-to-hash-passwords-with-a-salt-in-net-2/

Ich generiere also immer einen zufälligen Hashwert und das auch beim Einloggen. Wenn ich dann also den Hash vom Einloggen mit dem aus der Datenbank pvergleiche, können die nie übereinstimmen, weil eben bei beiden immer ein zufälliger Wert generiert wird.

Hash (beim Erstellen des Benutzers):

public HashWithSaltResult HashWithGenericSalt(string password, int saltLength, HashAlgorithm hashAlgo)
{
    RNG rng = new RNG();
    byte[] saltBytes = rng.GenerateRandomCryptographicBytes(saltLength);
    byte[] passwordAsBytes = Encoding.UTF8.GetBytes(password);
	List<byte> passwordWithSaltBytes = new List<byte>();

    passwordWithSaltBytes.AddRange(saltBytes);
    passwordWithSaltBytes.AddRange(passwordAsBytes);
    byte[] digestBytes = hashAlgo.ComputeHash(passwordWithSaltBytes.ToArray());

    return new HashWithSaltResult(Convert.ToBase64String(saltBytes), Convert.ToBase64String(digestBytes));
}

Hash (beim Einloggen):

public HashWithSaltResult HashWithSalt(string password, string salt, HashAlgorithm hashAlgo)
{
	// Wie hashe ich beim einloggen?
}

Einloggen:

using (var context = new PersonDbContext())
{
	var query = from p in context.Benutzers where textBoxVorname.Text == p.Vorname && textBoxName.Text == p.Name && HashResultSha512.Digest == p.PasswortDigest select p;
    HashPassword();
}

public void HashPassword()
{
    PasswordWithSaltHasher pwHasher = new PasswordWithSaltHasher();
    HashResultSha512 = pwHasher.HashWithSalt();

    db.CheckBenutzerLogin(textBoxVorname.Text, textBoxPasswort.Text, HashResultSha512.Salt, HashResultSha512.Digest);
}

Was muss ich in

public HashWithSaltResult HashWithSalt

schreiben, damit er den Hashwert aus der Datenbank verwendet und nicht wieder einen neuen Wert generiert?

SQL, programmieren, Passwort, Login, C Sharp, SQL-Server, Visual Studio
Welche Engine würdet ihr benutzen um 2D Games für Android zu programmieren?

Zur Erklärung: ich habe bis jetzt schon sehr viel für Android mit Java in Android Studio programmiert und bin hier nun an die Grenzen des SurfaceViews gestoßen ..... die Performance. Bei meinem letzten Spiel hatte ich nur noch mit Glück um die 25FPS (mit Glück lief die draw() und update() Methode 25mal pro Sekunde durch ... meistens deutlich weniger) und das ist einfach zu wenig. Jetzt meine Frage, wie würdet ihr mir Empfehlen jetzt weiter zu machen ? Soll ich weiter für Android programmieren, aber diesmal mit einer Engine ? Ich habe in absehbarer Zeit nur vor 2D Spiele zu entwickeln. Es wäre schön, wenn ich bei Java bleiben könnte, da ich jetzt schon seit fast 3 Jahren mit Java programmiere. Und jetzt zur eigentlichen Frage: welche Engine würdet ihr mir empfehlen ?

  • (am wichtigsten) Es sollte viele Tutorials dazu geben (egal ob auf Deutsch oder Englisch)
  • Ich würde gerne bei Java bleiben
  • die Engine sollte kostenlos benutzbar sein und man sollte auch Apps ohne weitere kosten mit dieser Engine veröffentlichen können
  • (optimal) wäre wenn die Engine keine Werbung ins Spiel für sich einbaut
  • (davon hab ich keine Ahnung) Wie sieht es mit Cross-Plattfrom Support aus ?

Bitte antwortet nicht einfach nur mit einem Wort (dem Engine namen )... sondern begründet die Antwort auch in Bezug auf die 5 Punkte.

Computer, App, Technik, programmieren, Java, engine, Android, OpenGL, Technologie, Unity, Spiele und Gaming

Meistgelesene Beiträge zum Thema Programmieren