Project/App Inventer

A02. BMI계산기

Tuan0324 2021. 3. 12. 23:53

 

BMI란?

Body Mass Index의 약자로, 키와 몸무게로 계산한 대략적인 체질량 지수이다.

BMI 지수는 쉽게 잴 수 있는 키와 몸무게만으로 간단히 추정할수 있어서 유리하다.

 

오늘은 앱인벤터를 이용하여 BMI계산기를 만들어보려고 한다.

 

해당 프로그램은 약간의 프로그래밍에 대한 지식이 필요하다. 그 지식은 바로 변수이다.

 

변수 : 어떤 값을 보관(저장)할 때 사용하는 상자

글로벌(global) 변수 : 프로그램 전체에서 사용되는 변수

로컬(local) 변수 : 특정 지역(블록)에사만 사용가능한 변수

get : 변수의 값을 가져옴

set : 변수에 새로운 값을 지정함 

 

또한 if else 조건문도 알아두어야한다.

if else는 조건문으로서 특정 조건에 맞춰 해당 코드가 실행되고 해당되지 않으면 다음 조건으로 넘어가는 조건문이다.

예시를 살펴보자

if bmi < 20
	than txt == '저체중입니다.'
else if bmi < 25
	than txt == '정상입니다.'
else if bmi < 30
	than txt == '경도비만입니다.'
else if bmi < 40
	than txt == '비만입니다.'
else
	than txt == '고도비만입니다.'

위와 같이 하나씩 조건을 훑으면서 해당조건이 만족되면 than 뒤의 코드를 수행하고, 만족되지 않는다면 다음 if문으로 넘어간다.

만약 지정해준 조건문들중 하나도 해당되지 않으면 마지막의 else에 지정해둔 코드가 수행된다.

 

일단 이 정도만 알아두면 오늘 제작하려는 프로그램을 만드는데 지장없다. 

자세한 정보는 차차 배워가거나 블로그의 Fundamental 항목을 살펴보자!

 

 

프로그래밍 과정

1. 아이디어
      ■ 체중과 키를 입력받아서 BMI를 계산하고,
      ■ BMI수치에 따라 비만정도를 출력한다.
2. 디자인
      ■ 컴포넌트 배치 
      ■ 속성 수정
3. 코딩(블록 코딩)
4. 테스트

 

1. 아이디어

제작하려고 하는 BMI계산기의 목적은 다음과 같다.

1. 키(m)와 체중(kg)을 입력한다.
2. BMI를 계산한다.
3. 계산된 BMI에 따라 비만정도를 출력한다.

 

우선 앱을 만들기전, BMI의 계산법과 비만판정 기준을 정하여야한다.

 

BMI 지수의 계산법은 다음과 같다.

BMI = 체중 / (신장 * 신장)
단, 체중은 kg, 신장은 m단위이다.

 

판정기준은 여러가지가 있지만 보통 BMI를 계산한다고하면 통상적으로 쓰이는 기준으로 잡았다.

BMI < 20                    == 저체중
20<= BMI <25            == 정상체중
25<= BMI <30            == 경도비만
30<= BMI <40            == 비만
BMI >= 40                  == 고도비만

 

2. 디자인

일단 필요한 컴포넌트가 무엇이 있는지 알아보자

 

1. 신장의 값을 입력받는  TextBox

2. 체중의 값을 입력받는  TextBox

3. 누르면 BMI 지수를 계산하는 Button

4. BMI지수를 알려주는 문장을 띄워줄 Label

5. 비만정도를 알려주는 Label

 

이렇게 5개의 컴포넌트가 필요하다는 것을 알 수 있다. 

그렇다면 위 순서대로 컴포넌트를 삽입하고 배경색과 AlignHorizontal과 AlignVertical를 중앙으로 변경하여보자.

컴포넌트들을 넣고 배경색과 위치를 수정하였다.

여기서 문제가 한가지 발생한다. 이전 포스트에서는 아니였지만 중복되는 컴포넌트들이 있다.

해당 프로그램에서는 TextBox와 Label이 2개씩 존재하므로 각각의 컴포넌트에 이름을 붙여주어야한다.

그리고 TextBox를 그냥 아무것도 없이둔다면 사용자가 신장의 값을 넣어야할지 체중의값을 넣어야할지 모르기 때문에

옅은 글자색으로 해당 TextBox에 어떤 값을 넣어 주어야 하는지 알려주자.(Properties의 Hint에서 설정이 가능하다.)

단, 신장의 입력 값은 cm 단위로 받는다.

또한 비만 정도를 출력하는 Label도 버튼을 눌렀을 때만 나오도록 디폴트값을 공백으로 만들어두자.

마지막으로 버튼의 텍스트와 첫 번째 Label을 수정하자.

※ 컴포넌트의 네이밍은 프로그램을 코딩하는데 있어서 아주 좋은 기법이다.※

 

components에서 원하는 컴포넌트를 클릭 후 Rename을 누르면 이름을 변경할 수 있다. 

사진으로는 나오지 않지만 HInt란을 통해 옅은회색으로 해당 txtbox의 입력값을 나타낸다.

 

3. 코딩

BMI와 신장, 체중의 값을 담을 변수를 만든다.

버튼을 눌렀을때

이후 실행되는 코드는 버튼이 눌렸을 때 실행되므로 모두 안으로 넣어주자!

텍스트요소를 가져와서 변수에다가 넣어주고

신장의 단위를 cm에서 m로 바꾸고 변수에 다시 넣어준다.

그리고 BMI 값을 계산하고 변수에 넣는다.

BMI의 값을 lblBMI의 텍스트로 나타내준다. (소수점은 첫째자리 까지 나타낸다.)

 

조건에 따라서 비만정도를 나타내는 lblResult를 변경하여준다.

코딩 끝! 전체적으로보면 다음과 같다.

BMI 계산기 블록코딩

 

4. 테스트

 

NOX로 돌려보았다.
A02BMI.apk
3.29MB

NOX로 빌드한 파일을 실행시켜본 결과 아주 잘 작동한다.

 

 

 

 

 

잘못된 정보나 오류, 오타, 독자 입장에서의 수정사항 및 피드백 환영합니다. 

E-mail : jhmh0226@gmail.com