www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de