Methode mit 4 Eigenschaften < Sonstiges < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 11:59 Di 19.08.2008 | Autor: | lisa11 |
Aufgabe | eines vorweg ich habe hier leider keinen Compiler zur Hand und kann
Syntaxfehler nicht im Moment überprüfen bitte um Entschuldigung!
Geben Sie eine Java - Methode an, die folgende Eigenschaften genügt:
die Methode ist eine Klassenmethode
- der Typ des Rückgabewertes ist long
- die Methode hat 1 Parameter vom Typ [] [] []
-der zurückgegebende Wert ist die Summe aller Werte des übergebenen 3 dimensionalen Arrays
|
Mein Ansatz
class sum 1 {
int [] [] [];
sum1 (int [] [] []);
int n = In.readnt();
long sum = 0;
for (int i = 0; i < a.length; i++);
sum = sum + a[i][i][i];
out.println(sum = " +sum");
}
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:24 Di 19.08.2008 | Autor: | lisa11 |
ich habe glaube ich einen fehler gemacht wie ich sehe muss das 3 dimensionale Array 3 mal abgearbeitet werden also ist mein Vorschlag
class sum 1 {
int [][][];
sum1 (int [][][]);
int n = In.read();
int j = In.read();
int k = In.read();
long sum = 0;
for (i = 0; i< n; i++);
for(j =0; j< m; j++);
for(k = 0; k<o; k++);
sum = sum + a[i][j][k];
out.println(sum = "+sum");
}
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:06 Mi 20.08.2008 | Autor: | lisa11 |
Aufgabe | Aufgabe: Methode mit 4 Eigenschaften wie erwähnt |
es wäre so schön wenn jemand zeit hätte dies programm anzusehen
bin mitten in den Prüfungen die Zeit rennt
ich danke all jenen die sich bemühen
|
|
|
|
|
Hallo Elisabeth,
ich vermute, dass Du bisher keine Antwort bekommen hast, weil die Aufgabenstellung ziemlich einfach ist, Deine Ansätze aber (leider!) momentan nicht den Eindruck vermitteln, dass Du dich damit gut genug auskennst, um die Aufgabe schaffen zu können. Der von Dir gepostete Ansatz scheint mir ein zielloses Zusammenwürfeln von Codeschnipseln zu sein.
Aber lass uns das mal durchgehen, vielleicht schaffen wir es ja:
> eines vorweg ich habe hier leider keinen Compiler zur Hand
Das ist beim Programmieren meistens schlecht :(
Einen Java-Compiler gibt es z.B. (kostenlos) bei http://java.sun.com/
> - die Methode ist eine Klassenmethode
Dies wird Java durch ein bestimmtes Stichwort mitgeteilt. Klassenmethoden nennt man auch "statische Methoden".
> - der Typ des Rückgabewertes ist long
Das sollte ja nicht allzu schwer sein :)
> - die Methode hat 1 Parameter vom Typ [] [] []
[][][] gibt nur an, dass es sich um ein 3-dimensionales Array handelt, da fehlt also noch die Angabe des Typs. Vermutlich wird dies int oder long sein.
> -der zurückgegebende Wert ist die Summe aller Werte des
> übergebenen 3 dimensionalen Arrays
Das ist nun der Knackpunkt. In deinem Ansatz verwendest Du nur eine einfache Schleife. Da das Array 3-dimensional ist, musst du auch über jede Dimension iterieren, d.h. jede Dimension durchgehen (mit 3 Schleifen). Wenn das Array a heißt, würde das im Ansatz etwa so aussehen:
for(int i = 0; i < a.length; i++) {
for(int j = 0; j < a[i].length; j++) {
// hier vervollständigen!
}
}
Versuche mal, dieses Codestück zu vervollständigen und eine passende Signatur für die Methode zu finden (also so etwas wie "public int tueEtwas(int wert)"). Danach sehen wir weiter :)
Viel Erfolg dabei!
Gruß,
Michael
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 17:29 Mi 20.08.2008 | Autor: | lisa11 |
Aufgabe | Aufgabenstellung wie bisher mit neuen Ansatz |
public float summe (float [][][] a){
int i, j, k;
int sum = 0;
for (int i = 0; i<a.length; i++);
for(int j = 0; j <a[i].length; j++);
for(int k = 0; k<a[j].length; k++);
sum := sum + a[i][j][k];
return sum;
}
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:31 Mi 20.08.2008 | Autor: | lisa11 |
es sollte long heissen anstelle von float
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:03 Mi 20.08.2008 | Autor: | lisa11 |
public int sum(int [] [] [] a){
long summe = 0;
for (int i = 0; i < a.length; i++){
for (int j = 0; j <a.[i].length; j++){
for (int k = 0; k<a.[i][j].length; k++){
summe = summe + a[i][j][k];
}
}
}
return summe;
}
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:37 Mi 20.08.2008 | Autor: | lisa11 |
bitte schaue die letzte Version an ich bin halt etwas voreilig tut mir leid
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:40 Mi 20.08.2008 | Autor: | sirprize |
Ich war schon dabei :)
|
|
|
|
|
Hallo Elisabeth,
dein letzter Beitrag sieht schon ganz gut aus, ich habe es mal eingerückt und etwas farbig markiert:
> public int sum(int[][][] a){
> long summe = 0;
> for (int i = 0; i < a.length; i++){
> for (int j = 0; j <a.[i].length; j++){
> for (int k = 0; k<a.[i][j].length; k++){
> summe = summe + a[i][j][k];
> }
> }
> }
> return summe;
> }
Jetzt prüfe mal bitte, welche der 4 Punkte erledigt sind und welche nicht. Als Tipp: Rot ist falsch, und es fehlt etwas zwischen blau und rot. Damit solltest Du die ganz korrekte Lösung finden können!
Gruss,
Michael
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:59 Mi 20.08.2008 | Autor: | lisa11 |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Aufgabe | aufgabe wie bisher |
ich bin mir nicht sicher ich denke es sollte long heissen
in diesem Fall
public long sum (int [][][]a){
......
gruss
e.w.
|
|
|
|
|
Hallo,
damit wäre ein Punkt erledigt. Jetzt bitte noch prüfen, ob deine Lösung (mit dieser Korrektur) alle 4 Aufgabenteile erledigt.
Gruss,
Michael
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:11 Mi 20.08.2008 | Autor: | lisa11 |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
ich denke es fehlt die Klassenmethode
public class sum1{
public long sum(int[][][]a){
......
/*Klassenmethode*/
static int getsum (){
return summe;
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:29 Mi 20.08.2008 | Autor: | sirprize |
Richtig erkannt, es geht darum, dass es sich um eine Klassenmethode handeln muss. Dies erreichst Du aber nicht so wie angegeben. Informationen zu Klassenmethoden findest Du z.B. unter
http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6604-Klassenvariablen-und-Klassenmethoden.html
oder in Kurzform hier:
http://www.informatik.uni-bonn.de/III/lehre/vorlesungen/Informationssysteme/WS98/weitere_Themen/OO/FolienAlsHTML/sld013.htm
Beides habe ich durch eine kurze Google-Suche nach "Klassenmethoden" gefunden. Lies dir das einfach mal durch, dann kommst bestimmt drauf.
|
|
|
|