用c语言编程滑块的三种状态

img

img


根据上面两张图片中的条件编程(用c语言编程,考虑f摩擦因数,在编程中注释)

回答:补上流程图:

img

回答:讲道理哈,物理题;代码如下:

附加解释倾覆发生的情况:
翻倒属于旋转运动!不是质点运动!
当力的方向不穿过重心时,会对物体产生旋转的力矩!
力矩的方向是力的方向减去力对重心方向的分量(称之为旋转分量) 得到的方向!
力矩的大小是力的方向减去力对重心方向的分量(称之为旋转分量) 乘以受力点到重心的距离得到的力矩!
滑块翻倒的条件:1.重力的方向不穿过AB线段上的点,而是穿过BA的延长线上的点!sinθ>AB/h=AB/BC
2.施加沿着滑坡方向向下的推力,以A为支点,产生的力矩大于重力产生的力矩,滑块也会翻倒!
3.施加沿着滑坡方向向上的推力,以B为支点,产生的力矩大于重力产生的力矩,滑块也会翻倒!

img

img

#include<stdio.h>
#include<cmath>

int main(){         //判断滑块运动状态,cos(jiaodu)*f  与 sin(jiaodu)的比较   
    float a,b,f,u;     //辛塔打不出来哈,用 u 代替了
    printf("请分别输入长、宽、角度(可以用PAI表示,3.14代表360度,所以PAI/4接近0.8)、摩擦因数:\n");
    scanf("%f%f%f%f",&a,&b,&u,&f);
    
    /*
    如果习惯用360度,输入30,表示辛塔角为30度,就修改一下 u 表示的意思 ,PAI=3.141592654
    float U;
    scanf("%f",&U); 
    
    u=u/360*U*3.141592654;
    */
    
    
    //先判断滑动,由于没有静摩擦力的描述,所以就用滑动摩擦力表示最大静摩擦力了 
    if(f*cos(u)>=sin(u)){
        printf("不会滑动\n");
    } 
    else{
        printf("会滑动\n");
    }
    
    //判断倾覆,b/a  与  sin(jiaodu)  的比较,目前我也没有考虑力矩的问题,可能会和摩擦因素有关,这个答案仅作参考哈
    if(b/a>=sin(u)){
        printf("不会倾覆\n");
    } 
    else{
        printf("会倾覆\n");
    }
}

img

img