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 variabele genaamd contactenlijst.
  3. Initialiseer contactenlijst als een lege lijst.

Waarom globaal?

Daarnaast worden in Snap! alleen waardes van globale variabelen 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 e-mailadres."
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! We hebben toen een punt-constructor gebruikt om een lijst van coördinaten te maken."
Yasmine bekijkt de code voor de punt-constructor nog eens:
Geen Afbeelding
Robin: "We hebben daarna een selector gebruikt om een x- of y-coördinaat te kiezen."
Robin bekijkt de code voor de coördinaatselectors:
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 niet netjes om de constructor als een invoer van de selector te gebruiken, zoals gedaan wordt in bovenstaande afbeeldingen. 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 zal de invoer een item van de contactenlijst zijn, zoals hier:
    Geen Afbeelding

  4. Verander 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 werken, debug de problemen 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
      Bo van der Kabarchenbok Kerkstraat 123, Amsterdam 212-555-1234
      Alex 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-variabele op het speelveld te klikken.
      Als je de variabele niet kan zien op het speelveld, zorg ervoor dat het vakje bij de contactenlijstvariabele in het Variabelenpalet aangevinkt is. Geen Afbeelding
      • Lijstweergave voor contactenlijst:
        Geen Afbeelding
      • Tabelweergave voor contactenlijst:
        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