Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Funktionen (Call by Value) in C plus plus

Frage Entwicklung C und C++

Mitglied: Abdelhalim

Abdelhalim (Level 1) - Jetzt verbinden

15.11.2006, aktualisiert 16.11.2006, 5236 Aufrufe, 2 Kommentare

Hi Leute ich bin gerade dabei Funktionen (call by value) kennen zu lernen.
ich habe eine Frage die ich noch nicht lösen kann. Wollte mal fragen, ob jemand die Quellcode schreiben könnte und ich Ihn dann mal sehen könnte um ein besseres Verständnis zu bekommen.

Erstellen Sie eine C++ Funktion, mit der man ermitteln kann , ob ein Jahr ein Schaltjahr ist. Es gelten folgende Regeln:

Jahr, die nicht durch 4 ohne Rest teilbar sind , sind keine Schaltjahre.

Ein Jahr, das durch 4, durch 100 und durch 400 ohne Rest teilbar ist, ist ein Schaltjahr.

Ein Jahr, das durch 4 und 100 (und nicht durch 400) ohne Rest teilbar ist, ist kein Schaltjahr.

Ein Jahr, das durch 4 (und nicht durch 100) ohne Rest teilbar ist, ist ein Schaltjahr.

Der Übergabeparameter für die Funktion ist das Jahr (Datentyp:int). Die Funktion sollen an das aufrufende Programm die Anzahl der Tage des Monats Februar zurückgeben, d.h. bei einem Schaltjahr 29 Tage ansonsten 28 Tage.

Puhh das wars.


Wenn einer eine Lösung könnte er diese bitte senden.


Danke.


Ps. Ist es tichtig das Call-By-Value (eine Kopie der Daten übergibt) und Call-By-Reference die original Datei übergibt???
Mitglied: DaSam
15.11.2006 um 21:02 Uhr
Hi,

ein solches Programm werde ich jetzt nicht schreiben, dafür gibt es schon genügend Treffer in den bekannten Suchmaschinen.

Zur Frage: Call by reference übergibt letztendlich einen Pointer auf die übergebene Variable (also eine Referenz). Call by value erstellt in der Funktion praktisch eine dort gültige Variable mit dem Inhalt der Übergabe. Änderungen am Variablenwert werden sich nicht auf die im aufrunfenden Programmteil deklarierte Variable auswirken (weil Kopie), bei call by refernce werden Wertänderungen in der Variablen auch im aufrufenden Programmteil übernommen. So ist es z.B. auch möglich, mehrere Werte bei einer Funktion als "Quasi-Rückgabewert" zu bekommen.

Puuh ...

cu,
Alex
Bitte warten ..
Mitglied: Biber
16.11.2006 um 01:25 Uhr
Moin Abdel,

wie schon geschrieben, zu IsLeapYear()/IsLeapYr() gibt es jede Menge Beispielimplementierungen.
Sinngemäß und ungetestet wäre der Mainstream in etwa...

01.
int daysInFebruary( int year) 
02.
03.
    if ((year%400==0) || ((year %4==0) && (year%100 !=0))) 
04.
05.
        return 29; // wie das bei Schaltjahren so is' 
06.
07.
     
08.
    else 
09.
10.
        return 28; // sonst...ein Arbeitstach weniger... kein Schaltjahr 
11.
12.
}
- oder, der Normalfall in C[whatever] über ein #define-Makro
01.
  
02.
#define ISLEAPYEAR(Y)     ( ((Y)>0) && !((Y)%4) && ( ((Y)%100) || !((Y)%400) ) ) 
03.
.... 
04.
... 
05.
int daysInFebruary( int year) 
06.
07.
    return ( (ISLEAPYEAR(year)) ? 29 :28); 
08.
}
Und es ist völlig normal, wenn Du für diese Aufgabe viele verschiedene Lösungen findest und Deine selbst gebastelte auch ein wenig anders aussieht.

Gruß Biber
Bitte warten ..
Ähnliche Inhalte
Netzwerkgrundlagen
Netzwerkaufbau, VPN-Routing, generelle Frage (7)

Frage von macherlthomas zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Verständnis Frage zum adprep für einen ersatz DC (7)

Frage von WinLiCLI zum Thema Windows Server ...

Samba
Samba AD V 4.3.11-Ubuntu (Frage zu Best-Practice) (6)

Frage von Belephor zum Thema Samba ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte