![]() |
Delphi - Code Hilfe
Liste der Anhänge anzeigen (Anzahl: 2)
So
da ich ja erst vor ein paar Tagen begonnen hab mit Delphi! kommt mir schon das erste Problem hier: Die PDF Datei ist die Aufgaben Stellung! Ich hab keine Ahnung welche Datei ich hochstellen muss damit ihr Programm + Code seht! also bitte sagen wenn es falsch ist! Meine 2 Probleme! 1) Ich weiß nicht wie man das Schaltjahr ausgibt es sollen ja 3 Zeilen sein und dabei soll in der 3ten ausgegeben werden, wenn man jetz in die TxtBox 2000 reinschreibt! das es ein schaltjahr ist! tut es aber nicht :( bitte um code-hilfe 2) Wenn ich 1988 eingebe ist kommt 4.April raus, wenn ich 1989 eingebe, dann kommt -4. April raus, oder umgekehrt! Bitte mir dabei auch helfen! danke!!! |
Re: Delphi - Code Hilfe
Forensuche benutzen, dass hatten wir erst. Danke.
|
Re: Delphi - Code Hilfe
hab ich schon gemacht!
habe auch da so einige beispiele gefunden! aber keines das mir weiterhilft^^ |
Re: Delphi - Code Hilfe
Ich hatte keine Lust den PDF runterzuladen, denke aber das es um Ostern und Feiertage geht. So was habe ich acuh schon für die Schule gemacht und openscource ins Netz gestellt, (in Turbo Pascal).
Schau mal hier: ![]() Schaltjahr ist dabei. PS:@Muhkuh: Neues Avatar |
Re: Delphi - Code Hilfe
Zitat:
da Du in der DP angemeldet bist, hast Du Dich ja mit den Forensregeln einverstanden erklärt und damit ist Dir sicherlich auch klar, dass Dir keiner Deine Aufgaben lösen wird. Was Du aber ohne Probleme sofort bekommst ist Hilfe, so dass Du Dein Problem einfach selbst lösen kannst. Damit man Dir bestmöglich helfen kann ist es immer wichtig, dass Du gut und ausführlich erklärst, wo genau dein Problem liegt. Genau das gleiche wirst Du dann hoffentlich auch in den Antworten wieder finden. Wichtig ist nicht nur die Aufgabe zu kennen, wichtig ist auch, dass die Leute wissen wo Du gerade hängst. Deshalb die Frage: "Was genau klappt denn bei Dir nicht? Wie hast Du es im Moment versucht? Was davon kannst Du schon, wo fehlt Dir welches Wissen?" Fangen wir mit 1) an. Weißt Du denn generell wie man raus bekommt wann ein Schaltjahr ist? Wenn nicht, wo hast Du schon danach gesucht? Solltest auf jeden Fall bei Google etwas zu dem Thema finden. Ohne jegliche Garantie, dass es stimmt würde ich sagen, dass die Regeln grob waren: alle 4 Jahre ist ein Schaltjahr, alle 100 wieder nicht, alle 1000 aber schon. Schlag lieber nach ob das Stimmt. Das wichtige ist jetzt, dass Du die Reihenfolge beachtest, 1000 ist durch 4 und durch 100 teilbar, 100 ist durch 4 teilbar, also musst Du schauen, dass die größte Zahl immer alle anderen dominiert. Wenn Du durch 1000 (ohne Rest) teilen kannst, brauchst Du nicht mehr schauen ob die Zahl auch durch 100 teilbar ist (ist immer der Fall!), der Jahr ist auf jeden Fall Schaltjahr. Ist ein Jahr nicht durch 1000 aber durch 100 teilbar, dann ist es definitiv kein Schaltjahr, auch wenn es (immer) durch 4 teilbar ist. Denke das Prinzip sollte klar sein. Was Du also machen musst ist schauen, ob einer dieser Fälle zu trifft. Ist dies der Fall, gilt das, was die entsprechende Regel besagt. Ist dies nicht der Fall, dann wird es auch kein Schaltjahr sein. Was 2) angeht, so wäre es schön, wenn Du hier sagen könntest wie Du vorgehst. Es gibt ja auf dem Zettel etwas wie a, b, ..., e, M, N, wie berechnest Du diese? Das ganze kannst Du direkt in den Beitrag einfügen, dafür findest Du während Du schreibst einen Button, auf dem Delphi-Code steht. Drückst Du den, kannst Du Code posten, ein zweites Drücken (da ist dann ein * hinter) beendet den Bereich, in dem Du Code postest. So kannst Du leicht zeigen, wie Du die entsprechenden Werte berechnest. Schreib aber bitte auch dazu, warum Du das jeweils so machst (Kommentare). Gruß Der Unwissende |
Re: Delphi - Code Hilfe
versteht das hier keiner?
Ich habe es selber gemacht und jetz hänge ich beim schaltjahr! wie man das ausrechnet bzw. schreibt ich programmiere mit delphi erst 2-3 tage und in keinem Turtoral steht irgendetwas und in der schule hat es mir keiner erklärt^^ |
Re: Delphi - Code Hilfe
Zitat:
Wie man es ausrechnet kannst Du leicht bei Google finden ![]() ![]() Weiter geht es mit dem Ausrechnen, da kannst Du doch (ohne eine Zeile Code) kurz sagen, wie man das machen soll: Zitat:
|
Re: Delphi - Code Hilfe
Ich bin zwar kein Mod aber vllt könntest du dem Thread eine ausschlaggebendere Überschrift geben... :wink:
//Edit: Rechtschreibung ;) |
Re: Delphi - Code Hilfe
Die Schaltjahrermittlung ist in der VCL schon enthalten.
In der Unit SysUtils gibt es die Funktion IsLeapYear(). Hier der Sourcecode dazu:
Delphi-Quellcode:
Bitte lies dir nochmals die 1. Anwort den Unwissenden durch!
function IsLeapYear(Year: Word): Boolean;
begin Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0)); end; Er hat lang und breit erklärt, wie du deine Fragen stellen sollst, aber mir scheint, das ist noch nicht ganz angekommen. |
Re: Delphi - Code Hilfe
Hi!
Außerdem würde ich dich bitten, den Titel deines Beitrages noch anzupassen (möglich durch editieren des ersten Beitrags) - Hilfe brauchen hier schließlich viele ;) Ciao, Frederic |
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 ![]() Und zwar gibt dir Modulo den ![]() ![]() 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 ![]()
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:
if (<Bed 1>) or (<Bed 2>) then
![]()
Delphi-Quellcode:
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 ![]() |
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 03:45 Uhr. |
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