AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Brauche Erklärung für Parameterübergabe (zwecks Klausur Di)
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Erklärung für Parameterübergabe (zwecks Klausur Di)

Ein Thema von lun87 · begonnen am 26. Nov 2006 · letzter Beitrag vom 27. Nov 2006
 
lun87

Registriert seit: 19. Nov 2006
29 Beiträge
 
#1

Brauche Erklärung für Parameterübergabe (zwecks Klausur Di)

  Alt 26. Nov 2006, 20:20
Hi an alle erstmal
Ich wollte euch mal fragen, ob mir wer eine kleine Zeile aus dem Programm meines Lehrers erklären kann. Ich kann nicht nachvollziehen was dort passiert. Wäre echt nett

hier der code:

Delphi-Quellcode:
unit UZahlensysteme;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, UZahl;

type
  TForm1 = class(TForm)
    RadioGroupEingabeBasis: TRadioGroup;
    RadioGroupAusgabeBasis: TRadioGroup;
    eeingabe: TEdit;
    eausgabe: TEdit;
    procedure RadioGroupEingabeBasisClick(Sender: TObject);
    procedure RadioGroupAusgabeBasisClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
   number : TZahl;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RadioGroupEingabeBasisClick(Sender: TObject);
begin
  Case RadioGroupEingabeBasis.ItemIndex of
    0: number.setBasis ('2');
    1: number.setBasis ('10');
    2: number.setBasis ('16');
  end;
  number.setZahl (eeingabe.text);
end;

procedure TForm1.RadioGroupAusgabeBasisClick(Sender: TObject);
begin
  Case RadioGroupAusgabeBasis.ItemIndex of
    0: number.setBasis ('2');
    1: number.setBasis ('10');
    2: number.setBasis ('16');
  end;
  eausgabe.text := number.getZahl;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
number := TZahl.create;
end;

end.

unit UZahl;

interface

Type
  TBasen = (B2, B10, B16);
  TZahl = class
protected
  Basis : TBasen;
  WertBasis10 : integer;
public
  procedure setBasis (B : string);
  function getBasis : string;
  procedure setZahl (Z : string);
  function getZahl : string;
end;

implementation
uses ZahlKonv, SysUtils;

procedure TZahl.setBasis (B : string);
begin
 if B = '2then Basis := B2;
 if B = '10then Basis := B10;
 if B = '16then Basis := B16;
end;

procedure TZahl.setZahl (Z : string);
begin
  Case Basis of
    B2: dual_nach_dezimal (Z, Wertbasis10); ----->[color=#ff0000]Was wird hier wem zugeordnet? Was macht Wertebasis10 und was ... macht Z ? Könnt ihr mir dort helfen? Danke :)[/color]
    B10: Wertbasis10 := StrToInt(Z);
    B16: sedezimal_nach_dezimal (Z, Wertbasis10);
  end;
end;

function TZahl.getBasis : string;
begin
  Case Basis of
    B2 : result := '2';
    B10 : result := '10';
    B16 : result := '16';
  end;
end;

function TZahl.getZahl : string;
var puffer : string;
begin
  puffer := '';
  Case Basis of
    B2: Begin
          dezimal_nach_dual (Wertbasis10, puffer);
          result := puffer;
        end;
    B10: result := IntToStr(Wertbasis10);
    B16: begin
           dezimal_nach_sedezimal(Wertbasis10, puffer);
           result := puffer;
         end;
  end;
end;

end.

Unit ZahlKonv;

{ OSZ Energietechnik I,
  Fb Informatik,
  Christian Steinbrucker,
  2001, siehe alte Version von 1996 noch ohne Type STRING
}


Interface

Procedure dezimal_nach_dual ( DezZahl : Integer;
                                  Var DualZahl: String);
Procedure dezimal_nach_sedezimal ( DezZahl : Integer;
                                  Var SedZahl : String);
Procedure sedezimal_nach_dezimal ( SedZahl : String;
                                  Var DezZahl : Integer);
Procedure dual_nach_dezimal ( DualZahl: String;
                                  Var DezZahl : Integer);

Implementation { ========================================================== }
Uses SysUtils, UZahlensysteme;
{ ----------------------------- private Operationen ----------------------- }

Function Potenz ( Basis, Exponent : Integer ) : Integer;
Var Zaehler, Ergebnis : Integer;
Begin
  Ergebnis := 1;
  For Zaehler := 1 TO Exponent DO
    Ergebnis := Ergebnis * Basis;
  Potenz := Ergebnis;
End;

Procedure Zahl_traversieren ( Zahlin: String;
                                 Var Zahlout: String);
Var Stelle,
    Laenge: Integer;
Begin
  Laenge := Length(ZahlIn);
  For Stelle := 0 To Laenge Do
    ZahlOut [Stelle] := ZahlIn [Laenge - Stelle];
End;

{ ------------------------- öffentliche Operationen ----------------------- }

Procedure dezimal_nach_dual ( DezZahl : Integer;
                             Var DualZahl: String);
Var DualZaehler: Byte;
    S: string [1];
Begin
  DualZahl := '0000000000000000';
  DualZaehler := 0;
  While DezZahl > 0 Do
    Begin
      DualZaehler := DualZaehler + 1;
      Str(DezZahl Mod 2, S);
      DualZahl [DualZaehler] := S[1];
      DezZahl := DezZahl Div 2;
    End;
  Zahl_traversieren (DualZahl, DualZahl);
End;

Procedure dezimal_nach_sedezimal ( DezZahl: Integer;
                                  Var SedZahl: String);
Var DezZaehler : Integer;
Begin
  DezZaehler := 0;
  Sedzahl:=' ';
  While (Dezzahl > 0) Do
    Begin
      DezZaehler := DezZaehler + 1;
      Case DezZahl Mod 16 Of
        0: Sedzahl [DezZaehler] := '0';
        1: Sedzahl [DezZaehler] := '1';
        2: Sedzahl [DezZaehler] := '2';
        3: Sedzahl [DezZaehler] := '3';
        4: Sedzahl [DezZaehler] := '4';
        5: Sedzahl [DezZaehler] := '5';
        6: Sedzahl [DezZaehler] := '6';
        7: Sedzahl [DezZaehler] := '7';
        8: Sedzahl [DezZaehler] := '8';
        9: Sedzahl [DezZaehler] := '9';
        10: Sedzahl [DezZaehler] := 'A';
        11: Sedzahl [DezZaehler] := 'B';
        12: Sedzahl [DezZaehler] := 'C';
        13: Sedzahl [DezZaehler] := 'D';
        14: Sedzahl [DezZaehler] := 'E';
        15: Sedzahl [DezZaehler] := 'F';
      End;
      DezZahl := DezZahl Div 16;
    End;
  Zahl_traversieren (SedZahl, SedZahl);
End;

Procedure sedezimal_nach_dezimal ( SedZahl: String;
                                  Var DezZahl: Integer);
Const Basis = 16;
Var Exponent: Integer;
      laenge : Integer;
Begin
  DezZahl := 0;
  laenge := Length(SedZahl);
  For Exponent := 0 TO 3 Do
    CASE SedZahl [ laenge - Exponent ] OF
      '0': DezZahl := DezZahl + 0 * Potenz (Basis, Exponent);
      '1': DezZahl := DezZahl + 1 * Potenz (Basis, Exponent);
      '2': DezZahl := DezZahl + 2 * Potenz (Basis, Exponent);
      '3': DezZahl := DezZahl + 3 * Potenz (Basis, Exponent);
      '4': DezZahl := DezZahl + 4 * Potenz (Basis, Exponent);
      '5': DezZahl := DezZahl + 5 * Potenz (Basis, Exponent);
      '6': DezZahl := DezZahl + 6 * Potenz (Basis, Exponent);
      '7': DezZahl := DezZahl + 7 * Potenz (Basis, Exponent);
      '8': DezZahl := DezZahl + 8 * Potenz (Basis, Exponent);
      '9': DezZahl := DezZahl + 9 * Potenz (Basis, Exponent);
      'A': DezZahl := DezZahl + 10 * Potenz (Basis, Exponent);
      'B': DezZahl := DezZahl + 11 * Potenz (Basis, Exponent);
      'C': DezZahl := DezZahl + 12 * Potenz (Basis, Exponent);
      'D': DezZahl := DezZahl + 13 * Potenz (Basis, Exponent);
      'E': DezZahl := DezZahl + 14 * Potenz (Basis, Exponent);
      'F': DezZahl := DezZahl + 15 * Potenz (Basis, Exponent);
      'a': DezZahl := DezZahl + 10 * Potenz (Basis, Exponent);
      'b': DezZahl := DezZahl + 11 * Potenz (Basis, Exponent);
      'c': DezZahl := DezZahl + 12 * Potenz (Basis, Exponent);
      'd': DezZahl := DezZahl + 13 * Potenz (Basis, Exponent);
      'e': DezZahl := DezZahl + 14 * Potenz (Basis, Exponent);
      'f': DezZahl := DezZahl + 15 * Potenz (Basis, Exponent);
    End;
End;

Procedure dual_nach_dezimal ( DualZahl: String;
                             Var DezZahl : Integer);
Var Exponent,
    laenge : Integer;
Begin
  DezZahl := 0;
  laenge := length(Dualzahl);
    For Exponent := 0 To 15 Do
      If DualZahl [laenge - Exponent] = '1Then
        DezZahl := DezZahl + Potenz (2, Exponent);
End;

Begin

End.

Entschuldigt aber ich weiss nicht wie man das in rot schreibt und wie ich es besser einrücken kann.

mfg
Lun87
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz