Video: Ruby On Rails, by Gabriel Guimaraes 2025
Du kan oprette en metode til at tegne en trekant i Ruby. Tænk først på hvordan dette kan virke. Den trekant, du vil tegne, vil ligne en ensartet trekant, hvor to sider vil være af samme størrelse, og basen vil fremstå lidt mindre.
I modsætning til rektanglet, hvor hver række er let at formatere, skal du for hver triangel se hver anden række. Den første række vil være toppen af trekanten (den spidsende ende). Den sidste række vil være bunden af trekanten og vil være den bredde, som brugeren angiver.
Se om du kan finde ud af, hvad koden laver her.
-
Start en ny metode kaldet trekant:
# Herover er slutningen af rektangelmetoden def trekant (højde, outside_letter, inside_letter) # Kode for trekanten vil gå her ende
Bemærk at du vil være ved hjælp af højdevariablen for både højden og bredden indeni denne metode.
-
Opret en loop, der gentager højde gange. Sæt denne kode inde i trekantmetoden:
1. op til (højde) gøre | række | # Tegningskode går her i næste trin slut
-
For en trekant skal du tegne whitespace (tomme områder) for hver række, der ikke dækker hele bredden, du tegner. Når du tegner hver række, tegner du mindre hvide rum. Tilføj denne linje som den første linje i din loop:
print "* (højde-rækken)
Matematikken her beregner et mindre antal mellemrum, da antallet af rækken bliver større (husk, du tæller række 1 øverst og række svarer til højden nederst).
-
Dernæst skal du håndtere sagen til den første række, som er toppen af trekant:
Hvis række == 1 sætter "# {outside_letter * 2}" slut
Trin 4 kode går straks efter Trin 3.
-
Håndter sidste række tilfælde næste ved at tilføje en elsif tilstand.
hvis række == 1 sætter "# {outside_letter * 2}" elsif række == højde sætter outside_letter * højde * 2 ende
-
Tilføj nu koden for det lidt mere komplicerede tilfælde af håndtering af alle mellemrum. af betingelsen bruger du en anden klausul. Se hele betingelsen her:
hvis række == 1 sætter "# {outside_letter * 2}" elsif række == højde sætter outside_letter * højde * 2 andre midt = inside_letter * (række - 2) print "# {outside_letter} # {middle} # {ins ide_letter} "sætter" # {inside_letter} # {middle} # {outside_letter} "ende
Koden ser lidt underlig ud. Hvorfor er der både en udskrivning og en sætning erklæring?
-
Det er på tide at vise trekanten. I bunden af koden filen, under rektangelmetodeopkaldet, skal du tilføje et trekantmetodeopkald:
trekant (højde, outside_letter, inside_letter)
-
Gem din programfil, skift til din terminal og kør programmet.Du bør se noget som dette:
Eksempelkoden brugt indeholder en rektangelmetode forud for trekantmetoden, så du kan se et rektangel afbalanceret på en trekant.