jueves, 23 de octubre de 2014

AWP: Unterricht von 2014-10-20 Strukturen, Koordinaten-Umrechnung

Ein geometrischer Punkt in der Ebene lässt sich durch unterschiedliche Koordinatenangaben festlegen bzw. bestimmen. Mithilfe eines C++-Programms soll eine Umrechnung zwischen kartesischen und polaren Koordinaten ermöglicht werden.

Die folgende Grafik veranschaulicht den Zusammenhanf zwischen beiden Koordinatenangaben:



Ein Punkt kann entweder mit seinen Koordinaten x und y angegeben werden (kartesische Koordinaten) oder durch den Abstand zum Ursprung (= Radius) und seinen Winkel zwischen Radius und x-Koordinate (polare Koordinaten).

Für die Umrechnung gelten folgende Formeln:

Polar -> Kartesisch
x = Radius * cos(Alpha)
y = Radius * sin(Alpha)


Kartesisch -> Polar
Radius = sqrt(x*x + y*y)
Alpha = atan(y / x)

Will man im Gradmaß arbeiten, so kann man die Winkel einfach umrechnen:
Bogenmaß = Gradmaß * Pi / 180
Gradmaß = Bogenmaß * 180 / Pi

Die matematische Konstante Pi (3.14...) ist in der Headerdatei vordefiniert unter dem Namen M_Pi.



Aufgabe:
Schreiben Sie ein C++-Programm, das dem Benutzer zunächst eine Auswahlmaske folgender Form anbietet:



Berechnungen sollen wiederholt durchführbar sein solange, bis der Anwender 0 eingibt. Wenn eine ungültige Zahl (z.B. 4) ausgewählt wird, soll der Benutzer darauf hingewiesen werden.

Sobald 1 oder 2 eingegeben wird, muss das Programm zunächst die erforderlichen Daten vom Benutzer im Hauptprogramm erfragen (bei 1: Radius und Winkel, bei 2: x und y) und dann in die entsprechende Funktion verzweigen (PolarKartesisch() bei 1 und KArtesischPolar() bei 2).

Schließlich werden nach erfolgtem Funktionsaufruf die gesuchten Daten im Hauptprogramm ausgegeben.




Teilen Sie den Programmcode auf verschiedene Funktionen auf, sodass unterschiedliche Programme die Umrechnungsroutinen benutzen könnten!

Überlegen Sie sich dazu, welche Schnittstellen die Funktionen benötigen (welche Daten werden vom Hauptprogramm an das Unterprogramm geliefert, und welche Daten benötigt das Hauptprogramm). Benutzen Sie geeignete Datentypen und Funktionen ohne call by reference!



Quellcode:

Nicht so gut Lösung: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-21/koordinaten_nicht_so_gut.cpp

Gute Lösung: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-21/koordinaten_gut.cpp

Bessere Lösung: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-21/koordinaten_besser.cpp

miércoles, 22 de octubre de 2014

AWP: Unterricht von 2014-10-20 Datenstrukturen

Ein Fuhrparkunternehmer will seine Fahrzeugflotte mit maximal 250 Fahrzeugen zukünftig elektronisch verwalten. Er möchte gern von jedem Fahrzeug des Kennzeichen (FÜL - AB 1995), den Fahrzeugtyp (ob PKW oder LWK), die zu zahlende KFZ-Steuer und Versicherungsprämie, die Schadensfreiheitsrabatt-Klasse mit den zugehörigen prozentualen Wert, die jährlich gefahrenen Kilometer (für max. 15 Jahre), die getankte jählriche Kraftstoffmenge, den jährlichen Durchschnittsverbrauch jeweils fahrzeugspezifisch erfassen und verwalten.

Erstellen Sie eine geeignete Datenstruktur und definieren Sie eine geeignete Variable!



// gute Lösung

struct T_KFZ_Daten {
  char cKennzeichen[31];

  bool bFahrzeugtyp_PWK;

  float fKFZ_Steuer;

  float fVersicherungsprämie;

  int iSchadensfreiheitsrabatt_Klasse;

  int iSchadensfreiheitsprozente;

  int iGefahreneKilometer[15];

  int igetankteKraffstoffmenge[15];

  float iDurchschnittsverbrauch[15];
};

T_KFZ_Daten Fahrzeug[250];



// bessere Lösung

struct T_KFZ_Versicherung {
  float fVersicherungsprämie;

  int iSchadensfreiheitsrabatt_Klasse;

  int iSchadensfreiheitsprozente;
}

struct T_KFZ_Daten {
  char cKennzeichen[31];

  bool bFahrzeugtyp_PWK;

  float fKFZ_Steuer;

  T_KFZ_Versicherung Versicherung;

  int iGefahreneKilometer[15];

  int igetankteKraffstoffmenge[15];

  float iDurchschnittsverbrauch[15];
};

T_KFZ_Daten Fahrzeug[250];

martes, 21 de octubre de 2014

SK: Unterricht von 2014-10-17 Merkmale eines guten Redners


  • gute offene Körperhaltung (Hände nicht in der Hosentasche)
  • freie Reden (nicht von Spicker ablesen)
  • zum Publikum sprechen, Blickkontakt
  • Sichtfeld (Tafel, Flipchart, Beamer-Projektion) niht behindert.
  • seriösse Auftreten (Kleidung, Essen, Kaugummi)
  • lautes deutliches sprechen (auch kein Daueräuspern)
  • gute (Haupt-) Position als Redner (etwas Bewegung)
  • Ablenkung vermeiden (Smart-Phone, Laptop)
  • bei mehrere Vortragenden die Redezeiten festlegen.
  • publikum einbeziehen, auf Fragen vorbereitet sein (Adressatenanalyse)
  • erklären mit Anschauungsmaterial
  • keine Dauerrede, Stimme modulieren (leise, laut reden), Pausen lassen
  • Identität bewahren (man selbst sein)

lunes, 20 de octubre de 2014

AWP: Unterricht von 2014-10-17 Ziele der Datenorganisation mit Datenbanken

Unter dem Begriff Datenorganisation werden alle Verfahren zusammengefasst, die dazu dienen, Daten
  • zu strukturieren und
  • auf Datenträgern zu speichern (schreibender Zugriff) und für den lesenden Zugriff verfügbar zu halten.
Um die immer weiter anwachsende Informationsflut in den Griff zu bekommen, werden in zunehmenden Maße Datenbanken zur Verwaltung der Informationen eingesetzt.
Durch unkontrolliert wachsende Datenbestände ist in bestimmten Bereichen ein Datenchaos entstanden. Verursacht wird das Datenchaos u.a. durch die eigenständige isolierte Datenhaltung für einzelne Anwendungen.
Beispielweise kann man es in einem Betrieb vorkommen, dass Kundendaten für unterschiedliche Anwendungen jeweils neu gespeichert werden, z.B. für die Auftragsbearbeitung und die Rechnungserstellung.
Mit der Mehrfachspeicherung gleicher Informationen (Redundanz) wird Speicherplatz verschwendet und die Informationsverarbeitung verläuft nicht effizient, da eine mehrfache Datenpflege notwendig ist.

Die schwerwiegendsten Fehler, die zu Chaos in der Datenorganisation führen, können aber dadurch entstehen, dass bei Mehrfachspeicherung der Daten unterschiedliche Änderungen in den einzelnen Anwendungen vorgenommen werden. Dadurch sind die Daten nicht mehr widerspruchsfrei (Verletzung der Datenintegrität).

Zur Lösung dieser Probleme soll die integrierte Informationsverarbeitung beitragen. Sie umfasst Datenintegration und Vorgangsintegration. Datenintegration wird durch eine Datenbasis (Datenbank) erreicht, die von mehreren Anwendungen in unterschiedlichen betrieblichen Funktionsbereichen gemeinsam genutzt wird. Ziel ist, die zusammenfassende Abbildung der gesamten Organisation und ihrer Beziehungen zur Umwelt in einer einzigen Datenbasis (globales Modell). Vorgangs-, Funktions- oder Prozessintegration erfolgen durch die it-technische Verknüpfung von arbeitsteilig in verschiedenen Abteilungen abzuwickelnden Vorgängen zu Ablaufketten (z.B. Auftragsabwicklung vom Kundenauftrag bis zur Auslieferung und Bezahlung).

Di genanten Anforderungen sind idealtypisch und stehen teilweise miteinander in Konkurrenz. Weniger Redundanz wird z.B. mit geringerer Flexibilität und Effizienz erkauft.

Ziele der Datenorganisation sind::

  1. Datenunabhängigkeit
    • Unabhängigkeit vom Anwendunsprogramm: Die Daten sind anwendungsneutral gespeichert, d.h. unabhängig vom erzeugenden oder benutzenden Anwendungsprogramm (im Gegensatz zur integrierten Verarbeitung mit Dateiorganisation).
    • Unabhängigkeit der logischen von der physischen Datenorganisation: Der Benutzer muss nur die Datenstrukturen kennen. Methoden zum Suchen, Ändern, Einfügen und Löschen von Datensätzen werden vom Datenbankverwaltungssystem zur Verfügung gestellt.
    • Physische Datenunabhängigkeit: Das Datenbankverwaltungssystem steuert und überwacht (im Zusammenspiel mit dem Betriebssystem) die peripheren Geräte, blockt bzw. entblockt Sätze, kontrolliert Überlaufbereiche, belegt Speicherräume oder gibt sie frei usw.
  2. Benutzerfreundlichkeit
    • Leicht zu erlernenden Benutzersprachen (-> SQL) ermöglichen sowohl dem professionellen Benutzer (Systementwickler, Programmierer) als auch dem Endbenutzer eine einfache Handhabung der Daten. Die Benutzersprachen sollten durch grafische Bedienoberflächen unterstützt werden (GUI).
  3. Merhfachzugriff
    • Jeder, der autorisiert ist, darf im Mehrbenutzerbetrieb zu jeder Zeit auf die gespeicherten Daten zugreifen.
  4. Flexibilität
    • Die Daten müssen in beliebiger Form verknüpfbar sein (mehrdimensionaler Zugriff, Vielfachzugriff). Sie müssen sowohl den fortlaufenden (sequenzieller) als auch den wahlfreien Zugriff ermöglichen.
  5. Effizienz
    • Die Zeiten für die Abfrage und für die Verarbeitung müssen kurz sein, ebenso für Änderungen und Ergänzungen des Datenbestandes.
  6. Datenschutz
    • Die Daten sind vor unbefugtem Zugriff (Missbrauch) zu schützen.
    • Ist der Teilnehmer überhaupt zugriffsberechtigt?
    • Ist der Teilnehmer nur zu bestimmten Daten zugriffsberechtigt?
    • Ist der Teilnehmer nur zu Abfragen oder auch zu Änderungen berechtigt?
  7. Datensicherheit
    • Die Daten müssen gegen Programmfehler und Hardware-Ausfälle gesichert sein. Das Datenbanksystem soll nach Störungsfällen den korrekten Zustand wiederherstellen (Recovery).
  8. Datenintegrität
    • Die Daten müssen vollständig, korrekt und widerspruchsfrei sein. Daten, die redundant gespeichert sind, müssen dasselbe aussagen (Datenkonsistenz). Die Forderung nach Datensicherheit wird gelegenlicht in die Datenintegrität einbezogen. Weitere Integritätsregeln können sein: Wertebereichsbedingungen (z.B. eine deutsche Postleitzahl hat genau fünf Zeichen) oder sich aus der Datenbanklogik ergebende Bedingungen (z.B. ein Kunde muss mindestens 18 Jahre alt sein). Auch muss jeder Wert eines Fremdschlüssels in einem verküpften Primärschlüssel auch als Wert im entsprechenden Primärschlüssel vorkommen (-> referentielle Integrität).
  9. Redundanzfreiheit
    • Jede Information sollte möglichst nur einmal gespeichert werden, z.B. die Kundenanschrift nicht gleichzeitig bei der Auftragsbearbeitung und die Rechnungserstellung, sondern nur einmal. Wobei alle Abteilungen, im Beispiel die Auftragsbearbeitung, die Fakturierung und die Debitorenbuchhaltung Zugriff auf die Kundenadresse haben.
    • Die genannten Anforderungen sind idealtypisch und stehen teilweise miteinander in Konkurrenz. Weniger Redundanz wird z.B. mit geringerer Flexibilität und Effizienz erkauft.

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;
  }
}