# JAVA-Aufgabe von der Berufsschule => bin überfordert.



## Javaner86 (26. Jul 2007)

Hallo miteinander,
ich habe von der Berufsschule über die Sommerferien folgende Aufgabe bekommen, die ich lösen soll. Da ich mich aber recht schwer mit JAVA tue (bin in der Ausbildung Fachinformatiker-Systemintegration) hoffe ich ihr könnt mir da weiter helfen:

"IP-Adressen sollen mit einem Java-Programm analysiert werden. Zunächst wird eine IP-Adresse im Punktformat von der Tastatur eingelesen.
Folgende Kriterien sollen danach geklärt werden:
- Überprüfung, ob die IP-Adresse gültig ist. Gegebenfalls Fehlermeldung ausgeben.
- Binäre Darstellung der IP-Adresse.
- Adressklassen ausgeben
- Subnetzmaske (dezimal und binär) ausgeben
- Anzeige ob öffentlich oder private Adresse

Hinweise:
- Die Ermittlung der Adressklassen sowie die Überpfüfung privat/öffentlich muss jeweils in einer statischen Methode realisiert werden.
- Zeichnen Sie für die beiden statischen Methoden ein Struktogramm
- Die Umwandlung einer int-Zahl in eine binäre Darstellung soll mit einer statischen Methode realisiert werden."

Ich bin dankbar über jede Hilfe, da ich hier hoffnungslos überfordert bin.....


----------



## P3AC3MAK3R (26. Jul 2007)

Die komplette Aufgabe wird Dir wohl kaum jemand lösen...

Hast Du vielleicht schon einen Ansatz bei dem Du irgendwo konkrete Probleme hast?


----------



## Javaner86 (26. Jul 2007)

Wie bereits geschrieben, bin damit hoffnungslos überfordert. Weiß jemand eine Adresse, wo man Java Programme entwickeln lassen kann?


----------



## P3AC3MAK3R (26. Jul 2007)

Ist das nicht ein wenig mit Kanonen auf Spatzen geschossen, eine Hausaufgabe gegen Geld lösen zu lassen?

Wie geht es denn Deinen Mitschülern? Kommen die mit dem Thema klar? Vielleicht kannst Du ja mit einem von denen zusammen zu einer Lösung kommen.


----------



## ARadauer (26. Jul 2007)

mhn is eigentlich eh nicht so schwierig. viele haben immer das problem, dass sie die aufgabe als ganzes betrachten und dann überfordert sind.

ich helf dir ein bissal:
erstmal einlesen:


```
System.out.println("Bitte IP Adresse im Format 000.000.000.000 eingeben:");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String ipAdresse = "";
try {
    ipAdresse = new String (in.readLine());
} catch (IOException e) {
    System.out.println("Es ist ein Eingabefehler aufgetreten!");
}
System.out.println("Eingabe: "+ipAdresse);
```

ned so schwierig oder? findet man in jedem anfänger tutorial.

schaun wir mal ob sie das richtige format hat:

String fehler = isValid(ipAdresse);

```
if(fehler==null){
    System.out.println("Format ist korrekt.");
		}else{
			System.out.println("Fehler: "+fehler);
		}
```

so sieht die methode aus


```
public static String isValid(String ipAdresse){
		//länge überprüfen
		if(ipAdresse.length()!=15){
			return "Adresse hat nicht die richtige Länge";
		}
		//format überprüfen
		for(int i =0; i < ipAdresse.length();i++){
			if((i%4)==3){
				if(ipAdresse.charAt(i)!='.')
					return "An Position "+(i+1)+" muss ein . stehen";
			}else{
				if(!Character.isDigit(ipAdresse.charAt(i)))
					return "An Postion "+(i+1)+" muss eine Zahl stehen";
			}
		}
		return null;
	}
```

auch nicht so tragisch oder? von modulo (%) hast schon mal gehört, wenn nicht anschaun...


so du willst nachher vielleicht damit rechnen, also int werte währen nicht schlecht:


```
int[] werte = new int[4];
		werte[0] = Integer.valueOf(ipAdresse.substring(0, 3)).intValue();
		werte[1] = Integer.valueOf(ipAdresse.substring(4, 7)).intValue();
		werte[2] = Integer.valueOf(ipAdresse.substring(8, 11)).intValue();
		werte[3] = Integer.valueOf(ipAdresse.substring(12, 15)).intValue();
		
		for(int i = 0; i <4; i++){
			System.out.println("->"+werte[i]);
		}
```


jetzt könnte man noch überprüfen ob, die zahlen im richtigen bereich liegen:


```
fehler = rangesValid(werte);
		if(fehler!=null){
			System.out.println("Fehler: "+fehler);
		}
```

funktion dazu


```
public static String rangesValid(int[] werte){
		for(int i = 0; i <4; i++){
			if(werte[i]<0)
				return "Wert "+(i+0)+" muss größer 0 sein";
			if(werte[i]>255)
				return "Wert "+(i+0)+" muss kleiner 256 sein";
		}
		return null;
	}
```
ned so tragisch oder?

- Binäre Darstellung der IP-Adresse. 
- Adressklassen ausgeben 
- Subnetzmaske (dezimal und binär) ausgeben 
- Anzeige ob öffentlich oder private Adresse 

einfach a bissal googlen wie man so was ausrechnet und bestimmt und dann eine funktion schreiben die das macht. also das is wirklich basis wissen, dass man sich leicht aneignen kann.

Fachinformatiker schaffst das schon. Wenn nicht, mhn für € 500 mach ichs dir fertig ;-)


----------



## mikachu (26. Jul 2007)

Javaner86 hat gesagt.:
			
		

> Wie bereits geschrieben, bin damit hoffnungslos überfordert...


niemand hat gesagt, dass programmieren lernen leicht ist


			
				Javaner86 hat gesagt.:
			
		

> Weiß jemand eine Adresse, wo man Java Programme entwickeln lassen kann?


www.google.de


----------



## SlaterB (26. Jul 2007)

> ipAdresse = new String (in.readLine()); 

wieso das denn? da muss man ja drauf hinweisen..


->  ipAdresse = in.readLine();


----------



## ARadauer (26. Jul 2007)

was macht man so als fachinformatiker?

also ich muss ehrlich sagen, ich programmiere 8 stunden am tag beim praktikum, dann noch ca2 stunden für einen neben job und dann vielleicht noch 2 stunden für ein fh projekt.

programmier 12 stunden am tag und macht mir immer noch spaß sowas zu lösen. ich will dir ja nicht zu nahe tretten aber wenn dir die lösung so einer aufgabenstellung überhaupt keinen anreiz gibt, dann bist du vielleicht in der falschen branche. den solche sachen sind daily business oder versteh ich das berufsbild eines fachinformatikers falsch.


----------



## ARadauer (26. Jul 2007)

SlaterB hat gesagt.:
			
		

> > ipAdresse = new String (in.readLine());
> 
> wieso das denn? da muss man ja drauf hinweisen..



ja stimmt, lese eigentlich nie von der console, hab das gach wo raus kopiert und nicht genau angesehen.
sorry


----------



## Javaner86 (26. Jul 2007)

at ARadauer: Es gibt keinen 0815 Fachinformatiker! Ich bin Fachinformatiker-Systemintegration! Fachinformatiker heißt nicht gleich, dass man 10 Stunden am Tag programmiert!!! Bin mehr im Support tätig....!!!Das hat nichts mit falsche Branche oder was zu tun, in einer Branche spltten sich Themenbereiche dermaßen auf, dass das eine mit dem anderen fast nichts mehr zu tun hat, eben nur in der Berufsschule muss ich das zwangsläufig machen....


----------



## The_S (26. Jul 2007)

ARadauer hat gesagt.:
			
		

> was macht man so als fachinformatiker?
> 
> also ich muss ehrlich sagen, ich programmiere 8 stunden am tag beim praktikum, dann noch ca2 stunden für einen neben job und dann vielleicht noch 2 stunden für ein fh projekt.
> 
> programmier 12 stunden am tag und macht mir immer noch spaß sowas zu lösen. ich will dir ja nicht zu nahe tretten aber wenn dir die lösung so einer aufgabenstellung überhaupt keinen anreiz gibt, dann bist du vielleicht in der falschen branche. den solche sachen sind daily business oder versteh ich das berufsbild eines fachinformatikers falsch.



*als frisch ausgelernter FI sich mal zu wort meldet*

Also, zum Einen gibts zwei Arten von FIs . Zum Einen die Anwendungsentwickler (meine Ausbildung), die sich in der Berufsschule mit Programmierung (aller niedrigste Stufe), SQL, Software-Ergonomie und UML beschäftigen. Und zum Anderen die Systemintegratoren (unser Kandidat hier), bei denen die Ausbildung in die komplett andere Richtung geht. Also Aufbau eines Rechners, Vernetzung von Systemen, Serverbetreuung, ... Grob kann man sagen, dass die Anwendungsentwickler nur für die Software, also das logische Denken zuständig sind und die Systemintegratoren die Macher sind, also alles was mit Hardware/Peripherie zu tun hat.

Natürlich haben Anwendungsentwickler auch ein bisschen was mit dem Themengebiet von Systemintegratoren zu tun und umgekehrt.  Meistens ist es aber so, dass Systemintegratoren nicht programmieren und Anwendungsentwickler nicht basteln können (um es mal übertrieben auszudrücken). 

Und dann gibts noch den Faktor, dass man in der Schule eigentlich nur Theorie und sehr, sehr wenig Praxis beigebracht bekommt. Vorallem wenn man so wie ich eine Duale Ausbildung macht. Da der Threadsteller aber Sommerferien hat, gehe ich mal davon aus, dass er eine rein schulische Ausbildung absolivert. Vondaher sollte die praktische Erfahrung gegen null tendieren.

Deswegen kann ich schon verstehen, dass er lieber die Aufgabe machen lässt.

Ein Tipp: Versuch möglichst viel praxis (praktika, ferienjobs, teilzeit nach der Schule) während deiner Ausbildung zu machen. Sonst hast du es später extrem schwer einen Job zu finden.


----------



## Javaner86 (26. Jul 2007)

Yeah cool danke Hobbit_Im_Blutrausch du hast es auf den Punkt gebracht.


----------



## ARadauer (26. Jul 2007)

ARadauer hat gesagt.:
			
		

> oder versteh ich das berufsbild eines fachinformatikers falsch.


ok dann hab ich das falsch verstanden, danke für die info. wollte hier auch niemanden zu nahe tretten.

also mein tipp:
die aufgabenstellung in kleiner teilprobleme zerlegen
einfach mal versuchen die teilprobleme zu lösen
wenns ned geht google oder forum fragen

viel spaß dabei


----------



## mikachu (26. Jul 2007)

eben...
*teile und herrsche*


----------



## Javaner86 (26. Jul 2007)

Alles klar. Dann großen Dank an euch für eure Hilfe! Habe jetzt wenigstens einen Ansatz!


----------



## tuxedo (1. Aug 2007)

Also ich muss da jetzt auch was zu sagen. Bin zwar kein Fachinformatiker, aber dafür Kommunikationselektroniker Fachrichtung Informationtechnik und in wenigen Monaten "Dipl.Inf.(FH)" mit spezialisierung "Software Engineerung - Kommunikation und Multimedia". 

Selbst wenn man mit der Spezialiseurng Systemintegration später nicht 8h am Tag programmiert, sollte man doch die Basics drauf haben. Weil wie will man System verstehen wenn sich das ganze Wissen um "Wie muss ich was zusammenstecken oder schrauben damit XYZ funktioniert" dreht. Natürlich gehört hier auch ein logisches Verständnis von Software dazu. Und der beste Weg das zu kapieren ist eben das programmieren. 

Und glaub ja nicht dass, wenn man Aufstiegschancen nutzen will, du immer nur genau das machst was dir in der Berufsschule beigebracht wurde.. Du wirst das machen was die Industrie dir vorgibt. Und das deckt sich nicht immer mit dem gelernten. Also wirst dua uch weiterhin mit Sachen konfrontiert werden die dir absolut nicht liegen und die du vielleicht auch nicht machen willst. 
Beispiel: Was glaubst du wie oft man als Elektroniker im späteren Berufsleben einen 8085 Mikroprozessor in Assembler programmieren muss? Ich kenne meinen einzigen der vielen Ausbildungskollegen von mir der das nochmal machen musste. Und dennoch war es Teil der gesellenprüfung. Und der Witz an der Sache: Im Ausbildungsbetrieb hieß es einfach nur: "Dort hinten im Schrank steht ein Handbuch. Da kannst du alles nachlesen. Wir wissen selbst nicht wie's geht. War schon immer so.". Mich hats damals auch angekotzt das mir selbst beibringen zu müssen. Aber ich nachinein kann ich sagen: Es hat mir auf vielerlei Wegen was gebracht und ich bin froh dass ich mich durchgekämpft habe. 

Selbst wenn die Ausbildung darunter leidet dass kaum Praxis vermittelt wird: Glaubst du das ist in Unis (oder im späteren Beruf) anders? Mittlerweile solltest du vielleicht wissen dass man bei anfangs komplexen Problemen nicht gleich das Handtuch wirft. Nö, divide & conquer, wie hier schon passend erwähnt wurde. 

So, musste mir das mal von der Seele schreiben... Hab so das Gefühl dass das Niveau der Auszubildenden immer mehr sinkt (hat mir erst vor kurzem mein ehemaliger Ausbilder bestätigt...). Wo soll das noch hinführen wenn geforderte Qualifikationen "per Einkauf der Hausarbeit" umgangen werden?!

- Alex


----------



## Puky (27. Sep 2007)

Hey, ich seh das Ganze genauso. Ich mache auch eine Ausbildung zum Systemintegrator und bin echt enttäuscht, wie das ganze läuft. Nach dem ersten Jahr hab ich beinahe schon mehr Fachwissen als meine Ausbilder und den Unterricht an den Schule kann man vergessen. Wir haben über die Ferien genau die identische Aufgabe bekommen, nächten Dienstag ist Abgabe. Ich habe Gestern damit angefangen (viel zu spät, ich weiß), aber mit en bissel logischem Denken und Zusammensuchen von Befehlen bekomm ich des Programm grad gut hin. Aller Anfang ist schwer, aber ohne Eigeninitiative kann man nach der Ausbildung vielleicht Ausbilder werden...


----------



## tuxedo (27. Sep 2007)

Puky hat gesagt.:
			
		

> aber ohne Eigeninitiative kann man nach der Ausbildung vielleicht Ausbilder werden...



Aber auch nur vielleicht. Weil da muss man schon wieder ne Prüfung für ablegen ... Und das heißt: Wieder lernen.


----------



## Puky (27. Sep 2007)

Stimmt!


----------



## Guest (28. Sep 2007)

Hm,mache auch ne Ausbildung als Fachinformatiker allerdings Anwendungsentwicklung, ich frag mich auch immer wieder warum ich lernen muss wie ne Graka funktioniert oder ne Festplatte, oder wie Spannung,Ladung und Strom zusammen hängen(obwohl das ja allgemeinwissen sein sollte). Denk dir einfach: irgendwann brauch ich es  Ich denk mir immer: was amch ich wenn ich mal nen Treiber programmieren soll und keine Ahnung hab was auf der andern Seite abgeht.

Denk es dir einfach umgekehrt, du kommst zu nem Support fall, beim programmierer ist der rechner am hängen,egal was du machst, dann könntet vielleicht ´über den code ne fehlerquelle finden wo sich die hardware bspw nicht mit verträgt, also einfach irgendwelche dämlichen begründungen aussuchen, dann kann man sich da durchbeißen 

aber sei froh das du überhaupt vernünftige aufgaben kriegst, ich darf nur Lastenhefte schreiben,Programablaufpläne zeichnen und Struktogramme,naja muss leider sein 

lg


----------



## tuxedo (28. Sep 2007)

?? Ihr stellt euch an...

Wenn ich eine Anwendung entwickeln will sollte ich schon wissen wie die Hardware im innern funktioniert. Nur so lassen sich Anwendungen entwickeln die perfekt auf die Hardware passen. Mercedes baut ja auch keine x-beliebige Karosserien um die Motoren drum rum... Die kennen beide Seiten.

Und Lastenhefte, Programmablaufpläne etc... du glaubst gar nicht wie oft du das noch brauchen wirst. Klingt alles öde. Aber einem Arbeitgeber bringts nix wenn du nur coden kannst, aber anderen nicht auf Papier mitteilen kannst wie was funktioniert. Ein Programm muss nicht nur geschrieben werden, sondern auch geplant und dokumentiert.

- Alex


----------



## Saxony (8. Nov 2007)

alex0801 hat gesagt.:
			
		

> [...]und dokumentiert.



Hehe - wenn die Softwarebude groß genug ist, gibts dafür technical writer 

bye Saxony


----------



## The_S (8. Nov 2007)

Wir ham ne relativ große "Bude", aber bei uns gibts keine Technical Writer, noch dokumentiert auch nur einer von uns selbst


----------



## Saxony (8. Nov 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> bei uns gibts keine Technical Writer, noch dokumentiert auch nur einer von uns selbst



Die armen neuen Kollegen, welche die ersten 6 Monate Quellcode lesen müssen, bevor se loslegen können. 

bye Saxony


----------

