Opdracht 8 Onmogelijke vragen
Met dank aan René Franquinet voor het bedenken van enkele onmogelijk vragen.
a In de reisplanner voor het seizoen 1999-2000 was deze informatie niet voorhanden.
b Een beetje merkwaardige vraag als het om het plannen van een reis gaat, maar dit geeft aan dat de precieze specificatie van de taken van de reisplanner ook beperkingen tot gevolg heeft. Het verloop van de prijzentabel is uit het spoorboekje direct duidelijk, maar in de reisplanner kun je die tabel niet direct inzien. De prijzen zijn gekoppeld aan een reis, normaal gesproken precies wat nodig is.
Het bepalen van het maximumtarief is op zich niet lastig: bedenk een zeer lange reis, bijvoorbeeld Vlissingen naar Maastricht via Groningen. Om de grens bij benadering te vinden, moet je de reis inkorten, totdat de prijs opeens omlaag gaat. Dan ben je net onder de afstand van het maximumtarief gedoken.
Vanaf mei 2001 zijn de grenzen: xxx
c Merkwaardig genoeg kan de reisplanner voor het seizoen 1999-2000 geen reisschema’s aan met gelijke vertrekplaats en bestemming. De kaart met de route wordt wel getoond, maar er komt geen reisadvies. Je moet de rondreis daarom in tweeën knippen.
Opdracht 9 De specificatie van het proces ‘reisschema bepalen’ a/b Het aankomststation van een treinrit moet gelijk zijn aan het vertrekstation van de opvolgende rit. De aankomsttijd van een rit moet voor de vertrektijd van de volgende rit zijn. Bij de onder a gegeven schema’s is dit niet zo. d Vertrekplaats a, doelplaats b, datum d en vertrektijd t. e Het verschil is de voorlaatste zin: De vertrektijd van de eerste rit ligt zo dicht mogelijk bij (eventueel na) t.
Opdracht 10 Deelprocessen specificeren
a Invoer: vertrekplaats en bestemming
Uitvoer: een lijst van trajecten (of ritten), elk met vertrekplaats en bestemming en eventueel het nummer van de tabel in het spoorboekje. De ritten moeten aansluiten, zie opdracht 10.
b Ook bij dit proces moet onderscheid gemaakt worden tussen uitgaan van aankomsttijd en uitgaan van vertrektijd. We nemen hier de eerste.
Invoer: vertrekplaats, bestemming, aankomsttijd.
Uitvoer: vertrektijd.
c Ook dit proces makt gebruik van het deelproces ‘Reisroute vinden’, precies als het andere proces. Bij het bepalen van de reistijden moet nu worden uitgegaan van de vertrektijd (de twee tijden ruilen van plaats). Een ander verschil is de volgorde waarin de reisroute wordt afgewerkt: bij de gegeven vertrektijd werk je de lijst van voren naar achter af, bij de gegeven aankomsttijd is dit andersom.
NB: er zijn varianten mogelijk. Zo zou je één proces ‘Reistijden bepalen’ kunnen specificeren. Invoer: vertrek, bestemming, tijd en een variabele die aangeeft of de tijd vertrek of aankomst aanduidt. Uitvoer: de andere tijd.
Opdracht 11 De spoorkaart in een Access-gegevensbank Voor de docent Pointe achter deze opdracht is leerlingen laten beseffen dat ook zoiets als een spoorkaart in een database gestopt kan worden en dat je dan nuttige informatie kunt opzoeken. Verder is het een eerste, zeer kleine kennismaking met Access en SQL. In principe heb je in Access genoeg aan één tabel met twee kolommen om reisroutes te zoeken: Station ligt op Lijn. Om kortste routes te vinden hebben we de positie op de lijn toegevoegd. De informatie is direct afkomstig uit het spoorboekje. We hebben de meeste grote lijnen en hoofdstations opgenomen. Sommige lijnen splitsen zich (Utrecht - Den Haag en Utrecht - Rotterdam staan in één tabel) In dat geval hebben we de afsplitsing een apart driecijferig nummer gegeven: het lijnnumer met een 1 erachter. Kleinere stations bij grote plaatsen zijn weggelaten, daardoor kun je toevoegingen als ‘CS’ weglaten. De reisroutes vind je door herhaald de tabel te koppelen met zichzelf: Je zoekt eerst de lijnen waarop een gekozen vertrekstation ligt. Door een join met de tabel zelf (kolommen Lijn gelijk) vind je de andere plaatsen op die lijnen. Extra eis: vertrekplaats ongelijk aan bestemming. Zo vind je alle directe verbindingen vanuit een gekozen plaats. De query (de tekst Geef_de_naam_van_het_vertrekstation zorgt ervoor dat Access een pop-up venstertje toont met deze vraag):
SELECT Vert.Station, Vert.Lijn, Aank.Station, ABS(Vert.Km-Aank.Km) AS Afstand
FROM StationsLijnen AS Vert, StationsLijnen AS Aank
WHERE Vert.Lijn = Aank.Lijn
AND Vert.Station <> Aank.Station
AND Vert.Station = Geef_de_naam_van_het_vertrekstation;
Door dit te herhalen vind je ook de verbindingen over twee lijnen. Dit wordt een query waarin de tabel vier keer nodig is. Het is niet mogelijk om een query te maken die routes vindt ongeacht het aantal lijnen. Dit is een beperking van de taal SQL.
Uitwerking c Utrecht ligt op de lijnen 14, 20, 24, 32, 33, 42 en 50. In werkelijkheid zijn dit er nog meer, omdat niet de volledige spoorkaart in de dartabase zit. d Direct vanuit Tilburg: Roosendaal, Breda (2 lijnen), Den Bosch, Venlo, Eindhoven, Dordrecht. e Vijftien stations kunnen met een tussenstap vanuit Tilburg beriekt worden, zeven daarvan via twee verschillende routes, Geldermalsen zelfs via drie routes. Het resultaat heeft daarom 24 rijen. f Utrecht - Geldermalsen (via lijn 24) - Dordrecht (lijn 19): 75 kilometer. Utrecht - Rotterdam (via lijn 50) - Dordrecht (lijn 11): 76 kilometer. Utrecht - Eindhoven (via lijn 24) - Dordrecht (lijn 27): 168 kilometer.
Opdracht 12 Het kortste-pad-algoritme van Dijkstra Voor de docent De applet op de cdrom bij het werkboek biedt de mogelijkheid om een flink algoritme te volgen. Het gaat hier om het inzicht dat een algoritme zeer gestructureerd en volgens precieze regels te werk gaat.
De werking van het algoritme is als volgt: · Vanuit de vertrekplaats bekijk je alle mogelijke directe verbindingen naar buurplaatsen. Vanuit Leiden op de kaart van midden- en zuid-Nederland zijn dat Den Haag, Haarlem en Woerden. We hebben nu een lijstje van drie ‘bereikte’ plaatsen. In de applet worden deze groen. · De dichtsbijzijnde (Den Haag) kan onmogelijk via een korter pad bereikt worden. We markeren deze als ‘kortste-pad-gevonden’, blauw in de applet. · Vervolgens kijken we naar nieuwe verbindingen vanuit deze plaats (Rotterdam en Gouda), We krijgen nu een lijst van vier (Haarlem, Woerden, Rotterdam en Gouda) · Dichtstbijzijnde is nu Haarlem, het proces herhaalt zich. · Soms komt het voor dat er een tweede route naar een plaats gevonden wordt, bijvoorbeeld naar Gouda: eerst via Den Haag, daarna via Woerden. Het algoritme neemt dan de kortste van de twee routes en kleurt de afgewezen verbinding rood. Het komt regelmatig voor dat er eerst een lange route gevonden wordt en daarna pas de kortste, probeer bijvoorbeeld Utrecht-Nijmegen.
De antwoorden gaat verder na deze boodschap.
Verder lezen
REACTIES
:name
:name
:comment
1 seconde geleden
D.
D.
Hoi!
ik las je antwoorden op scholieren.com van informatica en ik kwam erachter dat jullie hetzelfde boek hadden als wij!
dus nu vroeg ik me af of jij heel toevallig de antwoorden van hfd 4 of misschien 5 had?? :$
wij zijn daar namelijk en ik ben nog totaal niet ver en moet het binnekort afhebben! :P:P
Alvast heel erg bedankt!
xxx denise
18 jaar geleden
Antwoorden