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


Step 22 - Lösungen

Zu Aufgabe 1:

var
  myArray : Array[0..100] of Integer; 
  // 0...100 war falsch. Semikolon fehlte.

  i, k, m : Integer;
begin
  ShowMessage('Starte Sortierung von 101 Integern!'); 
   // Hochkommas; es fängt bei 0 an daher 101 Integer!
  for i:=0 to Length(myArray)-1 do   // : fehlte; -1 fehlte - alternativ: High(myArray) !
    myArray[i]:=Random(100); 
    // nur das Element [1] zu initialisieren bringt wenig
    for i:=0 to Length(myArray)-2 do     // : fehlte; alternativ: High(myArray)-1
    for k:=i+1 TO Length(myArray)-1 do     // alternativ High(myArray)
      if myArray[k]<myArray[i] then
      // do nur bei Schleifen! if ist keine Schleife!
      begin
        m:=myArray[k];
        myArray[k]:=myArray[i];
        // anstatt: myArray[i]:=myArray[k];
        myArray[i]:=m;
        // anstatt: myArray[k]:=m;
      end;
  ShowMessage('Sortierung von 101 Integern beendet!');
  // s.o.
end;

Zu Aufgabe 2 a):

function lastPos(SubStr, S : String):Integer;
  
  function ReverseString(normStr:String);
  var
    i:Integer;
    resStr:String;
  begin
    resStr := '';
    for i := Length(normStr) downto 1 do
      resStr := resStr + normStr[i];
    result := resStr;
  end;

begin
  Result:=Length(S) - Pos(ReverseString(S));
end;

Zu Aufgabe 2 b):

function getPos(SubStr, S : String; PosIndex : Integer = 1):Integer;
begin
  if PosIndex = 1 then
    result := Pos(SubStr, S)
  else
    result := getPos(SubStr, copy(S, pos(SubStr,S)+1, Length(S) ), PosIndex - 1)
              + Pos(SubStr, S);
end;

Zu Aufgabe 3

Thema: Wissensfragen

  1. Welche Dateitypen sind bei einer Weitergabe des Programmes mindestens benötigt?
    • dpr (= Delphi Programmdatei), pas (= PAScal-Quellcode) und dfm (= Delphi Formular Model)
  2. Wie heist die Methode, welche ein dynamisches Array auf eine bestimmte positive Größe setzt?
    • SetLength(Array, Länge);
  3. Wofür stehen folgende Abkürzungen: VCL, IDE, BDS, HTML, VLC
    • Visuel Component Library
    • Integrated Development Environment
    • Borland Development Studio
    • HyperText Markup Language (hat nichts mit Delphi zu tun)
    • VideoLan Client (kostenloses Videoabspielprogramm, hat auch nichts mit Delphi zu tun)
  4. Nenne mindestens 2 Vorteile von Methoden.
    • Wiederholter Code wird zusammengefasst, also wird der Code kleiner und damit übersichtlicher.
    • Bei der Fehlerbehebung muss nur noch an einer Stelle behoben werden, also Zeitersparniss.
    • Ein nicht behandelter Vorteil: Wiederverwendbarkeit: Wenn es einmal geklappt hat, und die Methode abstrakt genug ist, dann kann sie in anderen Programmen leicht wiederverwendet werden. Beispiel ist die Sammlung im Easy Delphi Helper.
  5. Was ist besser als Exception-Handling?
    • Fehlervermeidung. Jedoch muss man den DAU miteinbeziehen.

Thema: Wahr/Falsch-Fragen

  1. Der Dateityp Cardinal hat einen größeren positiven Wertebereich als Integer.
    • Wahr. Cardinal hat zwar auch wie Integer 32 Bit, allerdings keine Negativen Zahlen.
  2. Im interface-Bereich einer Unit können keine Algorithmen implementiert werden.
    • Wahr. Hier können Proceduren Deklariert werden, die im implementation-Bereich implementiert werden.
  3. Records sind Audio-Aufnahmen welche mit Turbo-Delphi kinderleicht gemacht werden können.
    • Falsch. Mit Turbo-Delphi programmiert man Delphi-programme und Records sind zusammengesetzte Felder.
  4. Eine if-Anweisung wird solange durchlaufen bis ein Wahrheitswert falsch wird.
    • Falsch. Eine if-Anweisung wird einmal durchlaufen wenn der boolsche Ausdruck wahr ist. Die While-Schleife wird solange ausgeführt, bis der boolsche Ausdruck falsch wird.
  5. Bubble-Sort dient zum Sortieren von Kaugumies.
    • Nicht ganz Richtig. Bubble-Sort sortiert Arrays oder Listen, welche von einem bestimmten Typ sind. Wenn man einen eigenen Typ hat, den man Kaugumi nennt, dann sortiert Bubblesort auch Kaugumies ;)

Zu Aufgabe 4

ist unterwegs ;)


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