Wat is een predikaat?

In deze les, ga je werken aan een woordpuzzeloplosser die door een lange lijst aan woorden gaat zoeken en woorden met specifieke kenmerken zal rapporteren.

Op deze pagina, ga je kijken naar predikaten en zul je er zelf ook een paar bouwen die je kunt gebruiken in andere projecten.

Predikaten

Predikaten zijn blokken die altijd een Boolean waarde melden (ze rapporteren alleen of ). In Snap! worden predikaatblokken weergegeven met zeshoekige blokken.

Je bent predikaten al eens eerder tegengekomen. Predikaten verwerken de voorwaardes die gebruikt worden door voorwaardelijke blokken (zoals als of herhaal tot) om te beslissen wanneer ze iets moeten doen. Predikaten stellen een vraag zoals: "Bezit de spelerlijst het antwoord van de speler?" of "Raakt deze sprite de sprite aan die 'Sprite' heet?"

  1. "H2L3-Predikaten"
  2. In de laatste les (en ook veel eerder terug bij Hoofdstuk 1 Les 5), heb je scripts gemaakt waarin de sprite de muis volgde.

    Nu ga je een script maken dat ervoor zorgt dat je met je muis in je speelveld kunt schrijven in twee kleuren, afhankelijk van de positie van de muis:
    Gebruik een van de gelijkheids-/ongelijkheidspredikaten:
    Geen Afbeelding
  1. Verbeter je tekenscript zodanig dat de sprite altijd de muis volgt, maar alleen iets tekent wanneer de knop van de muis ingedrukt is, zodat je niet-verbonden vormen kunt tekenen.
    Zorg dat het versleepbaar-blok niet aangevinkt is boven het script gedeelte voordat je dit probeert (zodat Snap! niet denkt dat je een sprite probeert te verslepen wanneer je erop klikt).
    Waarschijnlijk wil je het blok gebruiken, dat je kunt vinden in het Waarnemen-palet.
  1. Je zult misschien één of meer van zulke Boolean-operatoren handig vinden voor het tussen?blok.

    Je kunt kiezen of je het tussen? blok de twee grens-getallen bevat of niet. Je kunt dit later nog veranderen, afhankelijk van waar je het blok gebruikt.

    Bouw een predikaat dat zegt of een invoergetal tussen twee andere getallen staat, en test het in verschillende gevallen.

    Een predikaat maken

    • Kies de hexagonale predikaatvorm.
    • Je moet het blok gebruiken om de resultaten van functies die iets moeten rapporteren te melden (hier vallen predikaten ook onder).
    • Veel talen gebruiken return in plaats van rapporteer als naam van het commando dat een waarde terug geeft aan het eind van een functie.

  2. Gebruik tussen? om een script te schrijven dat ervoor zorgt dat je met drie kleuren kunt schrijven in je speelveld (afhankelijk van je hoogte op het speelveld), gebruik je muis:
    Je letters zullen verbonden zijn tenzij je de tijd had om de niet-verbondenheid te coderen zoals eerder genoemd.
    Geen Afbeelding
  3. Bouw een predikaat dat test voor deelbaarheid door de stappen hieronder te volgen.
    1. Experimenteer eerst met het moduloblok.
      1. Probeer verschillende invoeren.
      2. Laat het tweede getal als constante, en probeer verschillende invoeren voor het eerste getal.
      3. Stel een hypothese op. Wat valt je op?
    2. Het blok rapporteert wat overblijft nadat het eerste getal is gedeeld door het tweede. rapporteert bijvoorbeeld 2 omdat wanneer 17 wordt gedeeld door 5, er 2 overblijft. Wanneer een getal een ander getal geheel deelt, dan blijft er 0 over. Dus rapporteert 0.

    3. Definieer nu het predikaat met het gebruik van modulo.
  4. Gebruik je deelbaarpredikaat om een ander predikaat te bouwen dat test of de invoer even is. Hint: een getal dat even is, is deelbaar door 2.
    In dit plaatje van een bakstenen muur, zit er een verschil tussen de even en oneven rijen. In de volgende les, ga je het even? blok gebruiken om een muur van baksteen te tekenen.
  1. Bouw een predikaat dat test of de invoer een heel getal is. Hierbij vind je misschien handig.

Zelf-Check: Predikaten

  1. Er is geen standaard ≤ blok in Snap!. Stel, we willen er zo eentje bouwen. Welke twee van de volgende Boolean expressies zijn gelijk aan de expressie ?
    Het volgende code fragment was ontworpen om getal te testen op een oneven nummer:
    ALS (ONTBREKENDE VOORWAARDE)
        {
          LAAT ZIEN "Dit getal is oneven."
        }

    Welke van de volgende opties kan gebruikt worden op de plaats van de ONTBREKENDE VOORWAARDE?
TerugVolgende