Step 21 - Abschlussaufgaben

Spendenaufruf des DRK Ortsvereins Spielberg e.V.

16. April 2023

 

Hallo liebe Besucherin, hallo lieber Besucher!

In einem ganz anderen Kontext möchte ich hier nun bewerben:
Der Verein, für den ich auch einstehe, benötigt Spenden.
Ich habe vergangenes Jahr über fünf Monate versucht für delphi-lernen.de Spenden zu sammeln - es blieb leider bei 20 Euro von zwei Spendewilligen.
Nun hoffe ich, da es nicht um mich geht, dass sich mehr entschließen und für eine gute Sache zu spenden:

Alle Informationen - auch für die Überweisung den Verwendungszweck beachten!

Der neuste Stand, mindestens einmal im Monat hier zu sehen!

Geben ist nicht nur ein Akt der Großzügigkeit, sondern auch der Selbsterhaltung. (Oprah Winfrey)

 

 

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 ;)