Step 21 - Abschlussaufgaben

 

Aufgabe 1: Wer suchet, der findet.

 
Aufgabentyp
Fehlersuche
Schwierigkeitsstufe
3 - Leicht
Datum (Erstellung)
20.05.2007
 
Aufgabe:
Zum Beginn erstmal etwas einfacher: Finde die 10 Fehler. Aber Achtung: Nicht jeder Fehler sorgt für ein Problem beim compilieren. Es ist auch wiederholt ein logischer Fehler vorhanden.
Viel Spaß beim Suchen ;)
 
var
  myArray : Array[0...100] of Integer
  i, k, m : Integer;
begin
  ShowMessage("Starte Sortierung von 100 Integern!");
  for i=0 to Length(myArray) do
    myArray[1]:=Random(100);
  for i=0 to Length(myArray)-2 do
    for k:=i+1 TO Length(myArray)-1 do
      if myArray[k]do
      begin
        m:=myArray[k];
        myArray[i]:=myArray[k];
        myArray[k]:=m;
      end;
  ShowMessage("Sortierung von 100 Integern beendet!");
end;
 

Aufgabe 2: Algorithmus finden

Aufgaben-Teil a

 
Aufgabentyp
Problemlösung
Schwierigkeitsstufe
5 - Mittel
Datum (Erstellung)
20.05.2007
 
Aufgabe:
Es gibt eine String-Funktion, die den Index einer Zeichenkette in einer anderen Zeichenkette zurückgibt.
Diese Funktion lautet Pos.
Ihre Parameter sind: SubStr, S:String - dabei ist SubString der String nach dem in S gesucht werden soll.
Und nun deine Aufgabe:
Finde eine Funktion, die das letzte Element findet und die Position zurückgibt!

Viel Spaß beim Coden ;)
 
// Hilfestellung:
function lastPos(SubStr, S : String):Integer;
  // Der Wert eines Programmes ist umgekehrt proportional zu dem von ihm verbrauchten Papier
begin
  // hier der eigentliche Algorithmus
end;
 

Aufgaben-Teil b

 
Aufgabentyp
Problemlösung
Schwierigkeitsstufe
6 - Mittel
Datum (Erstellung)
20.05.2007
 
Aufgabe:
In 2 (a) wurde die Funktion Pos(SubStr, S:String):Integer beschrieben.
Und nun die Erweiterung hierzu:

Finde eine Funktion, die ein belibiges Element findet und die Position zurückgibt!

Viel Spaß beim Coden ;)
 
// Hilfestellung:
function getPos(SubStr, S : String; PosIndex : Integer = 1):Integer;
  // Was, wenn die Funktion sich bis PosIndex<1 mit PosIndex-1 selbst aufruft?
begin
  // copy(S,i1,i2)
end;
 

Aufgabe 3: Fragen über Fragen...

 
Aufgabentyp
Frage/Antwort
Schwierigkeitsstufe
4 - Mittel
Datum (Erstellung)
31.08.2008
 
Thema:
Wissensfragen - Beantworte die Fragen mit einer kurzen Antwort.
  1. Welche Dateitypen sind bei einer Weitergabe des Programmes mindestens benötigt?
  2. Wie heist die Methode, welche ein dynamisches Array auf eine bestimmte positive Größe setzt?
  3. Wofür stehen folgende Abkürzungen: VCL, IDE, BDS, HTML, VLC
  4. Nenne mindestens 2 Vorteile von Methoden.
  5. Was ist besser als Exception-Handling?
 
Thema:
Aussagenlogik - Beantworte mit ja oder nein, begründe deine verneinte Antwort.
  1. Der Dateityp Cardinal hat einen größeren positiven Wertebereich als Integer.
  2. Im interface-Bereich einer Unit können keine Algorithmen implementiert werden.
  3. Records sind Audio-Aufnahmen welche mit Turbo-Delphi kinderleicht gemacht werden können.
  4. Eine if-Anweisung wird solange durchlaufen bis ein Wahrheitswert falsch wird.
  5. Bubble-Sort dient zum Sortieren von Kaugumies.
 

Aufgabe 4: Ein großes Programm.

 
Aufgabentyp
Erstellung eines Programmes
Schwierigkeitsstufe
10 - Sehr schwer
Datum (Erstellung)
31.08.2008
 

a) Das Programm

 
Aufgabe:
Verschlüsselungen sind heutzutage kaum wegzudenken, wenn man die eigen Privatsphäre bewahren möchte. Hierzu folgender Programmier-Auftrag:

Programmiere ein Programm, welches Mittels XOR einen beliebigen Text wieder in druckbare Zeichen verschlüsseln kann.

Tipp:
Erstelle eine Tabelle (Array) in dem das Alphabet steht. Dann lasse den Benutzer eine Zahl wählen, welche den Schlüssel angibt. Prinzipiell geht es dann fast wie bei der Caesar-Verschlüsselung. Siehe hierfür nochmals Step 19.

Zusatzfrage: Wieso benötigst du, wenn du damit fertig bist, keine zusätzliche Funktion zum entschlüsseln?

Viel Spaß beim Programmieren ;)
 

b) Ein Codeknacker

 
Aufgabe:
Annahme: du hast einen Text bekommen, der mit einem in a) beschriebenen Programm verschlüsselt wurde. Erstelle nun ein Programm mit dessen Hilfe der Text leichter geknackt werden kann.

Viel Spaß beim Programmieren ;)
 

 

Externe Links zu SocialMedia-Seiten zu diesem Kapitel:

Diese Links sollen dazu dienen, Kommentare und Meinungen rund um dieses Kapitel wiedergeben zu können.
 
 
* Hinweis zu externen Links:
Bitte Haftungsausschluss beachten!
Ich übernehme weder Garantie, noch Gewährleistung, noch Haftung für Inhalte, die nach diesem Link folgen. Mit deinem Klick auf den Link verlässt du meine Website. Es öffnet sich in der Regel ein neuer Tab oder ein neues Fenster.