Projekt mit
1 €
unterstützen?
So geht das *:


Step 21 - Abschlussaufgaben ;-)

Aufgabe 1

Aufgabentyp: Fehlersuche
Schwierigkeitsstufe: Leicht (3)
Datum (Erstellung): 20.05.2007
Autor: Marco Hetzel

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 (a)

Aufgabentyp: Problemlösung
Schwierigkeitsstufe: Mittel (5)
Datum (Erstellung): 20.05.2007
Autor: Marco Hetzel

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!

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;

Aufgabe 2 (b)

Aufgabentyp: Problemlösung
Schwierigkeitsstufe: Mittel (6)
Datum (Erstellung): 20.05.2007
Autor: Marco Hetzel

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!
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

Aufgabentyp: Frage Antwort
Schwierigkeitsstufe: Mittel (4)
Datum (Erstellung): 31.08.2008
Autor: Marco Hetzel

Thema: Wissensfragen

  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: Wahr/Falsch-Fragen

Kurze Begründung bei Falscher Aussage ist erwünscht.

  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

Aufgabentyp: Erstellung eines Programmes
Schwierigkeitsstufe: Unmachbar (10)
Datum (Erstellung): 31.08.2008
Autor: Marco Hetzel

a) Das Hauptprogramm

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.

Tipp 2:
Sei a der zu verschlüsselnde Buchstabe als Zahl.
b der Schlüssel mit b < max i(a)
(b kleiner als der maximale Index von a, also dem Index des größt möglichen Buchstabens.)
x gibt die göße des Binärbereiches an, in welchem a liegt:
0 < a < 2^x.
Also:
Überlege, wie die Tabelle aufgebaut sein muss, damit die Verschlüsselung funktioniert!
Denke dabei an das logische Prinzip, das hinter dem XOR liegt.

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

b) Der Hacker

Nun hast du einen Text bekommen, der mit einem in a) beschriebenen Programm verschlüsselt wurde. Erstelle ein Programm mit dessen Hilfe du den Text leichter knacken kannst.


Da das Kommentarmodul dieser Seite zur Zeit neu überarbeitet werden muss, sendet bitte alle Fragen, Anregungen oder Probleme mit Betreff zu welchem Thema es sich handelt an folgende Mailadresse:



www.marco-hetzel.de
www.delphi-lernen.de
www.lazarus-lernen.de

© 2006-2019 by Marco Hetzel , last modified 01.11.2018, 11:28

(* Unterstützung dient der Aufrechthaltung laufender Kosten für dieses Projekt.)