Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi erklärt mir bitte ein programm (https://www.delphipraxis.net/103626-erklaert-mir-bitte-ein-programm.html)

a3rosol 18. Nov 2007 19:50

Re: erklärt mir bitte ein programm
 
helft ihr mir noch mal?
Delphi-Quellcode:
function HexToDec(s:string):integer;
var p:integer;
    c,i:integer;
begin
 p:=0;
 for i:=1 to length(s) do
  begin
   case s[i] of
     '0'..'9': c:=ord(s[i])-ord('0');
     'A'..'E': c:=ord(s[i])-ord('A')+10;
     'a'..'e': c:=ord(s[i])-ord('a')+10;
   end;
   p:=p*16+c;
   end;
 result:=p;
end;

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
     s:= Edit1.Text;
     label1.Caption:= IntToStr(HextoDec(s));
end;
doofer weise bekomme ich ne (warnung)/meldung von wegen
[DCC Warnung] Unit1.pas(40): W1036 Variable 'c' ist möglicherweise nicht initialisiert worden
ich meineaber die variable deklariert zu haben
das ergebnis ist deswegen falsch

Progman 18. Nov 2007 19:54

Re: erklärt mir bitte ein programm
 
c muss am Anfang ebenfalls initialisiert werden, weil es sonst irgendeinen zufälligen Wert haben könnte, das sagt die Meldung aus. Es kann ja vorkommen, dass mal keine case-Bedingung erfüllt ist, dann käme Müll raus :)
...oder so wies grenzgänger gezeigt hat ;)

grenzgaenger 18. Nov 2007 19:55

Re: erklärt mir bitte ein programm
 
Zitat:

Zitat von a3rosol
helft ihr mir noch mal?
Delphi-Quellcode:
function HexToDec(s:string):integer;
var p:integer;
    c,i:integer;
begin
 p:=0;
 for i:=1 to length(s) do
  begin
   case s[i] of
     '0'..'9': c:=ord(s[i])-ord('0');
     'A'..'E': c:=ord(s[i])-ord('A')+10;
     'a'..'e': c:=ord(s[i])-ord('a')+10;
    else c := 0; //else zweig vergessen
   end;
   p:=p*16+c;
   end;
 result:=p;
end;

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
     s:= Edit1.Text;
     label1.Caption:= IntToStr(HextoDec(s));
end;
doofer weise bekomme ich ne (warnung)/meldung von wegen
[DCC Warnung] Unit1.pas(40): W1036 Variable 'c' ist möglicherweise nicht initialisiert worden
ich meineaber die variable deklariert zu haben
das ergebnis ist deswegen falsch


inherited 18. Nov 2007 20:05

Re: erklärt mir bitte ein programm
 
Das geht noch viel einfacher:
Delphi-Quellcode:
function HexToDec(s:string):integer;
begin
  result:=StrToInt('$'+s);
end;

a3rosol 18. Nov 2007 20:37

Re: erklärt mir bitte ein programm
 
vielen lieben dank dass ihr geduldig wart :)
@inherited: es gibt böse menschen die von einem verlangen dass man einfache sachen kompliziert macht...

SirThornberry 18. Nov 2007 21:22

Re: erklärt mir bitte ein programm
 
Zitat:

Zitat von a3rosol
vielen lieben dank dass ihr geduldig wart :)
@inherited: es gibt böse menschen die von einem verlangen dass man einfache sachen kompliziert macht...

Ich glaub diese Leute nennen sich Lehrer. Aber sie meinen es letztendlich gut mit dir. Sie wollen das du Algorythmen verstehst und dich mit den Grundelementen der Sprache befasst. Und da wäre keinem geholfen wenn man einfach fertige Funktionen nimmt.

Thorben_Ko 18. Nov 2007 21:37

Re: erklärt mir bitte ein programm
 
Kenn ich, nennen sich Lehrer -.-


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz