编写Sub BMI()程序 查阅BMI(身高体重指数)的定义,编写程序,实现:当输入不同的身高和体重时,输出框提醒分别为: (1)恭喜您,您的BMI为?,非常标准,请继续保持。 (2)您的BMI为?,已经超重,请注意健康。 (3)您的BMI为?,属于肥胖人士,请咨询医生。
时间: 2024-05-28 20:08:40 浏览: 22
对于您的问题,我很乐意回答。以下是 Sub BMI() 程序的代码:
Sub BMI()
Dim height As Double
Dim weight As Double
Dim BMI As Double
height = InputBox("请输入您的身高(单位:米):")
weight = InputBox("请输入您的体重(单位:千克):")
BMI = weight / (height * height)
If BMI < 18.5 Then
MsgBox "恭喜您,您的BMI为 " & BMI & ",非常标准,请继续保持。"
ElseIf BMI >= 18.5 And BMI < 24 Then
MsgBox "您的BMI为 " & BMI & ",已经超重,请注意健康。"
Else
MsgBox "您的BMI为 " & BMI & ",属于肥胖人士,请咨询医生。"
End If
End Sub
希望这个程序能够帮到您。如果您还有其他问题,欢迎随时问我。
相关问题
汇编语言编写程序实现: 该数是奇数时输出 N,是偶数时输出 Y。
### 回答1:
下面是汇编语言实现该功能的代码:
```
section .data
msg db 'N' ; 奇数时输出的字符
msg2 db 'Y' ; 偶数时输出的字符
section .bss
num resb 1 ; 存储输入的数
section .text
global _start
_start:
; 读入一个数字
mov eax, 3 ; 系统调用号:读取
mov ebx, 0 ; 文件描述符:标准输入
mov ecx, num ; 缓冲区地址
mov edx, 1 ; 读取一个字节
int 0x80 ; 执行系统调用
; 判断数字奇偶性
mov eax, [num] ; 将读取的数字复制到寄存器 eax
and eax, 1 ; 与 1 进行位运算,结果为 1 表示数字为奇数,结果为 0 表示数字为偶数
cmp eax, 1 ; 将结果与 1 进行比较
je output_odd ; 如果结果为 1,则跳转到输出奇数字符的代码
jmp output_even ; 否则跳转到输出偶数字符的代码
output_odd:
; 输出奇数字符 'N'
mov eax, 4 ; 系统调用号:写入
mov ebx, 1 ; 文件描述符:标准输出
mov ecx, msg ; 字符 'N' 的地址
mov edx, 1 ; 写入一个字节
int 0x80 ; 执行系统调用
jmp exit_program
output_even:
; 输出偶数字符 'Y'
mov eax, 4 ; 系统调用号:写入
mov ebx, 1 ; 文件描述符:标准输出
mov ecx, msg2 ; 字符 'Y' 的地址
mov edx, 1 ; 写入一个字节
int 0x80 ; 执行系统调用
jmp exit_program
exit_program:
; 退出程序
mov eax, 1 ; 系统调用号:退出
xor ebx, ebx ; 返回值为 0
int 0x80 ; 执行系统调用
```
在上面的代码中,我们首先使用 `mov` 指令将系统调用号、文件描述符、缓冲区地址、读取字节数等信息加载到寄存器中,然后使用 `int 0x80` 指令执行相应的系统调用。读取完数字后,我们使用 `and` 指令和 `cmp` 指令判断数字的奇偶性,然后使用 `jmp` 指令跳转到相应的输出字符的代码中。最后,我们使用 `mov` 指令和 `int 0x80` 指令执行退出程序的系统调用,程序结束。
### 回答2:
要使用汇编语言编写程序来实现这个功能,我们可以按照以下步骤进行:
1. 首先,我们需要使用汇编语言定义一个标签,用于后续的条件判断和输出。
```assembly
DATA SEGMENT
RESULT DB ?
```
2. 接下来,我们需要通过输入获取一个数值。
```assembly
READ_NUM PROC NEAR
MOV AH, 1
INT 21H ; 从键盘获取一个字符
SUB AL, '0' ; 将ASCII码转换为数值
MOV BL, AL ; 将输入存储到BL寄存器中
RET ; 结束该过程
READ_NUM ENDP
```
3. 然后,我们需要判断输入的数值是奇数还是偶数。
```assembly
EVEN_OR_ODD PROC NEAR
MOV AH, 0
MOV AL, BL ; 将输入的数值存储到AL寄存器中
MOV BH, 0
MOV BL, 2 ; 将BL寄存器置为2,用于除法运算
DIV BL ; 将输入的数值除以2
CMP AH, 0 ; 判断余数是否为0
JZ EVEN ; 如果余数为0,转到EVEN标签
JMP ODD ; 否则,转到ODD标签
EVEN_OR_ODD ENDP
EVEN:
MOV RESULT, 'Y' ; 如果是偶数,将结果存储为大写字母Y
JMP OUTPUT ; 跳转到输出标签
ODD:
MOV RESULT, 'N' ; 如果是奇数,将结果存储为大写字母N
JMP OUTPUT ; 跳转到输出标签
```
4. 最后,我们需要输出结果。
```assembly
OUTPUT PROC NEAR
MOV AH, 2 ; 使用DOS功能2进行字符输出
MOV DL, RESULT ; 将结果存储到DL寄存器中
INT 21H ; 输出结果
RET ; 结束该过程
OUTPUT ENDP
```
最后,我们可以按照以下步骤调用这些过程,完成整个程序。
```assembly
START:
MOV AX, @DATA ; 初始化数据段寄存器
MOV DS, AX
CALL READ_NUM ; 调用READ_NUM过程获取一个数值
CALL EVEN_OR_ODD ; 调用EVEN_OR_ODD过程判断奇偶性
CALL OUTPUT ; 调用OUTPUT过程输出结果
MOV AH, 4CH ; 结束程序
INT 21H
END START
```
以上就是使用汇编语言编写程序实现判断数值奇偶并输出结果的方法。
使用8086汇编语言编写程序 编写程序实现:成绩评级判断器,给定score输出评级
以下是使用8086汇编语言编写的成绩评级判断器程序:
```
.MODEL SMALL
.STACK 100H
.DATA
score DB ?
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
; 读取输入的成绩
MOV AH, 01H
INT 21H
SUB AL, '0'
MOV score, AL
; 根据成绩判断评级
MOV DL, 'F'
CMP score, 90
JGE GRADE_A
CMP score, 80
JGE GRADE_B
CMP score, 70
JGE GRADE_C
CMP score, 60
JGE GRADE_D
GRADE_F:
MOV DL, 'F'
JMP PRINT_GRADE
GRADE_D:
MOV DL, 'D'
JMP PRINT_GRADE
GRADE_C:
MOV DL, 'C'
JMP PRINT_GRADE
GRADE_B:
MOV DL, 'B'
JMP PRINT_GRADE
GRADE_A:
MOV DL, 'A'
PRINT_GRADE:
; 输出评级
MOV AH, 02H
MOV DL, ' '
INT 21H
MOV DL, DL
INT 21H
MOV DL, score+'0'
INT 21H
MOV DL, ' '
INT 21H
MOV DL, DL
INT 21H
MOV AH, 02H
MOV DL, 'G'
INT 21H
MOV DL, 'r'
INT 21H
MOV DL, 'a'
INT 21H
MOV DL, 'd'
INT 21H
MOV DL, 'e'
INT 21H
MOV DL, ':'
INT 21H
MOV DL, ' '
INT 21H
MOV DL, DL
INT 21H
MOV DL, DL
INT 21H
MOV DL, DL
INT 21H
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
```
程序首先读取输入的成绩,然后根据成绩判断评级,最后输出评级。评级以字母形式表示,分为A、B、C、D、F五个等级。评级输出格式为“Grade: X”,其中X表示评级字母,原始输入的成绩也会同时输出。
请注意,此程序只适用于输入单个数字作为成绩,如果需要扩展到多位数成绩,需要对输入和数字转换部分进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)