AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Erstellen eines Datum-überprüfers

Ein Thema von Mo53 · begonnen am 16. Mai 2021 · letzter Beitrag vom 17. Mai 2021
Antwort Antwort
Seite 1 von 2  1 2      
Delphi.Narium

Registriert seit: 27. Nov 2017
2.554 Beiträge
 
Delphi 7 Professional
 
#1

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 12:53
Frage: Geht es darum Delphi zu lernen oder darum die Grundlagen der Kalenderberechnung zu lernen?
  Mit Zitat antworten Zitat
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 13:23
Vielen Dank für eure Mühe,
Sorry für die schlechte Lesbarkeit, ich bin noch ein blutiger Anfänger der vor zwei Wochen bei null angefangen hat.
Schleifen sowie function haben wir noch nicht gehabt und dürfen wir somit auch noch nicht verwenden.
Ich werde es mal mit dem Debugger durchgehen vielleicht finde ich das Problem.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 13:34
Zitat:
und dürfen wir somit auch noch nicht verwenden.
So eine Fachhochschule, die die Schüler scheinbar systematisch auf niedrigem Niveau hält, würde ich sofort verlassen.
Wäre ich dort, würde ich alles verwenden, was ich kenne, und nicht das, was ich darf.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 13:54
Delphi-Quellcode:
program ueb03;
{$APPTYPE CONSOLE}
{$R+,Q+ X-}

uses
  System.SysUtils;

var
  Tag: integer;
  Monat: integer;
  Jahr: integer;

begin

  write('Bitte den Tag eingeben ');
  readln(Tag);
  write('Bitte den Monat eingeben ');
  readln(Monat);
  write('Bitte das Jahr eingeben ');
  readln(Jahr);

  if (Tag >= 1) and (Tag <= 31) then
    if (Monat >= 1) and (Monat <= 12) then
      if (Jahr >= 1) and (Jahr <= 3000) then

      begin
        if (Jahr mod 4 = 0) and (Jahr mod 100 <> 0) or (Jahr mod 400 = 0) then
          if (Tag = 29) then
            case Monat of
              2:
                writeln(Tag, ' ist zulässig');
            end;

        begin
          if (Tag <= 31) then

            case Monat of
              1, 3, 5, 7, 8, 10, 12:
                writeln('Der ', Tag, '. ist gültig.')
            end;

          begin
            if (Tag <= 30) then

              case Monat of
                4, 6, 9, 11:
                  writeln('Der ', Tag, '. ist gültig')
              end

            else
              writeln(Tag, '.', Monat, '.', Jahr, ' ist unzulässig.');
            readln;
          end;
        end;
      end

      else
      begin
        writeln('Jahr ungültig.');
        readln;
      end

      else
      begin
        writeln('Monat ungültig.');
        readln;
      end

      else
      begin
        writeln('Tag ungültig.');
        readln;
      end;

end.
Habe mir erlaubt den Quelltext zu formatieren und im Delphi Tag einzubetten. (Aber nichts getestet oder daran verändert.)
@DieDolly! Helfe ihm doch einfach als über ihn herzuziehen er kann nichts für die Vorschriften die man ihm auferlegt.

Just my 2 Cent!
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 13:55
Es ist jedem Schüler oder Studenten selber überlassen, seinen Code so anzulegen, dass er verständlich ist.
Da interessiert es wenig, was eine Lehrperson dazu sagt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#6

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 13:55
Einige Ausgaben sind mit einem ReadLn am Ende, aber andere nicht.
Wobei, wenn alle Ausgaben es hätten, dann würde es auch reichen das hinter allem Code zu machen, also nur einmal ganz am Ende.


Vor allem ist eine halbwegs orgendliche Formatierung/Einrückung auch dafür gut, dass man den Programmablauf besser erkennen kann.
Das, was man mit dem Debugger physisch machen kann, kann man so auch mit dem Finger durchgehn,
also wo wann das Programm durchläuft, wenn man sich eine gewisse Anfangsbedingung (Tag/Monat/Jahr) überlegt hat.

Ja, der Style-Guide ist mehr ein Vorschlag und keine Pflicht, aber um erstmal überhaupt ein bischen Struktur in seinen Code zu bekommen, darf man da gern sich das Eine oder Andere abgucken.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Mai 2021 um 14:01 Uhr)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#7

AW: Erstellen eines Datum-überprüfers

  Alt 17. Mai 2021, 20:45
So eine Fachhochschule, die die Schüler scheinbar systematisch auf niedrigem Niveau hält, ...
Soso, Kulturkritik, aber dann den Unterschied zwischen "scheinbar" und "anscheinend" nicht kennen... Wenn die Schule die Schüler nur scheinbar auf niedrigem Niveau hält, dann ist ja alles bestens.
  Mit Zitat antworten Zitat
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 14:05
Ich habe jetzt das nochmal überarbeitet und zusammengefasst, jetzt besteht aber das Problem das das Programm nach der Abfrage des Datums endet.
Der Debugger hat mir hierzu auch nichts mitgeteilt.

Delphi-Quellcode:
{$APPTYPE CONSOLE}
{$R+,Q+ X-}

uses
  System.SysUtils;


var
  Tag: integer;
  Monat: integer;
  Jahr: integer;


begin

  write('Bitte den Tag eingeben ');
  readln(Tag);
  write('Bitte den Monat eingeben ');
  readln(Monat);
  write('Bitte das Jahr eingeben ');
  readln(Jahr);



      if (Tag >= 1) and (Tag <= 31) then
       if (Monat >= 1) and (Monat <= 12) then
        if (Jahr >= 1) and (Jahr <= 3000)then



                begin
                 case Monat of
                 2: if(Jahr mod 4 = 0) and (Jahr mod 100 <> 0) or (Jahr mod 400 = 0) and (Tag = 29)
                 then writeln(Tag,' ist zulässig');
                 1,3,5,7,8,10,12: if (Tag <= 31) then writeln('Der ',Tag,'. ist gültig.');
                 4,6,9,11: if (Tag <= 30) then writeln('Der ',Tag,'. ist gültig.');
                else
                writeln('ungültig')
                end;
                end


      else
      begin
      writeln('Jahr ungültig.');
      readln;
      end

     else
     begin
     writeln('Monat ungültig.');
     readln;
     end

    else
    begin
    writeln('Tag ungültig.');
    readln;
    end;



  end.
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#9

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 14:06
vielleciht hilft dies : ungetestet

Delphi-Quellcode:
var
Tag: integer;
Monat: integer;
Jahr: integer;
anzahl_tage:Byte;

begin

write('Bitte den Tag eingeben ');
readln(Tag);
write('Bitte den Monat eingeben ');
readln(Monat);
write('Bitte das Jahr eingeben ');
readln(Jahr);

if ((tag>=1) and (tag<=31)) and ((monat>=1) and (monat<=12)) and (jahr>1582) then begin

  if (Jahr mod 4 = 0) and (Jahr mod 100 <> 0) or (Jahr mod 400 = 0) then anzahl_tage:=29 else anzahl_tage:=28;

    case monat of
     1,3,5,7,8,10,12:if (tag>=1) and (tag<=31) then writeln('Datum Ok.') else writeln('Datum nicht Ok.');
     2:if (tag>=1) and (tag<=anzahl_tage) then writeln('Datum Ok.') else writeln('Datum nicht Ok.')
      else
       if (tag>=1) and (tag<=30) then writeln('Datum Ok.') else writeln('Datum nicht Ok.');
   end;
  end else

  writeln('Eingabe ungültig');

    readln;
end.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#10

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 14:12
Zitat:
jetzt besteht aber das Problem das das Programm nach der Abfrage des Datums endet.
Ich habe im ganzen Thread bisher nicht einen Kommentar gesehen, wo der Delphi Style Guide auch nur annähernd respektiert wird.
Respektiert man den, würde man Fehler, so denke ich, sofort finden.

Drückt im Editor mal STRG+D und benutzt begin und end etwas öfter!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 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 by Thomas Breitkreuz