Zum Inhalt springen

Formel zur Berechnung von Schaltjahren in C++/CLI


CLaudelina

Empfohlene Beiträge

Sehr gute Formel zur Schaltjahrberechnung,

ist ein Quellcode Ausschnit aus einer Prüfungsaufgabe von mir.

boolErgebnisschalt=!(intJahrzahlein%4)==!(intJahrzahlein%100)==!(intJahrzahlein%400);

Die Auswertung erfolgt über if else.

intJahrzahlein ist eine normale Int32 Variable zur Jahr eingabe.

boolErgebnisschalt Booleanvariable zur Ausgabe Schaltjahr Ja oder Nein.

MFG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sehr gute Formel zur Schaltjahrberechnung,

ist ein Quellcode Ausschnit aus einer Prüfungsaufgabe von mir.

Du solltest auch sagen, nach welchem Maßstab dieser Code sehr gut sein soll.

Geschwindigkeit, Länge, Verständlichkeit?

Sehr gut wäre dieser Code für mich allenfalls dann, wenn das Ziel lautet, die Verständlichkeit zu verringen oder den Wartungsaufwand zu erhöhen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)

{

//Variablen Vereinbahrung

Int32 intJahrzahlein,intProgendeja;

Boolean boolErgebnisschalt;

//Programmende while Schleife

while (intProgendeja=106) {

//Consolenanweisung

Console::Clear();

Console::WriteLine("\n\t\"Programm zum berechnen von Schaltjahren\"\n");

Console::Write("Bitte geben Sie eine Jahreszahl ein: ");

//Vereinbaren einer Lokalen Variable

//Abfangen einer fehleingabe

//Einlesen der Jahrzahl

{ Boolean boolAbfangein = false;

while (boolAbfangein==false)

try {

intJahrzahlein=Convert::ToInt32(Console::ReadLine());

boolAbfangein=true;

}

catch (...) {

Console::Write("\nEingabe falsch, Bitte geben Sie eine Jahreszahl ein...");

}

}

//Rechenformel und Auswertung

boolErgebnisschalt=!(intJahrzahlein%4)==!(intJahrzahlein%100)==!(intJahrzahlein%400);

if (boolErgebnisschalt)

Console::WriteLine("\nDas Jahr: {0} ist ein Schaltjahr.",intJahrzahlein);

else {

Console::ForegroundColor=ConsoleColor::Red;

Console::WriteLine("\nDas Jahr: {0} ist kein Schaltjahr.",intJahrzahlein);

Console::ForegroundColor=ConsoleColor::Green;

}

Console::WriteLine("\nFormel: {0} = !({1} % 4 {2}) == !({1} % 100 {3}) == !({1} % 400 {4})",boolErgebnisschalt,intJahrzahlein,!(intJahrzahlein%4),!(intJahrzahlein%100),!(intJahrzahlein%400));

//Programmende while Schleife

Console::Write("\nWollen Sie das Programm beenden j/n : ");

intProgendeja=Convert::ToInt32(Console::Read());

Console::ReadLine();

if (intProgendeja==106)

break;

}

Console::WriteLine();

return 0;

}

//Schaltjahr mit guter Formel

//Ich liebe blöde Komentare

//Vorallem von sogenanten Modoratoren

//Ohne anung von allem

//Ps ; bay bay

Link zu diesem Kommentar
Auf anderen Seiten teilen

//Schaltjahr mit guter Formel

//Ich liebe blöde Komentare

//Vorallem von sogenanten Modoratoren

//Ohne anung von allem

was ist denn an der formel gut?

Du ermittelst doch bloß ob Schaltjahr oder nicht :confused:

ist halt das übliche und simple verfahren wie man feststellt ob ein jahr ein schaltjahr ist oder nicht

udn vorallem, wieso nutzt du nicht die möglichkeiten des .net frameworks?

tipp: DateTime.isLeapYear() oder in halt DateTime::isLeapYear ...fertig man muss das rad ja nicht neu erfinden ^^

naja wie dem auch sei

Bearbeitet von Hardcorecoder
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich will hir gerne auf geistiger ebene weitermachen

Einsicht ist der beste Weg zur Besserung. ;-)

Eventuell solltest Du Deine Methode (Funktion) schreiben, dass diese in jeden System genutzt werden kann. Derzeit kann ich Deine Formel nur in einer Konsolen-Anwendung nutzen. Tipp: Nutze bitte die Code-Tags. Damit lässt sich der Code besser lesen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich mache daraus ein echtes Programm

Mit Windows Fenster

MFG

Eben nicht. Was ist, wenn ich einmal die Methode für eine Konsole und dann wieder für eine Windows-Forms Anwendung benötige?

Es gibt ein Prinzip, dass da heißt. "Don't repeat yourself". Wiederhole dich nicht.

Mach eine Methode daraus, die unabhängig des benutzen UserInterfaces ist.

PseudoCode:


public bool IsLeapYear(int year)

{

  ..

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...