JAVA methode

Status
Nicht offen für weitere Antworten.
hallo leutchen,
ist diese methode, was ich unten geschrieben habe, richtig?
die aufgabe lautet, schreibe eine iterative methode, die alle elemente einer reihung addiert,

Code:
public static int summe( int [] a)
{
int summe=0;
for (int i=0;i<a.length;i++)
{
summe + =a[i]+summe;
}
return summe
}

ich bin mir nciht so sicher :autsch:
 
Hi,

statt

summe + =a+summe;

müsste es

summe +=a;

lauten. Sonst addierst du ja die Summe nochmals zur Summe ...

Caffè Latte
 
Oder eben:

summe = summe + a ;

in der längeren Schreibweise, aber nicht doppelt!
 
Code:
public static int summe( int [] a)
{
int summe=0;
for (int i=0;i<a.length;i++)
{
summe + =a[i];
}
return summe;
}

und wenn es nicht die summe wäre, also wenn ich die elemente einer reihung einfach subtrahieren würde, dann müsste es so aussehen oder?
Code:
public static int substrahieren( int [] a)
{
int substrahieren=0;------------->muss es hier von 0 anfangen oder 1, ich meine bei produkt, müsste es 1 sein
for (int i=0;i<a.length;i++)
{
substrahieren -=a[i];
}
return substrahieren;
}
was meint ihr???
 
Code:
public static int substrahieren( int [] a) {
   int substrahieren=a[0]; // dann hast du immer einen passenden Wert
   for (int i=1;i<a.length;i++) { // musst hier aber dann mit dem index 1 beginnen
      substrahieren -=a[i];
   }
   return substrahieren;
}
 
norman hat gesagt.:
Code:
public static int substrahieren( int [] a) {
   int substrahieren=a[0]; // dann hast du immer einen passenden Wert
   for (int i=0;i<a.length;i++) {
      substrahieren -=a[i];
   }
   return substrahieren;
}
diese zeile mit int substrahieren =a[0]; wieso hast du hier auch einen array geschrieben, muss man das tun? oder ohne array kann man das auch, wie ich es oben gemacht habe, machen? ausserdem kann man so grob sagen, dass man beim addieren und substrahieren mit 0 anfängt und beim multiplizieren und dividieren mit 1 anfängt???????????
also:
int sub=0
int add=0
int pro=1
int div=1
:roll: :roll: :roll:
 
( allerdings ergibt die methode subrahieren keinen sinn. du übergist ihr ja keine zahl, von der etwas abgezogen werden soll. vermutlich soll das ergebnis gleich sein mit dem von summe(), jedoch mit negativem vorzeichen )

Code:
public static int summe( int [] a) {
   int summe=a[0]; // dann hast du immer einen passenden Wert
   for (int i=1;i<a.length;i++) { // musst hier aber dann mit dem index 1 beginnen
      summe +=a[i];
   }
   return summe;
} 

public static int subtrahieren(int[] a)  {
   return ( 0 - summe(a) );
}
 
0 ist das neutrale Element der Addition (und somit auch der Subtraktion), 1 der Multiplikation (und daher auch der Division).
 
norman hat gesagt.:
( allerdings ergibt die methode subrahieren keinen sinn. du übergist ihr ja keine zahl, von der etwas abgezogen werden soll. vermutlich soll das ergebnis gleich sein mit dem von summe(), jedoch mit negativem vorzeichen )

Code:
public static int summe( int [] a) {
   int summe=a[0]; // dann hast du immer einen passenden Wert
   for (int i=1;i<a.length;i++) { // musst hier aber dann mit dem index 1 beginnen
      summe +=a[i];
   }
   return summe;
} 

public static int subtrahieren(int[] a)  {
   return ( 0 - summe(a) );
}
eigentlich das ist so, ich habe bei dem scheissfachgespräch abgekackt, am 30.03 habe ich ne wiederholung, nun versuche ich selber irgendwelche methode zu basteln, damit ich den sinn der methode besser verstehe, bzw. wie alles mal so abläuft und auch mal den scheissfachgespräch bestehe.
letzttens der prof hatte spontan mir ne aufgabe mit produktion gegeben und ich, die dumme kuh, hatte return in falsche stelle geschrieben und noch dazu hatte ich vergessen produktion zu deklarieren, die selben dummen fehlern möchte ich nicht wiederholen, ausserdem wird er bestimmt nciht wieder, nach produktion fragen, was kann er denn fragen?
addition? wurzel ziehen? ich weiss nicht... ich versuche überalles gedanken zu machen, ausserdem wie kann man den wurzel zeihen?
 
einbisschensuess hat gesagt.:
diese zeile mit int substrahieren =a[0]; wieso hast du hier auch einen array geschrieben, muss man das tun?
subtrahieren ist hier kein array, sondern ein ganz normaler int. ihm wird der erste wert aus deinem Zahlenarray a zugewiesen.
Bsp: dein Array a enthält: 5, 15, 1, 0
=>a[0] = 5
zu der fünf werden dann 15, 1 und 0 addiert.

bei multiplikation wird der startwert auch auf a[0] gesetzt.
Array a: 2, 15, 1, 3 ==> produkt = 90
Array b: 0, 15, 1, 3 ==> produkt = 0
==> du musst bei der multiplikation deinen startwert nicht auf 1 setzen :wink:

wie auch immer. besser wäre es, wenn du keine arrays addierst, sondern eine methode schreibt, die 2 zahlen addiert, subtrahiert, multipliziert oder was auch immer. diese kannst du dann zB in einer schleife mit den Werten deines arrays aufrufen.
aber letztlich hängt das ja von der aufgabenstellung ab.
 
Code:
public static int wurzel( int [] a)
{
int wurzel=1;(keine ahnung, ich gehe von 1 aus...)
for (int i=0;i<a.length;i++)
{
wurzel ??????was muss ich machen??irgendetwas multiplizireun und dann in den selben wert dividieren? so ein unsinn;
}
return wurzel;
}
 
wie auch immer. besser wäre es, wenn du keine arrays addierst, sondern eine methode schreibt, die 2 zahlen addiert, subtrahiert, multipliziert oder was auch immer. diese kannst du dann zB in einer schleife mit den Werten deines arrays aufrufen.
aber letztlich hängt das ja von der aufgabenstellung ab.[/quote]
ja die aufgabe stellung ist immer:
Schreiben Sie eine iterative/rekursive Methode, die alle Elemente einer Reihung addiert/multipliziert etc.
 
Wurzel ziehen mit der sqrt()-Methode aus java.lang.Math
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html#sqrt(double)
 
naja, was für ein "scheissfachgespräch" soll das denn sein? also, was studierst du?
Ich vermute es bringt nichts, wenn du ein paar methoden auswendig lernst. um die zu "verstehen" fehlen wohl noch grundlagen zB über arrays?
ansonsten:
Code:
public static int add(int a, int b) {
   return a+b;
}
public static int summe(int[] a) {
   int summe=0;
   // add() mit den passenden werten aufrufen (schleife)
   return summe;
}
 
norman hat gesagt.:
naja, was für ein "scheissfachgespräch" soll das denn sein? also, was studierst du?
Ich vermute es bringt nichts, wenn du ein paar methoden auswendig lernst. um die zu "verstehen" fehlen wohl noch grundlagen zB über arrays?
ansonsten:
Code:
public static int add(int a, int b) {
   return a+b;
}
public static int summe(int[] a) {
   int summe=0;
   // add() mit den passenden werten aufrufen (schleife)
   return summe;
}
ich studiere informatik 1. semester, ja arraysa alles mögliche hatte er uns schon in 90 min aufgeklärt, bloss es geht mir alles zu schnell, wir lernen in einer vorlesung eine ganze kapitel .ausserdem haben wir nie solche methoden gehabt, der opa erzählt halt, was ist einarray, definition, ganz schnell. wofür das gut ist eventuell auch das wars.ich habe auch kein vernünftiges buch gesehen, dawo alles schon etwas detalierte erzählt ist.!!!
 
einbisschensuess hat gesagt.:
ich studiere informatik 1. semester, ja arraysa alles mögliche hatte er uns schon in 90 min aufgeklärt, bloss es geht mir alles zu schnell, wir lernen in einer vorlesung eine ganze kapitel .ausserdem haben wir nie solche methoden gehabt, der opa erzählt halt, was ist einarray, definition, ganz schnell. wofür das gut ist eventuell auch das wars.ich habe auch kein vernünftiges buch gesehen, dawo alles schon etwas detalierte erzählt ist.!!!
hier gibt es ein ganzes unterforum zum thema :arrow: http://www.java-forum.org/de/viewforum.php?f=12
ansonsten finde ich die javainsel ziemlich detailliert
 
einbisschensuess hat gesagt.:
oder ohne array kann man das auch, wie ich es oben gemacht habe, machen?
Ja! Machen kann man das wie Du! (Man/Frau sollte das nur nicht so schreiben 😎 )

einbisschensuess hat gesagt.:
ausserdem kann man so grob sagen, dass man beim addieren und substrahieren mit 0 anfängt und beim multiplizieren und dividieren mit 1 anfängt???????????
also:
int sub=0
int add=0
int pro=1
int div=1

Auch richtig 😀 Das ist die mathematischere Definition und wird auch in den Programmiersprachen
APL und dessen Nachfolger J genau so definiert. Auch deine alternierende Summe hast du richtig und
sinnvoll gecodet. Vor allem braucht sie kein a[0] funktioniert also auch bei leerem Array.

Byto's Erklärung bzgl. der neutralen Elemente (Addition/Subtraktion: 0, Multi/Divi: 1) ist genau
richtig.

@norman Deine Definition von alternierender Summe ist denkbar, wird aber nicht benutzt.

Wurzel ziehen kann dein Lehrer nicht fragen, da dies eine unäre Operation ist,
also eine Operation mit nur einem Argument anstatt zweien. Ich denke mal +-*/ sind ausreichend.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben