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, 5223 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
gelöst Server 2012R2 Frage zum DHCP Failover (6)

Frage von Coreknabe zum Thema Windows Server ...

LAN, WAN, Wireless
Frage zum Erzeugen eines portbasiertem VLAN (7)

Frage von presto-18 zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...