Advertisement
yugecin

Kinematics: uniform rectilinear motion

Nov 20th, 2012
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. @REM Time function is not working properly (yet)
  2.  
  3. ::Example::
  4. ::If there is a straight section of highway 120 Km between them and Joe travels south towards
  5. ::Bob at 30Kph while Bob travels north towards Joe at 25Kph how long will it be before they
  6. ::meet and how far will each have traveled in that time?
  7.  
  8. ::https://www.facebook.com/groups/ILMFP/
  9.  
  10. ::Joe:
  11.         ::Starting distance: 0
  12.         ::Starting time: 0
  13.         ::Speed: 30
  14. ::Bob:
  15.         ::Starting Distance: 120
  16.         ::Starting time: 0
  17.         ::Speed: -25 (negative because Bob is going to Joe)
  18. ::Output:
  19.     ::Meeting time: 2,181 h
  20.     ::Distance Joe: 65.430 km
  21.     ::Distance Bob: 54.525 km
  22.  
  23. @REM I <3 Math for programming!
  24. @REM (c) Robin "yugecin" Claerhout
  25. @echo off
  26. :a
  27. call:table "1"
  28. set /p a=ÈÍ^>
  29. if not defined a goto a
  30. :b
  31. call:table "2"
  32. set /p b=ÈÍ^>
  33. if not defined b goto b
  34. :c
  35. call:table "3"
  36. set /p c=ÈÍ^>
  37. if not defined c goto c
  38. :d
  39. call:table "4"
  40. set /p d=ÈÍ^>
  41. if not defined d goto d
  42. :e
  43. call:table "5"
  44. set /p e=ÈÍ^>
  45. if not defined e goto e
  46. :f
  47. call:table "6"
  48. set /p f=ÈÍ^>
  49. if not defined f goto f
  50. cls
  51.  
  52. if %c% LSS %f% (
  53.     if %a% LSS %d% (
  54.         echo They will never meet!
  55.         pause
  56.         goto a
  57.     )
  58. )
  59.  
  60. ::%a% sdistance joe
  61. ::%b% stime joe
  62. ::%c% speed joe
  63.  
  64. ::%d% sdistance bob
  65. ::%e% stime bob
  66. ::%f% speed bob
  67.  
  68. ::ERB joe = sdistance + speed*t - speed*stime
  69. ::        = %a% + %c%*t - %c%*%b%
  70.  
  71. ::ERB bob = sdistance + speed*t - speed*stime
  72. ::        = %d% + %f%*t - %f%*%e%
  73.  
  74. :: %a% + %c%*t - %c%*%b% = %d% + %f%*t - %f%*%e%
  75. ::       (%c%-%f%)*t     = %d% - %a% - %f%*%e% + %c%*%b%
  76. ::                 t     = (%d% - %a% - %f%*%e% + %c%*%b%)/(%c%-%f%)
  77. set /a a*=1000
  78. set /a b*=1000
  79. set /a c*=1000
  80. set /a d*=1000
  81. set /a e*=1000
  82. set /a f*=1000
  83.  
  84. set /a t=(%d% - %a% - %f%*%e% + %c%*%b%)/(%c%/1000-%f%/1000)
  85. if %t% GTR 999 (
  86. echo Meeting time: %t:~0,1%,%t:~1,3% h
  87. ) else (
  88.     if %t% GTR 99 (
  89.         echo Meeting time: 0.%t% h
  90.     ) else (
  91.         echo Meeting time: 0.0%t% h
  92.     )
  93. )
  94. ::if %c% LSS 0 set /a c*=-1
  95. ::if %f% LSS 0 set /a f*=-1
  96. set /a i=%c%*%t%
  97. set /a j=%f%*%t%
  98. set /a i/=1000
  99. set /a j/=1000
  100. if %i% LSS 0 set /a i*=-1
  101. if %j% LSS 0 set /a j*=-1
  102. rem set /a i=%a%-%i%
  103. rem set /a j=%d%-%j%
  104. rem if %i% LSS 0 set /a i*=-1
  105. rem if %j% LSS 0 set /a j*=-1
  106.  
  107. if %i% GTR 99999 (
  108.     echo Distance Joe: %i:~0,3%.%i:~3,7% km
  109. ) else (
  110.     if %i% GTR 9999 (
  111.         echo Distance Joe: %i:~0,2%.%i:~2,5% km
  112.     ) else (
  113.         if %i% GTR 999 (
  114.             echo Distance Joe: %i:~0,1%.%i:~1,3% km
  115.         ) else (
  116.             if %i% GTR 99 (
  117.                 echo Distance Joe: 0.%i% km
  118.             ) else (
  119.                 echo Distance Joe: 0.0%i% km
  120.             )
  121.         )
  122.     )
  123. )
  124.  
  125. if %j% GTR 99999 (
  126.     echo Distance Bob: %j:~0,3%.%j:~3,3% km
  127. ) else (
  128.     if %j% GTR 9999 (
  129.         echo Distance Bob: %j:~0,2%.%j:~2,3% km
  130.     ) else (
  131.         if %j% GTR 999 (
  132.             echo Distance Bob: %j:~0,1%.%j:~1,3% km
  133.         ) else (
  134.             if %j% GTR 99 (
  135.                 echo Distance Bob: 0.%j% km
  136.             ) else (
  137.                 echo Distance Bob: 0.0%j% km
  138.             )
  139.         )
  140.     )
  141. )
  142.  
  143. pause
  144. goto a
  145.  
  146. exit /b
  147.  
  148.  
  149. :table
  150. setlocal
  151. cls
  152. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  153. echo º              Joe          º     Bob                 º
  154. echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
  155. set "a= Starting distance (km)"
  156. if "%~1" EQU "1" set "a=^>Starting distance (km)"
  157. set "b= Starting distance (km)"
  158. if "%~1" EQU "4" set "b=^>Starting distance (km)"
  159. echo º %a%   º %b% º
  160. set "a= Starting time (h)"
  161. if "%~1" EQU "2" set "a=^>Starting time (h)"
  162. set "b= Starting time (h)"
  163. if "%~1" EQU "5" set "b=^>Starting time (h)"
  164. echo º %a%        º %b%      º
  165. set "a= Speed (km/h)"
  166. if "%~1" EQU "3" set "a=^>Speed (km/h)"
  167. set "b= Speed (km/h)"
  168. if "%~1" EQU "6" set "b=^>Speed (km/h)"
  169. echo º %a%             º %b%           º
  170. echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  171. endlocal
  172. GOTO:EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement