View Full Version : [Frage] 4105 Intersec - Angabe = !?*#@}:(
Sodala, jetzt wird die Zeit leider schon langsam knapp und ich hab' wieder mal die tollsten Beispiele bekommen. 4111 (Umfang) klang ja ganz sympatisch, aber nach einem Tag herumprobiere hab' ich's aufgegeben, weil ich nicht dahinterkomme wie man die Klötze zu einem Gebilde verschmelzen lässt und dann auch noch die Grenzen erweitert... aber das ist jetzt ja egal.
So, also muss ich mich an Bsp. 4105 Intersec heran wagen, und das hat ja wieder mal eine Angabe...
http://eprog.sourceforge.net/eprog/4105/Intersec.html
Also das Problem ist, dass nirgendwo in der Angabe etwas über den Eingabeoperator "?" steht, wie er im ersten Input Paar vorkommt. Gut es heißt man soll dann die Objektgruppen sortiert ausgeben, aber was eine Objektgruppe ist steht natürlich nirgendwo.
Also ich hab' mir das mal aufgezeichnet und das kam heraus (Anhang)
Das richtige Output Dingsbums heisst
1-2-6 3-5 4-7
1, 2 und 6 ist wahrscheinlich so zu verstehen, dass sie eine Objektgruppe ergeben, weil sie sich schneiden. (zumindest den Kreis)
3 hat 5 eingeschrieben und grenzt an 4.
D.h. wenn sich Objekte berühren zählen sie nicht zur gleichen Gruppe, würde ich mal sagen. Objektgruppe = Schneiden.
Vielleicht hat jemand ja schon mal das Bsp gehabt und kann mir sagen ob ich das richtig verstehe, denn aus der Angabe alleine sieht man das nicht so gut heraus.
Und leider kann man per e-mail ja nicht fragen an die Übungsleitung stellen...
Thanks
Also das Problem ist, dass nirgendwo in der Angabe etwas über den Eingabeoperator "?" steht, wie er im ersten Input Paar vorkommt. Gut es heißt man soll dann die Objektgruppen sortiert ausgeben, aber was eine Objektgruppe ist steht natürlich nirgendwo.
Also ich hab' mir das mal aufgezeichnet und das kam heraus (Anhang
Also leicht ist anders, aber das haben wir ja schon besprochen.
Der abschließende String stellt die Abfrage dar, dieser besteht entweder nur aus dem Zeichen "?", oder aus 2 Objektnummern getrennt durch einen der beiden Vergleichsoperatoren "<" oder "<<". Zu den Objektnummern müßen auch Objekte existieren.
Nur ? heißt wohl soviel wir das klassische Print aus BASIC. Exkurs in BASIC:
10 ? "hello, world"
entspricht
System.out.println("hello, world");
Teil 2 der Angabe ist Dir scheinbar eh klar, da wird gecheckt, ob die (vorher durchnummerierten) Objekte irgendwie in Relation zueinander stehen.
Teil 1 wird Ansich eh bei der Ausgabebeschreibung beschrieben:
Bei korrekten Eingabesätzen soll Ihr Programm das Resultat der Berechnung wie folgt ausgeben. Die gefundenen Objektgruppen werden im Ausgabestring nach Anzahl der Objekten absteigend sortiert und durch ein Leerzeichen getrennt ausgegeben, innerhalb einer Gruppe sollen die Objekte nach den Nummern aufsteigend sortiert und durch ein Bindestrich getrennt sein.
Geben Sie immer nur die Objektnummern sowie die Trennzeichen aus. Ist die Anzahl der Objekte bei 2 Gruppen identisch, so soll hier noch zusätzlich nach Objektnummer aufsteigend sortiert werden.
Zieh Dir am besten nochmal Ein- und Ausgabebeschreibung rein und überlege Dir, wie Du von der Eingabe zur Ausgabe kommst.
Die Datei im Anhang konnte ich übrigens nicht entdecken -- könnte aber auch ein Problem von meinem System sein.
... Na, ich glaube es stimmt schon so, wie ich es mir gedacht habe, danke auf jeden Fall.
Allerdings hab' ich jetzt noch eine andere wichtige Frage:
Und zwar heißt es: Bei einem falschen numerischen Datentyp (bei der Eingabe) soll "?" ausgegeben werden.
Hingegen soll bei inhaltlichen Fehlern FALSCHE EINGABE ausgegeben werden.
*hüstel*
Ok: Richtig wäre R(1,2;4,7) // R für Rechteck, 1=x1, 2=y1, 4=x2, 7=y2
Bedingung: x1 < x2 und y1 < y2
Was wäre die richtige Fehlermeldung für
R(1.00, 2.00; 4.00, 7.00) => ?
R(hallo) => ?
B(1,2;4,7) => FALSCHE EINGABE
oder doch ?
Ein Char ist ja kein numerischer Datentyp oder?
R(4,7;1,2) => FALSCHE EINGABE
Stimmt das so?
numerischer Datentyp heisst ja, dass es sich um ganze Zahlen handeln muss.
Also wenn statt einer Ganzen Zahl etwas anderes (Float Zahl oder Char) kommt, dann muss ich ? ausgeben, und wenn statt einem Char etwas anderes kommt FALSCHE EINGABE.
Wenn ungestattete Zeichen an der Position wo ein Int verlangt wird kommen aber "?" ausgeben.
Und wenn alles richtig ist, aber die Bedingung verletzt, dann doch wieder FALSCHE EINGABE
Das kann ja eine Fehlerbehandlung werden... :shinner:
Leichtes Beispiel... ha, ha, ha.
... und eine noch:
Verlangt sind Short Zahlen bei der Eingabe.
Angenommen man gibt eine Integer ein. (zu lang)
ist das dann ein
1) falscher numerischer Datentyp => ?
oder
2) genügt den Bedingungen nicht => FALSCHE EINGABE
Man, das ist alles vielleicht Käse...
Wäre super, wenn mir das jemand sagen könnte, ich glaube meine anderen Vermutungen stimmen soweit. (Ausser beim Char weiss ich es nicht)
Macht sonst niemand das Bsp?
Oh doch! Ich probiers zumindest.... hab als mittleres auch das mit den 2-D Blöcken bekommen und das schwere war eine Fkt. differenzieren oder sowas...
Leider hab ich im moment selber noch keine Ahnung wie ich das Bsp. lösen könnte (vor allem weil es ja oo sein muss...) aber ich hab ja noch 4 Tage für Runde 4 u. 5 Zeit. Da kann ja nichts mehr schief gehn.....................
Das mit dem Objektorientiert habe ich jetzt so gemacht, dass ich mich der Klasse Rectangle bedient habe. Die Einlesedaten hab' ich eben in Rectangles umgewandelt.
Dann kann man sie ja auch ganz nett mit contains und intersecs vergleichen.
Wie ich die Objektgruppen als sortierte Ausgabe bekomme weiß ich auch noch nicht.
Aber wir haben ja noch Zeit... ähem. http://hades.gothic.at/iforum/images/smilies/eek2.gif
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.