[SE] Oefening 1 reeks 2 (C++)

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

Heatryn
Posts: 62

[SE] Oefening 1 reeks 2 (C++)

Post#1 » Mon Jun 04, 2007 2:56 pm

In de opgave staat dat je moet controleren of die parameters correct zijn, maar hoe controleer je zoiets? Als ik een "j" bevoorbeeld ingeef, dan berekent mijn programma dat ook nog altijd, waar hij normaal een foutmelding zou moeten geven.

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#2 » Mon Jun 04, 2007 3:16 pm

voor degenen die die opdracht niet hebben maar wel willen helpen: wat is de opdracht juist?
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Heatryn
Posts: 62

Post#3 » Mon Jun 04, 2007 3:28 pm

Je moet een programma schrijven die de temperatuur in graden celcius omzet naar fahrenheit en omgekeerd, nu hij wil dat we dat programma op 2 manieren gaan schrijven. Het eerste met 1 waardeparameter, 1 var par en 1 return waarde. En die return waarde moet true zijn als alles goed verlopen is en false wanneer er een foutieve par werd opgegeven. Wat kan ik nu checken aan die parameters, want die mogen zowel geheel, als komma, als pos als neg zijn. Dus vroeg ik mij af of er geen manier in C++ bestond om te gaan controleren of die waardes wel kloppen binnen de grenzen van floats, want als ik een "j" opgeef bv werkt het ook nog en dan zou hij moeten zeggen dat het misloopt.

Hier men code:

Code: Select all

bool CelciusNaarFahrenheit (const float celcius, float &fahrenheit) {
if (fahrenheit == 0) {
fahrenheit = 1.8*celcius+32;
return true;
} else {
return false;
}
}
Ik controleer nu gewoon of die fahrenheit nul is, maar dat is eigenlijk geen deftige controle.

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#4 » Mon Jun 04, 2007 3:38 pm

celcius string maken en daar dan eerst errorchecking op doen?

en anders ne try-catch met in de catch "return false;" :P
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Heatryn
Posts: 62

Post#5 » Mon Jun 04, 2007 4:00 pm

Robbe wrote:celcius string maken en daar dan eerst errorchecking op doen?

en anders ne try-catch met in de catch "return false;" :P
En die errorchecking, hoe doe je dat misschien? Dus jij zegt dat ik die celcius naar een string moet omzetten en daarop iets gaan checken? Wat kan ik dan checken op die string?

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#6 » Mon Jun 04, 2007 4:29 pm

Heatryn wrote:En die errorchecking, hoe doe je dat misschien? Dus jij zegt dat ik die celcius naar een string moet omzetten en daarop iets gaan checken? Wat kan ik dan checken op die string?
Nee, celsius als string binnenkrijgen. Op zich totaal nutteloos hoor. Hier moet je een keuze maken tussen "blijf ik in de opdracht" of "hou ik het algemeen". Als je in de opdracht blijft, kan je de opgevraagde waarde van de gebruiker, doorgaans een string (doe je dit niet, valt er niets te error-checken), gewoon doorgeven aan je functie. Die error-checking houdt dan in te kijken of er karakters in je string zitten die er niet thuishoren.

Als je algemeen wilt blijven (en dus je functie ook wilt kunnen gebruiken in andere omgevingen dan de opdracht), moet de functie geen rekening houden met de gebruiker en dus gewoon de float die hij aankrijgt omzetten naar een andere float. Enige error-checking dat je hier kan doen is delen door 0 of overflows, die (soms?) exceptions genereren die je dan weer kan opvangen mer een try-blok.

Ik denk dat je het nutteloze geval moet implementeren (enige nut ervan is nu dat je weet hoe je error-checking moet doen :P)
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

User avatar
cG`
Posts: 75

Post#7 » Mon Jun 04, 2007 4:38 pm

Die moet "false" teruggeven als uw temperatuur onder het absolute nulpunt ligt maw 0°Kelvin
[i]"Everything should be made as simple as possible, but not simpler."[/i] - Albert Einstein

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#8 » Mon Jun 04, 2007 5:01 pm

cG` wrote:Die moet "false" teruggeven als uw temperatuur onder het absolute nulpunt ligt maw 0°Kelvin
°Kelvin bestaat niet, het is gewoon Kelvin ;)

maar aan dat absolute nulpunt had ik eigenlijk nog niet gedacht :P
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Teun
Posts: 216

Post#9 » Wed Jun 06, 2007 9:05 am

Beetje laat, maar ik heb gedaan dat die even nakijkt of het toevallig niet onder -273,5 komt. Ik heb dat ook gevraagd of hij dat bedoelde en dat was het inderdaad.

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 58 guests