A két leggyakoribb számtípus a Rubyban:
-6, 0, 1, 25, 976 és 500000.-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ítjaFloat#ceil: A legközelebbi egész számra felfelé kerekítFloat#floor: A legközelebbi egész számra lefelé kerekítFloat#round: A legközelebbi egész számra kerekítFloat#to_i: A legközelebbi egész számra csonkítjaA 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.
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 |
if utasításAz 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
unless utasításAz 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"
else utasításAz 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"
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"
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.
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
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
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.