Opdracht 2.2
Ontwerp een algoritme en schrijf een script dat aan de gebruiker een jaartal vraagt en dan bepaalt of het jaar dat behoort tot het jaartal een schrikkeljaar is of niet.
Wanneer is een jaar een schrikkeljaar?
Elk jaar dat evenredig deelbaar is door 4 is een schrikkeljaar: bijvoorbeeld 1988, 1992 en 1996 zijn schrikkeljaren.
Er is echter nog steeds een kleine fout die moet worden verantwoord. Om deze fout te elimineren, bepaalt de Gregoriaanse kalender dat een jaar dat gelijkmatig deelbaar is door 100 (bijvoorbeeld 1900) alleen een schrikkeljaar is als deze ook gelijkmatig deelbaar is door 400.
Voorbeelden:
Opdracht 2.3
In je tuin staat een parasol. Je gebruikt de parasol enkel om onder te zitten als de zon schijnt voor de schaduw, of als het regent om niet nat te worden.
Condities:
Conditie 1: Het regent (?)
Conditie 2: De zon schijnt (?)
Vul onderstaande tabel aan.
Sleep in de tabel onder conditie 1:
WAAR : als aan conditie 1 voldaan is. (Als het regent)
ONWAAR: als aan de conditie niet voldaan is. (Als het niet regent)
Doe hetzelfde voor conditie 2
En sleep je WAAR als je onder de parasol gaat zitten, of ONWAAR als je niet onder de parasol gaat zitten
Opdracht 2.4:
Controleer of de steden in de tabel Europese hoofdsteden zijn.
De condities zijn:
Conditie 1: Plaats is een hoofdstad van een land.
Conditie 2: De plaats ligt in Europa.
Opdracht 2.5:
Peter heeft ruzie met Mieke. Deze avond gaat er een feest door waar Peter zeer graag naar toe wilt gaat, maar hij zal niet gaan als Mieke gaat.
Sleep WAAR en ONWAAR naar de juiste hokjes.
Python kent 3 logische operatoren. Deze kunnen gebruikt worden
AND: het resultaat zal waar (True) zijn als aan alle condities voldaan is.
OR: het resultaat zal waar (True) zijn als aan minimum één van de condities voldaan is.
NOT: deze logische operator gaat geen condities combineren, maar gaat het resultaat van een conditie omkeren, dus True wordt False, en False wordt True.
Een conditie en een boolean expressie zijn nauw verwante concepten, maar er zijn subtiele verschillen tussen beide.
1. Boolean Expressie:
Een boolean expressie is een uitdrukking die wordt geëvalueerd als waar (True) of onwaar (False).
Het kan bestaan uit vergelijkingen, logische operatoren (zoals AND, OR, NOT), en andere uitdrukkingen die een boolean waarde opleveren.
Bijvoorbeeld, in Python is `leeftijd >= 18` een boolean expressie. Het evalueert naar True als de leeftijd 18 jaar of ouder is, en False anders.
2. Conditie:
Een conditie is een specifieke situatie of uitdrukking die wordt gebruikt in beslissingsstructuren (zoals `if`-statements of lussen).
Het is vaak een boolean expressie, maar het kan ook andere waarden hebben die in een boolean context worden geëvalueerd.
In programmeertalen zoals Python, wordt de waarheidswaarde van een conditie bepaald door de interpretatie van de waarde als True of False. In de context van controlestructuren wordt een conditie gevolgd door een of meer statements die worden uitgevoerd als de conditie waar is.
Bijvoorbeeld, in de `if`-statement `if leeftijd >= 18:` is `leeftijd >= 18` de conditie. Het is een boolean expressie die bepaalt of de leeftijd gelijk is aan of groter is dan 18.
In het algemeen kan worden gezegd dat een boolean expressie een breder concept is dat elke expressie omvat die wordt geëvalueerd als True of False, terwijl een conditie specifiek wordt gebruikt in de context van controlestructuren om te bepalen welk pad het programma moet volgen.
Opdracht 2.6
Meerdere condities combineren kan leiden tot complexe structuren. Nemen we terug het voorbeeld van opdracht 2.2
Je hebt een schrikkeljaar als het jaartal:
Deelbaar is door 4 EN niet deelbaar door 100
OF
Deelbaar door 400
Combineer verschillende boolean expressie tot één. Werk met haakjes om tot het juiste resultaat te komen.
Gebruik de boolean expressie om het script aan te p assen.
Mogelijke oplossing
#Schrikkeljaar bepalen
jaar=int(input("Geef een jaartal in: "))
# Bepaal de rest van jaar/4
quotient = int(jaar/4)
rest4 = jaar - quotient*4
# Bepaal de rest van jaar/100
quotient = int(jaar/100)
rest100 = jaar - quotient*100
# Bepaal de rest an jaar/400
quotient = int(jaar/400)
rest400 = jaar - quotient*400
if (rest4 == 0 and rest100 != 0) or rest400 == 0:
print("Schrikkeljaar")
else:
print("Geen schrikkeljaar")