www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++C++ Schaltjahr
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "C/C++" - C++ Schaltjahr
C++ Schaltjahr < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C++ Schaltjahr: unklar
Status: (Frage) beantwortet Status 
Datum: 18:55 Mo 01.02.2010
Autor: niemand0

Aufgabe
Schreibe ein Programm SCHALTJ.C, das eine Jahreszahl als int-Wert von der Tastatur einliest und anschließend ausgibt, ob es sich um ein Schaltjahr handelt oder nicht. Die Bestimmung eines Schaltjahres erfolgt nach der folgenden mehrstufigen
Regel: Wenn die Jahreszahl ohne Rest durch 4 teilbar ist, handelt es sich um ein Schaltjahr.
Ausnahme: Wenn die Jahreszahl auch durch 100 ohne Rest teilbar ist, dann handelt es sich doch nicht um ein Schaltjahr:
Ausnahme von der Ausnahme: Wenn die Jahreszahl durch 400 ohne Rest teilbar ist, dann handelt es sich doch um ein Schaltjahr.  

aloah,
wir arbeiten in informatik mit dev-c++
und ich komme bei dieser aufgabe irgendwie nicht weiter
mein ansatz bis jetzt ist :
/* schaltjahr.C OT23-V 28.1.2010*/
#include <stdio.h>
#include <conio.h>
int main()
{
int jahr=0;
printf("Dieses Programm errechnet ob eine eingegebene Jahrezahl ein Schaltjahr ist:");
printf("Geben sie die Jahreszahl ein:");
scanf("%d", &jahr);
  if (jahr % 4 ==0)
{
  if (jahr % 100==0)
  {
  if (jahr %400 ==0)
   printf("%d ist ein [mm] Schaltjahr.\n", [/mm] jahr);
  else
   printf("%d ist kein [mm] Schaltjahr.\n", [/mm] jahr);
  }
  else
   {
  if (jahr %400 ==0)
   printf("%d ist ein [mm] Schaltjahr.\n", [/mm] jahr);
  else
   printf("%d ist kein [mm] Schaltjahr.\n", [/mm] jahr);
  }
  else
   printf("%d ist [mm] Schaltjahr.\n", [/mm] jahr);
}
  else
   printf("%d ist kein [mm] Schaltjahr.\n", [/mm]  jahr);
return 0;
}

wäre nett wenn mir jemand einen kleinen tipp geben würde :)


        
Bezug
C++ Schaltjahr: Antwort
Status: (Antwort) fertig Status 
Datum: 19:54 Mo 01.02.2010
Autor: Karl_Pech

Hallo niemand0,


Wenn man mit mehreren if-Abzweigungen arbeiten muß, ist es wichtig die if-Blöcke zu kommentieren und visuell einzurücken, um den Überblick nicht zu verlieren. Ich denke, das folgende Programm sollte funktionieren, sofern ich nichts übersehen habe. Ich habe dabei dein Programm genommen und es ein wenig gekürzt.


1: #include <stdio.h>
2:
3: int main() 
4:
5:     int jahr = 0;
6:
7:     printf("Dieses Programm errechnet ob eine eingegebene Jahrezahl ein Schaltjahr ist:");
8:     printf("Geben sie die Jahreszahl ein:");
9:
10:     scanf("%d", &jahr);
11:
12:     /* Regel: Wenn die Jahreszahl ohne Rest durch 4 teilbar ist, ... (3) */
13:     if (jahr % 4 ==0) {
14:         /* Ausnahme: Wenn die Jahreszahl auch durch 100 ohne Rest teilbar ist, ... (1) */
15:         if (jahr % 100==0) {
16:             /* Ausnahme von der Ausnahme: Wenn die Jahreszahl durch 400 ohne Rest teilbar ist, ... (2) */
17:             if (jahr % 400 ==0)
18:                 /* (2) ... dann handelt es sich doch um ein Schaltjahr. */
19:                 printf("%d ist ein Schaltjahr.\n", jahr); 
20:             else
21:                 /* (1) ... dann handelt es sich doch nicht um ein Schaltjahr. */
22:                 printf("%d ist kein Schaltjahr.\n", jahr); 
23:         }
24:         else
25:             /* (3) ... handelt es sich um ein Schaltjahr(, da die erste Ausnahme nicht gilt.) */
26:             printf("%d ist ein Schaltjahr.\n", jahr);
27:     }
28:     else 
29:         printf("%d ist kein Schaltjahr.\n",  jahr);
30:
31:     return 0; 
32: }



Viele Grüße
Karl




Bezug
                
Bezug
C++ Schaltjahr: Antwort
Status: (Antwort) fertig Status 
Datum: 20:03 Mo 01.02.2010
Autor: Sigma

Hallo,

habe deine Code jetzt nicht geprüft. Es geht aber noch etwas kürzer.

Hier mal ein Pseudocode der auch prüft ob x ein Schaltjahr ist oder nicht.

If (((x Mod 4==0) AND (x Mod 100 <>0)) OR (x mod 400==0)) Then

x ist ein Schaltjahr

Else

x ist kein Schaltjahr

gruß sigma

Ps. Schau mal unter Wahrheitstabelle

Bezug
                        
Bezug
C++ Schaltjahr: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:47 Mo 01.02.2010
Autor: Karl_Pech

Hallo Sigma,


> If (((x Mod 4==0) AND (x Mod 100 <>0)) OR (x mod 400==0))
> Then
>  
> x ist ein Schaltjahr
>  
> Else
>  
> x ist kein Schaltjahr

> Ps. Schau mal unter Wahrheitstabelle


Ja, stimmt daran habe ich jetzt gar nicht gedacht:


0## 0
10# 1
110 0
111 1


  0 0  0 1  1 1  1 0
0                 1
1            1    1


A~B + AC


also:


((x % 4 == 0) && (x % 100 != 0)) || ((x % 4 == 0) && (x % 400 == 0))


Da 4 Teiler von 400 ist, gilt das, was du geschrieben hast:


((x % 4 == 0) && (x % 100 != 0)) || (x % 400 == 0)


Alternativ sollte dann aber auch (x % 4 == 0) && ((x % 100 != 0) || (x % 400 == 0)) richtig sein.



Viele Grüße
Karl



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]