Wie löst man diese Java-Aufgabe?

Guten Tag liebe Gutefrage-Community,

ich verzweifle schon seit einiger Zeit wegen dieser Aufgabe, ich weiß einfach nicht, was ich zutun habe.

Mir wurde gesagt, dass ich einen sog. Dijsktra-Algorithmus verwenden kann, aber ich hab auch einfach keine Ahnung wie ich das mache.

Hoffentlich könnt ihr mit weiterhelfen:

#Wanderer Streckenberechnung

Ein Wanderer geht jedes Mal in seinem Urlaub eine Wanderstrecke mit mehren potentiellen Stops in Herbergen innerhalb von drei Tagen ab. Dabei möchte er natürlich die maximale Strecke die an einem Tag zurückgelegt werden muss möglichst gering halten, allerdings muss er auch dreimal anhalten um die Nacht in einer Herberge(STOP) zu verbringen.

Aufgabe: Schreibe für den Wanderer ein Programm, das aus einer beliebigen Anzahl Stops, sowie der Distanz zwischen den Stops, eine Route mit der kürzesten maximalen Strecke die an einem Tag zurückgelegt werden muss, berechnet.

Beispiel:

##INPUT:

STOPS: 8

DISTANZEN: 25,5,2,1,15,3,1,20,5

   

       25KM        5KM          2KM         1KM        15KM        3KM         1KM         20KM          5

ANFANG----->STOP_1----->STOP_2----->STOP_3----->STOP_4----->STOP_5----->STOP_6----->STOP_7----->STOP_8----->ENDE

##OUTPUT

Beste Route

Tag1: STOP1, STOP2, STOP3, STOP4 (33KM)

Tag2: STOP5, STOP6, STOP7 (19KM)

Tag3: STOP8, ENDE (25KM)

Mathematik, IT, programmieren, Java, Anwendungsentwicklung, Anwendungsentwickler
Magischer Würfel. If funktion überlastet?

Hallo zusammen

Ich bin aktuell an der spannenden Aufgabe eines magischen Würfels dran und scheine auch so gut wie fertig damit zu sein.

Leider erhalte ich die Meldung, dass die if Funktion zu fehlen schein, was logischerweise nicht der Fall ist. Meine if Funktion beinhaltet lediglich viele kumulativ zu erfüllende Kriterien.

Aufgabe:

  • Erstelle mit hilfe eines 2D-Arrays einen magischen Würfel.
  • Definition magischer Würfel = Würfel mit 3 Zeilen und 3 Spalten. Jede Spalte, jede Zeile und beide Diagonalen müssen den selben Wert ergeben, wenn diese zusammengerechnet werden:

Frage:

Wo liegt hier genau das Problem? Gibt es bei der if Funktion ein Maximum an Vergleichsoperatoren oder ist das schon rechtens? Ansonsten scheint der compiler mit dem Code einverstanden zu sein und müsste nachher somit funktionieren.

Fehlermeldung Compiler:

Vor einem "else"-Statement erwartet das System immer ein "if"-Statement. Es kann sein, dass das "else"-Statement nicht auf der gleichen Ebene ist. Schreibe das 'if'-Statement oder rücke das 'else' auf die richtige Ebene.

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

int [][] quadrat = new int[3][3];

Scanner keyScan = new Scanner(System.in);

// Quadrat einlesen

System.out.println("Bitte 9 Zahlen eingeben und mit Enter abschliessen");

for (int i=0; i<3; i++) {

for (int j=0; j<3; j++) {

quadrat[i][j] = keyScan.nextInt();

}

}

int magischeZahl = 0;

// TODO: Quadrat prüfen und die Variablen magisch und magischeZahl auf den richtigen Wert setzen. 

  int Zeile1 = 0;

i = 0;

    for (int j=0; j<3; j++) {

      Zeile1 += quadrat[i][j];}

  int Zeile2 = 0;

i = 1;

    for (int j=0; j<3; j++) {

      Zeile2 += quadrat[i][j];}

  

  int Zeile3 = 0;

i = 2;

    for (int j=0; j<3; j++) {

      Zeile3 += quadrat[i][j];}

   

   

  int Spalte1 = 0;

j = 0;

    for (int i=0; i<3; i++) {

      Spalte1 += quadrat[i][j];}

  int Spalte2 = 0;

j = 1;

    for (int i=0; i<3; i++) {

      Spalte2 += quadrat[i][j];}

  int Spalte3 = 0;

j = 2;

    for (int i=0; i<3; i++) {

      Spalte3 += quadrat[i][j];}

int Diagonaleuntennachoben = 0;

i = 2;

j = 0;

int count = 0;

if (count<3) {

  Diagonaleuntennachoben += quadrat[i][j];

  i--;

  j++;}

  int Diagonaleobennachunten = 0;

i = 0;

j = 0;

count = 0;

if (count<3) {

  Diagonaleobennachunten += quadrat[i][j];

  i++;

  j++;}

  int magischeZahl = Zeile1;

 

// Ausgabe des Ergebnisses

if (Zeile1 == Zeile2 && Zeile1 == Zeile3 && Zeile1 == Spalte 1 && Zeile1 == Spalte2 && Zeile1 == Spalte3 && Zeile1 == Diagonaleobennachunten && Zeile1 == Diagonaleuntennachoben) {

System.out.println("Magisch: "+magischeZahl);}

else {

System.out.println("Nicht magisch");}

keyScan.close();

}

}

Habe die Frage mit verbessertem Code und einem letzten kleinen Array Problem nochmals gestellt, da ich für eine Anpassung der Frage hier kaum mehr Zeichen zur Verfügung habe (Anzahl Zeichen pro Frage ist leider begrenzt).

Hier der Link:

https://www.gutefrage.net/frage/fehler-im-array-neue-frage-magischer-wuerfel

Bild zum Beitrag
programmieren, Java
PHP MySql Login / Passwort überprüfung?

Kann mir da jemand sagen wo der Fehler liegt ? Ich bin da am verzweifeln.

Login, Registrierung, Fehlermeldung, SQL Struktur habe ich alles in die Frage gepackt damit ihr einen besseren überblick habt.

login.php:

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $username = htmlspecialchars(stripslashes(trim($_POST['username'])));
    $password = htmlspecialchars(stripslashes(trim($_POST['password'])));

    $statement = $pdo->prepare("SELECT * FROM user WHERE username = :username");
    $result = $statement->execute(array('username' => $username
                                    ));
    $user = $statement->fetch();
    //Überprüfung des Passworts
    if ($user !== false && password_verify($username, $password['passwort'])) {
        $_SESSION['userid'] = $user['id'];
        die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
    } else {
        $errorMessage = "Nutzername oder Passwort war ungültig<br>";
    }

}catch (PDOException $e) {
    print "Error!: " . $e->getMessage() ;
    exit;
  }

Konsole :

<br />
<b>Warning</b>: Undefined variable $pdo in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\Test\assets\php\login.php:14
Stack trace:
#0 {main}
 thrown in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />

register.php

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

// POST wird mit AJAX gesendet
   $username = htmlspecialchars(stripslashes((trim($_POST["username"])))) ;
   $password =  password_hash(htmlspecialchars(stripslashes((trim($_POST["password"])))) ,PASSWORD_DEFAULT) ;
   $cash =     100;

// Schreibt in die Datenbank

   $sql = "INSERT INTO user (username,password,cash) VALUES (:username,:password,:cash) ";
   $sqlvars = array("username"  => $username,
   "password" => $password,
   "cash" => $cash);
   $Abfrage = $conn->prepare($sql);
   $Abfrage->execute($sqlvars);


}catch (PDOException $e) {
  print "Error!: " . $e->getMessage() . "<br/>";
  exit;
}

SQL STRUKTUR :

Datenbankname : Test

Tabelle : user , 5 Spalten/Rows

  • id | int , (auto increment)
  • username | varchar , (unique)
  • password | varchar, (gehasht mit salt sha512)
  • cash | varchar
  • time | datetime, (mit current time stamp)

und ich mache alles mit AJAX.

-PDO statt mysqli

Computer, Webseite, Programmierer, programmieren, JavaScript, Datenbank, Informatik, MySQL, PHP, Webentwicklung, Backend, phpMyAdmin, PDO
Unity Character Controller verbuggt?

Hey Leute,

ich habe mir gerade dieses:

(44) Basic Third Person Character Controller in Unity - Unity C# Tutorial 2022 - YouTube

Tutoral für third person controller angeschaut. Nach programmierung der Scripts habe ich aber zwei Bugs:

Mein Character "slided" weiter über den Boden auch wenn ich aufhöre w zu drücken. Man kann sich das vorstellen wie auf einer Eisbahn.

Obwohl ich eine Rigidbody eingefügt habe, fällt der Character nicht auf den Boden! Mein leicht abgeänderter Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
  public Animator playerAnim;
  public Rigidbody playerRigid;
  public float w_speed, wb_speed, olw_speed, rn_speed, ro_speed;
  public bool walking;
  public Transform playerTrans;
  void FixedUpdate()
  {
    if (Input.GetKey(KeyCode.W))
    {
      playerRigid.velocity = transform.forward * w_speed * Time.deltaTime;
    }
    if (Input.GetKey(KeyCode.S))
    {
      playerRigid.velocity = -transform.forward * wb_speed * Time.deltaTime;
    }
  }
  void Update()
  {
    if (Input.GetKeyDown(KeyCode.W))
    {
       playerAnim.SetTrigger("walk");
       playerAnim.ResetTrigger("idle");
       walking = true;
       //steps1.SetActive(true);
    }
    
    if (Input.GetKeyUp(KeyCode.W))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
  //steps1.SetActive(false);
    }
    
    if (Input.GetKeyDown(KeyCode.S))
    {
      playerAnim.SetTrigger("walk");
      playerAnim.ResetTrigger("idle");
      walking = true;
    }
    
    if (Input.GetKeyUp(KeyCode.S))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
    }
    
    if (Input.GetKey(KeyCode.A))
    {
      playerTrans.Rotate(0, -ro_speed * Time.deltaTime, 0);
    }
    
    if (Input.GetKey(KeyCode.D))
    {
      playerTrans.Rotate(0, ro_speed * Time.deltaTime, 0);
    }
  }
}

Danke für alle Antworten

Computer, programmieren, Unity, Spiele und Gaming

Meistgelesene Beiträge zum Thema Programmieren