efinf:blc2016:vorbereitung-exam2

  1. Erklären Sie http://xkcd.com/742/
  2. Zwei Schülerinnen wollen private Daten austauschen, beide sind jeweils bei sich zu Hause und über einen ADSL-Router mit dem Internet verbunden. Sie möchten sich diese Daten gerne “direkt” übermitteln (ohne einen externen Server in Anspruch zu nehmen). Was ist das Problem? Schlagen Sie Lösungsansätze für diese Situation vor. Warum steht “direkt” in Anführungszeichen?
  3. Die KSBG hat einige öffentliche IP-Adressen, darunter ist 212.117.115.247 für den fginfo-Server. Die Netzmaske ist (so glaube ich) 255.255.255.240. Wie vielen IP-Adressen entspricht dies (nicht nutzbare mitgezählt)? Welches ist die erste, welches die letzte IP-Adresse?
  4. Was sind, (im Zusammenhang mit TCP/UDP-Netzwerkverbindungen) “Ports”? Wozu sind diese gut und nennen Sie einige konkrete Beispiele, die man täglich verwendet.
  5. Erklären Sie, was man unter NAT versteht, und nennen Sie Vor- und Nachteile.
  6. Erklären Sie den Begriff DNS (Domain Name System) (Notwendigkeit, Ablauf einer Abfrage, Verwaltung).

Für die Prüfung müssen Sie folgende Elemente kennen:

  • Spezielle Zeichen: .()[]{}?*+^$
  • () Gruppe
  • [] eines der möglichen Zeichen, oder Komplement [^…] (z.B. [0-9A-F], [^,], [-+*/]
  • {n} definierte Anzahl der vorgehenden Expression
  • ?, *, +, *?, +?: Null oder eins, beliebig viele (maximal), mindestens eins (maximal), beliebig viele (minimal), mindestens eins (minimal)
  • ^, $ Start, Ende vom String
  1. Aus einem html-code sollen alle Links (nur die URL) herausgefiltert werden. Links in html haben folgende Form <a href=“http://www.w3schools.com/tags/tag_a.asp”>HTML &lt;a&gt; Tag</a>. Schreiben Sie eine regular Expression, die die Links in einer Gruppe matcht. Zusatz: Ihre Expression soll auch noch funktionieren, wenn zwischen dem <a und href= noch andere Attribute stehen (z.B. class=“funny” ).
  2. Gegeben sind drei Strings: “abracadabra”, “aberhaber”, “jaabadaabaduu” und drei regular Expressions: /.a.*?b/, /.?a.*b?/ und /.+a.b/. Geben Sie jeweils an, ob ein Match stattfindet und wenn ja, was der erste Match ist.
  3. Geben Sie eine regular Expression an, die e-mail Adressen matcht, und “nicht-e-mail Adressen” möglichst nicht.
  4. Schreiben Sie eine regular Expression, die aus einem Text gerade natürliche Zahlen extrahiert (d.h. als Gruppe matcht). Achtung: die “20” in 201 soll nicht gematcht werden.

Und wer zu viel Zeit (oder einfach Freude an der Sache hat): https://regexcrossword.com/

Kommentieren Sie was folgende Codeschnipsel produzieren (die dritte ist nicht prüfungstauglich!)

  1. Array.new(100){|i| i*3}
  2. (0..5).to_a.map{|e| “A”+e.to_s}
  3. n=(2…1000).to_a; (2..31).to_a.each{|d| n.select!{|x| !(x>d && x % d ==0)}}; n

Aus Nesa kann ich Schülerlisten in folgendem Format bekommen:

"Muster";"Hans";"<a href=mailto:hans.muster@ksbg.educanet2.ch>hans.muster@ksbg.educanet2.ch</a>";"071 123 45 67";"079 123 45 67";"9000";"St. Gallen";"2oNP";"Gym-N";"";"M";"Peter";"Pauker";

Wir nehmen an, alle Linien sind ein Array lines eingelesen, z.B. mit

  lines = File.readlines("schueler.csv")
  1. Ergänzen Sie den Code so, dass lines nachher anstatt pro Linie einen einzelnen String ein Array mit den entsprechenden Strings enthält (ohne die Anführungszeichen). D.h. in etwa so:
  lines = [["Muster", "Hans", "...."],[...],...]
  1. Für den Eintrag der e-mail Adresse extrahieren Sie die e-mail Adresse und schreiben Sie diese anstelle des Links.
  • efinf/blc2016/vorbereitung-exam2.txt
  • Last modified: 2016/12/06 15:53
  • by luca_naef