Bob's Portfolio

Tussenopdrachten in V5

Opdrachten in de Les

In de les moeten wij soms kleine opdrachten maken, waarin we bijvoorbeeld in excel een programma moeten maken die getallen van Decimaal naar Binair vertaald, of een paar vragen beantwoorden over processors. Op deze pagina kun je deze opdrachten downloaden.

Spring naar: Periode 1; Periode 2; Periode 3; Periode 4

Periode 1

Binair naar Decimaal

Download: Link
Beschrijving: In dit Excel bestand zit een programma dat binair naar decimaal kan omrekenen en decimaal naar binair kan omrekenen. Om van binair naar decimaal om te rekenen vul je in vak B3 tot met I3 de bits in, en het getal wordt automatisch omgezet. Om het getal om te zetten van decimaal naar binair vul je in vak D7 het decimale getal in, en het getal wordt dan omgezet naar binair in vak B11 tot met K11. Het binair naar decimaal programma kan maximaal 8 bits getallen aan, maar het decimaal naar binair programma kan tot 10 bits getallen aan. Beide programma's zijn vrij simpel uit te breiden naar meer bits getallen.

Binair naar Hexadecimaal

Download: Link
Beschrijving: Dit Excel bestand laat een programma zien dat binair naar hexadecimaal omrekent. Je voert in vak B2 tot met I2 het binaire getal in, en het programma rekent het automatisch om naar een hexadecimaal getal dat weergegeven wordt in vak E9 tot met F9. Als controle wordt het binaire getal ook nog decimaal weergegeven, dat gebeurt in vak I11. Het programma kan maximaal getallen van 8 bits aan. Het programma is relatief flexibel en kan uitgebreid worden voor meer dan 8 bits getallen, maar dit is niet heel makkelijk.

Paraboolopdracht

Download: Link
Beschrijving: Voor deze opdracht moesten wij een paraboolformule (in de vorm ax^2 + bx + c = y) voor een bepaald domein uitrekenen en weergeven in een grafiek. Voor de variabelen moesten wij nemen a = 2, b = 6 en c = 9. Je kunt deze veranderen in vak B4 tot met B6, de grafiek zal zich dan aanpassen aan de nieuwe formule. Onder de grafiek zie je in vak D30 de Discriminant, in E30 (als dat mogelijk is) het eerste snijpunt met de x-as, en in E31 het 2e snijpunt met de x-as. Als het niet kan zal excel als resultaat een error geven.

Vragen over de Processor

Download: Link
Beschrijving: In deze les had meneer Meftah op de beamer wat vragen over de processor gezet, die wij moesten gaan beantwoorden. De antwoorden op deze vragen en de vragen zelf zijn in dit word document te vinden. 100% garantie dat ze allemaal kloppen is er niet, maar ze zijn wel redelijk betrouwbaar.

Wet van Ohm

Download: Link
Beschrijving: Deze les moest wij de wet van Ohm automatiseren in een excel bestand. De weerstand van de schakeling en het aantal volts waren gegeven, en wij moest daarmee de stroomsterkte en het aantal Watt uitrekenen. Het aantal Ohm dat werd genomen om de stroomsterkte uit te rekenen moest makkelijk aanpasbaar zijn. We moesten de stroomsterkte uitrekenen met een totale weerstand van 30 Ohm en een voltage van -10 tot 10 volt. Het aantal Ohm kun je aanpassen in vak D2, het wordt dan aangepast voor elk voltage en wattage in het tabel.

Periode 2

Stelsel van Vergelijkingen

Download: Link
Beschrijving: Wij moesten in deze les een programma schrijven dat een stelsel van 2 vergelijkingen op kon lossen. De vergelijkingen waren in de vorm ax + by = c en dx + ey = f. Wat ik kortgezegd heb gedaan is de eerste formule (dit is allemaal algebrarisch) uitdrukken in x (wat geeft x = (c - by) / a), dat invoeren in de tweede formule en dat dan uitdrukken in y (wat geeft y = (af - dc) / (ea - db)). Op die manier hoefde ik in excel alleen maar de variabelen in te vullen en het excel uit te laten rekenen.

Ik had deze opdracht in een lesuur af, en vond hem redelijk leuk. Dit komt denk ik doordat die zo ongeveer de eerste opdracht is waarbij ik een beetje moest nadenken, maar toen ik nou eenmaal snapte hoe je het op moest lossen was het "programmeren" snel gebeurd. We mochten deze opdracht ook nog in QBasic maken, maar dat heb ik niet gedaan omdat ik vind dat QBasic voor dit soort kleine formules niet echt geschikt is (want dat is uiteindelijk het enige wat ik gedaan heb in excel: een formule erin zetten). Als we nog een keer een opdracht met meer tekstbewerking of veel beslissingen (if/then/else) gaan doen spring ik direct over naar QBasic; dat soort dingen kunnen in excel alleen maar omslachtig of helemaal niet.

Stelsel van Vergelijkingen in QBasic

Download: Link
Beschrijving: Met QBasic moesten we de vorige opdracht ook doen. Dit was niet heel moeilijk, gewoon een kwestie van de formule uit excel overzetten naar QBasic; het is nog net niet copy-pasten. Alleen was er 1 kleine tegenslag: als in excel je probeerde te delen door nul, gaf hij gewoon "#ERROR" of iets dergelijks aan. Geen probleem, hier kon ik wel mee leven. Maar in QBasic, als je probeerde te delen door nul, sloot het programma gelijk af. Hier moest ik dus een oplossing voor bedenken. Het eerste wat in me opkwam was om gewoon van tevoren de delers uit te rekenen, end an te kijken of die nul waren. Dit kwam dus uit op deze code:

checkA = e * a - d * b
checkB = a
IF checkA = 0 OR checkB = 0 THEN
PRINT "Geen uitkomst!"
ELSE
uitkomstY = (a * f - d * c) / (e * a - d * b)
uitkomstX = (c - by) / a
PRINT "X:"; uitkomstX
PRINT "Y:"; uitkomstY
END IF

Dat werkte goed. Een nadeel aan deze methode was wel dat als je a = 0 stelde, de berekening niet gemaakt kon worden. Dit was onjuist, want de GR (grafische rekenmachine) kan dat wel. Hiervoor moest ik de uiteindelijke formule voor het x-coordinaat aanpassen. Na wat gereken zag de code er zo uit:

checkA = e * a - d * b
checkB = a
IF checkA = 0 OR checkB = 0 THEN
PRINT "Geen uitkomst!"
ELSE
uitkomstY = (a * f - d * c) / (e * a - d * b)
uitkomstX = (e * c - b * f) / (-1 * b * d + a * e)
PRINT "X:"; uitkomstX
PRINT "Y:"; uitkomstY
END IF

Beide manieren werken goed als de vergelijking een duidelijke uitkomst heeft. De eerste werkt alleen niet als a = 0 gesteld wordt, de tweede werkt alleen niet als er absoluut geen antwoord is.

De vorige grote opdracht: woorden sorteren in QBasic

Download: Link
Beschrijving: Dit was voorheen de "grote" opdracht van periode twee. Ik begon aan de opdracht met een beetje twijfel of het wel zou lukken... Maar dat bleek mee te vallen. Voor het script heb ik het Bubble Sort algoritme gebruikt (Wikipedia: Bubble Sort). Na het lezen van de eerste paragraaf wist ik al wat ik moest doen en begon ik met het schrijven van het programma. Ongeveer 30 minuten later was ik klaar, en dit is het resultaat. Je hoeft alleen maar het aantal woorden op te geven, en daarna de woorden zelf in te vullen. Het prorgamma sorteert ze dan op alfabetische volgorde.

Toen ik dit aan meneer Meftah liet zien besloten we dat we misschien toch maar een andere opdracht voor de "grote" opdracht moesten kiezen, maar hij wilde graag dat ik het alsnog in mijn portfolio zette. Dit heb ik ook maar gedaan omdat het altijd goed is om dingen goed af te ronden.

Periode 3

Bollen & Cilinders

Download: Link
Beschrijving: Deze groepsopdracht was de eerste tussenopdracht van periode 3. De opdracht was simpel: maak een programma dat de parameters van 2 ruimtelijke figuren, een bol en een cilinder, kan berekenen als de inhoud en 2 van de 3 onbekenden gegeven is. Zo gezegd, zo gedaan. Ik ging voor deze opdracht samenwerken met Nynke Visser. Dit was ons stappenplan:

  1. De formules maken die we nodig hebben voor het programma
  2. De formules gebruiksvriendelijk in een programma verwerken
  3. Bugs uit het programma halen en verbeteren

De eerste stap was het makkelijkst. We namen eerst de formules voor een bol en voor een cilinder:

De twee inhoudsformules voor een bol en een cilinder

Deze stelden we vervolgens aan elkaar gelijk, aangezien de inhoud van de twee figuren gelijk moest zijn, en vereenvoudigden we de formule:

De formules aan elkaar gelijk gesteld en vereenvoudigd

En daar rolden, na wat schuiven met de variabelen, deze formules uit:

De formules omgerekend zodat ze de juiste variabelen berekenen

Het programma maken was daarna niet zo moeilijk meer. We hoefden slechts een programma te maken dat vraagt wat je wilt weten, vervolgens de juiste gegevens vraagt, het antwoord berekent en dat weergeeft op het scherm. Zo gezegd, zo gedaan. Het resultaat is hierboven te downloaden.

Dieren Raden

Download: Link
Beschrijving: De tweede groepsopdracht van periode drie, wederom samen met Nynke. De opdracht hield in dat we een spel moesten schrijven dat kon raden welk object je uit een lijstje in gedachten had. Zo gezegd, zo gedaan. We begonnen met het maken van een lijstje objecten. We kozen voor het thema dieren. Vervolgens moesten we bedenken hoe het programma erachter kon komen aan welk dier je dacht. We hebben dit redelijk acceptabel voor elkaar gekregen en hebben dit stappenplan opgezet.

  1. Verdeel de groep dieren in twee verschillende groepen door middel van een kenmerk. Bijvoorbeeld op basis van of de dieren zoogdieren of reptielen zijn.
  2. Stel een vraag. Bijvoorbeeld: "Is het dier een zoogdier?".
  3. Verwerk het antwoord. Als er ja geantwoord is vallen de reptielen af, anders vallen de zoogdieren af.
  4. Ga terug naar de eerste stap met de gereduceerde groep.

Als je deze stappen maar lang genoeg herhaald hou je uiteindelijk maar een dier over: het dier waar de speler aan denkt. Dit systeem heeft alleen een nadeel: de vragen zijn onderhevig aan de intepretatie van de speler; ze liggen niet vast. Als de speler bijvoorbeeld zou denken dat een egel een reptiel is (lijkt me sterk, maar technisch gezien zou het kunnen) gaat de speler bij de eerste regel al de fout in, waardoor het systeem niet meer werkt. Hier zijn wel tot een bepaalde hoogte oplossingen voor te bedenken, maar aangezien dit slechts een tussenopdracht was hebben we besloten dat niet te verbeteren.

Verder was het spel niet heel moeilijk om te maken. We maakten eerst een beslissingsstamboom, die aangeef welke groep je overhoud als je een bepaalde vraag beantwoord en laat zien bij welke combinatie antwoorden je welk dier krijgt. Vervolgens hoefden we in het QBasic programma slechts de stroom te bepalen: wanneer er ja geantwoord wordt, ga naar deze functie. Anders, ga naar deze functie. Uiteindelijk kwam QBasic een functie tegen die print "Het dier is een egel!", en dan was het alweer voorbij. Nog een mooi intromenutje, laatste typfoutjes eruit, en klaar is kees. De vroege vorm van beslissingsstamboom, de grafische beslissingsstamboom en het script/spel zelf kunt u downloaden in het bovenstaande pakketje.

Periode 4

SQL & Acces

Download: Link
Beschrijving: In de laatste periode gingen we bezig met Acces & Databases. Helaas heb ik niet zo heel erg veel toelichting te geven bij dit onderwerp. We zijn er de hele periode vier mee bezig geweest. Ik heb al aardig wat ervaring met programmeertalen en heb altijd al met een nieuwsgierige blik naar SQL gekeken, dus het ging heel soepel en ik vond het leuk om te doen. Ik moet wel zeggen dat ik deze periode geen uitdaging ben tegengekomen tijdens de lessen, maar het was leuk om kennis te maken met SQL. Het resultaat van het huiswerk kunt u downloaden in het bovenstaande zip pakket, wat de database met alle uitgewerkte queries bevat, en een Word bestand met de antwoorden op de opdrachten.