Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - for-schleife anzeigen lassen (win-32)
Maisinator - Mi 05.11.08 17:08
Titel: for-schleife anzeigen lassen (win-32)
hallo,
ich hab ein kleines problem
ich soll als HA einen "rechner" programmieren, der guckt, welche 4-stellige zahl, eine bestimmte bedinung erfüllt.
Bsp: 2025-->
20+25=45
45*45=2025
meine quellcode lautet:
var
zahl, vorne, hinten, summe: integer;
begin
for zahl:= 1000 to 9999 do
begin
vorne:= zahl div 100;
hinten:= zahl mod 100;
summe:= vorne+hinten;
end;
end;
nun weiß ich jedoch net, wie ich es schaffe, wenn eine zahl die bedinung erfüllt, dass sie mir dann in meinen label1 angezeigt wird.
kann mir jemand helfen????
(bei einem if-befehl krieg ich immer die meldung: string und integer sind unkompatibel)
nagel - Mi 05.11.08 17:59
Wenn ich deine Aufgabe richtig verstehe, musst du nur noch überprüfen, ob summe*summe das gleiche ist wie zahl; dabei tauchen keine Strings auf.
Hidden - Mi 05.11.08 18:25
Hi und :welcome: im Delphi-Forum,
Du hast dir ja mit den Color-Tags ganz viel Mühe gegeben, spitze :zustimm:
Brauchst du aber nicht, es gibt Delphi-Tags ;)
Delphi-Tags:
1:
| <span class="inlineSyntax"><span class="codecomment">{PROTECTTAGdb7efc0e7442ea39a506ab97ec09eab2}</span></span> |
Einzelne Stellen markierst du mit dem
| Highlight-Tag: |
[highlight] markierte Stelle [/highlight] |
mfG,
demdem - Mi 05.11.08 18:41
Hi Hidden ^^
ich glaube du musst den befehl : InttoStr( 'Zahl') benutzen, damit das Label die Zahl in String konvertieren kann ...
als z.B.
If Bedingung erfüllt, dann kommt X raus ;
Form1.Label1.Caption := inttoStr(X);
glaube ich ^^ ... aber ich bin auch noch ein Anfänger in dem Bereich
Gruß demdem
Maisinator - Mi 05.11.08 23:07
schon ma danke für die antworten!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; end; if zahlneu = zahl then Label1.Caption:= IntToStr (zahlneu); end; |
wenn ich es so mache, krieg ich gar keine zahl im label
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| ar zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; end; Label1.Caption:= IntToStr (zahlneu); end; |
und wenn ichs so mache, wird mir irgendwas mit 39000 angezeigt, dabei will ich ja ne 4-stellige zahl.
weiß noch jemand einen rat????
Martok - Do 06.11.08 00:22
Maisinator hat folgendes geschrieben : |
schon ma danke für die antworten!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; end; if zahlneu = zahl then Label1.Caption:= IntToStr (zahlneu); end; |
wenn ich es so mache, krieg ich gar keine zahl im label |
Ist auch klar, wie ordentliche Formatierung zeigt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; end;
if zahlneu = zahl then Label1.Caption:= IntToStr (zahlneu); end; |
Nach der Schleife ist das relativ sinnlos: :arrow: das
if in den
begin...end-Block der Schleife verschieben.
Maisinator hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| for zahl:= 1000 to 9999 do begin
end; Label1.Caption:= IntToStr (zahlneu); end; |
und wenn ichs so mache, wird mir irgendwas mit 39000 angezeigt, dabei will ich ja ne 4-stellige zahl.
weiß noch jemand einen rat???? |
Wie gesagt... nach der Schleife bringt das nichts. Was du hier machst ist den letzten Wert von zahlneu anzuzeigen (und zwar ohne Bedingung) und das ist (99+99)^2=39204.
cu
Martok
martin300 - Do 06.11.08 01:02
Hi,
eine vierstellige Zahl geht von 0000 bis 9999. In deiner Lösung werden nicht alle Zahlen
abgedeckt. Mein Tipp die Zahlen teilen.
Martok - Do 06.11.08 01:29
Naja. Die 'umgangssprachliche' Variante von vierstellig enthält aber kein Zero-Padding...
Logikmensch - Do 06.11.08 07:03
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; if zahlneu = zahl then begin Label1.Caption:= IntToStr (zahlneu); break; end; end; end; |
Martok - Do 06.11.08 08:57
Beziehungsweise gleich in ein Memo statt ein Label ausgeben, ich vermute ja mal da gibt es mehrere Lösungen.
Maisinator - Do 06.11.08 17:29
und wofür is der brake????
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var zahl, vorne, hinten, summe, zahlneu:integer; begin for zahl:= 1000 to 9999 do begin vorne:=zahl div 100; hinten:= zahl mod 100; summe:= vorne+hinten; zahlneu:= summe*summe; if zahlneu = zahl then begin Label1.Caption:= IntToStr (zahlneu); <span style="color: orange">break;</span> end; end; end; |
aba sonst danke!
ps: wie wärs dann mit nem memo feld????
Martok - Do 06.11.08 18:27
Immer mal Delphi-Hilfe fragen: Cursor im Delphi-Editor auf das Wort, F1 drücken, erleuchtet werden :think:
break verlässt eine Schleife. Hat hier den Zweck dass er nach dem er was ins Label geschrieben hat nicht mehr weitergrübelt. Ansonsten würde er bei ggf. auftretenden weiteren Funden das halt wieder Überschreiben. Deswegen auch das mit dem Memo.
Damit sind wir bei Punkt 2: gleich mal Hilfe nutzen üben ;) Stichwort: TMemo.Lines
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!