Kurzusok
/
Go
Go
/
Feladatok
/
Madárfigyelő
Madárfigyelő

Madárfigyelő

Tanulófeladat

Bevezetés

Általános szintaxis

A for ciklus az egyik leggyakrabban használt utasítás, amellyel ismételten végrehajthatunk valamilyen logikát. Go-ban a for kulcsszóból, egy fejlécből és egy kódblokkból áll, amely a ciklus törzsét tartalmazza kapcsos zárójelek között. A fejléc 3 komponensből áll, amelyeket pontosvessző ; választ el: init, feltétel és post.

for init; condition; post {
  // loop body - code that is executed repeatedly as long as the condition is true
}
  • Az init komponens olyan kód, amely csak egyszer fut le, a ciklus kezdete előtt.
  • A feltétel komponensnek olyan kifejezésnek kell lennie, amely Boolean értéket ad vissza, és meghatározza, mikor álljon le a ciklus. A ciklus belsejében lévő kód addig fut, amíg ez a feltétel igaz. Amint ez a kifejezés hamis lesz, a ciklus már nem fut tovább.
  • A post komponens olyan kód, amely minden iteráció végén lefut.

Megjegyzés: Más nyelvektől eltérően a fejléc három komponensét nem veszi körül zárójel (). Sőt, ha mégis odaírsz egy ilyen zárójelet, az fordítási hiba. A ciklus törzsét körülvevő kapcsos zárójelek { } viszont mindig kötelezőek.

For ciklusok - egy példa

Az init komponens általában beállít egy számlálóváltozót, a feltétel ellenőrzi, hogy folytatódjon-e a ciklus vagy álljon le, a post komponens pedig általában növeli a számlálót minden ismétlés végén.

for i := 1; i < 10; i++ {
  fmt.Println(i)
}

Ez a ciklus kiírja az 1-től 9-ig terjedő számokat (a 9-et is beleértve). A lépésköz megadása gyakran növelő vagy csökkentő utasítással történik, ahogy a fenti példa is mutatja.

Utasítások

Szenvedélyes madárfigyelő vagy, aki nyomon követi, hány madár járt a kertedben. A madarak megszámolásához általában egy jegyzetfüzetbe írt rovátkákat használsz, de hogy jobban dolgozhass az adataiddal, digitalizáltad az elmúlt hetek madárszámait.

1. Határozd meg, eddig összesen hány madarat számoltál

Kezdjük az adatelemzést egy átfogó képpel. Nézd meg, összesen hány madarat számoltál meg, mióta elkezdted vezetni a naplódat.

Készíts egy TotalBirdCount függvényt, amely egy int-ekből álló szeletet fogad el, benne a napi madárszámmal. A függvény adja vissza a megszámolt madarak összlétszámát.

birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
TotalBirdCount(birdsPerDay)
// => 34

2. Számold ki, hány madár látogatta a kertet egy adott héten

Most, hogy már van egy általános képed a madárszámaidról, szeretnél egy részletesebb elemzést is készíteni.

Készíts egy BirdsInWeek függvényt, amely a napi madárszámokat tartalmazó szeletet és egy hét sorszámát fogadja el.

A függvény adja vissza, összesen hány madarat számoltál meg abban az adott héten. Feltételezheted, hogy a heteket mindig teljesen nyomon követed.

birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
BirdsInWeek(birdsPerDay, 2)
// => 12

3. Javíts ki egy számolási hibát

Rájöttél, hogy amíg a madarakat próbáltad nyomon követni, végig volt egy madár, amely a kert egy távoli sarkában rejtőzött.

Kiszámoltad, hogy ez a madár mindig minden második napot a kertedben töltött.

Azt nem tudod pontosan, hol volt a köztes napokon, de az biztos, hogy nem a kertedben.

A madárfigyelői megérzésed azt is súgja, hogy a madár a listádon szereplő első napon a kertedben volt.

Ezekkel az új információkkal írj egy FixBirdCountLog függvényt, amely argumentumként a naponta megszámolt madarak szeletét kapja, és visszaadja a szeletet a számolási hiba kijavítása után.

birdsPerDay := []int{2, 5, 0, 7, 4, 1}
FixBirdCountLog(birdsPerDay)
// => [3 5 1 7 5 1]
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Madárfigyelő feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.