Striewe Geschrieben 9. November 2016 Teilen Geschrieben 9. November 2016 Hallo, Java hat mir nie gut gelegen und ich habe mich aufrichtig die letzten 2 Jahre damit abgemüht. Nun stehe ich kurz vor der Prüfung (Fisi)und werde so mit Java nicht weiter kommen. Ich habe hier nun vom Pseudocode gelesen.Ich habe mal den Teil der Prüfung in den Anhang gepackt und meinen (wahrscheinlich noch grausigen Code) dann abschließend hier in das Posting. Wie wird denn Pseudocode gewertet (BaWü)? Vielleicht weiß dies ja jemand. Ich meine wenn möglich mache ich ein Struktogramm aus der Aufgabe. Aber manchmal geht das ja nicht. Also nicht lachen und ich würd mich über Tipps echt freuen. Gruss Striewe Zitat public class Pseudo { String sVergleich_IP; char cZeichen; int iIPAnzahl; int i; if (iAnzahlITZ = 0){ for (Wiederhole iZeile =0; mach das so lange bis du die Arraylaenge erreicht hast; erhöhe Schrittweise um +1) } if cZeichen = Textzeilen an x Position { for (Wenn cZeichen | dann erhöhe die Anzahl um 1); } //Ganze IP einlesen if (ist iAnzahl = 4 dann erhöhe nicht){ for (wiederhole i = 0 solange bis i 15 ist; erhoehe dann Schrittweire + 1) } if (iPosition = iPosition +1) { for (cZeichen = sTextzeilen) } if (ist sSuch_IP = sVergleich_IP) { for (wenn ja dann iIPAnzahl + 1 erhoehen;) } return iIPAnzahl; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
afo Geschrieben 9. November 2016 Teilen Geschrieben 9. November 2016 In Baden-Württemberg sind die Aufgaben für gewöhnlich in einer in der Berufsscjule eingeführten Programmiersprache zu bearbeiten. Ich gehe nicht davon aus, dass Pseudocode gewertet wird. Vielleicht gibt es einen Gnadenpunkt. Aber du hast ja zum Programmieren eine IDE (Oder einen Code-Editor) zur Verfügung. Also sollte es möglich sein zumindest eine halbwegs brauchbare Lösung abzuliefern, weil du doch nicht auswendig an jedes Syntaxdetail erinnern musst. Und so viel machen die Programmieraufgaben bei FISIs meistens nicht aus... Thanks-and-Goodbye reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 9. November 2016 Teilen Geschrieben 9. November 2016 Ist das untere Bild die Lösung? Wenn ja, denn ist die Lösung äußerst schlecht. Die Namen der Variablen ist schlecht gewählt und auch sonst arbeitet man heutzutage kaum noch mit for-Schleifen. Man verwendet heute überwiegend die foreach-Schleife, da diese Schleife uns direkt das Objekt gibt, das wir als nächstes betrachten wollen. Man muss also nicht per Indexierung das jeweilige Objekt aus einer Liste/Array rausholen. Es überrascht mich auch, dass heutzutage noch so viel Wert auf Pseudocode und Struktogramme gelegt wird. In der Praxis wird man kaum bis gar nicht damit in Berührung kommen. Zumindest nicht auf der Ebene der Programmierung. Zum eigentlichen Problem: Dein Code stellt nicht das Struktogramm dar. Beispiel: if (iAnzahlITZ = 0){ for (Wiederhole iZeile =0; mach das so lange bis du die Arraylaenge erreicht hast; erhöhe Schrittweise um +1) } wenn iAnzahlITZ gleich 0 ist, durchläufst du einfach nur alle Zeilen aber du machst dort nichts. Das Durchlaufen der Zeilen soll aber auch immer stattfinden und nicht, wenn iAnzahlITZ 0 ist. Auch hast du keine Methode definiert. Du hast also wohl nicht nur Probleme Java-Code zu schreiben, sondern auch Probleme Struktogramme zu lesen. Ich habe mal den Code der ersten beiden for-Schleifen geschrieben. Vielleicht fällt dir dein Fehler selbst auf: public class Pseudo { private string sVergleich_IP = ""; private char cZeichen; private int iIPAnzahl = 0; private int iAnzahlITZ; public int AnzahlIPs(string sSuch_IP, string[] sTextTeilen) { // Wiederhole von iZeile = 0; solange iZeile < Arraylänge von sTextTeilen; Schrittweise 1 for (int iZeile = 0; iZeile < sTextTeilen.length(); iZeile++) { iAnzahlITZ = 0; // Wiederhole von iPosition = 0; solange iPosition < Arraylänge von sTextTeilen[iZeile]; Schrittweise 1 for (int iPosition = 0; iPosition < sTextTeilen[iZeile].length(); iPosition++) { ... } } } } Wie du vielleicht erkennen kannst, sind die for-Schleifen ineinander verschachtelt. Du hast sie aber nur untereinander geschrieben aber wie gesagt, das Struktogramm aber echt grausam. So sollte man echt keinen Code schreiben. Ich komme zwar aus Schleswig-Holstein, aber ich denke auch nicht, dass Pseudocode anerkannt wird, wenn es nicht explizit erfordert wird. Ich hab zwar damals nur eine Ausbildung zum Mechatroniker gemacht aber selbst da haben wir SPS-Programmierung gemacht und die Aufgaben sollten in der Sprache erledigt werden, wie @afo schon sagt, die wir in der Berufsschule gelernt haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chiyoko Geschrieben 9. November 2016 Teilen Geschrieben 9. November 2016 (bearbeitet) Hallo Striewe, Pseudocode ist immer so eine Sache. Ich persönlich vermeide ihn (bei IHK-Aufgaben) so weit es geht. Hintergrund ist, dass die IHK (bzw verschiedene prüfer) sehr unterschiedliche Anforderungen an Pseudocode haben. Daher sind meine Anmerkungen nur meine _persönliche_ Einschätzung: Zitat public class Pseudo würde ich komplett weg lassen. Das ist spezifisch an eine (oder mehrere) programmiersprachen gebunden. Dadurch verlierst du das "allgemein gültige", da du dich auf eine objektorientierte Sprache versteifst. Das Struktogramm sieht zusätzlich so aus, als müsstest du eine Methode beschreiben (da Übergabe und Rückgabeparameter definiert sind), hier würde eher public int IP_Zaehler(String sSuch_IP, String[ ] sTextzeilen) passen. Zitat if (iAnzahlITZ = 0){ for (Wiederhole iZeile =0; mach das so lange bis du die Arraylaenge erreicht hast; erhöhe Schrittweise um +1) } hier drehst du die Angabe aus dem Struktogramm um (also die If und die Schleife). Außerdem sagst du "solange bis X zutrifft", Schleifen gehen aber üblicherweise nach dem Prinzip "solange wie X zutrifft". Zitat for (Wenn cZeichen | dann erhöhe die Anzahl um 1); Diese Schleife macht gar nichts. sie hat keinen Schleifenrumpf Die "Dann-Anweisung" ist praktisch der Rumpf, das sollte man aber in den geschweiften Klammern schreiben, und nicht in das Statement. Ähnlich hier: vor 1 Stunde schrieb Striewe: if (ist iAnzahl = 4 dann erhöhe nicht){ vor 1 Stunde schrieb Striewe: if cZeichen = Textzeilen an x Position { hier fehlen die Klammern um die Bedingung (kann man weglassen, stichwort ist hier aber: Wenn dann im gesamten Pseudocode gleich behandeln. Manchmal fehlen zudem die geschweiften Klammern. z.B. hier: vor 1 Stunde schrieb Striewe: for (Wenn cZeichen | dann erhöhe die Anzahl um 1); Und wo siehst du diese Schleife überhaupt? Im Struktogramm sehe ich nichts davon. vor 1 Stunde schrieb Striewe: if (iPosition = iPosition +1) { for (cZeichen = sTextzeilen) vor 1 Stunde schrieb Striewe: if (ist sSuch_IP = sVergleich_IP) { for (wenn ja dann iIPAnzahl + 1 erhoehen;) } Ich bin mir nicht sicher, ob du weisst, was if und was for genau bedeuten. Weder von der if, noch von der for sehe ich irgendwas im Struktogramm. Zitat if (ist iAnzahl = 4 dann erhöhe nicht){ Der Rumpf dieser Abfrage ist zu klein. alles folgende ist laut Struktogramm im true-Block. vor 1 Stunde schrieb Striewe: return iIPAnzahl; Eine Klasse returned nichts --> Folgefehler, da du keine Methode definiert hast. Generell holpert es noch sehr. Eventuell hilft es dir das struktogramm und einzelne Blöcke daraus farblich zu markieren, um kleinere Teilprobleme zu erhalten. (Die dann natürlich leichter zu lösen sind) Bearbeitet 9. November 2016 von Chiyoko Typos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Striewe Geschrieben 10. November 2016 Autor Teilen Geschrieben 10. November 2016 Hallo, recht herzlichen Dank für eure Hilfe und Einschätzung! Ich habe die letzten 2 Tage intensiv geübt und es geht vorwärts! Gruss Striewe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thanks-and-Goodbye Geschrieben 10. November 2016 Teilen Geschrieben 10. November 2016 Am 9.11.2016 um 11:52 schrieb afo: In Baden-Württemberg sind die Aufgaben für gewöhnlich in einer in der Berufsscjule eingeführten Programmiersprache zu bearbeiten. Ist meines Wissens genau so. @Striewe Konzentriere dich auf eine "echte" Programmiersprache. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Striewe Geschrieben 11. November 2016 Autor Teilen Geschrieben 11. November 2016 Hallo Chief, ja ist wohl auch so. Ich denke Java wird zwar nicht meine "Glanznote" aber es wird reichen. Ein wenig wird es auch auf die Aufgabe ankommen. Manche Struktogramme in den Prüfungen sind eine echte Zumutung..... Danke! Gruß Striewe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fauch Geschrieben 12. November 2016 Teilen Geschrieben 12. November 2016 Nicht gerade eine Antwort auf deine Frage aber... Mein Tipp: Lass die Programmieraufgabe weg. Es gab schon recht einfache Aufgaben, aber meist sind die so bescheiden gestellt, dass man die Hälfte der Bearbeitungszeit damit verbringt, festzustellen, was der Aufgabenersteller eigentlich möchte. Zudem möchte ich behaupten, dass die Fehlerquote der IHK bei den Programmieraufgaben wesentlich höher ist, als bei den anderen. Die anderen Klassiker (SQL, Netzwerkplan, Projektplanung, etc.) sind meist wesentlich schneller erledigt und weniger fehleranfällig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.