Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit For-Schleife


guido12345 - Sa 12.09.09 10:15
Titel: Problem mit For-Schleife
hallo, ich habe folgende programm ausprobiert, und musste (zu meiner irritation) feststellen, dass es nicht funktoniert??

das programm sieht folgendermaßenaus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure...
var Ausgabe, Eingabe : string;                                       
    x : integer;
begin

Eingabe := Edit1.text;
Ausgabe := ''       ;                                           

for x := length(Edit1.text) to 1 do
begin
Ausgabe := Ausgabe + Eingabe[x]
end;

if Ausgabe = Eingabe
then Label1.caption := 'Polinom.';
else Label1.caption := 'Kein Polinom.'

end;

end.


bitte nur die zeilen von "var" (z.2) bis "end;" (2.letzte zeile) angucken.
also das problem liegt nicht, dass das programm nicht läuft, sondern dass das programm nicht richtig angibt, ob ein wort ein polinom ist oder nicht??(oder es heißt pali... ;) also auf jeden fall oll es überprüfen , ob ein wort rückwärts gelesen das selbe ist wie vorwärts , also z.b. anna oder lagerregal

ps: das programm geht, wenn ich statt der for zeile schreibe: "for x := 1 to length(Edit1.text) do" und dann statt " Ausgabe := Ausgabe + Eingabe[x]" schreibe "Ausgabe := Eingabe[x] + Ausgabe"

ich hoffe ihr könnt mir helfen und vielen dank im vorraus

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Titel geändert, war: "warum funktioniert das nicht???".
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am So 04.10.2009 um 22:49


Gausi - Sa 12.09.09 10:51

Hallo und :welcome: in der Entwickler-Ecke,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Edit: Und das Wort heißt Palindrom. ;-)


jakobwenzel - Sa 12.09.09 11:00

Wenn du "Ausgabe" mal ausgeben würdest, würdest du sehen, dass du das ganze gar nicht umdrehst, sondern das ganze Buchstaben für Buchstaben wieder genau wie am Anfang zusammensetzt.

(siehe Gausi)


Gausi - Sa 12.09.09 11:05

@jakobwenzel: Nein, das ist nicht das Problem. ;-) Er hat ja eine funktionierende Lösung, weiß aber wohl nicht, dass man for-Schleifen von groß nach klein nicht mit to laufen lässt, sondern mit was anderem. Aber das sag ich erst, wenn der Titel schöner ist. :zwinker:


Delete - Sa 12.09.09 12:20

Jetzt mach in doch nicht so downto. ;)


Dude566 - Sa 12.09.09 12:23

Du hast einen Rechtschreibfehler in deinem Programm der sehr unschön ist, ich denke es soll Polynom heißen und nicht Polinom.


alzaimar - Sa 12.09.09 12:30

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Du hast einen Rechtschreibfehler in deinem Programm der sehr unschön ist, ich denke es soll Polynom heißen und nicht Polinom.

Du hast einen Denkfehler in deinem Post, der sehr unschön ist, ich denke es soll Palindrom heißen und nicht Polynom.


nagel - Sa 12.09.09 12:30

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Du hast einen Rechtschreibfehler in deinem Programm der sehr unschön ist, ich denke es soll Polynom heißen und nicht Polinom.

Nein sollte es auch nicht:
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Und das Wort heißt Palindrom. ;-)


Dude566 - Sa 12.09.09 12:38

Ups überlesen...bin noch nicht richtig wach. :P


guido12345 - So 04.10.09 20:43

dankeschöööön :D


der organist - So 04.10.09 20:55

sonst müsste das sich doch auch mit ner simpleren Abfrage regeln lassen, so nach dem Motto:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function Palindrom(AEingabe):Boolean;
begin
  Result:=true;
  for k := 0 to (Length(AEingabe) div 2)+1 do
    if AEingabe[k]<>AEingabe[Length(AEingabe)-k]
      Result:=false;
end;


is mir grad spontan eingefallen....ungetestet


Yogu - So 04.10.09 21:25

Du hast da was vergessen...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function Palindrom(AEingabe):Boolean;
begin
  Result:=true;
  for k := 0 to (Length(AEingabe) div 2)+1 do
    if AEingabe[k]<>AEingabe[Length(AEingabe)-k] then
    begin
      Result:=false;
      Break;
    end;
end;

Hehe, das erste ist mir auch erst gerade eben aufgefallen ;)


der organist - So 04.10.09 21:43

klar, das then fehlt, und das break; machts schöner ;) aber wenn man in dem Forumstexteditor coded, dann darf das auch mal passieren :D