Ile musisz ćwiczyć, aby spalić zjedzone pączki?

Autorem wpisu jest Adam Pietrzyk – inżynier aplikacji w firmie ONT. Zainspirowany obchodzonym w firmie świętem jakim jest Tłusty Czwartek, postanowił przygotować prosty skrypt, który pozwala na przeliczenie ile czasu należy wykonywać ćwiczenia, aby spalić jednego pączka.

Zainspirowany obchodzonym przez nas w firmie świętem jakim jest Tłusty Czwartek, postanowiłem przygotować prosty skrypt, który pozwoli mi przeliczyć ile czasu należy wykonywać ćwiczenia, aby spalić jednego pączka. Poszukując informacji na temat jego kaloryczności dowiedziałem się, że przeciętny pączek z lukrem i dżemem waży 70g oraz posiada wartość energetyczną 291kcal.

Prywatnie trenuję kolarstwo, więc nie mogło go zabraknąć w aktywnościach fizycznych. Ponadto umieściłem aerobik, taniec, bieganie, wbieganie po schodach, jazdę na nartach, porządki domowe i hit ostatnich dni czyli "łopatowanie śniegu".

Zgodnie z pozyskanymi w Internecie informacjami metabolizm (w dużym uproszczeniu) jest zależny  od płci, wagi, wzrostu i wieku.

W pierwszym kroku należy podać te informacje, aby przeprowadzić niezbędne obliczenia:

Do wprowadzenia konkretnych wartości wykorzystałem kontrolki, które dostępne są w Live Editorze. Live Script dzięki dodatkom takim jak wspomniane kontrolki, jest narzędziem, które z jednej strony przypomina aplikację posiadającą swoje GUI, a z drugiej tradycyjny skrypt zawierającym kod i komentarze.

Głównym komponentem naszego projektu jest funkcja CalloriesToBurn, która pobiera informacje podane na początku skryptu. Funkcja nie zwraca żadnego wyjścia, a po jej wykonaniu wyświetlane są dwie wiadomości.

W jaki sposób to działa, jak to policzyć i skąd wzięły się wyniki końcowe? Postaram się to wyjaśnić krok po kroku w momencie, gdy przyjrzymy się jak wygląda kod funkcji.

Kilka słów teorii

Poszukując informacji jak przeliczać czas danej aktywności na spalane kalorie i odwrotnie natknąłem się na Compendium of Physical Activities. Na tej stronie zapoznałem się z niezbędną teorią.

Współczynnik MET to ekwiwalent metaboliczny (ang. metabolic equivalent term), jest to jednostka energii odpowiadająca zużyciu tlenu w warunkach podstawowych, czyli w spoczynku (3,5 ml/(kg*min)).

Znając nasilenie wysiłku (wyrażone w MET), masę ciała i czas aktywności fizycznej można obliczyć liczbę kilokalorii zużytych podczas wysiłku fizycznego.

W tym przypadku będziemy poszukiwać czasu, a więc równanie będzie wyglądać następująco:

W linii 12 skryptu możemy zauważyć powyższe równanie zapisane z wykorzystaniem polecenia hours, które konwertuje obliczony czas na MATLABowy typ danych "duration" wyrażony w godzinach.

Linie 9-11 stanowią wywołanie funkcji pomocniczych, aby w możliwie dokładny sposób obliczyć potrzebny czas. Każda z funkcji pomocniczych będzie omówiona w dalszej części.

Od linii 13 rozpoczynamy formatowanie wiadomości zwrotnej. W linii 13 mamy do czynienia z ustaleniem formatu wyświetlania czasu, zaś w linii 14 pojawia się funkcja pomocnicza, która w zależności od wybranej liczby pączków dobiera odpowiednią odmianę słowa "pączek". Kolejne dwie linie to formatowanie tekstu wyświetlanych wiadomości. Polecenie 'strcat' pozwala nam na połączenie kilku ciągów znaków w jeden, dzięki temu odstępy pomiędzy kolejnymi słowami będą równe. Możemy też  zauważyć, że ciągi znaków podane są bezpośrednio pomiędzy cudzysłowami (" "), a także jako nazwa zmiennej w przestrzeni roboczej.
Linie 17 i 18 zawierają polecenie 'disp', które wyświetla przygotowane wcześniej wiadomości.

W linii 9 pojawia się funkcja 'choseMET'. Funkcja ta pozwala wybrać ustandaryzowaną wartość MET w zależności od wykonywanej aktywności fizycznej, a także zapisuje nazwę aktywności w języku polskim do zmiennej activ_odm, która jest wykorzystywana do wyświetlenia wiadomości końcowej. Funkcję realizujemy przy pomocy konstrukcji switch-case-otherwise.

Kolejna funkcja to METcorrection. Aby współczynnik MET był bardziej miarodajny dla osób, których sylwetka odbiega od przyjętej normy należy wprowadzić pewną korektę ze względu na płeć, wiek, wzrost i wagę osoby. Korekcję wartości MET opisuje równanie:

Wzór Harrisa-Benedicta jest zaimplementowany w osobnej funkcji Harris. W implementacji została użyta konstrukcja if-elseif-else, ponieważ inaczej oblicza się dzienne zapotrzebowanie na energię u kobiet, a inaczej u mężczyzn. W obydwu przypadkach wartość końcowa została przeliczona z kcal/dzień na ml/(kg*min), zgodnie z wzorem podanym w kompendium.

Ostatnia funkcja pomocnicza, to odmiana, która przy pomocy konstrukcji switch-case-otherwise dobiera odpowiednią odmianę słowa pączek i zapisuje ją do zmiennej ‘odm’, wykorzystywanej do sformatowania wiadomości wyświetlanej po wykonaniu funkcji głównej.

Po przeliczeniu okazało się, że w piątek wszyscy przyjdziemy do biura z solidnymi zakwasami po naszych ulubionych sportach 🙂

Pobierz skrypt i sprawdź swój wynik. W przypadku, jeśli nie odnalazłeś Twojej ulubionej aktywności spróbuj ją dodać w oparciu o informacje dostępne w Kompendium Aktywności Fizycznej.

Autorem tego wpisu jest Adam Pietrzyk - Inżynier Aplikacji w firmie Oprogramowanie Naukowo-Techniczne sp. z o.o. sp. k., który zajmuje się przede wszystkim symulacjami, modelowaniem fizycznym, weryfikacją kodu C oraz projektowaniem w oparciu o model, posiada również wiedzę produktową, szczególnie w zakresie rodziny produktów Polyspace. Ukończył Elektrotechnikę na Akademii Górniczo-Hutniczej w Krakowie.

W razie pytań zachęcamy do kontaktu: adam.pietrzyk@ont.com.pl

(Visited 83 times, 1 visits today)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *