Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Frage: foreach in Pseudocode

Empfohlene Antworten

Veröffentlicht

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;

}

Pseudocode

-> Pseudocode

Was macht foreach, Umwandeln?

Wenn ja, würde ich sagen:

z.B.

Wandele Zahl in String

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 von dein.Tod

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.

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.

jo wurde mir auch gesagt..

der prüfer muss nur die logik dahinter verstehen ;)

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?

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.

Da das aber Pseudocode und kein PASCAL ist, dürften auch Klammern voll in Ordnung gehen. ;)

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?

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.)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.