Ping per C# 👍 👎

Zwar könnte man hier ähnlich wie im Artikel Konsolenausgabe in C# verwenden für traceroute beschrieben vorgehen, jedoch bietet es sich an, die Ping-Klasse des .NET-Frameworks zu verwenden. Diese möchte ich mit diesem Beitrag kurz vorstellen, da sie interessanterweise zu den doch eher unbekannteren Funktionalitäten gehört.
Ping-Klasse verwenden
010203040506
using(Ping ping = new Ping()) {    PingReply reply = ping.Send("coders-online.net");
long time = reply.RoundtripTime; // 19 IPStatus status = reply.Status; // Success}
Es können durch entsprechende Überladungen weiterführende Optionen wie die zu übertragenden Daten festgelegt werden. Durch die seit .NET 4.5 verfügbare Methode SendPingAsync besteht außerdem auch die Möglichkeit, nach dem komfortablen und nicht-blockierenden async/await-Muster vorzugehen.

Grad-Angaben für trigonometrische Funktionen in C# 👍 👎

In einem Gespräch wurde mir kürzlich vom "seltsamen" Verhalten trigonometrischer Methoden wie Math.Sin oder Math.Cos berichtet. Nun lag das Problem jedoch weniger an C# (ohnehin kaum vorstellbar Smiley: winking), sondern vielmehr an den übergebenen Werten – diese lagen nämlich in Grad vor, wobei C# das Bogenmaß erwartet.

Glücklicherweise lassen sich die Werte jedoch schnell und problemlos jeweils zueinander umrechnen:
Umrechung von Grad <-> Bogenmaß
010203040506070809
  // Grad zu Bogenmaß umrechnenpublic static double DegToRad(double degrees) {    return (degrees * (Math.PI / 180));}
// Bogenmaß zu Grad umrechnenpublic static double RadToDeg(double radians) { return (radians * (180 / Math.PI));}
Entsprechende Funktionen habe ich im Rahmen von "PHP-Funktionen in C#" schon einmal zur Verfügung gestellt:

Podcast-Empfehlungen 👍 👎

Da ich sehr gerne Podcasts höre, möchte ich heute ein paar besonders erwähnenswerte Exemplare kurz vorstellen:

Alternativlos

In diesem Podcast sprechen Felix von Leitner und Frank Rieger über gesellschaftsrelevante Themen. Zu den bisherigen Themenbereichen gehörten beispielsweise Geheimdienste, Kernkraftwerke, Kryptographie, Verschwörungstheorien und Wirtschaft. Technische Details und Humor kommen dabei selten zu kurz, leider erscheinen die Folgen jedoch recht unregelmäßig und derzeit selten – aber das Warten lohnt sich, wie ich finde.

CRE

Als Chaosradio Express gestartet sicherlich einer der Klassiker des monothematischen Podcasts, bei dem die Gäste zusammen mit Tim Pritlove zu diversen Themen aus den Bereichen Kultur und Technik diskutieren. Die bisherigen Themenbereiche umfassten beispielsweise Computerspiele, Fernsehen, Kaffee, Nachrichtendienste, Programmiersprachen, Raumfahrt, Stadtplanung, Steuern und VoIP. Sehr detailreich und mit meist längeren Folgen, derzeit jedoch leider ebenfalls sehr selten neue Veröffentlichungen.

methodisch inkorrekt

Alle zwei Wochen treffen sich die Physiker Nicolas Wöhrl und Reinhard Remfort von der Universität Duisburg-Essen, um über meist aktuelle wissenschaftliche Veröffentlichungen zu sprechen. Bonus-Inhalte der meisten Sendungen sind das Experiment der Woche und das China-Gadget der Woche – mit interessanten Einsichten und mehr oder weniger nützlichen Gimmicks. Die Themen sind im naturwissenschaftlichen Bereich zu verorten. Derzeit auf jeden Fall einer meiner Favoriten, da nicht nur sehr lehrreich, sondern auch überaus unterhaltsam.

omega tau

Markus Völter und Nora Ludewig liefern hier einen ebenfalls monothematischen Podcast mit vielen Details zum jeweiligen Thema, wobei üblicherweise ein Gesprächspartner als Experte befragt wird. Zu den bisherigen Themen gehörten beispielsweise Eisenbahnsicherungstechnik, Evolution, Kohlenstoffschichten, Robotik, Seismologie, Strahltriebwerke und Wetterdatenerfassung. Besonders erwähnenswert ist außerdem, dass es Folgen auf Deutsch und Englisch gibt, wobei es sich um jeweils unterschiedliche Themen handelt.


Auf der Unterseite Links finden sich noch ein paar weitere erwähnenswerte Podcasts.

Parität einer Zahl prüfen 👍 👎

Manchmal kann es für ein Problem relevant sein, ob eine Zahl (un-)gerade ist. Dies lässt sich sehr einfach durch Verwendung der ganzzahligen Division mit Rest (Modulo) bewerkstelligen – wir dividieren dabei einfach durch 2.

Eine Erweiterungsmethode für den Typ int in C# könnte beispielsweise wie folgt aussehen:
int.IsEven implementieren und verwenden (Modulo)
0102030405
public static bool IsEven(this int number) {    return ((number % 2) == 0);}
bool isEven = (7).IsEven(); // false
Im Stellenwertsystem zur Basis 2 (Dualsystem) kann man sich zu Nutze machen, dass bei ungeraden Zahlen die letzte Ziffer mit der Wertigkeit 1 gesetzt sein muss, da ansonsten die Zahl in jedem Fall gerade wäre. Übertragen auf die Arbeit im Binärsystem soll also das letzte Bit [nicht] gesetzt sein, was wir durch eine bitweise Verknüpfung ermitteln und dadurch eine entsprechende Optimierung ermöglichen:
int.IsEven implementieren und verwenden (Bitarithmetik)
0102030405
public static bool IsEven(this int number) {    return ((number & 1) == 0);}
bool isEven = (7).IsEven(); // false
Entsprechende IsOdd()-Methoden können ggf. analog dazu implementiert werden.

Mathematik-Brückenkurs an der FU Berlin (2/2) 👍 👎

Im Folgenden der Ablauf der zweiten Woche des Mathematik-Brückenkurses an der FU Berlin im WS14/15:

Montag

Abzählbarkeit

Um unendlich große Mengen auf Gleichmächtigkeit zu prüfen, haben wir die Abzählbarkeit einer unendlichen Menge definiert. Abzählbarkeit besteht, wenn eine bijektive Abbildung der natürlichen Zahlen in diese Menge existiert. Zur Herleitung diente uns Cantors erstes Diagonalargument. Eine Menge, für die keine derartige Abbildung existiert, bezeichnen wir als überabzählbar (Cantors zweites Diagonalargument).

Vollständige Induktion

Der Induktionsbeweis dient dazu, Allaussagen für alle natürlichen Zahlen zu beweisen. Hierzu wird zuerst der Induktionsanfang gesetzt und bewiesen, um darauf aufbauend die Gültigkeit für alle nachfolgenden Zahlen zu beweisen (Induktionsschritt). Die Aussage selbst wird als Induktionsvoraussetzung bezeichnet.

Dienstag

Summen- und Produktzeichen
  • Summenzeichen

    Wir haben endliche Summen eingeführt, die mit Hilfe des Summenzeichens, bestehend aus dem Index mit Startwert und dem Endwert sowie eines Folgegliedes der Reihe eingeführt. Wir haben Rechenregeln zur Multiplikation mit einer Konstanten, die Addition von Summen und die Indextransformation eingeführt. Die leere Summe wird zu 0 (neutrales Element der Addition) definiert.

  • Produktzeichen

    Das endliche Produkt wurde analog zu obiger Definition eingeführt, wobei das leere Produkt zu 1 (neutrales Element der Multiplikation) definiert wird. In diesem Zusammenhang haben wir ebenfalls die Fakultät einer natürlichen Zahl betrachtet.

Erweitertes Induktionsprinzip

Wir haben die vollständige Induktion erweitert, um den Induktionsanfang mit dem Wert 1 zu verallgemeinern.

  • Kardinalität einer Menge

    Die Kardinalität einer endlichen Menge bezeichnet deren Mächtigkeit und entspricht der Anzahl der Elemente.

Binomialkoeffizient

Wir haben zum Verständnis der (allgemeinen) binomischen Formel den Binomialkoeffizienten eingeführt.

  • Pascalsches Dreieck

    Zur Illustration der Berechnung der Werte der Binomialkoeffizienten haben wir diese in Form des pascalschen Dreiecks angeordnet. Hierbei entsprechen die Werte eines Binomialkoeffizienten der Summe der beiden darüber angeordneten Werte.

Zur Rückführung auf Bekanntes haben wir die binomische Formel mit dem Spezialfall 2 als Exponenten betrachtet.

Mittwoch

Kombinatorik

Wir haben den Begriff der Kombinatorik im Allgemeinen eingeführt.

  • Permutationen

    Unter einer Permutation versteht man eine bijektive Abbildung einer Menge auf sich selbst. Es handelt sich somit um die möglichen Anordnungen ihrer Elemente.

Wir haben außerdem den bereits eingeführten Begriff des Binomialkoeffizienten verwendet, um beispielsweise die Anzahl der möglichen Kombinationen im Lotto zu ermitteln.

Donnerstag

Körper der reellen Zahlen

Wir haben den Körper der reellen Zahlen als Grundlage der Analysis auf Basis von Axiomen eingeführt. Der Körper enthält die zwei inneren zweistelligen Verknüpfungen Addition und Multiplikation.

  • Axiome

    Axiome sind grundsätzliche Festlegungen, die nicht weiter bewiesen werden. Es gelten die Assoziativ- und Kommutativgesetze und das Distributivgesetz. Es existieren für Addition und Multiplikation jeweils ein neutrales (0 und 1) und ein inverses Element.

Weitere Inhalte waren u. a. die Ordnung und der absolute Betrag reeller Zahlen.

Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche