def mpr(x,ss,s0, lt): #we initialize both gross requierement array and scheduled receipts array gr= [] sr= [] #we insert our values in both gross requierement array and scheduled receipts array for i in range(x): gr.append(int(input("insert :"))) for i in range(x): sr.append(int(input("insert scheduled receipts:"))) oh = [0] * x nr = [0] * x por = [0] * x if s0 + ss + sr[0] > gr[0] : nr[0]=0 oh[0]=(s0+sr[0])-gr[0] else : nr[0]=gr[0]- ( (s0-ss)+sr[0]) oh[0]=ss i=1 while i < x : if oh[(i-1)] + ss + sr[i] > gr[i] : nr[i]=0 oh[i]=(oh[i-1]+sr[i])-gr[i] else : nr[i]=gr[i]-((oh[i-1]-ss)+sr[i]) oh[i]=ss por[i-lt]=nr[i] sr[i]=por[i-lt] i+=1 return [gr,sr,oh,nr,por] # we call our fonction using : number of days/months, security stock, first stock on hand, and LT as entries to our function print(mpr(8,0,100,3))
时间: 2024-04-29 09:20:01 浏览: 6
此代码是一个物料需求计划(Material Requirements Planning, MRP)的模拟实现,输入参数为天数/月数、安全库存、初始库存和LT(交货时间),然后输出一个由五个数组组成的列表,分别是毛需求、计划收货、期初库存、净需求和计划在手量。这个函数的实现比较复杂,主要是在计算净需求和计划在手量时需要考虑上一个时间段的期末库存和安全库存的影响。
相关问题
if [ $i -ne 7 ]; then echo "MPR:powrer_sum|0|W" echo "ERROR: Check power count is not 7" exit -1 else echo "-----------------------------------------------" awk -v var0=${power_array[0]} -v var1=${power_array[1]} -v var2=${power_array[2]} -v var3=${power_array[3]} \ -v var4=${power_array[4]} -v var5=${power_array[5]} -v var6=${power_array[6]} -v pow_lim=$pow_high_lim \ BEGIN'{ printf "MPR:leakge_power_sum|%.4f|W\r\n",var0+var1+var2+var3+var4+var5; \ if[((var0+var1+var2+var3+var4+var5+var6) < pow_lim)&&('$sd5223c_request' -eq 1)]{printf "Leakage 5223 test pass\n"} else {printf "Leakage test fail\n"} }' fi这句话有没有语病
这句话有一处语法错误。在if语句的条件判断部分,应该使用双括号(( ))来包裹条件表达式,并且逻辑运算符&&的使用也不正确。正确的写法如下:
```bash
if (( $i -ne 7 )); then
echo "MPR:powrer_sum|0|W"
echo "ERROR: Check power count is not 7"
exit -1
else
echo "-----------------------------------------------"
awk -v var0=${power_array[0]} -v var1=${power_array[1]} -v var2=${power_array[2]} -v var3=${power_array[3]} \
-v var4=${power_array[4]} -v var5=${power_array[5]} -v var6=${power_array[6]} -v pow_lim=$pow_high_lim \
BEGIN'{ printf "MPR:leakge_power_sum|%.4f|W\r\n",var0+var1+var2+var3+var4+var5; \
if (( (var0+var1+var2+var3+var4+var5+var6) < pow_lim)) && ((sd5223c_request == 1)); then \
printf "Leakage 5223 test pass\n" \
else \
printf "Leakage test fail\n" \
fi }'
fi
```
注意,我在修正语法错误的同时,还对if语句中的条件判断和awk命令的执行逻辑进行了修正。
mpr121 stm32
MPR121是一款电容式触摸芯片,常用于实现触摸功能的应用。而STM32是意法半导体(STMicroelectronics)推出的一系列32位单片机产品,该系列产品具有高性能、低功耗以及丰富的外设接口等特点。
将MPR121与STM32进行结合,可以实现更丰富的触摸功能的应用。首先,通过STM32将MPR121与外部电路连接,可以检测到用户触摸芯片上的电容,以此实现多点触控、手势识别等功能。然后,STM32可以通过相应的驱动程序与MPR121进行通信及数据交互,获取触摸点的坐标、触摸状态等信息。
在STM32的开发过程中,可以利用相应的开发工具或软件,编写C语言程序实现MPR121与外设的连接和数据交互。通过配置STM32的相关寄存器以及编写相应的中断服务函数,可以实现触摸事件的处理和触摸功能的灵活应用。
除了触摸功能外,MPR121还可以用于其他应用,例如开关控制、手势识别等。利用STM32丰富的外设接口,可以实现与其他外设的连接和控制,扩展MPR121的应用领域。
总的来说,MPR121和STM32的结合可以实现丰富的触摸功能应用,并具有灵活性和可扩展性。这两个技术的结合为电子产品的设计和开发提供了更多的可能性。