Info try catch finally

eactor
Beiträge: 59
Registriert: 04.10.2007 16:41
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Info try catch finally

Beitrag von eactor » 06.08.2008 14:54

public class ExceptionTest {
private static int[] feld = {3,6,2,0,-2,-1};
static public int berechne(int from,int to, int step){
int sum=10, i=0;
try{
for(i=from;i<=to;i+=step)
sum=sum+(sum/feld);
}catch(ArithmeticException e){
sum=sum+feld[i+1];
}catch(ArrayIndexOutOfBoundsException e){
sum++;
}
finally{
sum= sum*i/2;
}
return sum;
}
static public void main(String[] args)
{
System.out.println(""+berechne(1,4,1));
System.out.println(""+berechne(0,7,2));
}
}


dafür gibt mir mein Compiler
bereche(1,4,1) = 21;
bereche(0,7,2) = 33;

hoffe hab alles richtig abgeschrieben. Danke für Hinweise.

eactor

eactor
Beiträge: 59
Registriert: 04.10.2007 16:41
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: Info try catch finally

Beitrag von eactor » 06.08.2008 15:03

Multiple Choice

a)Eine Klasse kann mehr als ein Interface implementieren
b)Die NullPointException ist eine geprüfte Exception
c)Ein Konstrukter darf nicht protecded sein
d)Hohe Kohäsion ist gut)
e)In einer Arraylist kann ein Objekt nur einmal stehen
f)Jede Klasse muss die Methode toString() implementieren
g)ported Methoden der SUperklasse dürfen in Subklassen verwendet werden
h)Eine Methode darf nicht mehr als einmal mit dem gleichen Namen in einer Klasse existieren
i)Methoden der Superklasse können in der Subklasse überschrieben werden
j)Abstracte Klassen dürfen keine Implementierung enthalten

meine Antworten:
ja: a,d,g,h,i
nein:b,c,f,e,j

für Hinweise dankbar

Darnok
Beiträge: 116
Registriert: 12.01.2008 18:15
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: Info try catch finally

Beitrag von Darnok » 06.08.2008 15:08

die zahlenwerte habe ich auch so.

beim multiple choice habe ich die h) mit nein beantwortet. methodennamen dürfen mehrmals vorkommen, wenn sie durch art und anzahl der übergabeparameter unterschieden werden können.

Alex
Beiträge: 265
Registriert: 12.10.2004 15:01

Re: Info try catch finally

Beitrag von Alex » 06.08.2008 15:23

Hast du zu dem Try-Catch-Block eine Frage, oder willst du nur das Ergebnis bekannt geben?

Benutzeravatar
tuscanylea
Beiträge: 71
Registriert: 10.10.2005 21:21
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012
Wohnort: Dresden
Contact:

Re: Info try catch finally

Beitrag von tuscanylea » 06.08.2008 15:28

Bei Try Catch habe ich auch so gehabt :D, also 21 und 33 8-)
R.I.P MJ...

eactor
Beiträge: 59
Registriert: 04.10.2007 16:41
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: Info try catch finally

Beitrag von eactor » 06.08.2008 15:29

Naja wenn ich es richtig abgetippt habe ist das wohl das Ergebnis. Frage ist halt bloß ob ich mich beim eintippen vertan hab. Eclipse wird wohl richtig gerechnet haben.
Eactor

Benutzeravatar
Hans Oberlander
Beiträge: 2571
Registriert: 19.12.2006 22:22

Re: Info try catch finally

Beitrag von Hans Oberlander » 06.08.2008 16:15

Nunja der Eclipse Compiler ist intelligent und es ist ja von den Rechenregeln abhängig...

spinnn
Beiträge: 358
Registriert: 17.10.2006 09:04
Name: spinnn
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Re: Info try catch finally

Beitrag von spinnn » 06.08.2008 19:01

hmm ich hab da irgendwie was anderes *mist*

14 und 48 sind meine ergebnisse ... pisse - aber vielleicht gibts auf den "rechenweg" ein paar punkte ...
Bild

Benutzeravatar
MotoGP
Beiträge: 126
Registriert: 08.05.2008 14:21
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: Info try catch finally

Beitrag von MotoGP » 06.08.2008 19:34

spinnn hat geschrieben:hmm ich hab da irgendwie was anderes *mist*

14 und 48 sind meine ergebnisse ... pisse - aber vielleicht gibts auf den "rechenweg" ein paar punkte ...
Die Felder fangen bei 0 an zu zählen. Also wenn i=2 und Feld{-1,0,3,5,...usw} dann wäre es die dritte Stelle, also 3

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 06.08.2008 19:35

hmm.. hab mal ganz unabhängig on hier die methode gebaut... nur die werte jetzt grad korrigiert... hab mir ni alles gemerkt und nix aufgeschrieben aber bei mir kommt auch 21 und 33 raus, und das hab ich auch in der klausur raus yuhuuuuuuuuuuu! :D :D :D :D :D

Benutzeravatar
FruF
Beiträge: 536
Registriert: 13.10.2006 16:29
Name: The FruF
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: De
Contact:

Re: Info try catch finally

Beitrag von FruF » 06.08.2008 20:28

hab was ganz andres raus ...
Aua : billig aufgabe verkackt
Bild

spinnn
Beiträge: 358
Registriert: 17.10.2006 09:04
Name: spinnn
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Re: Info try catch finally

Beitrag von spinnn » 06.08.2008 20:53

MotoGP hat geschrieben:
spinnn hat geschrieben:hmm ich hab da irgendwie was anderes *mist*

14 und 48 sind meine ergebnisse ... pisse - aber vielleicht gibts auf den "rechenweg" ein paar punkte ...
Die Felder fangen bei 0 an zu zählen. Also wenn i=2 und Feld{-1,0,3,5,...usw} dann wäre es die dritte Stelle, also 3
jop ich weis... hab ich eigentlich auch so gemacht... hmm - komisch ^^
kann ja mal bei gelegenheit meinen lösungsweg hier posten ...

edit: hab grad gemerkt das ich wohl doch den 0 und 1 stellen fehler gemacht hab - obwohl ichs gewusst hab .. argh shit ... scheiss stress immer wenn prüfung
Bild

Benutzeravatar
tuscanylea
Beiträge: 71
Registriert: 10.10.2005 21:21
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012
Wohnort: Dresden
Contact:

Re: Info try catch finally

Beitrag von tuscanylea » 06.08.2008 21:40

int[]feld ={3,6,2,0,-2,-1}
sum= 10;i=0;

(1,4,1)
try: i=1;i<=4;i=i+1;
i=1 sum=10+10/6=10+1=11
i=2 sum=11+11/2=11+5=16
i=3 sum=16+16/0 -->fehler bei i=3
catch sum=16+(-2)=14
finally sum=14*3/2=21
sum=21

(0,7,2)
try i=0;i<=7;i=i+2;
i=0 sum=10+10/3=10+3=13
i=2 sum=13+13/2=13+6=19
i=4 sum=19+19/(-2)=19-9=10
i=6--> Out Bound bei i=6
catch sum=10+1=11
finally sum=11*6/2=33
sum=33

MfG.
R.I.P MJ...

julchenchenchen
Beiträge: 11
Registriert: 20.05.2008 10:28

Re: Info try catch finally

Beitrag von julchenchenchen » 09.08.2008 14:10

tuscanylea hat geschrieben:finally sum=14*3/2=21
sum=21
dachte, bei int wird aus dem 3/2 eine 1 und sum ist somit 14!? :?

Benutzeravatar
Hans Oberlander
Beiträge: 2571
Registriert: 19.12.2006 22:22

Re: Info try catch finally

Beitrag von Hans Oberlander » 09.08.2008 14:21

Wenn man den Term mal in ecplise reinschmeißt, bekommt man auch 21. Anscheinend wird intern die Operation erstmal normal im Float durchgeführt und dann dem int zugewiesen

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 09.08.2008 14:36

Nein, aber man liest in unserer Sprache von links nach rechts, das heißt erst * und dann /

und 14*3=42 und 42/2=21 und da spielt es auch keine rolle, ob int float oder sonstwas

Benutzeravatar
Hans Oberlander
Beiträge: 2571
Registriert: 19.12.2006 22:22

Re: Info try catch finally

Beitrag von Hans Oberlander » 09.08.2008 15:08

In unserer Sprache, nicht aber zwangsweise in der Compilersprache

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 09.08.2008 15:41

Hmm... na ich will ja echt Niemandem zu nahe treten, aber haben wir das nicht in der ersten Klasse gelernt, dass man neben Punkt vor Strich Rechnung auch von links nach rechts rechnet... (Klammern gehen natürlich auch vor), aber da waren ja soweit ich weiß keine gesetzt.

Benutzeravatar
Hans Oberlander
Beiträge: 2571
Registriert: 19.12.2006 22:22

Re: Info try catch finally

Beitrag von Hans Oberlander » 09.08.2008 15:59

Wir Menschen. Aber wer sagt das der Compiler sorum arbeitet? Vllt. hat er interne Vorrangslisten, wo mal und durch vor plus und minus kommt. Aber es kann auch durchaus sein das mal vor durch kommt etc. ;)

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 09.08.2008 16:04

Naja der Compiler wird schon so programmiert sein, dass er die mathematischen Grundgesetze kennt (und anwendet) :D

Und wenn nicht, dann wärs schlimm

Benutzeravatar
Hans Oberlander
Beiträge: 2571
Registriert: 19.12.2006 22:22

Re: Info try catch finally

Beitrag von Hans Oberlander » 09.08.2008 16:07

Es kommt ja so oder so das gleiche raus, ob ich nun erst mal und dann durch rechne oder umgekehrt. Die Frage wäre jedoch, wenn er erst durch rechnet, ob er dann weil ja der Wert ein Int ist, statt 1,5 1 als Faktor hat ;)

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 09.08.2008 16:29

Jaja ich weiß schon, aber "3/2" ist keine Variable, deswegen hats auch kein Typ...

nur, wenn das, was insgesamt rechts vom "=" steht, dann nachkommastellen hat, dann werden die abgehackt, weil sum eben vom Typ "int" ist...

eactor
Beiträge: 59
Registriert: 04.10.2007 16:41
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: Info try catch finally

Beitrag von eactor » 09.08.2008 19:06

Es wäre also festzuhalten. Der Compiler rechnet von rechts nach links wie wir eigentlich auch. Also erst mal dann durch.
Und wenn Klammern gewessen were hätte er erst gerundet und dann mal gerechnet.
Also zb 14 *(3/2) wäre dann 14!
eactor

bRaInLaG
Beiträge: 243
Registriert: 02.01.2007 13:33
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2006
Contact:

Re: Info try catch finally

Beitrag von bRaInLaG » 09.08.2008 19:25

stimmt...

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Re: Info try catch finally

Beitrag von MrGroover » 10.08.2008 07:25

Hans Oberlander hat geschrieben:Wenn man den Term mal in ecplise reinschmeißt, bekommt man auch 21. Anscheinend wird intern die Operation erstmal normal im Float durchgeführt und dann dem int zugewiesen
:lol: So ein Unfug... Galileo Computing :: Java ist auch eine Insel - 2.4 Ausdrücke, Operanden und Operatoren (Abschnitt 2.4.8 ist der interessierende, falls das mit dem Linkziel nicht klappt).

Antworten

Zurück zu „2. Semester: Diskussionen“