Einzelnen Beitrag anzeigen

malibu85

Registriert seit: 27. Dez 2007
45 Beiträge
 
#4

Re: einzelne Zeichen eines Strings einlesen

  Alt 12. Mär 2008, 20:43
habe den folgenden Algorithmus geschrieben. Er funktioniert um die Quersumme zu berechnen. Allerdings ruft er eine Hand voll Fehlermeldungen aus wobei das Ergebnis immer richtig ist.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a:Array of integer;


implementation

{$R *.dfm}



                        procedure Quersumme;
                        var s:String;
                        c:char;
                        x1,x2,v:integer;

                        begin
                        with form1 do
                        begin

                        s:=Edit1.Text;
                        x1:=length(s);
                        label3.caption:=IntToStr(x1);
                        SetLength(a,x1);
                            for x2:=1 to x1 do
                            begin
                            a[x2]:=StrToInt(s[x2]);
                            end;
                            for x2:=0 to x1 do
                            begin
                            v:=v+a[x2];
                            end;

                            label4.Caption:=IntToStr(v);
                        end;
                        end;









procedure TForm1.Button1Click(Sender: TObject);
begin
Quersumme;
end;

end.
etwas verwundert bin ich über die erste For-Schleife
Delphi-Quellcode:
for x2:=1 to x1 do
                            begin
                            a[x2]:=StrToInt(s[x2]);
                            end;
hätte x am liebsten 0 zugewiesen und die Abbruchbedingung x-1.Mit der Begründung, dass das erste Array-element ja eigentlich a[0] ist aber wahrscheinlich ist das egal ob die Zahlenkette bei a[0] oder [1] anfängt. Im Grunde habe ich das so gemacht weil ich auf s[0} nicht zugreifen darf.

Meine Frage, gibt es ne Musterlösung die weniger problematisch ist?
  Mit Zitat antworten Zitat