forschleife

Status
Nicht offen für weitere Antworten.

Rascho

Neues Mitglied
Kann jemand mir bei der Aufgabe helfe.

Aufgabe 1)

Entwickeln Sie folgendes Programm als Struktogramm und Java-Programm:

Du sollst ein Ratespiel für zwei Personen entwickeln. Person eins gibt eine ganzzahlige Zahl ein, die die zweite Person erraten und die kleiner als 128 sein muss. Das Programm läuft einmal gestartet so lange, bis Person zwei die Zahl durch seine Eingabe erraten hat. Damit es leichter wird, gibt das Programm nach jeder Eingabe der Person zwei einen Tipp. Es teilt mit, ob die eingegebene Zahl von Person zwei größer oder kleiner als die gesuchte Zahl ist.

Die Aufgabe ist soweit aus Klassenarbeiten bekannt. Bitte achten Sie dieses Mal auf die richtigen Datentypen und die Verwendung einer fußgesteuerten Schleife.

Arbeitsschritte

1.Überlegen Sie sich die Anzahl, den Namen und den Datentyp der Variablen
2.Begründen Sie, welche Schleife eingesetzt werden soll
3.Entwickeln Sie ein Struktogramm oder PAP
4.Zeigen Sie Ihren Algorithmus dem Betreuer
5.Erstellen Sie das Java-Programm

Ich bin nur So weit gekommen:


Code:
import java.io.*;		//Bibliothek für das Einlesen von Zeichnen öffnen
// import Prog1Tools.IOTools; // Spezille Bibliothek zum Einlesen

public class Ratespiel {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	int x,y,i;

 
 System.out.println("Spieler 1: Bitte geben Sie ihre Geheimzahl ein");
 {
 
 Zahl=IOTools.readInteger();
	 
	 System.out.println("Spieler 2 : Bitte gebn sie ihre Geheimzahl ein");
	 
  Zahl=IOTools.readInteger();
	
	
 y=0<128; 
 x=0<128;
 
 Zahl=IOTools.readInteger();
for (i=0;i<128;i++){
 if (i!=y)
 continue;  
 }
if(x<y||x>y)
{
switch(x)
{
case 1:System.out.print("Die gesuchte Zahl ist größer!:"); 
	  System.out.println(x<y); break;
case 2:System.out.print("Die gesuchte Zahl ist kleiner!:");
	  System.out.println(x>y); break;	
	  
default: 
        System.out.print("Kindergeld:");
      

	
	   System.out.println( i );
	
	 System.out.println("Spieler 2 : Bitte gebn sie ihre Geheimzahl ein");
	 
  Zahl=IOTools.readInteger();
	

	}

}}}}
 

Luma

Bekanntes Mitglied
Hio.
Hmm. Mir war grad langweilig, deswegen hab ich dir das schnell programmiert. Ich hab komplett neuen Code geschrieben (was mich an deinem so verwirrt hat sind die vielen geschweiften Klammern ???:L ).

Hier mein Code:

Code:
/*
 * Ratespiel.java
 *
 * Created on 23. April 2006, 20:44
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 *
 * @author Luma
 */
public class Ratespiel {
	
	// Der Reader liest von der Konsole die Eingabe des Benutzers
	private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	
	
	public static void main(String[] args) {
		System.out.println("Hallo, hello, ahoi, Bonjour, Servus!\n");
		/*
		 * Geheimzahl einlesen
		 */
		int geheimzahl = 0;
		while(true) {
			System.out.print("Spieler 1, geben Sie bitte die Geheimzahl ein: ");
			String line = null;
			int zahl = 0;
			try {
				line = in.readLine();
				zahl = Integer.parseInt(line);
			} catch (IOException ex) {
				ex.printStackTrace();
				continue;
			} catch(NumberFormatException nfe) {
				nfe.printStackTrace();
				System.err.println(line + " ist keine Ganzzahl!");
				continue;
			}
			
			// Zahl muss kleiner als 128 sein
			if(zahl >= 128) {
				System.err.println(zahl + " ist > als 128!");
				continue;
			}
			
			System.out.println("Vielen Dank Spieler 1!\n\n");
			geheimzahl = zahl;
			break;
		}
		
		
		/*
		 * Geheimzahl erraten.
		 */
		while(true) {
			// (Der Code ist wie oben)
			System.out.print("Spieler 2, raten Sie: ");
			String line = null;
			int zahl = 0;
			try {
				line = in.readLine();
				zahl = Integer.parseInt(line);
			} catch (IOException ex) {
				ex.printStackTrace();
				continue;
			} catch(NumberFormatException nfe) {
				nfe.printStackTrace();
				System.err.println(line + " ist keine Ganzzahl!");
				continue;
			}
			
			// Zahl muss kleiner als 128 sein
			if(zahl >= 128) {
				System.err.println(zahl + " ist > als 128!");
				continue;
			}
			
			
			// Checken ob die richtige Zahl geraten wurde
			if(zahl == geheimzahl) {
				System.out.println("***********************");
				System.out.println("* Sie haben gewonnen! *");
				System.out.println("***********************");
				break;
			}
			else {
				System.out.print("Die eingegebene Zahl ist ");
				if(zahl < geheimzahl)
					System.out.println("< als die Geheimzahl");
				else if(zahl > geheimzahl)
					System.out.println("> als die Geheimzahl");
			}
			
		}
	}
	
}

Dürfte selbsterklärend sein. Und jetzt kräftig Java lernen :bae: .

Gruß
Lutz
 

SnooP

Top Contributor
Das sieht mir nach ganz am Anfang aus... - von daher halte ich es für nicht sinnig ihn gleich mit Exceptions zu bombardieren. Die IOTools sind ein Tool zum Einlesen von Zeichen auf der Konsole dabei kann das parseInt entfallen...
ich würde gerne wissen, wo denn überhaupt das Problem des OTs war ;) - die Aufgabenstellung sieht ja schon son Struktogramm vor... da sollte man sich tatsächlich mal auf nem Blatt überlegen wie das ganze funktionieren sollte - die Endlosschleife mit while(true) sollte nen juter Hinweise sein... alternativ könnte man dort auch die Abbruchbedingung des Spiels - nämlich die Gewinnsituation reinbauen: while (zahl!=geheimzahl) - dann entfällt auch das breaken... auch die ganzen continues würde ich weglassen und stattdessen immer gut else-if nutzen...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben