Hilfe bei einer Aufgabe

Shakra

Aktives Mitglied
Hallo Leute,

bei einer Aufgabe komme ich nicht weiter und brauche eure Hilfe..
Also die Aufgabenstellung lautet:

Schreiben Sie ein Programm, das zwei Worte einliest. Das Programm gibt dann beide Worte auf einer Zeile aus. Dabei werden die Worte durch Punkte getrennt. Die Gesamtlänge der ausgegebenen Zeichen soll 30 betragen:

Und so soll das ganze dann aussehen:
Geben Sie das erste Wort ein:
turtle
Geben Sie das zweite Wort ein:
153

turtle.....................153


ich komme einfach nicht drauf wie ich mit dem While-Op. nur die Punkte ausgeben soll..(Das Thema war while schleifen, deshalb ist die Aufgabe mit while zu lösen..)

Und hier ist mein Quelltext. Es funktioniert aber nicht wie verlangt..

Java:
import java.util.*;

class aufgabe3
{
	public static void main (String [] args)
	{
	 Scanner scan = new Scanner(System.in);
	 Scanner scan2 = new Scanner(System.in);
	 String eingabe, eingabe2;
	 int zahl, zahl2, zahl3;
	 
	 System.out.println("Geben Sie das erste Wort ein: ");
	 eingabe = scan.nextLine();
	 zahl = eingabe.length();
	 System.out.println("Geben Sie das zweite Wort ein: ");
	 eingabe2 = scan2.nextLine();
	 zahl2 = eingabe2.length();
	 zahl3 = zahl + zahl2;
	 
	 while (zahl3 < 31)
		 { System.out.print(eingabe + "." +eingabe2);
		  zahl3 = zahl3+1; }
	}
}
 
Gib zuerst die erste Eingabe aus, dann in der while-Schleife die notwendige Anzahl an Punkten und dann die zweite Eingabe.
 
Ohh..
daran habe ich natürlich auch gedacht aber ich dachte iwie, dass es nicht funktionieren würde..warum eigentlich..

Aber es funktioniert doch=)
Dankeschön
 
Hier ist noch eien Aufgabenstellung mit dem ich nicht klar komme..
Also man muss z.B. die Zahl 5 eingeben und am bildschrim soll es dann so ausehen:
5
4
...
-4
-5

Hier ist der entscheidende Teil der Quellcode :

Java:
	 while(zahl < (zahl+1) && zahl > (-zahl) )
		{System.out.println(zahl);
		 zahl = zahl-1;}
	}
}

Als ergebnis kommt aber nur 5 4 3 2 1 Teil..Wenn ich -zahl mit -5 ersetze geht es, aber mit -zahl geht es iwie nicht..Warum nicht und was muss ich da ändern?
 
Java:
int i = 5;
int z = i - i * 2;
while (i > z) {
	System.out.println(i--);
}
 
Zuletzt bearbeitet:
"Es sollen ja immer 30 Zeichen sein. Also müssen zwischen die Wörter 30 - zahl3 Punkte."

Ups..sorry..
Das war die Aufgabe 1(von gestern)..
gerade habe ich ein neuen gestellt..
Ich wollte halt nicht für jede kleinigkeit eine neue thema öffnen..
 
Warum benutzt du nicht einfach eine 2. Variable, in der du dir die negative Anfangszahl merkst?

Java:
        int zahl = 5;
        int zahl2 = -zahl;
        while(zahl >= zahl2)
        {
            System.out.println(zahl--);
        }


edit: oder anders gelöst

Java:
        int zahl = 5;
        for(int i = zahl; i >= -zahl; i--)
            System.out.println(i);
 
Zuletzt bearbeitet:
Hier ist noch eien Aufgabenstellung mit dem ich nicht klar komme..
Also man muss z.B. die Zahl 5 eingeben und am bildschrim soll es dann so ausehen:
5
4
...
-4
-5

Hier ist der entscheidende Teil der Quellcode :

Java:
	 while(zahl < (zahl+1) && zahl > (-zahl) )
		{System.out.println(zahl);
		 zahl = zahl-1;}
	}
}

Als ergebnis kommt aber nur 5 4 3 2 1 Teil..Wenn ich -zahl mit -5 ersetze geht es, aber mit -zahl geht es iwie nicht..Warum nicht und was muss ich da ändern?
Sobald Zahl 0 ist, ist die Bedingung "zahl > (-zahl)" nicht erfüllt, da "0 > -0" eben nicht wahr ist und mathematisch auch einiges an Kopfschütteln hervorruft 😉
 
Warum benutzt du nicht einfach eine 2. Variable, in der du dir die negative Anfangszahl merkst?

Danke für den tipp! Jetzt geht es:

Java:
import java.util.*;

class zeh
{ 
	public static void main (String[] args)
	{
	 int zahl;	  
	 Scanner scan = new Scanner(System.in);
	 
	 System.out.print("Geben Sie eine Zahl ein:");
	 zahl = scan.nextInt();
	 int zahl2 = -zahl-1;
	 
	 while(zahl < (zahl+1) && zahl > zahl2)
		{System.out.println(zahl);
		 zahl = zahl-1;}
	}
}


"Sobald Zahl 0 ist, ist die Bedingung "zahl > (-zahl)" nicht erfüllt, da "0 > -0" eben nicht wahr ist und mathematisch auch einiges an Kopfschütteln hervorruft"

Ja, da habe ich total vernachlässigt, dass "zahl" sich ja immer um eins verringert..Ich hatte nur eine bestimmte zahl im kopf..hm..
 
Hier habe ich ein weitere Aufgabe..
Aufgabenstellung: Man soll einen zahl eingeben und als ausgabe soll der fakultät berechnet werden..
Ich habe etwas geschrieben, welches die Aufgabenstellung höchstwahrscheinlich nicht erfüllt aber dennoch funktionieren sollte, denke ich..
Hier ist der quellcode:
Java:
import java.util.*;

class fakultet
{
	public static void main(String[] args)
	{
	 Scanner scan = new Scanner(System.in);
	 int eingabe;
	 int ausgabe;
	 int zehler=1;

	 System.out.println ("Geben sie eine Zahl ein: ");
	 eingabe = scan.nextInt();

	 while(zehler<eingabe)
		{ausgabe = (zehler*(zehler+1));
		 zehler = zehler+1;}
	 System.out.println("Fakultaet von "+eingabe+" ist "+ ausgabe);
	}
}

Als Fehler wird "variable ausgabe might not have been initialized" ausgegeben aber die variable ist ja initialisiert..
Was stimmt a nicht?
 
ich glaube du versuchst eher so etwas:

Java:
import java.util.Scanner;
public class fakultet {
    public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);
         int eingabe;
         int ausgabe = 1;
         int zehler=1;

         System.out.println ("Geben sie eine Zahl ein: ");
         eingabe = scan.nextInt();

         while(zehler<eingabe){
             ausgabe *= (zehler+1);
             zehler++;
         }
         System.out.println("Fakultaet von "+eingabe+" ist "+ ausgabe);
    }
}
 
Ja, dein Program funktioniert richtig aber die Zeile 13 habe ich nicht wirklich verstanden:
ausgabe *= (zehler+1); Was bedeutet hier *= das kenne ich gar nicht..
 
Ja, dein Program funktioniert richtig aber die Zeile 13 habe ich nicht wirklich verstanden:
ausgabe *= (zehler+1); Was bedeutet hier *= das kenne ich gar nicht..

das ist abgekürzt das gleiche wie
Java:
ausgabe = ausgabe * (zehler+1);

z.B. könntest du auch
Java:
zehler += 1;

statt
Java:
zehler = zehler + 1;

schreiben
 
Zuletzt bearbeitet:
Ohh..
Und ich habe ich anstatt
Java:
ausgabe *= (zehler+1);
Java:
ausgabe = zehler*(zehler+1)
gemacht..Warum komme ich eig. nicht dadrauf..Kommt es vil mit der zeit?ich hoffe es für mich..
Aufjedenfall danke für die Hilfe=)
 
Du solltest die Probleme erst auf dem Papier lösen mit Zeichnungen und tabellen und was auch immer hilft.

Dann kann man das auch so aus dem Ärmel schütteln.
 
Ohh..
Und ich habe ich anstatt
Java:
ausgabe *= (zehler+1);
Java:
ausgabe = zehler*(zehler+1)
gemacht..Warum komme ich eig. nicht dadrauf..Kommt es vil mit der zeit?ich hoffe es für mich..
Aufjedenfall danke für die Hilfe=)

Die beiden Zeilen bedeuten nicht das gleiche. Kiri hat doch schon die richtige Variante gepostet:

[c]ausgabe = ausgabe * (zehler+1);[/c]

(Abgesehen davon, dass es "zähler" heißen müsste, aber auf Ortogravieh wird ja heutzutage kein Wert mehr gelegt)
 

Neue Themen


Zurück
Oben