All language subtitles for 28. Challenge BMI Calculator Solution

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French Download
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 0 1 00:00:00,690 --> 00:00:07,590 All right. So we know that the formula is weight in kilograms divided by height squared, and we have to 1 2 00:00:07,590 --> 00:00:09,660 make this line of code work. 2 3 00:00:09,690 --> 00:00:12,260 So let's first try it out in the calculator. 3 4 00:00:12,480 --> 00:00:17,150 Let's say that we first try to square our height which is 1.8 meters. 4 5 00:00:17,160 --> 00:00:21,920 So on a calculator we can simply write 1.8 times 1.8. 5 6 00:00:22,200 --> 00:00:25,420 So 1.8 squared is equal to 3.24. 6 7 00:00:25,530 --> 00:00:30,540 So now we can divide 65 by 3.24. 65 7 8 00:00:30,540 --> 00:00:37,290 divide by 3.24 and we get 20.0617 something something something. 8 9 00:00:37,290 --> 00:00:43,230 All right. So now that we know that this is how we would calculate it on a calculator, then we can simply 9 10 00:00:43,230 --> 00:00:50,100 copy all of this starting code, and open up our Chrome Developer Tools, and paste it into our Snippets 10 11 00:00:50,100 --> 00:00:50,640 tool. 11 12 00:00:50,640 --> 00:00:53,860 So now, we're going to create our function below this line. 12 13 00:00:54,120 --> 00:00:58,520 And the first step to creating any sort of function is the function keyword, 13 14 00:00:58,530 --> 00:01:05,290 right? Then we're going to give our function a name, which we said has to be the name bmiCalculator, 14 15 00:01:05,370 --> 00:01:07,350 so we're going to use that name. 15 16 00:01:07,380 --> 00:01:13,430 Next step is some parentheses, and whether we're going to add some inputs in here. 16 17 00:01:13,440 --> 00:01:19,140 So in this case we're saying that put the input weight first and then put the input height. 17 18 00:01:19,200 --> 00:01:23,660 So our inputs are going to be weight and height. 18 19 00:01:23,670 --> 00:01:29,960 Now we get to open up our curly braces and specify everything that this function is going to do. 19 20 00:01:31,970 --> 00:01:36,090 So this function has to calculate the value of bmi. 20 21 00:01:36,290 --> 00:01:40,670 Remember that the formula is the weight divided by height squared. 21 22 00:01:40,670 --> 00:01:50,230 So bmi is going to equal to the weight input divided by the height input multiplied by itself. 22 23 00:01:50,570 --> 00:01:56,990 And remember, in the previous lesson we talked about Javascrpit numbers, that in order to specify the 23 24 00:01:57,080 --> 00:02:03,500 order of your calculations then you can use the parentheses to set precedence. 24 25 00:02:03,500 --> 00:02:10,100 So by putting those two parentheses there then we say that calculate height times height first and then 25 26 00:02:10,100 --> 00:02:12,790 divide weight by that value. 26 27 00:02:13,160 --> 00:02:21,530 So now in order to get value bmi out of this function, we have to use the return keyword, and we can say 27 28 00:02:21,530 --> 00:02:23,410 return bmi. 28 29 00:02:23,780 --> 00:02:31,220 So now, if we take all of this code and we go back to our exercise here, we paste it in here, and now if 29 30 00:02:31,220 --> 00:02:35,150 I hit Check solution, then you can see that it will pass. 30 31 00:02:35,150 --> 00:02:39,310 Now there's a number of different ways of writing this function. 31 32 00:02:39,350 --> 00:02:41,120 Some of you might have wondered, 32 33 00:02:41,360 --> 00:02:45,460 I don't really want to multiply the height by height in order to get it squared. 33 34 00:02:45,500 --> 00:02:48,810 Why can’t I just raise height to the power of 2? 34 35 00:02:49,040 --> 00:02:51,300 How would I do that in Javascript? 35 36 00:02:51,350 --> 00:02:56,970 Well, as with any query regarding programming, the solution is only a quick google away. 36 37 00:02:57,080 --> 00:03:03,290 So if we search for ‘raise a number to a power’ and we add the keyword Javascript, then you can see that the 37 38 00:03:03,290 --> 00:03:10,330 MDN docs come up with the Math.pow function, and it shows us how to use it. 38 39 00:03:10,360 --> 00:03:12,460 It says that we can simply say Math. 39 40 00:03:12,490 --> 00:03:13,330 pow, 40 41 00:03:13,630 --> 00:03:18,550 and the first number is the base and the second number is the exponent. 41 42 00:03:18,620 --> 00:03:24,110 So this is your squared which will be 2 or cubed which will be 3. 42 43 00:03:24,350 --> 00:03:26,570 And this is how you would use it. 43 44 00:03:26,570 --> 00:03:27,680 So let's try it out 44 45 00:03:27,680 --> 00:03:30,710 in our case. Instead of writing height times height, 45 46 00:03:30,950 --> 00:03:32,490 what if we did Math. 46 47 00:03:32,520 --> 00:03:40,660 pow, set of parentheses, and then we said height, 2, so height to the power of 2? 47 48 00:03:41,030 --> 00:03:47,240 Now, if we check our solution, you can see that our function is still working exactly as we expect it 48 49 00:03:47,240 --> 00:03:47,630 to, 49 50 00:03:47,780 --> 00:03:50,230 but it's now perhaps a little bit more elegant. 50 51 00:03:50,420 --> 00:03:56,840 Now, if you run this code as it is right now, for example we're calculating the BMI from 65 kilograms 51 52 00:03:56,870 --> 00:04:01,040 and 1.8, and then we're logging that BMI into the console, 52 53 00:04:01,190 --> 00:04:03,480 then you can see that we're getting a really long number, 53 54 00:04:03,500 --> 00:04:08,660 20.0672839 etc.. 54 55 00:04:08,870 --> 00:04:11,820 Now usually with BMI we're working with whole numbers. 55 56 00:04:11,870 --> 00:04:18,230 So how can we turn this long number with loads of decimal places to simply a whole number? 56 57 00:04:18,230 --> 00:04:20,070 Well again Google is your friend. 57 58 00:04:20,270 --> 00:04:26,720 And if you search for ‘Javascript round a number to the nearest whole number’ or something around there, then 58 59 00:04:26,780 --> 00:04:33,320 the first result that you get is from W3 Schools, and it tells you about the round method, which you can 59 60 00:04:33,320 --> 00:04:41,090 use by saying Math.round, and is similar to the floor method, which simply rounded down your decimal 60 61 00:04:41,090 --> 00:04:41,630 place. 61 62 00:04:41,630 --> 00:04:44,500 But Math.round is more mathematically correct. 62 63 00:04:44,690 --> 00:04:48,380 So if it's 2.5 it will round it to 3, and if it's 2.4 63 64 00:04:48,420 --> 00:04:49,690 it’ll round it to 2. 64 65 00:04:49,940 --> 00:04:52,950 So let's try using this in our solution. 65 66 00:04:53,000 --> 00:05:03,050 So if, instead of returning bmi, we returned Math.round, and inside the parentheses we enclosed our 66 67 00:05:03,050 --> 00:05:06,190 bmi, as a number with decimal places. 67 68 00:05:06,200 --> 00:05:12,460 Now if we run our code you can see that we only get 20 back which is exactly what we wanted. 68 69 00:05:12,680 --> 00:05:20,400 And if you change our solution to this updated one inside our testing suite, then you can see that our solution 69 70 00:05:20,560 --> 00:05:21,880 also passes. 70 71 00:05:22,100 --> 00:05:26,600 So I hope that was interesting and we've got a few more of these challenges coming up for you. 71 72 00:05:26,750 --> 00:05:27,990 So keep your eyes peeled. 72 73 00:05:28,040 --> 00:05:32,630 But in the next lesson, we're going to dive deeper into Javascript, and we're going to learn all about 73 74 00:05:32,630 --> 00:05:33,770 control flow. 74 75 00:05:34,040 --> 00:05:36,990 So you have all of that and more to look forward to. 75 76 00:05:37,100 --> 00:05:38,600 So I'll see you on the next module. 7900

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.