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>