Frage von HeinzMeier1, 76

Was ist an diesem Java Code falsch? Er soll die Quadratzahl von X ausgeben?

Antwort
von ceevee, 72
public static int quadrat(int x) {
return(x * x);
}

Das wäre eine Funktion, die das Quadrat einer Zahl berechnet. Was deine Funktion macht, ist im Prinzip die Variable r (die keinen Wert hat), mehrmals mit q = 0 zu addieren. Deine Schleife macht also gar nichts. Anschließend wird q (was immer 0 ist) zurückgegeben. Und die Ausgabe hinter dem Return wird eh nie erreicht.

Zum einen solltest du dir ein Buch oder ein Tutorial suchen und damit systematisch programmieren lernen, anstatt einfach irgendwas drauflos zu coden, was vielleicht aus irgendwelchen Gründen, die du nicht verstehst, funktioniert oder auch nicht.

Zum anderen: nimm nicht Kate zum programmieren, sondern eine richtige Entwicklungsumgebung. Für Java wären das klassischerweise Eclipse oder Netbeans.

Antwort
von 1frozenice1, 76

Das Bild ist leider viel zu klein um irgendetwas zu erkennen.

Kommentar von HeinzMeier1 ,

man kann doch zoomen

Kommentar von ceevee ,

Wenn man zoomt, dann sieht man einen Haufen Pixelmatsch. Wenn du willst, dass man dir hilft, dann solltest du den Quelltext hier reinstellen oder auf pastebin.com oder so hochladen und den Link hier angeben.

Die Fehlermeldung (falls es eine gibt), wäre auch hilfreich.

Kommentar von Omnivore08 ,

Und was soll das bitte bringen bei einem Bild von 590x332 gegen einem Bildschirmbild von 1920x1080?

Man kann NIX erkennen!

Vielleicht sollte man auch nur den Sourcecode hochladen und nicht den ganzen Bildschirm. Alles redundante Informationen, die niemand wissen will!

Antwort
von HeinzMeier1, 55

http://www.directupload.net/file/d/4174/iwpvmjvv_png.htm

Kommentar von maximilianus7 ,

ist ja noch schlimmer: bitte KEINE bilder als sourcecode!!!!

Kommentar von Omnivore08 ,

Dein Quelltext verstehe ich NULL!

Wozu braucht man bitte bei einer Quadratzahl eine Schleife?

Was soll die SChleife deiner Meinung nach machen?

Wozu ist eine Ausgabe IN der Funktion zum quadrieren geplant, wenn sie doch die Quadratzahl zurückgeben soll?

Und warum kommt die Ausgabe NACH dem Verlassen der Funktion?

'Tschuldigung, aber dein Quelltext verstehe ich gar nicht. Mir erschließt sich nicht was du da machen willst....

Ich empfehle dir dringend nochmal die Grundzüge des Programmierrens aufzufrischen. Es scheitert bei dir schon an den grundlegendsten Grundlagen.

Kommentar von 969669 ,

@Omnivore08: Korrekt, das wäre viel einfacher gegangen.

Trotzdem kann es so funktionieren, wenn auch mit kleinen Abänderungen. Wenn du den Code so nicht verstehst, solltest wohl eher du nochmal die Grundlagen des programmierens durchkauen!

Kommentar von Omnivore08 ,

ähhhm, schon getan...jahrelang im Studium!

Antwort
von Omnivore08, 53

Ich kann NICHTS erkennen.

Hier Bild hochladen:

http://www.directupload.net/

Kommentar von TeeTier ,

hahaha ... Der Fragensteller ist schon nicht schlecht. :)

Ich erkenne ebenfalls den Quelltext nicht. Weder hier, noch auf dem verlinkten Screenshot.

Daher hier mal meine Lösung mit Schleife, die auch funktioniert:

int result = x;

for (int i = 0; i < 1; ++i) {
result *= x;
}

return result;

Allerdings wird da ein guter Compiler sowieso "x*x" draus machen. :)

Mir fällt partout keine Situation ein, in der man zum Quadrieren sinnvoll eine Schleife einsetzen sollte. (Außer vielleicht intern bei BigInteger- oder BigFloat-Klassen, mit beliebiger Genauigkeit.)

Kommentar von ceevee ,

Beim verlinkten Quellcode kannst du unten auf "Dieses Bild downloaden klicken", danach ist es größer.

Man könnte das ungefähr so mit Schleife lösen

public static int quadrat(int x) {

int result = 0;

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

result+=x;

}

return result;

}

aber dabei würde man quasi die Multiplikationen durch Additionen nachbilden. Auch als Programmieranfänger sollte man merken, dass man irgendwas ganz gehörig falsch macht, wenn man zu solchen Mitteln greifen muss.

Kommentar von Omnivore08 ,
for (int i = 0; i < 1; ++i) {
result *= x;
}

zu geil ^^

Außer vielleicht intern bei BigInteger- oder BigFloat-Klassen, mit beliebiger Genauigkeit.

Joar...so ähnlich wird das ja auch gemacht. Ähnlich wie beim long damals bei x86. Man nimmt halt den Übertrag mit in die nächste Rechnung.

Keine passende Antwort gefunden?

Fragen Sie die Community