Kurzusok
/
Ruby
Ruby
/
Feladatok
/
Szerelőszalag
Szerelőszalag

Szerelőszalag

Tanulófeladat

Bevezetés

Számok

A két leggyakoribb számtípus a Rubyban:

  • Egész számok: olyan számok, amelyekben a tizedesjel mögött nincs számjegy (egész számok). Például: -6, 0, 1, 25, 976 és 500000.
  • Lebegőpontos számok: olyan számok, amelyekben a tizedesjel mögött egy vagy több számjegy áll. Például: -2.4, 0.1, 3.14, 16.984025 és 1024.0.

Ezeket az Integer és a Float osztály valósítja meg.

Ezeknek az osztályoknak vannak olyan metódusai, amelyek az egyik típust a másikká alakítják. Az Integer számok egész egységig pontosak, a Float pontossága pedig egy egész számhoz képest tört:

  • Integer#to_f: Új lebegőpontos számmá alakítja
  • Float#ceil: A legközelebbi egész számra felfelé kerekít
  • Float#floor: A legközelebbi egész számra lefelé kerekít
  • Float#round: A legközelebbi egész számra kerekít
  • Float#to_i: A legközelebbi egész számra csonkítja

Feltételes elágazások

A Rubyban vannak úgynevezett vezérlési kifejezések, amelyekkel szabályozható, hogyan fusson a program, és igaz vagy hamis értéket vesznek fel. Vannak operátorok, amelyekkel igaz vagy hamis értékeket hozhatunk létre, ezeket összehasonlító operátoroknak nevezzük.

Két fő vezérlési kifejezés szabályozza, hogy melyik kód fusson le és melyik ne. Más szóval, hogy melyik ág fut le.

Ez a kettő: az if és az unless kifejezés.

Összehasonlító operátorok

Az összehasonlító operátorok értékek összehasonlítására szolgálnak, és true vagy false értéket adnak vissza. A következő operátorok két azonos típusú összehasonlítandó értéket igényelnek. Ha az értékek nem azonos típusúak, a fordító hibát dob. Íme az operátorok listája és egy példa arra, mikor adnak true értéket:

Metódus Leírás Példa
< kisebb mint 4 < 5
<= kisebb vagy egyenlő 4 <= 4
> nagyobb mint 3 > 1
>= nagyobb vagy egyenlő 2 >= 2

Az egyenlőség- és nem egyenlőség-operátorokkal bármilyen típusú érték összehasonlítható, ellentétben a fent említett operátorokkal. A == operátor azt ellenőrzi, hogy két érték egyenlő-e, és ez magában foglalja az érték típusának ellenőrzését is. A != ugyanígy működik, de true-t ad vissza, ha az értékek nem egyenlők, és false-t, ha egyenlők. Íme az egyenlőség- és nem egyenlőség-operátorok listája és egy példa arra, mikor adnak true értéket:

Metódus Leírás Példa
== egyenlő 4 == 4
!= nem egyenlő 5 != 4

Az if utasítás

Az if utasítás azt ellenőrzi, hogy egy adott feltétel „igaz” vagy „hamis” értékű-e. Ha a feltétel igaz, akkor az if utasításon belüli kód lefut. Az if utasítás az end kulcsszóval zárul.

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

Az unless utasítás

Az unless utasítás nagyon hasonlóan működik az if utasításhoz, de az unless utasításon belüli kódot akkor futtatja, ha a feltétel hamis.

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Az else utasítás

Az else utasítás az if utasítással együtt használható. Az else utasítás akkor fut le, ha az if ág nem fut le.

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

„Lépcsőzetes if” utasítások

Az elsif utasítás az if utasítással együtt használható. Az elsif utasítás akkor fut le, ha az if ág nem fut le, és az elsif utasítás feltétele igaz. Az elsif utasítások egymás után fűzhetők, és az első igaz feltételű ág fut le. Az if utasítás végén else ág is állhat, amely akkor fut le, ha egyik korábbi feltétel sem volt igaz.

value = 1
if value != 1
  "1 is not equal to 1"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 1 and 1 is not greater than 2"
end
# => "1 is not equal to 1 and 1 is not greater than 2"

Utasítások

Ebben a feladatban egy autógyár futószalagjának termelését elemző kódot írsz majd. A futószalag sebessége 0 (kikapcsolva) és 10 (maximum) között lehet.

A leglassabb sebességén (1) óránként 221 autó készül. A termelés lineárisan nő a sebességgel. Így ha a sebesség 4-re van állítva, óránként 4 * 221 = 884 autót kell gyártania. A nagyobb sebesség azonban növeli a hibás autók gyártásának valószínűségét, amelyeket aztán ki kell dobni. A következő táblázat megmutatja, hogyan befolyásolja a sebesség a sikerarányt:

  • 1-től 4-ig: 100%-os sikerarány.
  • 5-től 8-ig: 90%-os sikerarány.
  • 9: 80%-os sikerarány.
  • 10: 77%-os sikerarány.

Két részfeladatod van.

1. Számítsd ki az óránkénti termelési rátát

Valósítsd meg az AssemblyLine#production_rate_per_hour metódust, amely kiszámítja a futószalag óránkénti termelési rátáját, figyelembe véve a sikerarányt. Ügyelj rá, hogy a visszaadott érték egy Float példány.

AssemblyLine.new(6).production_rate_per_hour
#=> 1193.4

2. Számítsd ki a percenként legyártott működő darabok számát

Valósítsd meg az AssemblyLine#working_items_per_minute metódust, amely kiszámítja, hogy hány elkészült, működő autó készül percenként. Ügyelj rá, hogy a visszaadott érték egy Integer példány.

AssemblyLine.new(6).working_items_per_minute
#=> 19
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Ruby Exercism

Készen állsz elkezdeni a(z) Szerelőszalag feladatot?

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