Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Problem mit if abfrage (https://www.delphipraxis.net/104740-problem-mit-if-abfrage.html)

holz-felix 10. Dez 2007 17:20


Problem mit if abfrage
 
Hallo,

ich hab folgendes problem:

ich habe eine rechnung, deren ergebnis nicht negativ (sprich unter null) sein darf.

falls dies doch der fall sein sollte, soll zu meinem ergebnis solange 7 addiert werden, bis eine positive zahlt entsteht.

ich habe es mit:
Delphi-Quellcode:
if w < 0 
then w:= w + 7;
probiert, aber dies funktioniert leider nicht

hat mir vielleicht jemand einen lösungsvorschlag?

wäre echt cool

MFG Holz

DeddyH 10. Dez 2007 17:22

Re: Problem mit if abfrage
 
Solange, bis -> repeat ... until bzw. while ... do

holz-felix 10. Dez 2007 17:24

Re: Problem mit if abfrage
 
[delphi]while w = 0
do w:= w + 7;
repeat until w > 0; [/delphi}

funktioniert nicht

DeddyH 10. Dez 2007 17:24

Re: Problem mit if abfrage
 
Delphi-Quellcode:
while w < 0 do
  w := w + 7;

holz-felix 10. Dez 2007 17:26

Re: Problem mit if abfrage
 
geht immer noch nicht

hier mal den vollständigen quelltext:

Delphi-Quellcode:
procedure TForm1.OnClick(Sender: TObject);
var t, m, j, w, y, c: integer;
begin
 // t = Tag, m = Monat, j = Jahr
 t := StrToInt (Edit1.Text);
 m := StrToInt (Edit2.Text);
 j := StrToInt (Edit3.Text);

 // Zusatzangaben vom Aufgabenblatt
 y := j mod 100;
 c := j div 100;

 // Rechnung
 w := (t+(13*(m+1))div 5 + y + y div 4 + c div 4 - 2*c) mod 7;

 // Abfragen für w --> Welcher Wochentag ist?
 if (w = 1)
 then Edit4.Text := 'Sonntag';
 if (w = 2)
 then Edit4.Text := 'Montag';
 if (w = 3)
 then Edit4.Text := 'Dienstag';
 if (w = 4)
 then Edit4.Text := 'Mitwoch';
 if (w = 5)
 then Edit4.Text := 'Donnerstag';
 if (w = 6)
 then Edit4.Text := 'Freitag';
 if (w = 0)
 then Edit4.Text := 'Samstag';

 // Problem für Zahlen die Kleiner 0 Werden --> Entsteht im Januer und Februar
while w < 0 do
  w := w + 7;


end;
vielleicht mach ich ja was anderes falsch

DeddyH 10. Dez 2007 17:33

Re: Problem mit if abfrage
 
Ganz am Ende der Prozedur nützt das ja auch nichts mehr.
Delphi-Quellcode:
procedure TForm1.OnClick(Sender: TObject);
var t, m, j, w, y, c: integer;
begin
  // t = Tag, m = Monat, j = Jahr
  t := StrToInt (Edit1.Text);
  m := StrToInt (Edit2.Text);
  j := StrToInt (Edit3.Text);

  // Zusatzangaben vom Aufgabenblatt
  y := j mod 100;
  c := j div 100;

  // Rechnung
  w := (t+(13*(m+1))div 5 + y + y div 4 + c div 4 - 2*c) mod 7;

  // Problem für Zahlen die Kleiner 0 Werden --> Entsteht im Januer und Februar
  while w < 0 do
    w := w + 7;

{mach das besser mit case
  // Abfragen für w --> Welcher Wochentag ist?
  if (w = 1)
    then Edit4.Text := 'Sonntag';
  if (w = 2)
    then Edit4.Text := 'Montag';
  if (w = 3)
    then Edit4.Text := 'Dienstag';
  if (w = 4)
    then Edit4.Text := 'Mitwoch';
  if (w = 5)
    then Edit4.Text := 'Donnerstag';
  if (w = 6)
    then Edit4.Text := 'Freitag';
  if (w = 0)
    then Edit4.Text := 'Samstag';}
  case w of
    1: Edit4.Text := 'Sonntag';
    2: Edit4.Text := 'Montag';
    //... etc.
  end;

end;

DP-Maintenance 10. Dez 2007 17:34

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

holz-felix 10. Dez 2007 19:36

Re: Problem mit if abfrage
 
danke so funktionierts

echt vielen lieben dank

grenzgaenger 10. Dez 2007 23:08

Re: Problem mit if abfrage
 
hallo holzi,

kannst mal sagen was dein qText so macht???? ich hab hier keinen plan...

etwas programmdokumentation würd schon gut tun...

sonst gibts nur suboptimale lösungen...

alzaimar 11. Dez 2007 06:41

Re: Problem mit if abfrage
 
Zu einem Datum den Wochentag berechnen. Ja, das geht auch einfacher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz