Het maken van abstracte datatypes

In deze les ga je een contactenlijst maken.

Op deze pagina, ga je een abstract datatype maken om contactgegevens zoals naam, adres, telefoonnummer, etc. op te slaan en later te kunnen bekijken.

Het opzetten van de contactenlijst.

  1. Geen Afbeelding
  2. Maak een globale contactenlijst variabele.
  3. Initialiseer contactenlijst als een lege lijst.

Waarom globaal?

Ook worden in Snap!, alleen globale variabelen met hun data opgeslagen, wanneer het project opgeslagen wordt.
Meerdere scripts door het hele programma heen gaan deze lijst gebruiken, dus is het niet logisch om het aan maar één script vast te maken als een lokale variabele.

Het maken van het abstracte datatype

Robin en Yasmine zijn van plan een contactenlijst te maken in Snap!.
Robin: "We hebben een manier nodig om een contact toe te voegen aan onze contactenlijst."
Yasmine: "Elk contact zal een lijst worden met iemands naam, telefoonnummer, adres en email."
Robin: "In hoofdstuk 2 hebben we een abstract datatype punt gemaakt om de coördinaten van ieder punt in een lijst van punten op te slaan. Nu kunnen we een abstract datatype contact maken om de data voor ieder contact in onze contactenlijst in op te slaan."
Yasmine: "Ja! (Yasmine opent haar oude project, maar dat hoef jij niet te doen.) We hebben eerder een punt-constructor gebruikt om een lijst van coördinaten te maken."
Yasmine wijst naar de code voor de punt-constructor:
Geen Afbeelding
Robin: "We hebben vervolgens een selector gebruikt om een x- of y-coördinaat te kiezen."
Robin wijst naar de code voor de coördinatenselector:
Geen Afbeelding en Geen Afbeelding
Yasmine: "In dit project hebben we een contact-constructor nodig en selectors om toegang te krijgen tot de naam, het adres en telefoonnummer van het contact.
  1. Shortcut: Je zou de volgende text in het "Maak een blok"-venster kunnen plakken om het blok sneller te maken.

    contact met naam: %naam adres: %adres telefoon: %telefoon

    De %-tekens zorgen ervoor dat de woorden variabelen worden.
    Maak een contact-constructor die drie variabelen accepteert als invoer: de naam, het telefoonnummer en het adres van een contact.
    Geen Afbeelding
    De constructor zal een contact terugrapporteren (een lijst van de drie variabelen):
    Geen Afbeelding
  2. Schrijf de selectorblokken om de naam van een contact, adres van een contact, of telefoonnummer van een contact terug te kunnen vinden:
    Geen Afbeelding
    Geen Afbeelding
    Geen Afbeelding
  3. Het is onnatuurlijk om de constructor als een invoer van de selector te gebruiken, deze afbeeldingen zijn voorbeelden om te laten zien wat de selectors zouden moeten kunnen als er een contact gegeven wordt als invoer. In jouw programma zullen de selectors een item van de lijst als invoer gebruiken om het goede gedeelte van een contact terug te geven, zoals hier:
    Geen Afbeelding

  4. Bepaal de invoertypes voor iedere selector zodat het duidelijk is dat ze een lijst (een heel contact) als invoer nodig hebben.
    Geen Afbeelding Geen Afbeelding Geen Afbeelding
    Je hebt geleerd hoe je Een invoertype moet specificeren in Hoofdstuk 2.
  5. Kijk of je blokken samen kunnen werken, debug de bugs die je vindt.
    1. Als eerste maak je een constructor (met invoerwaardes) in iedere selector (zoals hierboven) om te kijken of ze het goede stukje van een contact terugrapporteren.
    2. Vervolgens gebruik je je contact-constructor om een paar contacten toe te voegen aan je contactenlijst.
      Je kan de volgende voorbeelden gebruiken of je eigen contacten verzinnen.
      Naam Adres Telefoonnummer
      Bertha van der Kabarchenbok Kerkstraat 123, Amsterdam 212-555-1234
      Alfred Ypsilinti Zuidplein 382, Assen 208-555-6789
      Yasmine Katadreuffe Hoofdlaan 420, Maastricht 617-555-1098
    3. Zie hoe je contacten in je contactenlijst verschijnen.
    4. Snap! heeft 2 verschillende manieren om lijsten in lijsten weer te geven. Je kan kiezen op welke manier je de lijst wil weergeven door met je rechter-muisknop op de contactenlijst 'watcher' op het speelveld.
      Als je de 'watcher' niet kan zien op het speelveld, zorg ervoor dat het vakje bij de contactenlijstvariabele in het Variabelenpalet aangevinkt is. Geen Afbeelding
      • Tabelweergave voor contactenlijst 'watcher':
        Geen Afbeelding
      • Lijstweergave voor contactenlijst 'watcher':
        Geen Afbeelding
    5. Probeer de naam, het adres, of telefoonnummer te selecteren van een contact in jouw lijst.
      Geen Afbeelding
    6. Geen Afbeelding
    7. Debug de problemen die je tegenkomt.
Terug Volgende