domingo, 19 de octubre de 2014

AWP: Unterricht von 2014-10-17 Grundlagen Datenbanken

Ein Datenbankmodell ist die theoretische Grundlage für eine Datenbank und legt fest, auf welche Art und Weise die Daten in dem Datenbanksystem gespeichert und bearbeitet werden können.
Ein Datenbankmodell von heute kann sehr komplex werden, da immer mehr Informationen in einem Datenbankmodell abgebildet und modelliert werden müssen.

Das hierarchische Datenbankmodell ist das älteste logische Datenbankmodell, es bildet die reale Welt durch eine hierarchische Baumstruktur ab.
Jeder Satz (Record) hat also genau einen Vorgänger, mit Ausnahme genau eines Satzes, nämlich der Wurzel der so entstehenden Baumstruktur. Das hierarchische Modell ist im Bereich der Datenbanksysteme heute weitgehend von anderen Datenbankmodellen abgelöst worden.

Das nächste Datenbankmodell ist das Netzwerk-Modell.
Es fordert keine strenge Hierarchie, d.h. ein Datensatz kann mehrere Vorgänger haben.
Auch können mehrere Datensätze an oberster Stelle stehen. Es existieren meist unterschiedliche Suchwege, um zu einem bestimmten Datensatz zu kommen.



Das relationale Datenbankmodell schaffte in den 1990er einen technischen Durchbruch.
eine relationale Datenbank kann man sich als eine Sammlung von Tabellen (den Relationalen) vorstellen, in welchen Datensätze abgespeichert sind.
Etwa 90% der eingesetzten Datenbanken basieren auf dem relationalen Datenbankmodell.



Mit dem Aufkommen objektorientierter Programmiersprachen werden vermehrt objektrelationale und objektorientierte Datenbanken eingesetzt. Diese Datenmodelle verfolgen den Ansatz, Daten zusammen mit ihren Funktionen in einem Objekt zu Speichern.
Das Datenmodell basiert auf den Paradigmen der objektorientierten Programmierung und im Einzelnen der jeweiligen Programmiersprache, die zum Einsatz kommt (z.B. C++, Java oder C#).
Dieses Vorgehen hat Vorteile gegenüber dem relationalen Entwurf, wenn man komplexe Datenobjekte speichern möchte, die nur schwer auf die flachen relationalen Tabellenstrukturen abgebildet werden können.
Objektdatenbanken haben jedoch noch immer Nachteile gegenüber relationalen Datenbanken bei der Verarbeitung großer Datenmengen. Dies ist beispielweise durch Zugriffspfade zu Objekten über mehrere Pfadarten (bspw. Vererbung und Assoziation) verursacht.

Wenn z.B. im Internet sehr große Datenmengen verarbeitet werden müssen werden auch so gennante NoSQL-Datenbanken eingesetzt. Hier unterscheidet man z.B. Key Value Stores-, Spalten-, Dokumentorientierte- und Graphdatenbanken.

AWP: Unterricht von 2014-10-17 Datenstrukturen und Speicherbelegung

Für fünf Sportler sollen in einem Speerwurf-Wettbewerb die Daten erfasst und ausgewertet werden. Wie sehen Datendefinition und Speicherbelegung aus?

struct T_Wurf {
  char cName[16]; // 16 Byte
  int aiSpeer[3]; // 4 Byte * 3 = 12 Byte
}

T_Wurf Sportler[5];


jueves, 16 de octubre de 2014

VNS Praxis: Unterricht von 2014-10-16 Serverbasiertes Netzwerk

Serverbasiertes Netzwerk im Versicherungsbüro

Nachdem das Netzwerk im Versicerungsbüro "Universal & Sicher" erfolgreich als Peer-to-Peer-Netz gelaufen ist, soll es zu einem Client-Server-Netzwerk umstrukturiert werden. Der steigende administrative Aufwand und neue Mitarbeiter machen diesen Schritt erforderlich.

Um eine einheitliche Betriebsystemplattform zu haben, entscheidet sich die Firmenleitung für das Serverbetriebssystem Windows 8. Da der Kunde mit Ihnen sehr zufrieden war, sollen Sie nun auch die Planung und installation der Client-Server-Umgebung realisieren.

Aufgabe:

In gesprächen mit dem Kunden werden die zufünftigen Aufgaben geklärt.

Beschreiben Sie die Aufgaben und Funktionen, die der Server im Netz übernehmen soll und definieren Sie zu realisierenden Funktionen im Client-Server-Netz.

Grundlage dafür ist die existierende Dokumentation Zum Peer-to-Peer-Netzwerk.

Definieren Sie daraus den neuen Soll-Zustand basierend auf dem bereits vorhandenen.



martes, 14 de octubre de 2014

AWP: Unterricht von 2014-10-13 Würfelspiel

Würfeln war zu allen Zeiten ein beliebtes Spiel. Simulieren Sie mit Holfe eines Programms das 10-malige Werfen eines Würfels durch einen Spieler. Geben Sie das Ergebnis und die Häufigkeitsverteilung der geworfenen Zahlen aus.


  1. Folgende Vorgehensweise kann Ihnen bei der Implementierung helfen:
    1. Legen Sie geeignete Variablen zum Verwalten der gezogenen Zahlen und der ermittelten Häufigkeiten an.
    2. "Würfeln" Sie 10 Zufallszahlen.
    3. Geben Sie die gezogenen Zahlen aus.
    4. Ermitteln Sie die Häufigkeit des keweiligen Auftretens der Augenzahlen von 1 bis 6.
    5. Geben Sie diese Häufigkeiten aus.
    6. Erweitern Sie das Programm derart, dass nicht nur ein Spieler beteiligt ist, sondern mehrere Spieler mitspielen.
  2. Überlegen Sie sich, wie Sie das Programm erweitern müssten, um auch die Namen und die Adressen der Spieler verwalten zu können.

Hinweise:
  • Programmieren Sie so, dass eine Änderung der Spielerzahl und der Wurfzahl pro Spieler möglichst wenig Aufwand bedeutet.
  • Das Layout kann sich an untenstehender Abbildung orientieren. Es ist ein Testfall für 8 Spielern mit je 10 Würfen abgebildet.
  • Für die Generierung der Zufallszahlen können Sie die Funktionen randomize() und rand() einsetzen.




Übungen:

1. Legen Sie eine geeignete Variable zum Verwalten der gezogenen Zahlen an!

int aiValues[10];

2. Würfeln Sie 10 Zufallszahlen!

for ( int k = 0; k < 10; k++) {
  aiValue[k] = rand() % 6 + 1;
}

3. Ermitteln Sie die Häufigkeitsverteilung der gezogenen Zahlen!

int aiTimes[6];

for (int k = 0; k < 10; k++) {
  aiTimes[aiValues[k] - 1] ++;
}

4. Erweitern Sie das Programm, so dass verschiedene Spieler verwaltet werden können!

2014.10.15

5. Die Namen der beteiligten Spieler sollen verwaltbar sein!

der Name ist keine int-Info, also nicht wie bisher im Feld verwaltbar, also brauchen wir eine Datenstruktur die mehrere verschiedene Datentypen verwalten kann

struct StrukturtypName {
  Datentyp StrukturelementName;
  Datentyp StrukturelementName;
};

struct T_Wuerfeln {
  char cName[20];
  int aiZehnMalZufall[10];
};

6. Definieren Sie eine Variable für einen einzelnen Spieler!

T_Wuerfeln Spieler;

7. Lesen Sie den Namen des Spielers ein!

cin >> Spieler.cName;

8. Speichern Sie die gewürfelten Zahlen des Spielers!

for(int i = 0; i < 10; i++) {
  Spieler.aiZehnMalZufall[i] = rand() % 6 +1;
}

9. Zeigen Sie den Namen und die Würfelergebnisse an!

cout << Spieler.cName << ": ";
for(int i = 0; i < 10; i++) {
  cout << Spieler.aiZehnMalZufall[i] << " ";
}

10. Definieren Sie eine Variable für mehrere Spieler (z.B. 8)!

T_Wuerfeln Spieler[8];

11. Lesen Sie die Namen der Spieler ein!

for(int i = 0; i < 8; i++) {
  cin >> Spieler[i].cName;
}

12. Speichern Sie alle gewürfelten Zahlen aller Spieler!

for(int spnr = 0; spnr < 8; spnr++) {
  for(int i = 0; i < 10; i++) {
    Spieler[spnr].aiZehnMalZufall[i] = rand() % 6 + 1;
  }
}

13. Zeigen Sie alle Namen und alle Würfelergebnisse an!

14. Ermitteln Sie die gesamte Häufigkeitsverteilung!

Welche Änderungen sind zue Speicherung der Häufigkeitsverteilung jedes einzelnen Spielers nötig?



Quellcode:

Würfelspiel für 1 Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-13/Wuerfelspiel_1_Spieler_besser.cpp

Würfelspiel für mehrere Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-14/Wuerfelspiel.cpp

Würfelspiel für 1 Spieler mit Name: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_1_Spieler_mit_name.cpp

Würfelspiel für mehrere Spieler mit Namen: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_mit_Name.cpp

Würfelspiel für mehrere Spieler mit Namen und persönliche Häufigkeit: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-16/Wuerfelspiel_mit_Name_und_persoenliche_Haeufigkeiten.cpp

BWP: Unterricht von 2014-10-14 Der Markt. Marktformen

Der Markt
ist der Ort an dem Angebot und Nachfrage zusammentreffen.


Unterscheidungsarten:
  • Nach gehandelten gütern  z.B. Waffenmarkt, Obstmarkt
  • Nach Ort des geschehens  z.B. Online-Shops, einzelhandel
  • Nach der Zeit des Marktes  z.B. Wochenmarkt, Weihnachtsmarkt, öffnungszeiten
  • Nach der Art der Kommunikation  z.B. Fachhandel, Versteigerungen
  • Nach der Anzahl der Teilnehmer  zB. Börse, großhandel 

Marktformen

Der Lebensmittelhändler in einer Großstatd, die Mineralölgesellschaften und die Deutsche Bahn AG haben es mit vollkommenen unterschiedlichen Marktgegebenheiten zu tun. Während sich der Einzelhändler mit einer Konkurrenz auseinandersetzen muss, haben die mineralölgesellschaften und die Bahn nur mit einer eingeschränkten Konkurrenz zu tun.

Auf eigenen Märkten gibt es für bestimmte Güter und dienstleistungen nur einen Anbieter, aber viele Nachfrager. Auch die Bahn AG ist ein Alleinanbieter. Dieses Recht beruht auf einen Gesetz und deshalb braucht die Bahn AG keinen Wettwerber zu fürchten. Sie besitzt auf diesem Gebiet eine Monopolstellung [monos (griechisch) = allein, eins]. Man spricht von einem Angebotsmonopol. Marktbeherrschung gibt es auch auf der Nachfragerseite. Liegt die gesamte Nachfrage nur in einer Hand, so hat man es mit einem Nachfragemonopol zu tun.
Kaum zu finden in der Praxis sind zweiseitige Monopole. Von einem beschränkten Angebots- bzw. Nachfragemonopol spricht man bei nur einem Anbieter bzw. Nachfrager, dem wenige Nachfrager bzw. Anbieter gegenüberstehen.

Die Oligopolitische Konkurrenz zeigt sich in der Regel auf der Angebotsseite. Diese Situation haben wir in der Bundesrepublik z.B. auf dem Mineralölmarkt. Dort bieten wenige Ölgesellschaften vielen Autofahrern Benzin an.
Die Marktform des Nachfrageoligopols liegt vor, wenn z.B. wenige Molkereien bei einer großen Zahl von Landwirten nachfragt.
Das zweiseitige Oligopol [oligos (griechisch) = wenige] findet man z.B. wenn wenige Werften Schiffe für wenigen Reedereien (Schiffsbetreiber) herstellen.
Die vollständige Konkurrenz auch Polypol [polos (griechisch) = viele] genannt sieht man z.B. im Bereich des Einzelhandels, vor allem in größeren Städten.


Fertigen Sie eine Tabelle wie nachstehend an und geben Sie die jeweiligen Fachbegriffe zusammen mit einem Beispiel an den Schnittpunkten an.




Aufgaben zum Thema "Marktformen"

1. Fertigen Sie eine Tabelle mit 3 Spalten an und ergänzen Sie die fehlenden Einträge!

lunes, 13 de octubre de 2014

AWP Unterricht von 2014-10-13 Wiederholung Arrays

Übungen

Füllen Sie das abgebildete, zuvor leere, Feld mit den Inhalten möglichst effektiv!


| 2 | 4 | 6 | 8 | 10 | 12 | 14 |

// Variablendefinition
int aiN[7];

// Feldelemente mit geraden Zahlen beschreiben
for (int k = 0; k < 7; k++) {
  aiN[k] = (k + 1) * 2;
}

Füllen Sie das abgebildete, zuvor leere, Feld mit den Inhalten möglichst effektiv!


|  1  |  3  |  5  |  7  |  9  |
| 11 | 13 | 15 | 17 | 19 |
| 21 | 23 | 25 | 27 | 29 |

// Variablendefinition
int aiN[3][5];

// Feldelemente mit ungeraden Zahlen beschreiben
for (int k = 0; k < 3; k++) {
  for (int j = 0; j < 5; j++) {
    aiN[k][j] = 10*k + 2*J + 1;
  }
}

sábado, 21 de junio de 2014

SK: 6 Tarifvertrag

Tarifverträge sind Ergebnis von Verhandlungen zwischen den Verbänden der Arbeitgeber in den einzelnen Wirtschaftszweigen oder Berufen und den Entsprechenden Gewerkschaften. (Zu diesen Verhandlungen mehr im folgenden Abschnitt).

Tarifautonomie, Tarifpartner

Das Recht, sich in Gewerkschaften zusammenzuschließen, haben sich die Arbeitnehmer vor fast 150 Jahren erkämpft. Sie wollten verhindern, dass die Firmen die einzelnen Arbeiter gegeneinander ausspielen und so den Lohn drücken können. Zumindest in Zeiten der Arbeitslosigkeit findet sich immer jemand; der bereit ist, auch für weniger Geld zu arbeiten.
In der Bundesrepublik besteht Tarifautonomie: Arbeitgeberverbände und Gewerkschaften handeln die Arbeitsbedingungen ohne Eingreifen des Staates aus.
Die von den Tarifpartnern (so der offizielle Name für Arbeitgeberverbände und Gewerkschaften) ausgehandelten Tarife gelten in den beteiligten Unternehmen unabhängig davon, ob sie der einzelne Arbeitnehmer oder Arbeitgeber für gut hält. Sie gelten beinahe wie ein Gesetz. Sie
  • stellen einen Interessenausgleich zwischen Arbeitgeber und arbeitnehmer her,
  • sichern den Arbeitsfrieden im Betrieb und
  • sind eine verlässliche Basis für Arbeitsverträge.

Tarifvertrag = Kompromiss

Gewerkschaften fordern z.B.
  • kürzere Arbeitszeit
  • Lohnerhohungen
  • Sonderzahlungen für Beschäftigte in den unteren Tarifgruppen
  • Zuschüsse der Arbeitgeber zur Privaten Altersvorsorge

Arbeitgeberverbände fordern z.B.:
  • längere Arbeitszeit bei gleichem Lohn
  • Verzicht auf Überstundenzuschläge
  • flexiblere Arbeitszeitregelungen
  • Öffnungsklauseln

Manteltarifvertraf

Regelt Arbeitsbedingungen, Arbeitszeit, Überstunden, Urlaub, Kündigung usw.
Meist 3-5 Jahre gültig.

Lohn- und Gehaltstarifvertrag

Regelt Höhe von Lohn (bzw. Gehalt) für die einzelnen Lohngruppen.
Meist 1-2 Jahre gültig.
Hier oder im Lohnrahmentarifvertrag wird auch die Zuordnung der Tätigkeiten zu den Lohngruppen geregelt.

Risiken von Streik und Aussperrung

Die Gewerkschaft will mit dem Streik den Betrieben nicht dauerhaft schaden, denn Arbeit gibt es nur, wenn die Arbeitsplätze Bestand haben. Dies ist ein Grund für gewerkschaftliche Taktik der Schwerpunktstreiks: Bestreikt werden nur bestimmte, wirtschaftlich gesunde Firmen.
Für einen langen, flächendeckenden Streik reicht zudem die Streikkasse nicht. Die Gewerkschaft muss sich darum überlegen, ob sie einen Streik durchsteht oder ob sie sich lieber mit den Arbeitgebern ohne Streik einigt. Die Arbeitgeber wiederum können sich mit einer Aussperrung selbst schaden, weil ihnen Geschäfte und damit Erlöse entgehen.
Beide Seiten sehen diese Risiken. Darum sind lange Streiks in Deutschland die Ausnahme. Ohnehin sind sie nur in den Branchen möglich, in denen viele Arbeitnehmer gewerkschaftlich organisiert sind.