Първа задача - температура и химични елементи
- Краен срок:
- 17.10.2016 17:00
- Точки:
- 6
Срокът за предаване на решения е отминал
Температура и химични елементи
Най-често използваните мерни единици за температура са C (Целзий), F (Фаренхайт) и K (Келвин). Можете ли да преобразувате от Келвин във Фаренхайт наум? Не? И ние не можем.
Но знаете ли какво? Не ни се налага, защото можем да накараме компютрите да вършат това.
Задачата
За загрявка, ще искаме да напишете три функции:
Преобразуване на мерни единици
Първата част от задачата е да научите вашия компютър да преобразува температура от една мерна единица
в друга. За целта напишете функция convert_between_temperature_units
, приемаща следните аргументи:
- градуси - реално число (Float)
- мерната единица, в която са градусите
- мерната единица, в която искаме да е резултатът
Мерните единици, с които ще работим са 'C'
, 'F'
и 'K'
- еднобуквени стрингове с главни букви.
Няма да подаваме мерни единици, различни от тези три.
Функцията трябва да връща резултата, не да го принтира с puts
.
Ето пример:
convert_between_temperature_units(0, 'C', 'K') #=> 273.15
convert_between_temperature_units(1, 'C', 'F') #=> 33.8
Формулите за тези преобразувания намерете в Интернет - това е част от задачата.
Втората функция - melting_point_of_substance
Можете ли да предположите какво ще искаме от тази функция? Да? Ето колко са важни имената.
Искаме по подадено име на вещество и мерна единица (отново една от горните три) да получим температурата на топене на съответното вещество в тази мерна единица. Точката на топене на едно вещество е температурата, при която то преминава от твърдо в течно състояние (или обратно).
Например:
melting_point_of_substance('water', 'C') #=> 0
melting_point_of_substance('water', 'K') #=> 273.15
Веществата, които ни интересуват са:
-
'water'
- вода -H₂O
-
'ethanol'
- етанол (етилов алкохол) -C₂H₅OH
-
'gold'
- злато -Au
-
'silver'
- сребро -Ag
-
'copper'
- мед -Cu
За конкретните температури - вижте таблицата в края на условието.
Третата функция - boiling_point_of_substance
Тази трябва да прави същото като горната функция, но да връща температурата на кипене на съответното вещество. Точката на кипене на едно вещество е температурата, при която то преминава от течно в газообразно състояние (или обратно).
Ето пример:
boiling_point_of_substance('water', 'C') #=> 100
boiling_point_of_substance('water', 'K') #=> 373.15
Табличка с температури
Колкото и да ни се иска да ви кажем да си ги намерите сами, ще се наложи да ви ги дадем наготово.
Вещество | Точка на топене | Точка на кипене |
---|---|---|
water | 0°C | 100°C |
ethanol | -114°C | 78,37°C |
gold | 1 064°C | 2 700°C |
silver | 961,8°C | 2 162°C |
copper | 1 085°C | 2 567°C |
Не е задължително в решенията си да пазите тези температури в градуси Целзий - може да ги преобразувате в нещо друго и да ги използвате така. Интересува ни единствено резултатите да са правилни.
Можете да си създавате помощни функции, стига да не се казват helper
.
Най-важното...
Най-важната част от тази задача е да се запознаете с ръководството по стил и да си "подкарате" средата за писане на домашни:
Ruby Style Guide
Хвърлете око на ръководството по стил.
Знаем, че е дълго и повечето неща, за които се говори все още не сме ви ги преподали.
Въпреки това, особено много държим на основните неща в секциите Source Code Layout
, Syntax
и Naming
.
Примерни тестове и стилова проверка
Свалете си хранилището за домашните и пишете решенията си в него. Там ще качваме примерните тестове, както и стиловите изисквания за всяко домашно.
Инструкции как да свалите копие на хранилището, как да подкарате примерните тестове и как да пуснете стиловите проверки има в README-то му (отворете горния линк и скролнете малко).
ВАЖНО
Задължително си пуснете примерните тестове и стиловата проверка преди да предадете решение. Примерните тестове ще ви спасят от подли грешки като това да объркате името на някоя функция. Тъй като оценяването на задачите е автоматично, този вид грешки лесно довеждат до рязко намаляване на точките ви. Няма да приемаме молби за промяна на кода след крайния срок на задачата, дори грешката да е една буква.