问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

h个和尚h个馒头,一大和尚能吃四个馒头,四小和尚能吃一个馒头,求大小和尚人数,画出框图写出编程。

发布网友 发布时间:2022-11-28 06:08

我来回答

2个回答

热心网友 时间:2023-10-21 14:17

您好,


最终效果:


以下是 VB 代码的实现(做了高度封装):

frmMonk.frm

Option Explicit

Dim WithEvents mk As Monk

Rem 题目分析
Rem 设大和尚为人数为 X,小和尚为人数为 Y,馒头数为 Z,根据题意,则有方程组:
Rem X + Y = Z
Rem 4 * X + Y / 4 = Z
Rem 把第一个式子中 Z 的值代入到第二个式子中,则有
Rem X + Y = 4 * X + Y / 4
Rem 两边同时乘以 4,得到
Rem 4 * X + 4 * Y = 16 * X + Y
Rem 12 * X = 3 * Y
Rem 等式两边同时除以 3,得到
Rem 4 * X = Y
Rem 这时就可以得到大和尚人数和小和尚人数的最终关系了,也就是小和尚人数是大和尚人数的四倍!

Private Sub cboLimitedOption_Click()
    txtLimited.SetFocus
End Sub

Private Sub cmdEnum_Click()
    If lstOutput.ListCount > 0 Then lstOutput.Clear
    
    If cboLimitedOption.ListIndex <> -1 Then
        On Error GoTo ERR_EXCEPTION
        
        If Trim$(txtLimited.Text) <> vbNullString Then
            Call mk.OutputResultLimitedByNumberOfMonk_L(cboLimitedOption.ListIndex, CInt(txtLimited.Text))
            If mk.HasError Then MsgBox "执行期间遇到错误!", vbCritical, "错误"
        Else
            MsgBox "请输入*数", vbExclamation, "提示"
            txtLimited.SetFocus
        End If
    Else
        MsgBox "请选择*类型", vbExclamation, "提示"
    End If
    
ERR_EXIT:
    With mk
        .NumberOfMonk_L = 1
        .NumberOfMonk_S = 4
    End With
    
    Exit Sub
    
ERR_EXCEPTION:
    MsgBox Err.Description, vbCritical, "错误"
    txtLimited.SelStart = 0
    txtLimited.SelLength = Len(txtLimited.Text)
    txtLimited.SetFocus
    Resume ERR_EXIT
End Sub

Private Sub Form_Load()
    Set mk = New Monk
    
    With cboLimitedOption
        .Text = "*类型"
        .AddItem "大和尚人数"
        .AddItem "小和尚人数"
        .AddItem "和尚总人数"
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Not (mk Is Nothing) Then Set mk = Nothing
End Sub

Private Sub mk_OutputChange(ByVal intNumberOfMonk_L As Integer, ByVal intNumberOfMonk_S As Integer)
    lstOutput.AddItem "大和尚人数为: " & CStr(intNumberOfMonk_L) & " " & vbTab & "小和尚人数为: " & " " & CStr(intNumberOfMonk_S) & vbTab & "和尚总人数为: " & CStr(mk.NumberOfMonk_A)
End Sub


Monk.cls

Option Explicit

' ---------------
' 枚举: 输出选项.
' ---------------
Public Enum OutputOption
    ByNumberOfMonk_L    ' 大和尚人数.
    ByNumberOfMonk_S    ' 小和尚人数.
    ByNumberOfMonk_A    ' 和尚总人数.
End Enum

' -------------------
' 事件: 输出改变事件.
' -------------------
Public Event OutputChange(ByVal intNumberOfMonk_L As Integer, ByVal intNumberOfMonk_S As Integer)

' ---------------------
' 保持属性值的局部变量.
' ---------------------
Private mintNumberOfMonk_L  As Integer  ' 大和尚人数.
Private mintNumberOfMonk_S  As Integer  ' 小和尚人数.
Private mintNumberOfMonk_A  As Integer  ' 和尚总人数.
Private mblnHasError        As Boolean  ' 有错误.

' -------------------------
' 属性: 大和尚人数 (读/写).
' -------------------------
Public Property Let NumberOfMonk_L(ByVal intNumberOfMonk_L As Integer)
    mintNumberOfMonk_L = intNumberOfMonk_L
End Property

Public Property Get NumberOfMonk_L() As Integer
    NumberOfMonk_L = mintNumberOfMonk_L
End Property

' -------------------------
' 属性: 小和尚人数 (读/写).
' -------------------------
Public Property Let NumberOfMonk_S(ByVal intNumberOfMonk_S As Integer)
    mintNumberOfMonk_S = intNumberOfMonk_S
End Property

Public Property Get NumberOfMonk_S() As Integer
    NumberOfMonk_S = mintNumberOfMonk_S
End Property

' -------------------------
' 属性: 和尚总人数 (只读).
' -------------------------
Public Property Get NumberOfMonk_A() As Integer
    On Error GoTo ERR_RESET
    
    NumberOfMonk_A = mintNumberOfMonk_L + mintNumberOfMonk_S
    
    Exit Property
    
ERR_RESET:
    mblnHasError = True
End Property

' ------------------------------------
' 属性: 指示运行期间是否有错误 (只读).
' ------------------------------------
Public Property Get HasError() As Boolean
    HasError = mblnHasError
End Property

' ########################################
' [功能描述] 以和尚的目标人数*输出结果.
' [参数列表] 1. LimitedOption   *选项;
'            2. TargetNumber    目标人数.
' [返回类型] 无.
' ########################################
Public Sub OutputResultLimitedByNumberOfMonk_L(ByVal LimitedOption As OutputOption, ByVal TargetNumber As Integer)
    If mblnHasError Then mblnHasError = False
    
    On Error GoTo ERR_RESET
    
    Select Case LimitedOption
        
        Case ByNumberOfMonk_A
            
            Do
                mintNumberOfMonk_S = 4 * mintNumberOfMonk_L
                If mintNumberOfMonk_L + mintNumberOfMonk_S > TargetNumber Then Exit Do
                RaiseEvent OutputChange(mintNumberOfMonk_L, mintNumberOfMonk_S)
                mintNumberOfMonk_L = mintNumberOfMonk_L + 1
            Loop
            
        Case ByNumberOfMonk_L
            
            Do
                mintNumberOfMonk_S = 4 * mintNumberOfMonk_L
                If mintNumberOfMonk_L > TargetNumber Then Exit Do
                RaiseEvent OutputChange(mintNumberOfMonk_L, mintNumberOfMonk_S)
                mintNumberOfMonk_L = mintNumberOfMonk_L + 1
            Loop
            
        Case ByNumberOfMonk_S
            
            Do
                mintNumberOfMonk_S = 4 * mintNumberOfMonk_L
                If mintNumberOfMonk_S > TargetNumber Then Exit Do
                RaiseEvent OutputChange(mintNumberOfMonk_L, mintNumberOfMonk_S)
                mintNumberOfMonk_L = mintNumberOfMonk_L + 1
            Loop
            
    End Select
    
    Exit Sub
    
ERR_RESET:
    mblnHasError = True
End Sub

' #########
' 构造函数.
' #########
Private Sub Class_Initialize()
    mblnHasError = False
    mintNumberOfMonk_L = 1
    mintNumberOfMonk_S = 4
End Sub


热心网友 时间:2023-10-21 14:18

因为你的前两个数知不知道 ,但全都让你写成了相同的小h代表,也许是我的电脑有问题,所以改一下
和尚的数改为H
而馒头数为h
设大和尚有x人,因为大小和尚一共有h人,所以小和尚有(和尚总数H-x)人
可以列个等量关系:大和尚吃的馒头为 4*x 小和尚吃的馒头为1/4 *(H-x)
因为大和尚吃的馒头+小和尚吃的馒头=h
所以4*x+1/4*(H-x)=h
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 28000H个字节等于163840个字节这个h 是十六制吗 孙杨爸爸有多高 为什么H的个数不能超过C的个数 长沙理工大学建筑环境与设备工程专业怎么样? 谁知道世界三大运河的资料? 长沙理工大学 环境工程是哪个院的 长沙理工大学环境工程就业怎么样 nbasky是谁 nba阿博的原型 血压154--99男,高吗 我是高血压一期99/155需要吃药吗,吃什么药好 求名字姓罗 天津大学教育学博士提前毕业条件 股票凤凰光学的代码是什么?凤凰光学开盘价是多少?600071凤凰光学股吧600071? 棒球滑垒技术讲解 藤球技术讲解 我国现在核电所用的2代+技术的详细情况 江苏核电(田湾核电)技术支持岗位主要是做什么的呢?发展前景如何啊。。谢谢! 核电厂的技术支持一般具体是做什么的啊 大运,劲錾150—38油箱装好多升油 孙杨的父母祖藉 孙杨爸爸在哪上班 2mol H2中含分子的个数是多少?H的个数是多少 孙杨的爸爸是哪所学校的老师 G1715发生什么事了 火车G1718次列车停昆山南站吗? 益生菌是药还是保健品 益生菌有什么作用 仙诗丽益生菌是药吗? 纪录片《生态秘境》探寻四川最神奇的物种,当地都有哪些神奇生物? 四川生物学习顺序 四川大学生物压线好考吗 贵阳市小河改有哪些小升初中学 四川天恩生物科技有限公司是不是传销 贵阳前十名初中都是哪几所学校? 长航凤凰现在多少钱?长航凤凰有长期持有价值吗?长航凤凰最新公告消息? 长航凤凰的公告?长航凤凰宏观经济分析?长航凤凰股份股票? 究竟有没有长生不老药?秦始皇是否真的找到? 西门子模块fdci221-cn灯一直闪是什么状态 西门子消防设备输入输出模块接线图 西门子fdc1221cn接线有专用工具吗?