100% fanden dieses Dokument nützlich (1 Abstimmung)
4K Ansichten10 Seiten

Fiae Ap2-2 Winter 2023

Abschlussprüfung Winter 2023/24 Fachinformatiker/Fachinformatikerin Anwendungsentwicklung

Hochgeladen von

Xairooo
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
100% fanden dieses Dokument nützlich (1 Abstimmung)
4K Ansichten10 Seiten

Fiae Ap2-2 Winter 2023

Abschlussprüfung Winter 2023/24 Fachinformatiker/Fachinformatikerin Anwendungsentwicklung

Hochgeladen von

Xairooo
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
Sie sind auf Seite 1/ 10

Diese Kopfleiste bitte unbedingt ausfüllen!

Familienname, Vorname (bitte durch eine Leerspalte trennen)

Bereich Berufsnummer IHK-Nummer Prüflingsnummer


IHK
6 7 Termin: Mittwoch, 29. November 2023
Sp. 1-2 "1 Sp. 3-6
2 0 1M
Sp. 7-9 Sp. 10-14

Abschlussprüfung Winter 2023/24


1201

2
Entwicklung Fachinformatiker
und Umsetzung
von Algorithmen Fachinformatikerin
Anwendungsentwicklung

Teil 2 der Abschlussprüfung Bearbeitungshinweise


1. Bevor Sie mit der Bearbeitung der Aufgaben beginnen, überprüfen Sie bitte
4 Aufgaben die Vollständigkeit dieses Aufgabensatzes. Die Anzahl der zu bearbeitenden
mit Belegsatz Aufgaben ist auf dem Deckblatt links angegeben. Wenden Sie sich bei Unstim¬
migkeiten sofort an die Aufsicht, weil Reklamationen am Ende der Prüfung
90 Minuten Prüfungszeit nicht anerkannt werden können.
2. Füllen Sie zuerst die Kopfzeile aus. Tragen Sie Ihren Familiennamen, Ihren
100 Punkte Vornamen und Ihre Prüflings-Nr. in die oben stehenden Felder ein.
3. Lesen Sie bitte den Text der Aufgaben ganz durch, bevor Sie mit der Bear¬
beitung beginnen.
4. Halten Sie sich bei der Bearbeitung der Aufgaben genau an die Vorgaben
der Aufgabenstellung zum Umfang der Lösung. Wenn z. B. vier Angaben
gefordert werden und Sie sechs Angaben anführen, werden nur die ersten vier
Angaben bewertet.
5. Tragen Sie die frei zu formulierenden Antworten dieser offenen Aufgaben
in die dafür It. Aufgabenstellung vorgesehenen Bereiche (Lösungszeilen, For¬
mulare, Tabellen u. a.) des Arbeitsbogens ein.
6. Sofern nicht ausdrücklich ein Brief oder eine Formulierung in ganzen Sätzen
gefordert werden, ist eine stichwortartige Beantwortung zulässig.
7. Schreiben Sie deutlich und gut lesbar. Ein nicht eindeutig zuzuordnendes oder
unleserliches Ergebnis wird als falsch gewertet.
8. Zur Lösung der Rechenaufgaben darf ein nicht programmierter, netzunab¬
hängiger Taschenrechner ohne Kommunikationsmöglichkeit mit Dritten
verwendet werden.
9. Wenn Sie ein gerundetes Ergebnis eintragen und damit weiterrechnen müssen,
rechnen Sie (auch im Taschenrechner) nur mit diesem gerundeten Ergebnis weiter.
10. Für Hilfsaufzeichnungen können Sie das in der Tasche beigelegte Konzept¬
papier verwenden. Bewertet werden jedoch grundsätzlich nur Ihre Eintragungen
in diesem Aufgabensatz.

Wird vom Korrektor ausgefüllt!


Bewertung
Für die Bewertung gilt die Vorgabe der Punkte in den Lösungshinweisen.

I.Aufg. Punkte 2.Aufg. Punkte 3.Aufg. Punkte 4.Aufg. Punkte


15 16 17 18 19 20 21 22

Prüfungszeit
23 Prüfungsort, Datum
Die entsprechende Ziffer (1,2 oder 3)
finden Sie in der Abfrage nach der
Gesamtpunktzahl
Prüfungszeit im Anschluss an die letzte 24 25 26
Aufgabe. Unterschrift

Gemeinsame Prüfungsaufgaben der Industrie- und Handelskammern. Dieser Aufgabensatz wurde von einem überregionalen Ausschuss, der entsprechend
§ 40 Berufsbildungsgesetz zusammengesetzt ist, beschlossen. Hinweis: Im Interesse einer besseren Lesbarkeit wird in der Aufgabenstellung und in den
Angaben zur Aufgabenstellung nur die männliche Form (generisches Maskulinum) verwendet. Die verkürzte Sprachform beinhaltet keine Wertung und die
gewählten männlichen Formulierungen gelten uneingeschränkt auch für die weiteren Geschlechter.
Die Vervielfältigung, Verbreitung und öffentliche Wiedergabe der Prüfungsaufgaben und Lösungen ist nicht gestattet. Zuwiderhandlungen werden zivil- und
strafrechtlich (§§ 97 ff., 106 ff. UrhG) verfolgt. - © ZPA Nord-West 2023 - Alle Rechte vorbehalten!
Die Aufgaben 1 bis 4 beziehen sich auf die folgende Ausgangssituation: Korrekturrand

Die AMAG Soft GmbH hat sich auf Software-Entwicklung im gesamten Umfeld vom Anbau bis zum Vertrieb von Weinprodukten
spezialisiert.
Über lokale Messstellen im Weinberg und autonome Drohnen können Daten, wie zum Beispiel Niederschläge, Temperatur und
Blattfärbungen ermittelt werden.

1. Aufgabe (25 Punkte)


Um auf die Güte des Weins schließen zu können, soll eine App entwickelt werden, die anhand von Messungen an den Trauben vor
der Weinlese über die Güte Auskunft geben kann.
Nach dem Aufruf der App kann der zuvor gemessene Säuregehalt der Trauben eingegeben werden (Methode einlesenSaeurege-
halt() der Klasse GUI).
Ist der Säuregehalt zu hoch, werden keine weiteren Messungen mehr vorgenommen.
Es erfolgt die Ausgabe „Säuregehalt zu hoch" (Methode ausgabe("...") der Klasse GUI).
Wenn der Säuregehalt nicht zu hoch ist, wird der Oechslegrad eingegeben (einlesenOechslegradf) der Klasse GUI).
Anschließend erfolgt die Berechnung des Reifegrads durch die Methode berechneReifegrad(oechslegrad) der Klasse Ernterechner.
Falls der Reifegrad größer oder gleich 100 ist, erfolgt die Ausgabe „hoher Reifegrad".
Falls der Reifegrad größer oder gleich 80 (und kleiner als 100) ist, erfolgt die Ausgabe „mittlerer Reifegrad".
Falls der Reifegrad größer oder gleich 70 (und kleiner als 80) ist, erfolgt die Ausgabe „niedriger Reifegrad".
Erstellen Sie auf der Folgeseite für den beschriebenen Sachverhalt ein Sequenzdiagramm.

ZPA FIA II 2
sd Weinernte)
Korrekturrand

:Ernterechner

I
I
I
startseiteQ *

ZPA FlA II 3
2. Aufgabe (25 Punkte) Korrekturrand
Für den Flug der Drohnen soll die Reihenfolge bestimmt werden, in der vorgegebene Geopositionen angeflogen werden.
Ausgehend von der aktuellen Position soll immer die Position als nächstes angeflogen werden, die der aktuellen Position am
nächsten liegt.
Die anzufliegenden Positionen liegen in einem eindimensionalen Array geoPositions als Objekte der Klasse GeoPos vor.
GeoPos
- latitude: double
- longitude: double
- altitude: double

Zu jedem Attribut sind öffentliche Zugriffsmethoden (set/get) vorhanden.


Für Entfernungsberechnungen zwischen Geopositionen kann die Methode getDistance der Klasse GeoCalculator verwendet
werden:
GeoCalculator

+ getDistance(pos1: GeoPos, pos2: GeoPos ): double { static }

Der Algorithmus für den Drohnenflug soll sein Ergebnis in einem Array flightPositions speichern und zurückgeben. Die Arbeitsweise
des Algorithmus calculateFlightß wird wie folgt beschrieben:
- Das Array geoPositions kann durch den Algorithmus verändert werden.
- Die Geoposition mit dem Index 0 des Arrays geoPositions wird zur ersten aktuellen Position. Diese Position wird im Array
flightPositions gespeichert (Startposition!) und kann dann aus dem Array der noch anzufliegenden Positionen (geoPositions')
gelöscht werden. Hinweis: bereits implementiert, siehe Vorgabe.
- Solange noch Geopositionen im Array geoPositions vorhanden sind:
Ermitteln der Position im Array geoPositions mit der kürzesten Entfernung zur aktuellen Position.
Diese Position wird im Array flightPositions gespeichert und zur neuen aktuellen Position.
Diese Position kann dann aus dem Array geoPositions gelöscht werden.
Hinweis: Der größte Doublewert kann mit Double./WAXJZWE abgerufen werden.
Vervollständigen Sie dahingehend den Pseudocode auf der gegenüberliegenden Seite.

ZPA FIA II 4
calculateFlight(geoPositions: GeoPos[] ) : GeoPos[] Korrekturrand
flight_positions = new GeoPos[geoPositions length] II Array der angeflogenen
II Positionen
flightpositions[0] = geoPositions[0] II Position 0 als Startposition
currentPos = geoPositions[0]
geoPositions.remove(0) II aus dem Array der noch
// anzufliegenden Positionen
II entfernen

ZPA FIA II 5
3. Aufgabe (25 Punkte) Korrekturrand
a) Für den Weinberg sollen die Messstellen sowie die Messgeräte und deren Messdaten in einer relationalen Datenbank verwaltet
werden. Als Grundlage zur Entwicklung des relationalen Datenmodells liegen nachfolgende Angaben vor:
Die Messstellen sind an verschiedenen Stellen auf dem Weinberg verteilt. Die Position einer Messstelle wird genau durch ihre
Geokoordinaten (Längen- und Breitengrad sowie die Höhe) beschrieben. Jede Messstelle liefert Messwerte von verschiedenen
Messgrößen wie z. B. Messgröße = Temperatur, Messwert = 22, Einheit = °C. Für die einzelnen Messwerte sollen weiterhin
auch noch der Zeitpunkt der Messung (Datum, Uhrzeit) und die Messstelle erfasst werden.
An jeder Messstelle können mehrere Messgeräte eingesetzt werden, welche die Messwerte erfassen und weiterleiten. Dabei ist
nur relevant, welches Messgerät aktuell an welcher Messstelle eingesetzt wird. Historische Daten spielen keine Rolle. Für jedes
Messgerät sollen folgende Angaben erfasst werden: Bezeichnung, Herstellungsdatum, Hersteller, Anschaffungsdatum und das
Datum der letzten Überprüfung.
Erstellen Sie aus diesen Angaben für die Messwerterfassung ein relationales Datenmodell in der dritten Normalform. Geben Sie
Kardinalitäten an und kennzeichnen Sie die Primärschlüssel mit PK und die Fremdschlüssel mit FK.
18 Punkte

ZPA FIA II 6
b) Weiterhin sollen Bilder der autonomen Drohnen für die weitere Verarbeitung und Auswertung z. B. durch eine Kl unkomprimiert Korrekturrand
in einem „Raw"-Format gespeichert werden. Die Drohnen fliegen einmal pro Woche über den Weinberg und machen pro Flug
jeweils 200 Bilder. Die Kamera liefert Bilder mit 20 Megapixeln. Die Farben pro Pixel werden im RGB-Format abgespeichert,
wobei pro Farbkanal 8 Bit verwendet werden.
Berechnen Sie den benötigten Speicherbedarf in GiB, welcher für die Bilder innerhalb eines Jahres (52 Wochen) anfällt. Runden
Sie auf ganze GiB. Der Rechenweg ist anzugeben. 7 Punkte

1
ZPA FIA II 7
4. Aufgabe (25 Punkte) Korrekturrand
Für die Kundenverwaltung und die Warenwirtschaft sind folgende Tabellen vorhanden.
Tabelle: Kunde
KdJdKey Kd_Firma Kd_Strasse Kd_PLZ Kd_Ort Kd_Nummer
1 LikeLimo Musterstr. 12 50778 Köln 012204
2 Gasthaus 'Die Perle' Perlenstr. 22 50778 Köln 012201
3 Traberstübchen Traberweg 1 50889 Köln 012205

Tabelle: Artikel
Art_ldKey Art_Nummer Art_Bezeichnung Art_Preis Art_VkEinheit Art_MwStSatz Art_Jahrgang Art_WAIdKey
8 GB-12555 Grauburgunder 15.20 Flasche 19.00 2005 1
9 GB-12556 Grauburgunder 13.10 Flasche 19.00 2006 1
10 GB-12558 Grauburgunder 11.25 Flasche 19.00 2008 1
11 WH-23 Weißherbst 16.40 Flasche 19.00 2004 1

Tabelle: WeinArt
WAJdKey WA_Weinart
1 Weißwein
2 Rotwein
3 Rosewein
4 Schaumwein

Tabelle: Rechnung
Rg_ldKey Rg_KdldKey Rg_Nummer Rg_Datum Rg_ZahlFristTage
2223 2 RG-002249 2023-05-02 14
2224 3 RG-002250 2023-05-02 14
2225 3 RG-002251 2023-05-04 14
2226 1 RG-002252 2023-05-05 7

Tabelle: Rechnungposition
RgPosJdKey RgPos_RgldKey RgPos_ArtldKey RgPos_Nr RgPos_Mg RgPos_EinzelPreis RgPos_RabattProzent RpPos_MwStSatz

555434 2223 14 1 4 13.80 0.00 19.00


555435 2223 19 2 12 17.20 0.00 19.00
555436 2223 10 3 6 11.25 5.00 19.00
555437 2223 11 4 12 16.40 5.00 19.00
555438 2224 14 1 8 13.80 0.00 19.00
555439 2225 10 1 6 11.25 0.00 19.00
555450 2225 11 2 6 16.40 0.00 19.00
555451 2225 12 3 12 15.40 8.00 19.00
555452 2225 13 4 6 16.40 0.00 19.00
555453 2226 19 1 6 17.20 0.00 19.00

a) Sie sollen eine Kundenliste erstellen, in der alle Kunden ausgegeben werden, welche aus dem PLZ-Gebiet 50800 - 51999
ansässig sind.
Erstellen Sie dazu eine SQL-Anweisung, welche eine Ergebnistabelle entsprechend dem folgenden Beispiel ausgibt. 4 Punkte

Kd IdKey Kd Firma Kd Strasse Kd PLZ Kd Ort Kd Nummer


3 Traberstübchen Traberweg 1 50889 Köln 012205
6 Rheinkneipe Am Rhein 2 50888 Köln 014333

ZPA FIA II 8
b) Sie möchten eine Auflistung mit dem niedrigsten und dem höchsten Artikelpreis sowie die Anzahl der Weine pro Jahrgang Korrekturrand
sortiert nach Jahrgang absteigend.
Erstellen Sie dazu eine SQL-Anweisung, welche eine Ergebnistabelle entsprechend dem folgenden Beispiel ausgibt. 5 Punkte

Jahrgang NiedrigsterPreis HöchsterPreis Anzahl der Weine je Jahrgang


2008 11.25 13.80 2
2007 14.00 14.00 1

c) Fälschlicherweise wurden für Rotweine bei allen Kunden anstelle von 12 % Rabatt 0 % Rabatt berechnet.
Erstellen Sie eine SQL-Anweisung, mit der Sie für alle Rotweine, die im Zeitraum Mai 2023 berechnet wurden, den Rabatt von
0 % auf 1 2 % ändern. 8 Punkte

Fortsetzung 4. Aufgabe -*

ZPA FIA II 9
Fortsetzung 4. Aufgabe Korrekturrand
d) Erstellen Sie eine SQL-Anweisung mit der Sie den berechneten durchschnittlichen Umsatz je Kunde unabhängig der gewährten
Rabatte erhalten. 8 Punkte
Beispiel-Ergebnistabelle:
Kd IdKey Kd Firma Kd Strasse Kd_PLZ Kd_Ort Kd_Nummer Umsatz
1 LikeLimo Musterstr. 12 50778 Köln 012204 149.520000
2 Gasthaus 'Die Perle Perlenstr. 22 50778 Köln 012201 128.171250
999 Gasthaus zum Fass Fassstraße 3 99900 Fasshausen 012203 0

PRÜFUNGSZEIT - NICHT BESTANDTEIL DER PRÜFUNG!


Wie beurteilen Sie nach der Bearbeitung der Aufgaben die zur Verfügung stehende Prüfungszeit?
13 Sie hätte kürzer sein können.
3 Sie war angemessen,
[3 Sie hätte länger sein müssen.

ZPA FIA II 10

Common questions

Auf Basis von KI

Die Strategie zur Bestimmung der Flugrouten der Drohnen basiert darauf, die nächstgelegene Position von der aktuellen Position innerhalb der Geopositionen zu wählen. Hierzu wird ein Array geoPositions bereitgestellt, welches die Geopositionen enthält. Die erste Position im Array wird als Startposition genutzt und in flightPositions gespeichert. Danach wird die geoposition ermittelt, die in der kürzesten Distanz zur aktuellen Position liegt, und zur neuen aktuellen Position erklärt. Diese wird in flightPositions gespeichert und aus geoPositions gelöscht. Dieser Vorgang wird wiederholt, bis alle Positionen ermittelt und besucht wurden .

To retrieve a customer list based on a specific postal code range, an SQL query can use a WHERE clause to filter records within that range. An example query: 'SELECT * FROM Kunde WHERE Kd_PLZ BETWEEN '50800' AND '51999'' would extract customers whose postal codes fall within this range, providing a list that adheres to specified criteria, including relevant fields like Kd_Firma, Kd_Strasse, and Kd_Ort .

The proposed algorithm for determining the flight path of autonomous drones in a vineyard involves sequentially visiting the nearest next position from the current location. The algorithm starts with the first position in an array, geoPositions, as the current position, which is then moved to a new array, flightPositions, that records the flight path. This initial position is removed from geoPositions. The algorithm then repeatedly identifies the closest position to the current one, adds it to flightPositions, and updates the current position, removing each visited position from geoPositions. This continues until all positions have been visited and recorded in flightPositions .

A SQL query to update incorrect discounts applied to red wine sales in May 2023 should change the discount from 0% to 12% for all relevant transactions. The query needs to filter records where Rotwein (red wine) was sold in that specific month. An example query could be: 'UPDATE Rechnungposition SET RgPos_RabattProzent = 12 WHERE RpPos_MwStSatz = 0 AND RgPos_RgldKey IN (SELECT Rg_ldKey FROM Rechnung WHERE Rg_Datum BETWEEN '2023-05-01' AND '2023-05-31').

In relationalen Datenmodellen wird besonderer Fokus auf die Trennung und Verknüpfung von Datenentitäten gelegt, was in ersten Systemmodellen wie hier für Messgeräte und -daten wichtig ist, um Redundanz und Anomalien zu vermeiden. Es gibt spezifische Entitäten für die Messstelle und Messgeräte, die unabhängig verwaltet aber sinnvoll verknüpft sind, was Flexibilität in Anpassungen, hohe Datenintegrität und optimale Nutzung bei Abfragen ermöglicht. Im Gegensatz zu unorganisierten Datenbanken bieten relationale Modelle besser strukturierte Datenmanagement- und Abfragemöglichkeiten durch Schlüsselrelationen, was besonders für dynamisch komplexe Einsatzfelder wie autonome Messsysteme essenziell ist .

Das unkomprimierte Raw-Format ist ideal, um eine hohe Qualität der Bilddaten für eine nachfolgende KI-Auswertung zu bewahren, da es alle Bildinformationen ohne Verluste beinhaltet. Bei einer Kamera, die Bilder mit 20 Megapixeln liefert, und einer Farbverarbeitung mit 8 Bit pro Kanal im RGB-Format, ergibt sich ein erheblicher Speicherbedarf, wie zuvor berechnet, in GiB für solche operationellen Bilder über das Jahr. Trotz des großen Speicherbedarfs ist es für präzise KI-Analysen erforderlich, besonders wenn Farbdetails und Bildqualität eine große Rolle spielen .

The quality of wine is assessed using an app developed by AMAG Soft GmbH that allows users to input measurements taken from grapes before harvest. The app first requires the user to enter the acidity level of the grapes through the function einlesenSaeuregehalt() of the GUI class. If the acidity level is too high, no further measurements are taken, and the message 'Säuregehalt zu hoch' is displayed using the ausgabe() method. If the acidity level is acceptable, the user then inputs the Oechsle degree using the einlesenOechslegrad() function. The ripeness degree is then calculated by the berechneReifegrad() method of the Ernterechner class. Based on the calculated ripeness, the app outputs either 'hoher Reifegrad' for degrees of 100 and above, 'mittlerer Reifegrad' for degrees between 80 and 99, or 'niedriger Reifegrad' for degrees between 70 and 79 .

The 'calculateFlight' algorithm optimizes drone navigation by maintaining a list of unvisited geographical positions and iteratively selecting the nearest available position to visit next. Initially, the algorithm's current position is set to the initial position in the geoPositions array, which is added to the flightPositions array to record the start of the flight path. This position is then removed from geoPositions. The loop continues to select the nearest unvisited position, adds it to flightPositions, and removes it from geoPositions, updating the current position each time, until all positions have been visited and logged .

To develop a sequence diagram for wine quality assessment using the app, start by identifying key interactions between components such as the GUI and Ernterechner classes. Detail the input methods, like einlesenSaeuregehalt() and einlesenOechslegrad(), followed by the decision point for checking acidity. Next, illustrate the call to berechneReifegrad() for calculating ripeness. Display conditional message outputs like 'Säuregehalt zu hoch' or corresponding ripeness level messages. Ensure that object interactions and message passing align with the logical flow of checking wine quality .

Um fehlerhafte Rabatt-Speicherungen in einer Datenbank zu korrigieren, können SQL-Befehle eingesetzt werden. Beispielsweise durch ein UPDATE-Statement, das die relevanten Einträge selektiert und korrigiert. In diesem Fall soll der Rabatt von 0 % für alle Rotweine, die im Mai 2023 verkauft wurden, auf 12 % gesetzt werden. Die SQL-Anweisung hierzu könnte lauten: UPDATE Rechnungposition SET RgPos_RabattProzent = 12 WHERE RpPos_MwStSatz = 19.00 AND Zeitraum = Mai 2023 AND Weinart = 'Rotwein'. Diese Methode sorgt dafür, dass alle fehlerhaften Einträge in der Datenbank systematisch und präzise aktualisiert werden .

Das könnte Ihnen auch gefallen