Հիմնականում ես հանձնարարություն ունեմ, ամեն ինչ հարթ է ընթանում, բայց երբ ես որոշակի արժեք մուտքագրում եմ օղակի մեջ, այն երբեք չի դադարում, ի տարբերություն իմ մուտքագրած այլ արժեքների, ինչը տարօրինակ է, և ես չեմ կարողանում հասկանալ, թե ինչպես վարվել դրա հետ: Ահա կոդը.
dim = int(input())
pos = int(input())
v = int(input())
vi = v
a = int(input())
posa = dim +1
print(pos)
while v != 0 or v*vi>0:
if -dim < pos < dim or pos == dim or pos == -dim:
pos += v
elif pos > dim:
pos = dim
v -= a
v = -v
elif pos < -dim:
pos = -dim
v += a
v = -v
if -dim <= pos <= dim and not posa==pos:
print(pos)
posa = pos
Որոշ համատեքստում դա ծրագիր է, որը կոչված է տալ բամպեր մեքենայի դիրքը, խամրած և խամրած պատերն են, որոնց վրա մեքենան կարող է բախվել և այնուհետև ետ ցատկել, pos-ը մեկնարկային դիրքն է, v-ն սկզբնական արագությունն է, և a է: որքանով է արժեքի բացարձակ արժեքը նվազում պատին բախվելուց հետո: Ենթադրվում է, որ այն ի վերջո կանգ կառնի, երբ այլևս արագություն չկա: Խնդիրն այն է, որ եթե մուտքագրումը 10,-3,6,2 է; այն աշխատում է կատարյալ, բայց եթե դրա մուտքագրումը 10,-3,8,3 է; հանգույցը երբեք չի ավարտվում, և ես չեմ կարող հասկանալ, թե ինչու:
Խմբագրել. Ես չեմ կարող օգտագործել, սահմանել, ներմուծել, կոտրել, շարունակել, ցուցակագրել և նման բաներ, հիմնականում ամենահիմնական բաները, ինչպիսիք են՝ եթե և երբ:
pos
-ը փոխվի այնպես, որ ի վերջոif -dim < pos < dim or pos == dim or pos == -dim
-ը ձախողվի՝ թույլ տալով կամelif pos > dim:
-ին կամelif pos < -dim:
-ին, որից հետոv
-ը կարող է փոխվել: 22.11.2020