IT-Kaufmann Zwischenprüfung 2014 - Komische Aufgabe



  • Hi,

    es geht um folgende Aufgabe in der Zwischenprüfung IT-Kaufmann Frühjahr 2014:

    http://abload.de/img/20140226_183842o3ur1.jpg

    Also, das Struktogramm weist höchstens die Möglichkeit 1 auf, das ist aber auch situationsabhängig.

    1: Ok, bei titel_max2 würde möglicherweise "Kauderwelch" herauskommen, wenn kein Buch eine Ausleihenanzahl > 0 hat oder einfach keine Bücher existieren. Kommt dann aber auch auf die gewählte Programmiersprache an. In C++ z.B. hätte man dann wohl einen String mit u.a. undruckbaren Zeichen (kann aber auch char[0] = 0 sein, ist "zufällig"). Wie das in VB.NET oder Java ist, weiß ich nicht. Es wird aber auch keine Programmiersprache explizit benannt. Allerdings wäre titel_max dann halt leer (""). Also müsste man dann so argumentieren dass "" != falsches Buch ist. Text wird zwar dennoch ausgegeben, aber der User sieht dann halt dass dort nichts als Buchnahme steht, aber möglicher Kauderwelch wäre der "falsche Buchname". ^^

    2: Sind in der richtigen Reihenfolge. Wären sie das nicht, dann würde anz_max und anz_max2 immer den selben Wert aufweisen.

    3: Ist nicht vertauscht, denn immer wenn die Ausleihenanzahl größer als die aktuelle ist, dann soll man ja die Variablenwerte updaten, völlig klar.

    4: Definitiv nicht, lol. Wäre wenigstens ein Datensatz existent, dann würde der Schleifencode gar nicht ausgeführt. Wäre kein Datensatz vorhanden, dann hätte man eine Endlosschleife.

    5: Auch nicht, man interessiert sich ja nur für den höheren Wert in Relation zum aktuellen Wert. (Wobei nach der Programmlogik sowieso weitere gleichhohe Bücher ignoriert werden -> z.B: Größter Wert 5 und es gibt >= 2 davon).

    Konklusion: Ich habe einfach die 1 in's Lösungsfeld eingetragen, da es wie oben beschrieben am ehsten passt, aber dennoch irgendwie seltsam ist. Wie seht ihr das?

    LG



  • Angenommen die Datei enthaelt keine Datensaetze ...
    Angenommen sie enthaelt genau 2 Datensaetze mit gleich vielen Ausleihen ...

    Wobei nach der Programmlogik sowieso weitere gleichhohe Bücher ignoriert werden

    Bitte liess dir nochmal durch, was das Programm machen soll:

    ... welche zwei Buecher ...

    Oder angenommen, das Buch mit den meisten Ausleihen wird im ersten Datensatz gelesen und es sind 50 Buecher in der Datenbank enthalten.
    Also 5.)



  • [quote="volkard"]

    zwp_writer schrieb:

    1: Ok, bei titel_max2 würde möglicherweise "Kauderwelch" herauskommen, wenn kein Buch eine Ausleihenanzahl > 0 hat oder einfach keine Bücher existieren. Kommt dann aber auch auf die gewählte Programmiersprache an. In C++ z.B. hätte man dann wohl einen String mit u.a. undruckbaren Zeichen (kann aber auch char[0] = 0 sein, ist "zufällig"). Wie das in VB.NET oder Java ist, weiß ich nicht. Es wird aber auch keine Programmiersprache explizit benannt. Allerdings wäre titel_max dann halt leer (""). Also müsste man dann so argumentieren dass "" != falsches Buch ist. Text wird zwar dennoch ausgegeben, aber der User sieht dann halt dass dort nichts als Buchnahme steht, aber möglicher Kauderwelch wäre der "falsche Buchname". ^^

    Du MUSST dich senken bei so Aufgaben.
    Stell Dir vor, daß der Prüfer/Lehrer nur eine Programmiersprache kann und die auch nur halb. Für solche Prüfer werden die Aufgaben gebastelt. Nicht, weil es klasse wäre, sondern weil man sich die Prüfer nicht aussuchen kann. Darum auch Struktogramme, löl.
    Ich nehme mal keine Bücher an.
    In V2-Basic käme "" raus. [1]=undef. Die Anderen Sprachen hätten das nicht durch den Compiler gelassen. [1]=undef. Außer man tut C-klassisch mal Am Anfang alle Variablen definieren, dann würde es in C abkacken. [1]=undef.
    [1]=false kann aber nicht sein, da es keinen richtigen Buchtitel gibt. ex falso quod libet.
    Da Du nur true oder false antworten darfst, und false gant einfach widerlegt ist, musst du true ankreuzen. true ist unter keinen möglichen Umständen wahr, aber das zu beweisen ist nicht so leicht.

    zwp_writer schrieb:

    2: Sind in der richtigen Reihenfolge. Wären sie das nicht, dann würde anz_max und anz_max2 immer den selben Wert aufweisen.

    Störende Fragestellung. Meint er, aus ABCD würde CDAB oder BADC?
    Naja, erstere kann er nicht gemeint haben, weil sie zu einfach wäre.
    [2]=true
    Dein Beweis ist genial, alter schreibfauler Buchstabensparer!

    zwp_writer schrieb:

    3: Ist nicht vertauscht, denn immer wenn die Ausleihenanzahl größer als die aktuelle ist, dann soll man ja die Variablenwerte updaten, völlig klar.

    Jo.

    zwp_writer schrieb:

    4: Definitiv nicht, lol. Wäre wenigstens ein Datensatz existent, dann würde der Schleifencode gar nicht ausgeführt. Wäre kein Datensatz vorhanden, dann hätte man eine Endlosschleife.

    lol, klar. Damit keiner mit einer 5 nach Hause geht, der sie nicht auch verdient hat.

    zwp_writer schrieb:

    5: Auch nicht, man interessiert sich ja nur für den höheren Wert in Relation zum aktuellen Wert. (Wobei nach der Programmlogik sowieso weitere gleichhohe Bücher ignoriert werden -> z.B: Größter Wert 5 und es gibt >= 2 davon).

    Doch!
    Habe keine anderen Daten. Weiß nicht, inwiefern die Aufgabe mit anderen zusammenhängt. Wenn Du mehr Kontext hast, dann her damit.
    Ich sehe nur: titel_max kriegt den Titel eines der zum Beispiel zehn Büchern, die am meisten ausgeliehen wurden. Das ist ok. Bei > das erste größte in der Datei, bei >= das letzte größte in der Datei. Ist aber egal, sind ja beide gleich viel wert.
    Bei > aber wird titel_max2 das größte derer zeigen, die nicht voll vorne sind. Bei >= wird es zeigen, einen anderen von voll vorne, also viel viel sinnvoller. Aber es wird nicht mehr bei benau gleich vielen Büchern der gewinnen, der sie zuerst hatte. Hmm, denke >= ist besser. (Erwarten die echt solche Überlegungen?)

    zwp_writer schrieb:

    Konklusion: Ich habe einfach die 1 in's Lösungsfeld eingetragen, da es wie oben beschrieben am ehsten passt, aber dennoch irgendwie seltsam ist. Wie seht ihr das?

    Fürchte, [5] ist falsch.

    Ja, seltsam. Aber naturgewachsen und verträndlich wenn man seit 70 Jahren im Geschäft ist oder ein besonderes geschichtliches Interesse an der Informatik hat.

    Nehme stark an, daß Du später im Beruf wesentlich tauglicher bist als Deine Sitznachbarn, die es sich über sich ergehen lassen und nicht das noch aus reiner Neugierde verstehen wollen.

    (Hier wäre jemand abzugreifen.)





  • Dieser Thread wurde von Moderator/in nman aus dem Forum Themen rund um die IT in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • zwp_writer schrieb:

    4: Definitiv nicht, lol. Wäre wenigstens ein Datensatz existent, dann würde der Schleifencode gar nicht ausgeführt. Wäre kein Datensatz vorhanden, dann hätte man eine Endlosschleife.

    Oh, da war ich sehr unaufmerksam. In beiden Fällen würde es dann auf eine Endlosschleife hinauslaufen, da der Dateizeiger ja auf das Ende der Datei zeigen würde (bei 0 Datensätzen sowieso am Dateiende und bei einem Datensatz dann nach der ersten Einleseanweisung, welche noch vor der Schleife stattfindet).

    volkard schrieb:

    Störende Fragestellung. Meint er, aus ABCD würde CDAB oder BADC?

    Ja, ich würde stark zu letzterem tendieren, also BA und DC.

    volkard schrieb:

    Weiß nicht, inwiefern die Aufgabe mit anderen zusammenhängt. Wenn Du mehr Kontext hast, dann her damit.

    Nee, die Aufgabe steht mit keinen anderen Aufgaben in einem Kontext. Bezogen auf das Struktogramm halt nur 2.12 und 2.13, bei 2.13 sollte man nur angeben, wie man das Struktogramm testen soll (gab fünf Möglichkeiten, aber für 2.12 ist die Aufgabe nicht relevant).

    volkard schrieb:

    Ich sehe nur: titel_max kriegt den Titel eines der zum Beispiel zehn Büchern, die am meisten ausgeliehen wurden. Das ist ok. Bei > das erste größte in der Datei, bei >= das letzte größte in der Datei. Ist aber egal, sind ja beide gleich viel wert.
    Bei > aber wird titel_max2 das größte derer zeigen, die nicht voll vorne sind. Bei >= wird es zeigen, einen anderen von voll vorne, also viel viel sinnvoller. Aber es wird nicht mehr bei benau gleich vielen Büchern der gewinnen, der sie zuerst hatte. Hmm, denke >= ist besser.

    Das Problem wäre bei >= dann aber: Angenommen wir haben eine Anzahl an Büchern >= 3, welche den selben Ausleihe Wert haben. Dann wären ja nur die letzten zwei gleich großen gespeichert (letztes in anz_max und vorletztes in anz_max2). Und nun lautet der Satz in der Aufgabenbeschreibung ja "... welche zwei Bücher im letzten Jahr am meisten ausgeliehen wurden"*. Aber in dieser Annahme wären ja >= 3 Bücher am meisten ausgeliehen worden. Ich kann dann ja nicht sagen bzw. ausgeben, es wurden zwei am meisten ausgeliehen, weil's falsch wäre.^^

    volkard schrieb:

    (Erwarten die echt solche Überlegungen?)

    Gute Frage. Ich bin IT-mäßig ja schon "vorbelastet", aber bei Azubis, welche sich privat noch nicht relativ umfassend damit im Voraus beschäftig haben, würde ich das auch in Bezug auf den bisherigen Stoff eher bezweifeln. Allerdings kann ich da ja nur für meine Klasse sprechen.

    Danke für eure Antworten. Und falls ich bei irgendwas in diesem Beitrag mist geschrieben habe, verzeiht mir bitte, ich sollte schon längst im Bett sein *yawn*³.

    *http://abload.de/img/20140226_225618juu9z.jpg



  • PS: Sorry, dass der Ausschnitt mit der ganzen Aufgabenbeschreibung auf dem ersten Bild nicht zu sehen war, habe das ungünstig abgelichtet.^^



  • Die Entschuldigung bezogen auf:

    zwp_writer schrieb:

    Und nun lautet der Satz in der Aufgabenbeschreibung ja



  • Das Problem wäre bei >= dann aber: ... weil's falsch wäre

    Machs nicht komplizierter als es ist. http://de.wikipedia.org/wiki/Größtes_und_kleinstes_Element ... da steht x >= y in der Definition. D.h. habe ich mehrere Kandidaten mit gleicher Ausleihzahl, dann sind alle gleichwertig. Waehle 2 aus und sage, es seien die groessten Elemente bzgl. der Ordnungsrelation, dann ist das korrekt.

    Angenommen wir haben eine Anzahl an Büchern >= 3, welche den selben Ausleihe Wert haben. Dann wären ja nur die letzten zwei gleich großen gespeichert

    Man ... angenommen wir habe 2 Buecher und das am meisten ausgeliehene steht im ersten Datensatz.

    Was gibt es da gross zu diskutieren?



  • Also ist nun irgendeine Antwort "richtig" oder nicht? Ich hätte [5] genommen, weil das in weniger Fälle ein falsches Ergebnis liefert als die anderen Möglichkeiten.


Log in to reply