SAE Muster-Klassenarbeit
|
Version: 23.02.2011
|
Name: _____________________
|
Allgemeiner Teil:
Aufgabe 1
|
2
|
Um Ein-Ausgaberoutinen verwenden zu können, sind einfache Einträge in der cpp-Datei vorzunehmen.
Welche sind dies?
Aufgabe 2
|
2
|
Aus welchem Grund müssen in c/c++ Variablen definiert werden?
Aufgabe 3
|
2
|
Worin besteht der Unterschied zwischen der Definition und Initialisierung von Variablen?
Anhand eines einfachen Beispiels erläutern!
Aufgabe 4
|
4
|
Wie ist der Aufbau und die Wirkungsweise einer Do-While-Schleife?
Zeigen Sie den wesentlichen Unterschied zu While-Schleife anhand eines Quellcodebeispiels!
Projekt Teil Theorie:
|
|
|
|
|
|
Beschreibung des Projekts
Die Statistik eines Webauftritts soll ausgewertet und als Balkendiagramm graphisch dargestellt werden. Im Theorie-Teil soll die Ausgabe auf der Konsole geschehen, im Praxis-Teil soll eine "stats.html" Seite generiert werden.
Die Main-Funktion (hier immer mal wieder nachschauen wie die Funkionen verwendet werden):
void main()
{
cout << "WebSite-Statistiken v1.0 von Oliver Mezger\n\n";
hits_ausgeben();
cout<<"\n Hits gesammt: "<<prozente_berechnen()<<"\n\n";
cout<<"\n Gesammt: "<<prozente_ausgeben() << "% \n\n";
balken_ausgeben();
getch();
}
|
|
Die Daten liegen in folgender Form vor:
const SITES = 5; // Anzahl der Seiten
string names[SITES] = {"Bananas","Apples","Funk'n","Deep Blue","Fluids"};
int hits[SITES]= {240,34,487,154,85}; // Zugriffe auf die Seiten
int prozente[SITES]; // In Prozent umgerechnete Zugriffe (noch zu berechnen)
|
|
Aufgabe 5 (name_ausgeben)
|
12
|
Analysieren Sie folgende Funktion (Beschreibung (2 Punkte)), erstellen Sie ein Struktogramm (6 Punkte)!
string name_ausgeben(string s){ // Was tut diese Funktion?
while (s.length() < 10) s=s+'.'; // s.length gibt die Laenge von s zurueck
return s + ": ";
}
Welche Rückgabe ist bei dem Aufrufen name_ausgeben("Hugo") (2 Punkte) und name_ausgeben("Tante Erna geht schwimmen") (2 Punkte) zu erwarten?
Aufgabe 6 (hits_ausgeben)
|
10
|
|
|
|
|
|
|
|
Eine Funktion hits_ausgeben() soll die Seitenzugriffe zu den Web-Seiten aus den Daten formatiert ausgeben. Erstellen Sie ein Struktogramm (6 Punkte) und vervollständigen sie den Programmcode (4 Punkte):
void hits_ausgeben(){ // Ausgabe der Seitenzugriffe
cout << name_ausgeben(names[i]); // Siehe Tip ->
}
|
|
So soll die Ausgabe aussehen: |
|
|
|
|
|
|
|
Tip: Die Funktion name_ausgeben() aus 5 kann verwendet werden! |
Aufgabe 7 (prozente_berechnen)
|
10
|
Erstellen Sie den Programmcode für Funktion prozente_berechnen() mit Kommentaren, wie werden die Prozente berechnet?
Die Funktion greift auf folgende globale Variablen und Konstanten zu: SITES, hits[], prozente[] und hat als Rückgabewert die Summe der Seitenzugriffe aus hits[].
Die Datentypen entnehmen Sie aus der Beschreibung des Projekts.
Aufgabe 8 (prozente_ausgeben)
|
25
|
|
|
|
|
|
Gegeben ist folgender Source-Code, analysieren Sie den Code und kommententieren (10 Punkte) Sie ihn,
erstellen Sie ein Struktogramm (15 Punkte)!
int prozente_ausgeben(){
int prozsum = 0;
for (int i=0;i<SITES;i++){
cout << name_ausgeben(names[i]);
if (prozente[i] >9)
cout << " ";
else
cout << " ";
cout << prozente[i] << "% ";
cout << endl;
prozsum = prozsum + prozente[i];
}
return prozsum;
}
|
|
|
|
|
|
|
Wozu dient die if-Anweisung?
Welchen Wert gibt die Funkion zurück?
|
Aufgabe 9 (balken_ausgeben)
|
25
|
|
|
|
|
|
Erstellen Sie eine Funktion balken_ausgeben(), die proportionale Anzahl (prozente / 2) an Sternen ausgibt. Erstellen Sie ein Struktogramm (10 Punkte) und einen kommentierten Quelltext (15 Punkte)!
void balken_ausgeben(){
}
|
|
|
|
|
|
Note:
|
Erreichte Punkte:
|
Total 92
|
Zum Praxis-Teil...
Zur Musterlösung...