Abstracte datatypes

Op deze pagina, ga je een abstract data-type genaamd punt maken zodat je eigen H2L2-TekenVorm code aangenamer is om te lezen, debuggen en gebruiken:
Geen Afbeelding

De naam zegt het eigenlijk al, een data-type zegt wat voor type de data is (getal, tekst / tekens, lijst, etc.). Elke programmeertaal heeft een soort primitieve (standaard ingebouwde) data-types. Snap! heeft getallen, tekst (woorden en zinnen), lijsten, Booleans, en nog veel meer:

Het keuzemenu van dit blok toont alle primitieve types van Snap! zien.
Geen Afbeelding

Een abstract data-type (of ADT) is een soort data dat belangrijk is voor je programma, maar niet ingebouwd zit in de programmeertaal. Je bouwt dit dan terwijl je programmeert.

In deze les bijvoorbeeld, maak je een punt data-type met:

Het woord "abstract" wordt vaak gebruikt als iets moeilijker om te begrijpen is, maar in de computerwetenschappen, betekent het bijna het tegenovergestelde. ADT's zijn dingen die jij, de programmeur, gebruikt om jouw programma makkelijker te laten lezen, debuggen en gebruiken. Niet alleen makkelijker voor jezelf, maar ook makkelijker voor anderen.

 
Yasmine vergezelt Bo en Alfreds eindeloze discussie van de vorige pagina over het gebruik van lijsten met coördinaten om een letter te tekenen.
Yasmine: "Ik keek naar ons Geen Afbeeldingblok en bedacht een manier om dit veel leesbaarder te maken."
Bo: "Ja, expressies zoals Geen Afbeelding zijn moeilijk te lezen. Zelfs nadat ik het had geschreven en gebruikte om de y coördinaat te vinden, moest ik twee keer nadenken voordat ik het snapte."
Yasmine doet een suggestie voor data-abstractie: een nieuwe ADT maken om de details te verbergen. Wanneer men de punt ADT, gebruikt, hoef je verder niet na te denken over hoe punten worden weergegeven als lijst.
Yasmine: "Dat bedoel ik dus!. Laten we het wat duidelijker maken. We kunnen een Geen Afbeelding blok definiëren en dat gebruiken, in plaats van item 2 van."
Bo: "Maar dat blok zou precies hetzelfde doen als item 2 van, dus wat is daar het nut van? Dat zal het programma niet korter maken."
Yasmine: "Ja, maar het maakt het programma wél leesbaarder en makkelijker om over na te denken . We kunnen x coördinaat en y coördinaat gebruiken in plaats van item van als inputs voor het ga naar blok."
Ze bouwen twee blokken: Geen Afbeelding en Geen Afbeelding
Bo:" Hmmm... En als we nu een Geen Afbeelding blok maken, dan kunnen we Geen Afbeelding schrijven in plaats van Geen Afbeelding. Dat zou veel duidelijker aangeven wat die lijst nu eigenlijk is."
Bo bouwt dit blok. Ze markeert de x en y invoervariabelen als getallen.
Geen Afbeelding
Typ # niet in de invoernaam van punt . Net zoals het symbool bij een lijst als invoer, is # geen onderdeel van de naam van de naam, maar is een type-hint die je maakt wanneer je getal selecteert als invoer-type:
Geen Afbeelding
Het invoertype verandert ook de vorm van het invoer-slot om aan te geven wat voor soort invoer verwacht wordt.
Het Geen Afbeeldingblok wordt de bouwer genoemd van dat nieuwe abstracte data-type. De Geen Afbeelding- en Geen Afbeeldingblokken worden de selecteerders genoemd voor de punt ADT, omdat ze ieder een component selecteren van een punt.
  1. Als je H2L2-TekenVorm project nog niet open is, open dat dan nu.
  2. Verbeter je ga naar punt blok (van "H2L2-TekenVorm") door een selecteerder te gebruiken binnen het ga naar punt blok zoals Bo en Yasmine eerder beschreven.
  3. Geen Afbeelding Zet dat script om in een algemeen Geen Afbeelding blok dat een lijst van punten aanneemt als invoer en die vorm tekent.
 
  1. Maak een lijst van punten die een andere letter of vorm tekent. Deze keer, gebruik je je punt bouwer in de lijst van punten. Check om te zien of je teken vorm () blok werkt met deze nieuwe lijst.
  2. Als je andere letters hebt gemaakt, schrijf een teken bericht() blok dat een lijst van letters als invoer aanneemt en teken vorm() meerdere keren gebruikt om een bericht te tekenen.
    Let op het gebruik van abstracties. Het bericht "Hi" weergeven als Geen Afbeelding verbergt al de complexiteit van de lijsten met coördinaten die zijn gebruikt om vormen te tekenen.
    Geen Afbeelding
Geen Afbeelding
  1. Verander je project zodanig dat teken bericht de letters naast elkaar tekent, in plaats van ze vervangt met een andere letter:
    Geen Afbeelding
TerugVolgende