Gymnasium Löbau/Vertiefungsklasse 2013/Lk: Zeichenketten und Datenfelder
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
[[Bild:RS232-Kabel1.jpg|miniatur|RS-232-Kabel zur seriellen Datenübertragung]]
== Aufgabe 1: Parität eines Bitmusters ==
Bei der seriellen Datenübertragung ist es mitunter möglich, ein Paritätsbit zu vereinbaren.<br />
So kann im RS-232-Standard (vgl. nebenstehende Abbildung) an eine Folge von 7 Datenbit ein Paritätsbit angefügt werden. Im Fall einer geraden Parität wird bei einer ungeraden Anzahl von Einsen eine weitere Eins ergänzt, anderenfalls eine Null.<br />
Erfolgt nun beim Empfänger eine Paritätsprüfung des Bitmusters, können Übertragungsfehler mit hoher Wahrscheinlichkeit erkannt werden. Eine Fehlerkorrektur ist natürlich nicht möglich.
'''Beispiele:'''
"1001010" --> "10010101"
"0101000" --> "01010000"
Entwickle eine JavaScript-Funktion, die an in Bitmuster (7 Bit) das korrekte Paritätsbit anhängt.
<code id="5c333e420636e">
function paritaet(bit) {
// -- weitere Anweisungen --
return bit;
}
</code>
<check execute="(paritaet('1001010') == '10010101') && (paritaet('1001000') == '10010000')">
true
</check>
<run id="5c333e420645a">
paritaet("1001010");
</run>
== Aufgabe 2: Haltungsnoten beim Skispringen ==
Beim Skispringen können 5 Punktrichter für einen Sprung bis zu 20 Punkte für die Sprunghaltung eines Springers vergeben.<br />
Zunächst werden alle Punktwerte addiert. Die Haltungsnote des Springers ergibt sich aus der Gesamtsumme, bei der die höchste und die niedrigste Punktwertung abgezogen wird.
'''Beispiele:'''
[16.5, 17.5, 18.0, 16.0, 17.0] --> 51.0
[18.0, 19.5, 19.5, 17.0, 17.0] --> 54.5
Implementiere zur vorgegebenen Punktwertung die nachfolgenden JavaScript-Funktionen.
<code id="5c333e42063e1">
var punktwertung = new Array(16.5, 17.5, 18.0, 16.0, 17.0);
function maxWert(feld) {
var max = feld[0];
// -- weitere Anweisungen --
return max;
}
function minWert(feld) {
var min = feld[0];
// -- weitere Anweisungen --
return min;
}
function haltungsnote(feld) {
var gesamt = 0;
// -- weitere Anweisungen --
return gesamt;
}
</code>
<check execute="(haltungsnote([16.5, 17.5, 18.0, 16.0, 17.0]) == 51) && (haltungsnote([18.0, 19.5, 19.5, 17.0, 17.0]) == 54.5)">
true
</check>
<run id="5c333e42064be">
haltungsnote(punktwertung);
</run>