Problem eines Neulings mit erstem Programm :(

Status
Nicht offen für weitere Antworten.
I

ikke

Gast
Hey, kann mir jemand sagen, warum das Programm sich zwar compilieren lässt und auch K,p und n nachfragt, aber sich dann aufhängt und nicht K ausgibt? weiss wirklich nicht mehr weiter.

PS: ich weiss, ungewöhnliche methode ne potenz auszurechnen, aber mehr hatten wir im kurs noch nicht.

Code:
import AlgoTools.IO;
public class Kapital{
public static void main(String [] argv) {

int a,b,c,d,e,K,n,p,q;

K=IO.readInt("Bitte den Betrag des Anfangskapitals eingeben");
n=IO.readInt("Bitte den Zinssatz eingeben");
p=IO.readInt("Bitte die Laufzeit in Jahren eingeben");
q=1;
b=0;
d=100;
e=d;
a=(100+p);
c=a;

while (q==1){

do {
a=a*c;
d=d*e;
b=(b++);
} while (b <= n);

K=((K*a)/d);

IO.println(K);
q=IO.readInt("Fortfahren?");
}

while (q==0) {
IO.println("Ende");
}
}
}
 

Schandro

Top Contributor
Bitte gewöhn dir als erstes an, die Exceptions mit in den Thread zu posten.

Was soll den bitte diese Zeile machen?
Code:
while (q==0) {
IO.println("Ende");}

Sobald der Compiler an diese Stelle kommt, passiert entweder gar nichts (q is nicht 0) oder es wird unendlich oft "Ende" ausgegeben (q ist 0). Wahrscheinlich wolltest du da ein if hinschreiben statt ein while^^
 
S

SlaterB

Gast
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        int b = 4;
        int c = 4;
        for (int i = 0; i < 10; i++)
        {
            b = (b++);
            c = c + 1;
            System.out.println("b: " + b + ", c: " + c);
        }
    }
}
 
S

SlaterB

Gast
hast du es ausprobiert? recht deutlich,
und ich warte das Urteil von ikke ab, der/ die wird meine Qualitätsarbeit zu schätzen wissen ;)
 

Landei

Top Contributor
Muhaha, genau was ich dachte:
Code:
    int b = 0;
    b = b++;
    System.out.println(b); //gibt 0 aus

Soll heißen, dein b zählt nicht hoch. Nimm einfach nur b++, dann funktioniert es.

Warum deine Version nicht funktioniert, ist schwer zu erklären. Was sicher ist, ist das b++ erst den alten Wert zurückliefert, und dann erst die Variable um eins erhöht. Der erhöhte Wert wird dann durch die Zuweisung des alten Werts wieder überschrieben (so stelle ich mir das jedenfalls vor).

Schandro hat natürlich auch Recht, die while-Schleife ist ziemlich zweckfrei, du willst wahrscheinlich sowas:
Code:
if(q ==0) {
  IO.println("Ende");
  System.exit(0);
}
 
G

Gast

Gast
ja, die while schleife ist noch "baustelle" es ging mir im moment nur darum, warum er das k nicht ausgibt, aber wenn er das b nicht erhöht isses natürlich klar, dann gibts da ne endlosschleife.

@slater: ganz ehrlich, keine ahnung was dein vorcshlag bezweckt...^^

vllt zum besseren verständnis: die formel (k*(100+p)^n)/(100^n) soll ausgerechnet werden, dann gibts in der aufgabe noch n paar sachen wegen der terminierung(deswegen das "q") usw, aber die sind erstmal nebnsächlich.

einfach das b auf 1 swtzen und dann müsste es gehen bis zum K, gell? kanns gerad net ausprobieren.

Aber so oder so schonmal richtig dickes dankeschön an alle!!! ^^
 

Landei

Top Contributor
b um eins erhöhen:
Code:
b++;
oder
Code:
b += 1;
oder
Code:
b = b + 1;
 
S

SlaterB

Gast
oder auch

Code:
b = (b++)-b+++b++;

warum auch immer ;)
 
I

Ikke

Gast
Es geht einfach nicht. habs jetzt nochmal anders geschrieben

Code:
import AlgoTools.IO;

public class test1 {
public static void main (String [] argv) {
int K = IO.readInt("Kapital");
int p = IO.readInt("Prozent");
int n = IO.readInt("Jahre");
int c = K;
int a,b,d;

a = 100;
b = 1;

while (b <= n) {
c = c*(100+p);
b++;
}

while (b <= n) {
a = a*100;
b++;
}

d = c/a;

IO.println(d);

}
}

für K= 1000, p = 5 und n = 2 kommt das richtige ergebnis nur ohne komma(immerhin) für große werte gehts gar net (denke es liegt an Int, da wir das nehmen sollen kein problem) aber für zb K= 100, p=9 und n=20 kommt -3217726 oder so, WAAAARUM?


Hilfe!!!!
 

Schandro

Top Contributor
Code:
while (b <= n) {
c = c*(100+p);
b++;
}

while (b <= n) {
a = a*100;
b++;
}

Die untere der beiden schleifen wird niemals ausgeführt. Denk mal selber drüber nach warum. Oder mach ein paar System.out.println rein
 
G

Gast

Gast
oik, hat sich erledigt, liegt auch am int, aber wie nekomme ich das Komma?
 
G

Gast

Gast
jetzt funktionierts gar net mehr.

zwischen den whiles hab ich b= 0 gesetzt
 
I

Ikke

Gast
hier mal der komplette code. irgendjemand ne idee warums nicht funktioniert? wäre sooo dankbar

Code:
/**
 * Write a description of class test1 here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import AlgoTools.IO;

public class test1 {
public static void main (String [] argv) {
int K = 1;
int p = 1;
int n = 1;
int c = K;
int a, b, d, q;

a = 100;
q=1;
b=0;

while (q == 1) {

K = IO.readInt("Bitte geben Sie Ihr Startkapital ein ");
p = IO.readInt("Bitte geben Sie den Prozentsatz als ganze Zahl ein.Bsp: 5 für 5% ");
n = IO.readInt("Bitte geben Sie die laufzeit in Jahren ein ");
while (b <= n) {
c = c*(100+p);
b++;
}

b=0;

while (b <= n) {
a = a*100;
b++;
}

d = c/a;
d= d/100;

IO.println(d);

q = IO.readInt("Wollen Sie eine weitere Berechnung durchführen? 0=Nein,1=Ja ");

if (q == 0) {
IO.println("Auf Wiedersehen");
}

while ((q != 0) && (q != 1)) {
q = IO.readInt("Wollen Sie eine weitere Berechnung durchführen? 0=Nein,1=Ja ");

b=0;
c=0;
d=0;

}
}
}
}
 

Ark

Top Contributor
1. Ich halte es für riskant, für solche Dinge ints zu verwenden.

2. Bitte beachten:

Alle Kugeln, die zu der Menge gehören, die alle roten und alle grünen Kugeln umfasst, erfüllen die Anforderung, rot oder grün zu sein.

Ark
 
G

Gast

Gast
1. int ist vorgegeben, schon kalr, dass das prog dann nur mit kleinen zahlen funktioniert

2.Häh?


Also er zeigt immer 0 an, egal was man eingibt. eben hat es schonmal funktioniert, bevor ich die ganze anfragesache dazugebaut hab
 

Ark

Top Contributor
Code:
d= d/100;
Wenn d vor der Auswertung dieser Zeile irgendeinen Wert zwischen 0 und 99 (eingeschlossen) enthält, wird d nach Auswertung dieser Zeile den Wert 0 haben. Das liegt daran, dass d und 100 vom Typ int sind, und bei int/int wird eine Ganzzahldivision durchgeführt. (Ich denke mal, das ist es auch, was dich stutzig macht; ich hab's nie probiert.)

Und zu deinem "Häh":
Code:
while ((q != 0) && (q != 1))
In diese Schleife kommst du nur, wenn du in der vorangegangenen Frage weder mit 0 noch mit 1 geantwortet hast, ergo eine Zahl eingibst, die weder "Ja" noch "Nein" repräsentiert.

Ark
 
G

Gast

Gast
hab die zeile weggenommen, jetzt kommt anstatt 0 ne 1 ^^
die while schleife soll so, aufgabe war, wenn man ne andere zahl als 0 oder 1 eingibt soll die anfrage nochmal kommen, das funktioniert ja auch
 

Ark

Top Contributor
Gast hat gesagt.:
hab die zeile weggenommen, jetzt kommt anstatt 0 ne 1 ^^
Ja, glaubst du denn, indem du einfach die (möglicherweise) fehlerhafte Zeile entfernst, wäre das Problem beseitigt? :lol:

Gast hat gesagt.:
die while schleife soll so, aufgabe war, wenn man ne andere zahl als 0 oder 1 eingibt soll die anfrage nochmal kommen, das funktioniert ja auch
Ich sehe gerade, dass du - noch viel perverser - die gleiche Abfrage zweimal in deinem Quelltext hast. :shock: (Eine Anforderung an einen Algorithmus ist, dass er endlich viele Anweisungen enthält - so habe ich das jedenfalls gelernt. Du bist aber gerade gut dabei, unendlich oft die Abfrage einzubauen.) Strukturier mal bitte deinen Code etwas besser (Stichwort: Einrückungen etc.) - und deine Gedanken. ;)

Ark
 
G

Gast

Gast
ich gebs auf und schreibs nochmal neu ^^

wenn jemand ne idee oder tipps hat nur her damit, das verlängert meine nacht, da morgen abgabe ist.

also aufgabe: die formel ausrechnen und danach abfrage ob man nochmal will oder nicht, wobei 1 ja und 0 nein sein soll. jede andere zahl soll die abfrage nochmal bringen
 
G

Gast

Gast
So, es ist vollbracht und funktioniert alles prächtig ^^ Danke nochmal an alle
 
G

Guest

Gast
Hi

Von der Sacheher wars ganz einfach das dingens zum Laufen zu bekommen !

1. "b++" in "++b" ändern
2. natürlich deine letzte whileschleife (Endlosschleife) in
Code:
if (q == 0) {
    IO.println("Ende");
    System.exit(0);
}
ändern.

Nochmal alles zusammen, ob richtig gerechnet wird weis ich nicht, will ich auch nicht wissen ;)
Code:
import AlgoTools.IO;

public class Kapital {
    
    public static void main(String[] argv) {
        
        int a, b, c, d, e, K, n, p, q;
        
        K = IO.readInt("Bitte den Betrag des Anfangskapitals eingeben");
        n = IO.readInt("Bitte den Zinssatz eingeben");
        p = IO.readInt("Bitte die Laufzeit in Jahren eingeben");
        q = 1;
        b = 0;
        d = 100;
        e = d;
        a = (100 + p);
        c = a;
        
        while (q == 1) {
            
            do {
                a = a * c;
                d = d * e;
                b = (++b);
            } while (b <= n);
            
            K = ((K * a) / d);
            
            IO.println(K);
            q = IO.readInt("Fortfahren?");
        }
        
        if (q == 0) {
            IO.println("Ende");
            System.exit(0);
        }
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
A Problem eines Anfängers bei Java Java Basics - Anfänger-Themen 6
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
R Problem bei Übergeben eines Objekts Java Basics - Anfänger-Themen 1
M Problem bei Ausgabe eines Arrays Java Basics - Anfänger-Themen 5
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
F Input/Output Problem beim einlesen eines Strings Java Basics - Anfänger-Themen 3
E Problem beim Programmieren eines Kartenspiels Java Basics - Anfänger-Themen 3
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
M Datentypen Problem beim zusammenstellen eines Abfrage-Strings Java Basics - Anfänger-Themen 3
B Problem bei Überprüfung des Inhalts eines Arrays Java Basics - Anfänger-Themen 25
I Problem beim Schreiben eines ersten Programms Java Basics - Anfänger-Themen 3
S Bild eines JLabels mit anderem Bild überlagern - Problem nach Fenster-Minimierung Java Basics - Anfänger-Themen 5
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
V Vorstellung und Problem bei Ausgabe des Inhalts eines Arrays Java Basics - Anfänger-Themen 4
J Problem mit NullPointerException bei Verwendung eines Arrays Java Basics - Anfänger-Themen 6
Z Problem mit Ausgabe eines generischen Suchbaums Java Basics - Anfänger-Themen 3
P Problem mit Laden und Ausgeben eines array-Objekts Java Basics - Anfänger-Themen 4
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
1 Problem bei auslesen eines Result Sets Java Basics - Anfänger-Themen 4
R Problem beim Laden eines Images Java Basics - Anfänger-Themen 7
L Problem mit dem Anzeigen eines Panels Java Basics - Anfänger-Themen 2
G Problem mit Größenänderung eines Arrays Java Basics - Anfänger-Themen 3
I Problem bei der benutzung eines wertes aus 2 quelltexten Java Basics - Anfänger-Themen 3
G Problem beim Ausführen eines Programms Java Basics - Anfänger-Themen 3
C Problem beim erstellen eines jar Archivs Java Basics - Anfänger-Themen 2
H Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 13
spacegaier Problem beim Laden eines Vektors mit eigenen Objekten Java Basics - Anfänger-Themen 4
B In einem JPanel zeichnen (Problem inerhalb eines Spieles) Java Basics - Anfänger-Themen 4
C Problem bei Programmierung eines Taschenrechners Java Basics - Anfänger-Themen 10
K Problem mit dem Auslesen eines Bildes Java Basics - Anfänger-Themen 18
A Problem beim Signieren eines Applets Java Basics - Anfänger-Themen 4
B Problem beim Ausführen eines Java Datenbank Programms Java Basics - Anfänger-Themen 6
D Problem mit der Verarbeitung eines ActionEvents Java Basics - Anfänger-Themen 7
R problem: wiederholschleife eines kleinen spieles Java Basics - Anfänger-Themen 3
E Problem beim Laden eines Datenbanktreibers Java Basics - Anfänger-Themen 9
V Problem beim Inhalt eines Verzeichnisses anzeigen Java Basics - Anfänger-Themen 6
G Problem beim Kompilieren eines HelloWorld-Programms Java Basics - Anfänger-Themen 7
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben