Re: Delphi - Code Hilfe
...schau mal in meinen Beitrag :mrgreen:
|
Re: Delphi - Code Hilfe
Zitat:
Delphi-Quellcode:
if IsLeapYear(2007) then Caption:='Schaltjahr'
else Caption:='Kein Schaltjahr'; |
Re: Delphi - Code Hilfe
Zitat:
hier funktioniert die Seite, aber keine Datei zum downloaden!^^ |
Re: Delphi - Code Hilfe
bräuchte noch eine letzte hilfe!
und zwar! wenn ich das so schreibe hier! function IsLeapYear(Year: Word): Boolean; begin Result := ((Year mod 19 = 0) or (Year mod 4 = 0) or (Year mod 7 = 0)) and ((Year mod 100 <> 0) or (Year mod 400 = 0)); end; kommt dieser Error: expected END but received FUNCTION at line ... kann mir einer erklären warum!? hier finde ich nichts und google spuckt auch nichts aus! bitte um schnelle hilfe! |
Re: Delphi - Code Hilfe
Du musst die Funktion nicht kopieren, sondern nur verstehen, was du anscheindend nicht tust!
Der Befehl "mod" heißt ausgeschrieben "Modulo" (Siehe Wikipedia). Und zwar gibt dir Modulo den Rest von zwei Ganzzahlen an. Das Jahr 2000 nehmen wir als Beispiel: 2000 mod 1000 => 0 Dann mit dem Jahr 2007: 2007 mod 1000 => 7 Und dass musst du nun mit allen Überprüfen. Das macht man, wenn man ein Neuling ist mit If.
Delphi-Quellcode:
Zu Deutsch:
if <Bed> then
begin <Anw. 1>; <Anw. 2>; . . . end;
Code:
Zusätzlich kannst du auch mit "else" überprüfen, ob der Fall nicht zutrifft:
Wenn Bedingung (<Bed>) erfüllt, dann
beginne Anweisung 1 Anweisung 2 . . . ende
Delphi-Quellcode:
Zu Deutsch:
if <Bed> then
begin <Anw. 1>; <Anw. 2>; . . . end else if <Andere Bed> then begin <Anw. 3>; <Anw. 4>; . . . end; else begin <Anw. 5>; <Anw. 6>; . . . end;
Code:
Also musst du zuerst überprüfen, ob der Rest (siehe Modulo) von 1000 gleich 0 ist. Wenn dem so ist, dann ist es ein Schaltjahr... Ansonsten musst du überprüfen ob der Rest von 100 nicht 0 ist, oder der Rest von 4 wieder null ist:
Wenn Bedingung (<Bed>) erfüllt, dann
beginne Anweisung 1 Anweisung 2 . . . ende ansonsten wenn andere Bedingung (<Andere Bed>) erfüllt, dann beginne Anweisung 3 Anweisung 4 . . . ende ansonsten beginne Anweisung 5 Anweisung 6 . . . ende
Delphi-Quellcode:
Logisches Oder
if (<Bed 1>) or (<Bed 2>) then
Delphi-Quellcode:
Logisches Und
if (<Bed 1>) and (<Bed 2>) then
Das dürfte erstmal reichen! PS: Bist du dir sicher, dass du erst 2-3 Tage mit Delphi programmiert hast? Ich würde erstmal so die Grundtechniken lernen. Die DSDT sollte dir da helfen. |
Re: Delphi - Code Hilfe
ja bin ich!
ich hab sonst nur 4 Jahre VB programmiert!^^ aber wenn ich das so programmiere in VB, dann funktioniert!^^ kein plan warum^^ außerdem, die Grundlagen haben wir nicht gemacht^^! sondern nur was der unterschied zwischen VB und Delphi is |
Re: Delphi - Code Hilfe
Zitat:
Aber ich hoffe, du hast den Zweck verstanden ;) Du kannst ja zwei Funktionen deklarieren:
Delphi-Quellcode:
In den beiden Funktionen machst du je eine Aufgabe ;) Ist dann ein bisschen getrennter, und kommt nicht durcheinander.
function IsLeapYear(AYear : Integer) : Boolean;
function EasterSunday(AYear : Integer) : Integer Nun zum "EasterSunnday": Diese Funktion gibt dir "d + e" wieder (da ist es egal, ob März oder April). Dann kannst du in der "Berechnen"-Methode daraus errechnen, ob es April oder März ist. Es ist der März, wenn der Rückgabewert + 22 nicht größer als 31 ist. Ansonsten ist es der April! Kleiner Tipp: Speichere den Rückgabewert in einer Variable. |
Re: Delphi - Code Hilfe
Zitat:
Gruß Alexander |
Re: Delphi - Code Hilfe
gg!;)
danke! sollte ich das LipYear da nicht mit string definieren!?? sry, aber die links funktionieren noch immer nicht! :( |
Re: Delphi - Code Hilfe
Ne ;) Du musst ja nur wissen, ob es ein "LeapYear" ist ;)
Delphi-Quellcode:
Es wäre auch so möglich:
if IsLeapYear(...) then
lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist ein Schaltjahr' else lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist kein Schaltjahr'
Delphi-Quellcode:
var
modifier : string; if IsLeapYear(...) then modifier := 'ein' else modifier := 'kein' lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist ' + modifier + ' Schaltjahr' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr. |
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