Video: Perimeter and area: the basics | Perimeter, area, and volume | Geometry | Khan Academy 2024
Du kan skapa en metod för att rita en triangel i Ruby. Tänk först om hur det här kan fungera. Triangeln du ritar kommer att se ut som en likriktad triangel, där två sidor kommer att vara lika stora och basen kommer att se lite mindre ut.
Till skillnad från rektangeln, där varje rad är enkel att formatera, för triangeln måste du göra varje rad olika. Den första raden kommer att vara toppen av triangeln (den punktiga änden). Den sista raden blir basen av triangeln och kommer att vara den bredd som användaren anger.
Se om du kan ta reda på vad koden gör här.
-
Starta en ny metod kallad triangel:
# Ovan här är slutet på rektangelmetoden def trekant (höjd, outside_letter, inside_letter) # Kod för triangeln kommer att gå här slutet
Observera att du kommer att vara Använd höjdsvariabeln för både höjd och bredd inuti denna metod.
-
Skapa en slinga som repeterar höjdtider. Sätt den här koden inuti triangelnmetoden:
1. upp till (höjd) gör | rad | # Ritningskoden går här i nästa stegändring
-
För en triangel måste du rita blankutrymme (tomma områden) för varje rad som inte tar upp hela bredden som du ritar. När du ritar varje rad, kommer du att dra mindre färgutrymme. Lägg till den här raden som första raden i din loop:
Skriv ut "* (längdrad)
Matematiken här kommer att beräkna ett mindre antal mellanslag då radets nummer blir större (kom ihåg att du räknar rad 1 överst och rad motsvarar längden längst ner).
-
Nästa måste du hantera fallet för första raden, vilket är toppen av triangeln:
Om rad == 1 sätter "# {outside_letter * 2}" slutet
Steg 4: s kod går omedelbart efter steg 3.
-
Hantera det sista radfallet genom att lägga till ett elsif-tillstånd.
Om rad == 1 sätter "# {outside_letter * 2}" elsif rad == höjd lägger outside_letter * höjd * 2 ände
-
Lägg nu till koden för det lite mer komplicerade fallet med att hantera alla mellanrader. För den här sista delen av villkoret, kommer du att använda en annan klausul. Se hela villkoret här:
Om rad == 1 sätter "# {outside_letter * 2}" elsif rad == höjd lägger outside_letter * höjd * 2 andra mitten = inside_letter * (rad - 2) skriv ut "# {outside_letter} # {middle} # {ins ide_letter} "sätter" # {inside_letter} # {middle} # {outside_letter} "slutet
Koden ser lite konstig ut. Varför finns både ett tryck och ett uttalande?
-
Det är dags att visa triangeln. Längst ner i kodfilen, under rektangelmetodsamtalet, lägg till ett triangelmetodsamtal:
triangel (höjd, outside_letter, inside_letter)
-
Spara programfilen, växla till din terminal och kör programmet.Du borde se något så här:
Den exempelkod som används innehåller en rektangelmetod före triangeln, så du får se en rektangel balanserad på en triangel.