Instructie Programmeren Task 2 5JJ70
Task 2.1: Voltage divider Welk type variabele heb je nodig? Negative weerstanden bestaan niet! (print een error en corrigeer de waarde, of vraag opnieuw om input). Nul is een geldige waarde voor een weerstand (draadje). Tenminste 1 van de weerstanden moet niet nul zijn, check dit met een if statement (anders deel je ergens door nul). Hoe je met deze error om gaat mag je zelf weten (corrigeren, nieuwe input vragen, of error weergeven en afsluiten). Bronnen kunnen een positieve en negatieve spanning leveren. Ze kunnen ook uit staan. PAGE 2
Een floating point variabele printen met 2 decimalen: printf(“The value is %.2f”, my_float); Goto statements zijn verboden! Conditioneel je programma beëindigen: #include (…) if(termination condition){ exit(0); } PAGE 3 Task 2.1: Voltage divider
Task 2.2 & 2.3: Logical conditions Van 2.2 naar 2.3: Substitueer je hulpvariabelen in je “ sum = (…); ” en “ carry = (…) ” assignments tot je een directe uitdrukking hebt. Vereenvoudigen van de expressie is niet nodig. Het circuit telt 2 bits op en genereert een sum en carry. Koppel 2 van deze circuits, en je kan twee 2-bit nummers, a2a1 and b2b1, optellen: adder1(a1,b1,carry_in) levert carry_inter1, s1 adder2(a2,b2,carry_inter1) levert carry_out, s2 PAGE 4
Task 2.3: ALU simulator Gebruik bij het inscannen van de operatie: − scanf(“ %c”, &oper); −Zonder spatie voor de %c vraagt je programma niet om input! Een switch statement kun je hier goed gebruiken om de operatie te selecteren. Gebruik de bitwise operaties (&,|,^), niet de logische (&&, ||) Een hexadecimaal getal aanvullen met nullen tot minimaal 8 tekens: printf("%08x", my_hex_number); PAGE 5