Methoden Pseudocode

B

bro

Gast
Hey Java-forum.org user,
Ich habe ein Problem mit einer Aufgabe und brauche dringend Hilfe bitte :

Aufgabe:

Übersetze den nachfolgenden umgangssprachlich formulierten Algorithmus in einen korrekten Java-Code und erläutere seinen Zweck.

a)

Eingabe der ganzen Zahlen a und b
Anzahl ist ebenfalls eine ganze zahl
setze Anzahl gleich null
wiederhole solange a kleiner b
b = b - a
Anzahl = Anzahl + 1
ende Wiederhole
Ausgabe Anzahl
Ausgabe "Rest" + b


b)

Eingabe der ganzen zahl n
text ist ein Text
falls n = 1 setze text zu "sehr gut"
falls n = 2 setze text zu "gut"
falls n = 3 setze text zu "befriedigend"
falls n = 4 setze text zu "ausreichend"
falls n = 5 setze text zu "mangelhaft"
falls n = 6 setze text zu "ungenügend"

Wenn einer weiß wie ich diese Aufgabe lössen könnte bzw angehend könnte wäre das Nett. Wenn einer die Lösung hätte wäre das super. ;D
 
B

bro

Gast
Hi danke für die schnelle antwort leider weiß ich nicht was ein java scanner ist und auch nicht was du mit schleifen meinst wir machen das grad in der schule und ich verstehe die ganze sache nicht so ganz... :D
das heißt ich habe noch keinen ansatz
 

njans

Top Contributor
Also ganz einfach wäre es sinnvoll, den Algrotithmus, der beschrieben wird, einmal anzuwenden.
Du nimmst dann einfach Werte für a und b and und rechnest das einmal durch. Dann wirst du schon deutlich mehr wissen.

Wenn du dann verstanden hast, was da passiert, dann kannst du das auch leicht in Java "gießen".
 
B

Bro

Gast
durchgerechnet hab ich beide Algorithmen schon verstehe auch den zweck nur ich weiß nicht wie man das jetzt umschreibt in einen java-code
 

njans

Top Contributor
Java:
Eingabe der ganzen Zahlen a und b // int a, int b;
Anzahl ist ebenfalls eine ganze zahl // int anzahl;
setze Anzahl gleich null // anzahl = 0;
wiederhole solange a kleiner b // while schleife
b = b - a // das ist schon fast Java^^
Anzahl = Anzahl + 1 // auch fast Java
ende Wiederhole 
Ausgabe Anzahl // System.out.println(anzahl); 
Ausgabe "Rest" + b /7 noch mal ein System.out...
Du solltest ja schon etwas über Java wissen, als zumindest grob, was die main Methode ist und wie die Syntax von Java aussieht.
 
B

bro

Gast
Hier ist ein Versuch aber ich bin sicher der ist falsch....


Java:
public class a {
private static int a (int a, int b);
privat int Anzahl;
while (a<b);
if (a>b);
b=b - a;
}
else {
Anzahl= Anzahl + 1
}
return Anzahl;
} 
public void AnzahlAusgeben () {
system.out.println (anzahl);
}

wärst du so nett und könntest du schauen was ich da falsch habe. ;D
 

njans

Top Contributor
Java:
public class a 
{
  private static int a (int a, int b); // Da wird dir java sagen, dass dieser Ausdruck nicht übersetzbar ist
  privat int Anzahl;
  while (a<b); // Auführbare codezeilen gehören in Methoden
  if (a>b); // s.o.
  b=b - a; // s.o.
} // Klasse zuende
else { // das wird nicht mehr ausgeführt, würde uach nicht gehen, da in keiner Methode
  Anzahl= Anzahl + 1 // s.o.
}
return Anzahl; // s.o.
}
public void AnzahlAusgeben () { // hier kommt dann die Methode, aber die steht in keiner klasse mehr
system.out.println (anzahl);
}
Also da sind ganz schön viele Fehler drin.


Java:
public class Aufgabe
{
  public static void main(String[] args)
  {
    //neues Objekt erstellen und an diesem die Methode aufrufen
    new Aufgabe().berechneWert(10,20);
  }

  // Methode zum Berechnen, mit Parameter a und b..
  public void berechneWert(int a, int b)
  {
    // Hier kommt dann die ganze Berechnung hin
    int anzahl = 0;
    while(a < b)
    {
      b = b -a; // ist gleichbedeutend mit b -= a;
      anzahl = anzahl +1; // ist gleichbedeutend mit anzahl++;
    }
    system.out.println(anzahl);
    system.out.println("Rest " + b);
  }
}

Ich weiß natürlich nicht, wie die Werte für a und b einzulesen sind. Also ob das einfach vor jedem Start defniert wird im Code, oder als Commandozeile oder aber direkt als Interaktion mit dem User.
 
P

pappawinni

Gast
...
wärst du so nett und könntest du schauen was ich da falsch habe. ;D

Also viel ist da ja nicht richtig.
Ich denke mal, dass du einige grundlegende Dinge über Java schon gelernt haben solltest, aber nicht hast.
Da fängt das Problem dann an.
Vertretbar wäre für eine/n Anfänger/in vielleicht noch sowas:
Java:
// Divison von b durch a mittels wiederholter Subtraktion
import java.util.*;

public class CBeispiel1
{
  public static void main (String[] args) 
  {
  // Eingabe der ganzen Zahlen a und b 
  Scanner in = new Scanner(System.in);
  System.out.println("Geben Sie ihre 2 Zahlen ein:");
  int a = in.nextInt();
  int b = in.nextInt();
  // Anzahl ist ebenfalls eine ganze zahl
  int anzahl;
  // setze Anzahl gleich null
  anzahl = 0;
  // wiederhole solange a kleiner gleich b
  while (a <= b)
  {
    // b = b - a
    b -= a;
    // Anzahl = Anzahl + 1
    anzahl += 1;
    // ende Wiederhole
  }
  // Ausgabe Anzahl
  System.out.print(anzahl);
  // Ausgabe "Rest" + b
  System.out.println(" Rest " + b);
  // Ende Main Methode
  }
  // Ende Klasse CBeispiel1 
}

Java:
// Setzt Notenwerte in entsprechenden Text um
import java.util.*;

public class CBeispiel2
{
  public static void main (String[] args) 
  {
  // Eingabe der ganzen zahl n 
  Scanner in = new Scanner(System.in);
  System.out.println("Geben Sie ihre Note ein:");
  int n = in.nextInt();
  // text ist ein Text
  String text="";
  // Prüfe n
  switch (n)
  {
    // falls n = 1 setze text zu "sehr gut"
    case 1: text = "sehr gut";break;
    // falls n = 2 setze text zu "gut"
    case 2: text = "gut";break;
    // falls n = 3 setze text zu "befriedigend"
    case 3: text = "befriedigend";break;
    // falls n = 4 setze text zu "ausreichend"
    case 4: text = "ausreichend";break;
    // falls n = 5 setze text zu "mangelhaft"
    case 5: text = "mangelhaft";break;
    // falls n = 6 setze text zu "ungenügend"
    case 6: text = "ungenügend";
  }
  // Ausgabe Text
  System.out.println(text);
  // Ende Main
  }
  // Ende Klasse CBeispiel2 
}
 
Zuletzt bearbeitet von einem Moderator:
T

Tomate_Salat

Gast
Das so jemand auch noch HIlfe gewährt wird obwohl er offensichtlich zu faul war zu lernen was er lernen sollte.

Alleine der Satz "Ich weiss nicht mal was ein Java Scanner ist" ... Dann benutz halt Google!

Dito. Naja, der TO wird sehen was er davon hat, wenn er eine Arbeit darüber schreiben darf. Da wird er mit ach und krach durchfallen :).
 
H

hüteüberhüte

Gast
a)

Eingabe der ganzen Zahlen a und b
Anzahl ist ebenfalls eine ganze zahl
setze Anzahl gleich null
wiederhole solange a kleiner b
b = b - a
Anzahl = Anzahl + 1
ende Wiederhole
Ausgabe Anzahl
Ausgabe "Rest" + b

a)

Java:
int a = /* einlesen */;
int b = /* einlesen */;
int c = 0; // <- das soll wohl 0 statt null sein
while (a < b) {
b -= a;
c++;
}
System.out.println("b/a=" + c + " Rest " + b);

Aber muss es nicht <= (kleiner gleich) heißen?
 
P

pappawinni

Gast
...
Aber muss es nicht <= (kleiner gleich) heißen?

Hab ich auch so gesehen. :toll:

Schon witzig,
die Einen regen sich auf, dass hier fertige Lösungen geliefert werden und der nächste kommt und liefert eine schon vorhandene Lösung nochmal. :lol:

Ich seh das so, wenn er einer Java lernen will, dann lernt er es auch anhand von fertigen Lösungen. Wenn nicht, dann lernt er es damit auch nicht.
Der Wille machts.
Und wenn einer selbst seine Doktorarbeit irgendwo abschreiben will, dann kann ich das auch nicht verhindern.
 

vonAltmann

Mitglied
OK, sehr gut. Ich möchte einen PhD machen, hab aber keine Ahnung in welchem Fach und welches Thema. Kann mir jemand einen kleinen Tipp geben. Gerne auch eine fertige Doktoarbeit. Ich solange in den Urlaub.
 
H

hüteüberhüte

Gast
Diese Miniaufgabe zu machen, wird jetzt wohl nicht so schlimm sein. Außerdem habe ich ja noch einige Stellen ausgespart, und dabei ist eben eine evtl. Unstimmigkeit in der Aufgabenstellung aufgefallen. Aufgabe b) könnte auch mit "if-else if-else if-...-else"-Konstruktionen gelöst werden - :arrow: er sollte beides ausprobieren.
 
H

hüteüberhüte

Gast
Bei switch-case würde ein break; geschrieben werden, :arrow: das hat das gleiche zufolge wie ein nicht mehr betretender else-Zweig (else-Zweig, der nicht mehr betreten wird, wenn vorher die Bedingung zutraf).
 

Ähnliche Java Themen

Neue Themen


Oben