dein.Tod Geschrieben 26. April 2011 Geschrieben 26. April 2011 Es gibt im GA 1 der FIAE ja immer so eine aufgabe wo man eine Funktion mit Pseudo code erstellen muss, die Form des Codes ist ja frei und als C# ler schreib ich halt C# pleudo code. Meine Frage ist jetzt darf ich Foreach verwenden? Folgende Aufgabenstellung (Aus 2010 FIAE GA1) ImageShack® - Online Photo and Video Hosting Könnte ich die aufgabe so lösen: (Unabhänig davon ob meien lösung vielleicht noch einen logikfehler enthält int getVerfuegbaresGeraet(int Gerätetyp, DateTime Entleihbeginn, int EntleihdauerInTagen) { foreach(var geraetID in getGeräteListe(Gerätetyp)) { foreach(var buchungsdat in getResDat(geraetID)) { if(buchungsdat.vonDat < Entleihbeginn and EntleihdauerInTagen > (buchungsdat.bisDat - Entleihbeginn)) return geraetID; } } return 0; } Zitieren
itazubi Geschrieben 26. April 2011 Geschrieben 26. April 2011 ist das überhaupt pseudo code? Zitieren
Asgar13 Geschrieben 26. April 2011 Geschrieben 26. April 2011 Pseudocode -> Pseudocode Was macht foreach, Umwandeln? Wenn ja, würde ich sagen: z.B. Wandele Zahl in String Zitieren
itazubi Geschrieben 26. April 2011 Geschrieben 26. April 2011 if() sieht nicht wirklich nach pseudo aus? if ... then ... else ... end if/exit wenn ... dann ... sonst ... wenn_ende und {} steht dort auch nicht für pseudo. Zitieren
dein.Tod Geschrieben 26. April 2011 Autor Geschrieben 26. April 2011 (bearbeitet) Was macht foreach, Umwandeln? foreach macht wie der name schon sagt: Für jedes element X aus Collection Y (hierbei das array das die funktion zurückgegeben hat. foreach(var geraetID in getGeräteListe(Gerätetyp)) also in diesem beispiel für jede geräteId in dem integer array das getGeräteListe(Gerätetyp) zurückgibt mache einen schleifendurchlauf und {} steht dort auch nicht für pseudo. Aus dem Wikipedia artikel von Asgar13: Im Pascal-Stil werden Schlüsselwörter wie begin, end, then, do, repeat, until benutzt. Im C-Stil werden stattdessen geschweifte Klammern {,} gesetzt und das Schlüsselwort then wird ausgelassen. Dieser Stil wird oft von Programmierern benutzt, die solche Sprachen verwenden. Beide Stile findet man in Lehrbüchern. Bearbeitet 26. April 2011 von dein.Tod Zitieren
itazubi Geschrieben 27. April 2011 Geschrieben 27. April 2011 also ist das von dir da oben pseudo code? Für mich ist das "fast" umsetzbare C#-Syntax. Zitieren
Asgar13 Geschrieben 27. April 2011 Geschrieben 27. April 2011 Ich würde es so auflösen: Wiederhole bis Eingabewert = 0 **lese Eingabe **Speichere Eingabe in geraetID weil ich meine Sprachen, wie C (nicht C# oder C++) so etwas wie foreach nicht können. Was hat den gleichen Sinn, wie Pseudocode, natürlich ein Struktogramm, beides soll für verschiedene Programmiersprachen lesbar sein. Zitieren
Bjarki Geschrieben 27. April 2011 Geschrieben 27. April 2011 in der Schule wurde uns gesagt dass sich Pseudocode an keine Regeln halten muss (Ausser das er verständlich sein muss --> nicht in Anlehnung an Whitespace,Brain**** schreiben ). Eine Foreach-Schleife ist ein gängiges Strukturelement und kann imo auch benutzt werden. Zitieren
dumper Geschrieben 27. April 2011 Geschrieben 27. April 2011 jo wurde mir auch gesagt.. der prüfer muss nur die logik dahinter verstehen Zitieren
Apfelchips Geschrieben 27. April 2011 Geschrieben 27. April 2011 Gegeben sei die Existenz der Klassen Person und Haus, das Array haus, welches Haus-Objekte enthält und die Vorgabe, dass wir hier von einer objektorientierten Programmierung reden. zwischenwert := 0 für jede Person person in haus zwischenwert = zwischenwert + person.getAlter() wenn zwischenwert > 80 Schleife beenden ende wenn ende für jede Eine normale for-Schleife sähe demnach so aus: für i=0 bis Länge von haus ... ende für Teilweise werden dabei auch Datentypen angegeben: für i:Integer=0 bis Länge von haus ... ende für In diesem Fall (wo i nur als Zähler benutzt wird), ist das aber sicher unnötig. Das wäre in meinen Augen ein verständlicher Pseudocode, der auch von der IHK anerkannt werden sollte. Soweit ich weiß, könnte man übrigens sehr wohl auch mit Klammern (also { und }) arbeiten. Denn auch das ist absolut verständlich und üblich. Was meint Ihr? Zitieren
Asgar13 Geschrieben 27. April 2011 Geschrieben 27. April 2011 Klammern würde ich persönlich nicht schlimm finden, oder man rückt es ein, oder man schreibt Anfang und Ende. Das einzige, was gegen die Klammern spricht ist, das Pascal BEGIN und END nimmt und keine Klammern hat. Zitieren
Apfelchips Geschrieben 27. April 2011 Geschrieben 27. April 2011 Da das aber Pseudocode und kein PASCAL ist, dürften auch Klammern voll in Ordnung gehen. Zitieren
addiks Geschrieben 28. April 2011 Geschrieben 28. April 2011 Wo wir schonmal bei Pseudocode sind: Ist es auch erlaubt statt Pseudocode eine richtige (allgemein verständliche) Programmiersprache zu verwenden oder MUSS dann zwingend eine nicht real existierende Programmiersprache benutzt werden? Zitieren
Apfelchips Geschrieben 28. April 2011 Geschrieben 28. April 2011 Das kommt ganz auf die Aufgabenstellung an. In ganz alten Prüfungen war von "Programmablaufplan/Struktogramm" die Rede. Später dann von "PAP oder Pseudocode". Stellenweise dann auch wieder von "Pseudocode oder eine allgemein bekannte Programmiersprache" (oder so ähnlich). In den Prüfungen der jüngsten Vergangenheit hatte man aber immer die Wahl zwischen PAP und Pseudocode. Daher würde ich sagen: Pseudocode — auf jeden Fall! Eine andere Programmiersprache zu benutzten ist riskant und PAPs nehmen meiner Meinung nach zu viel Zeit weg. (Wie alle Aufgaben, bei denen man künstlerisch aktiv sein darf.) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.