Präsenztestat C++ -Quelltextformatierung
Rücken Sie in der Anwesenheit des Benotenden die folgenden Zeilen so ein, daß vor jeder Zeile doppelt soviel Leerzeichen stehen wie die Verschachtelungstiefe des ersten (Nichtleerzeichen-)Zeichens der Zeile.
Zum Einrücken werden Leerzeichen am Anfang einer Zeile hinzugefügt oder entfernt.
Die Verschachtelungstiefe eines Zeichen ist die Zahl der vorangehenden öffnenden Klammern abzüglich der Zahl der vorangehenden schließenden Klammern, z.B. ist die Verschachtelungstiefe des Zeichens "x" in dem Text "{{((())x" gleich 3.
Beispiel.cpp
int main()
{ ::std::cout << "Enter an integer: ";
int original_integer;
::std::cin >> original_integer;
if( original_integer < 0 )
original_integer = original_integer * -1;
int integer = original_integer;
int power = 32;
if( integer == 0 )
::std::cout << "0\n";
while( integer >= 0 )
{ if( integer == 0 )integer = 1;
while( power >= 0 )
{ if( integer >= ::std::pow( 2, power ))
{ integer = integer - ::std::pow( 2, power );
power = power - 1;
::std::cout << "1\n"; }
else if( integer != original_integer )
{ ::std::cout << "0" << ::std::endl;
power = power - 1; }
else
{ power = power - 1; }}}}
Die durchschnittliche Bearbeitungszeit beträgt ca. 2 Minuten. Die maximale Bearbeitungszeit beträgt 6 Minuten.
Bewertungsrichtlinien
100 P Wenn alles richtig gemacht wurde.
−20 P Für jede Zeile, die anders verändert wurde als nur durch Einrücken, falls die Veränderung die Bedeutung des Quelltextes nicht verändert (z.B. Hinzufügen von Leerzeichen am Ende einer Zeile).
−20 P Wenn die Einrückung systematisch falsch ist (z.B. immer drei Leerzeichen statt zwei Leerzeichen).
−20 P Für jede (unsystematisch) falsch eingerückte Zeile.
−20 P Für jede innerhalb des Programmes eingefügte Leerzeile.
−7 P Für jede vor das Programm eingefügte Leerzeile.
0 P Wenn mehr als vier Zeilen falsch eingerückt wurden. Wenn das Programm durch Änderungen so verändert wurde, daß sich sein Verhalten ändert (etwa Ersetzen eines Buchstabens "o" durch den Buchstaben "a".) Wenn andere Zeilen als Leerzeichen eingefügt oder gelöscht wurden.