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.

Pseudocode AP Winter 07/08 AE

Empfohlene Antworten

Veröffentlicht

Hi Leute!

Hab hier eine alte Prüfung mit folgender Aufagbe (sinngemäß) und bitte euch

um Lösungsvorschläge!

-----------------------------------------------------------------------

Array: Sonnenstunden


  PLZ       SONNENSTUNDEN

  ...         ...

  ...         ...

  50606     1.200

  51491     1.100

  ...          ...

  ...          ...

  

Erstellen Sie einen Algorithmus in Pseudocode, der die Sonnenstunden zu

einer eingegebenen PLZ ausgibt.

- Die Zeilen des Arrays sind nach Postleitzahl aufsteigend sortiert

- Wird die angegebene PLZ nicht gefunden, sollen die Sonnenstunden

der nächstkleineren PLZ verwendet werden.

- Ist die angegebene PLZ kleiner als die kleinste im Array angegebende

PLZ soll -1 zurrückgegeben werden.

-----------------------------------------------------------------------

(Vorallem wir das mit der nächstkleineren PLZ klappen soll weiß ich echt

garnicht)

10 Pkt gab es übrigens auf diese Aufgabe

Danke im Vorraus

Um das Problem mit der naechstkleineren PLZ zu loesen, wuerde ich die eingegebene PLZ dekrementieren und die Schleife, die ueberprueft ob die PLZ gleich sind, erneut durchlaufen. Um nicht bis Null zu zaehlen, vorher eine Ueberpreufung einbauen, ob die kleinste PLZ die im Array ist, erreicht ist.

...klingt vernünftig. Danke für die schnelle Antwort!

Ich wollte die Aufgabe grade mal loesen, da stellt sich mir die Frage, wie das Array aufgebaut ist:

Sonnenstunden[PLZ] = Sonnenstunden?

Ist dass so richtig?

Und wie ueberprueft man dann, ob es zu einer PLZ Sonnenstunden gibt?

.. da stellt sich mir die Frage, wie das Array aufgebaut ist:

Sonnenstunden[PLZ] = Sonnenstunden?

Ist dass so richtig?

Und wie ueberprueft man dann, ob es zu einer PLZ Sonnenstunden gibt?

Wie der Array aufgebaut ist sieht man ja in meinem Beitrag....

linke spalte [PLZ] rechte die dazugehörigen Sonnenstunden.

Ob die PLZ in dem Array ist findet man so raus:



Eingabe: postleitzahl

found = False


Für alle Elemente in Array

  lese Element


  wenn Element.PLZ = postleitzahl dann

   ausgabe Element.Sonnenstunden

   found = True

   verlasse for-schleife

   ende_wenn


nächstes Element 


Wenn found = False dann

...

...

Wie der Array aufgebaut ist sieht man ja in meinem Beitrag....

linke spalte [PLZ] rechte die dazugehörigen Sonnenstunden.

Ob die PLZ in dem Array ist findet man so raus:



Eingabe: postleitzahl

found = False


Für alle Elemente in Array

  lese Element


  wenn Element.PLZ = postleitzahl dann

   ausgabe Element.Sonnenstunden

   found = True

   verlasse for-schleife

   ende_wenn


nächstes Element 


Wenn found = False dann

...

...

Das sieht fuer mich eher so aus, ob "Element" ein Objekt waere mit zwei Variablen "PLZ" und "Sonnenstunden".

Wenn das Array aufgebaut ist wie Sonnenstunden[PLZ] = Sonnenstunden

Beispiel:

Sonnenstunden[56098] = 12000

dann wuerde das ja so nicht gehen.

Im Element eines Arrays sind zwei Rückgabewerte.

Einmal die linke Seite des aktuellen Elements [PLZ] und die rechte Seite

[sonnenstunden].

Also kann man doch schreiben "Element.PLZ" bzw. "Element.Sonnenstunden"

um den aktuellen Satz anzusprechen....

...so hab ich das zumindest in anderen Aufgaben schon gesehn.

ich glaube du hast doch recht! Mein Code wäre für eine Datenstruktur

verwendbar, aber nicht für einen array...

Muss man den Array dann erst in eine Hashtabelle verlagern ? Wenn ja wie

in Pseudocode?

Oder kann man irgendwie anders den Array über den Index (PLZ)

durchsuchen ? Weil "Element" wäre ja Sonnenstunden und nicht plz :confused:

ich glaube du hast doch recht! Mein Code wäre für eine Datenstruktur

verwendbar, aber nicht für einen array...

Muss man den Array dann erst in eine Hashtabelle verlagern ? Wenn ja wie

in Pseudocode?

Oder kann man irgendwie anders den Array über den Index (PLZ)

durchsuchen ? Weil "Element" wäre ja Sonnenstunden und nicht plz :confused:

Mein Vorschlag waere jetzt ein temporaeres Array anzulegen, dass als Elemente alle PLZ hat.

tmp_PLZ[0] = 59876;

tmp_PLZ[1] = 34534;

Das dann fuellen in dem man alle Indexe aus "Sonnenstunden" ausliest und in das tmp Array packt. Sollte dann eine PLZ uebereinstimmen

if(tmp_PLZ == Eingabe_PLZ)

dann

Ausgabe Sonnenstunden[PLZ]

So in der Art. :D

Ich bin auch nicht so der Programmierer (die von der IHK anscheinend auch nicht).

Wir haben dir Aufgabe letztens im Unterricht bekommen :) - der Dreisatz spielt bei der Lösung ebenfalls noch mit rein. Ich fand die Aufgabe etwas ... merkwürdig. Wer die Lösung haben will kann mir Bescheid geben (PN oder hier posten).

der Dreisatz spielt bei der Lösung ebenfalls noch mit rein.

Dreisatz :beagolisc

Wäre cool wenn du die Lösung hier posten könntest...

dann haben wenigstens alle was davon!

Dreisatz :beagolisc

Wäre cool wenn du die Lösung hier posten könntest...

dann haben wenigstens alle was davon!

Jepp, mach ich sobald ich daheim bin :D - muss die Seitenausdrucke erst einscannen - der Orginalcode liegt leider in der Schule :( ...

Anbei die Lösung - in Java implementiert - kann ja zu Pseudocode abstrahiert werden :) .

MFG Abd Sabour

post-46970-14430447835393_thumb.jpeg

post-46970-14430447836601_thumb.jpeg

Anbei die Lösung - in Java implementiert - kann ja zu Pseudocode abstrahiert werden :) .

MFG Abd Sabour

Danke sehr!

Wie stellt man denn ein 2-dimensionales Array in Pseudocode dar?

Danke sehr!

Wie stellt man denn ein 2-dimensionales Array in Pseudocode dar?

Gute Frage - vielleicht kann sich mal ein IHKler dazu äußern ? Soweit ich weiß, war dieser Sonnenstunden Array vorgegeben und benuzten musstest du ihn ja im Pseudo-Code. Ich glaub die Java-Notation ist aber auf jeden Fall möglich - viel mehr alternative Ideen bezüglich Array-Notation in Pseudo Code habe ich auch nicht :confused:.

Wenn man zwei Arrays hat (ein Array mit Sonnenstunden und ein mit Postleitzahlen) würde das nicht eigenlich schon reichen, oder verstehe ich die Aufgabe nur komplett falsch?


Eingabe PLZ


FOR i = 1 TO anz_plz

	WENN tPLZ[i] = PLZ

           AUSGABE Sonnenstunden[i]

           BEENDE SCHLEIFE

	WENN tPLZ[i] > PLZ

	   WENN i > 1

	   	AUSGABE Sonnenstunden[i - 1]

	   ANSONSTEN

		AUSGABE -1   

	   BEENDE SCHLEIFE

ENDE DER SCHLEIFE 

Wenn man zwei Arrays hat (ein Array mit Sonnenstunden und ein mit Postleitzahlen) würde das nicht eigenlich schon reichen, oder verstehe ich die Aufgabe nur komplett falsch?

Wieso zwei Arrays ? Es gibt nur einen und der enthält sowohl sonnenstunden als auch Postleitzahlen - ZWEIdimensional heißt das Zauberwort :D !

Anbei die Lösung - in Java implementiert - kann ja zu Pseudocode abstrahiert werden :) .

MFG Abd Sabour

Da ist glaube ich ein Fehler im Quellcode und zwar bei der Schleife die die naechstkleinere PLZ sucht. Da fangt ihr an bei dem ersten Element im Array (die kleinste PLZ im ganzen Array) zu ueberpruefen, ob die eingegebene PLZ kleiner ist. Das wuerde richtig sein, wenn nicht gefordert waere die naechstkleinere auszugeben.

Ich denke da muss man den Zaehler auf das letzte Element setzen im Array und dann immer um eins dekrementieren und vergleichen. So erhaelt man dann die nächstkleinere PLZ.

Wenn man zwei Arrays hat (ein Array mit Sonnenstunden und ein mit Postleitzahlen) würde das nicht eigenlich schon reichen, oder verstehe ich die Aufgabe nur komplett falsch?


Eingabe PLZ


FOR i = 1 TO anz_plz

	WENN tPLZ[i] = PLZ

           AUSGABE Sonnenstunden[i]

           BEENDE SCHLEIFE

	WENN tPLZ[i] > PLZ

	   WENN i > 1

	   	AUSGABE Sonnenstunden[i - 1]

	   ANSONSTEN

		AUSGABE -1   

	   BEENDE SCHLEIFE

ENDE DER SCHLEIFE 
Der Code passt imo gar nicht. Die Ueberpruefung, ob eine naechstkleinere PLZ vorhanden ist, passt so nicht. Die Ueberpruefung, ob eine naechstkleinere PLZ vorhanden ist, darf erst erfolgen, wenn alle Elemente im Array durchlaufen worden sind und keins uebereinstimmt. Bei dir erfolgt aber alles in einem Durchlauf. Meine Loesung:

Eingabe PLZ


PLZ_gefunden = falsch


FOR zaehler = 1 SOLANGE zaehler kleiner Anzahl PLZ

       WENN Sonnenstunden[zaehler][0] GLEICH PLZ

       Ausgabe Sonnenstunden

       PLZ_gefunden = wahr

Schleifenende


FOR zaehler = 19 SOLANGE zaehler GROEßER GLEICH 0

       WENN Sonnenstunden[zaehler][0] KLEINER PLZ

       Ausgabe Sonnenstunden

       PLZ_gefunden = wahr

Schleifenende


WENN PLZ_gefunden UNGLEICH wahr

       Ausgabe -1


Da ist glaube ich ein Fehler im Quellcode und zwar bei der Schleife die die naechstkleinere PLZ sucht. Da fangt ihr an bei dem ersten Element im Array (die kleinste PLZ im ganzen Array) zu ueberpruefen, ob die eingegebene PLZ kleiner ist. Das wuerde richtig sein, wenn nicht gefordert waere die naechstkleinere auszugeben.

Wir habens in der Schule ausprobiert und mit den zu erwartende Ergebnissen verglichen - hat gepasst. Und im Array mache ich genau das was gefordert ist: Die Nächst kleine PLZ finden, ob man da von vorn oder hinten anfängt ist salopp gesagt Banane, denn ich setze den Wert der nächst kleineren PLZ solange hoch bis ich genau eins unter dem gegebenen PLZ bin dafür steht das "solange <".

Wir habens in der Schule ausprobiert und mit den zu erwartende Ergebnissen verglichen - hat gepasst. Und im Array mache ich genau das was gefordert ist: Die Nächst kleine PLZ finden, ob man da von vorn oder hinten anfängt ist salopp gesagt Banane, denn ich setze den Wert der nächst kleineren PLZ solange hoch bis ich genau eins unter dem gegebenen PLZ bin dafür steht das "solange <".

Sorry, stimmt. Grade nochmal selber probiert.

Er zaehlt solange hoch bis die PLZ im Array die eingegeben PLZ ueberschreitet und nimmt dann den letzten PLZ-Wert.

Abgefahrene aufgabe für magere 10 Pkt meiner Meinung nach...

Wenn ich mir die alten Prüfungen von 2006 anguck waren gerade

die Pseudocode und SQL-Aufgaben ja noch ein Kinderspiel zu den

Aufgaben aus Prüfung Winter 07/08 z.B. :rolleyes:

Was soll dann Sommer 2008 auf uns zukommen ?!

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.