Hackety Hacking Problem Spring Oscillation TernaryOperator: Difference between revisions
Jump to navigation
Jump to search
(cat) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Your physics teacher is teaching you the principles of Oscillations. In a demonstration, She shows you how a spring oscillates. |
Your physics teacher is teaching you the principles of Oscillations. In a demonstration, She shows you how a spring oscillates. |
||
After compressing it to 1cm, according to Hooke's Law, which is formulated as F = -K*x , the spring starts oscillating. Write a program which could plot the variation of force with change in length of the spring? |
After compressing it to 1cm, according to Hooke's Law, which is formulated as F = -K*x , the spring starts oscillating. Write a program which could plot the variation of force with change in length of the spring? |
||
== Sample Output == |
== Sample Output == |
||
Line 13: | Line 12: | ||
The simulation of Spring motion is as : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 9 , 8 , 7 ,6 , 5 , 4 , 3 , 2 , 1 , 0 |
The simulation of Spring motion is as : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 9 , 8 , 7 ,6 , 5 , 4 , 3 , 2 , 1 , 0 |
||
</pre> |
</pre> |
||
== Curriculum Connections == |
|||
To solve this problem, students will: |
|||
* Take input from a user |
|||
* Store input in a variable |
|||
* Understand the usage of Ternary Operator ( and if-else logic) |
|||
* Output data to the user |
|||
* Demonstrate an understanding of Forces and Laws of Motion |
|||
== Solution in RUBY == |
|||
<pre> |
|||
#this block takes input from the user |
|||
puts("Please enter the Spring Constant of spring and press ENTER:") |
|||
k=gets.to_i |
|||
puts("\nThe Force at Compressed State = "+(-1*k).to_s) |
|||
puts("\nThe Force at relaxed state = 0 N") |
|||
#l is the string that accumulates the whole data to be printed |
|||
l="The simulation of Spring motion is as :" |
|||
#count is the integer variable whose value is being incremented |
|||
count=0 |
|||
#the first loop is the loop used for incrementing the value of count from 0 10 |
|||
k.times do |
|||
l+=count.to_s+" ," |
|||
count+=1 |
|||
end |
|||
#the second loop this is used to vary the value of coutn from 10 to 0 |
|||
k.times do |
|||
l+=count.to_s+" ," |
|||
count-=1 |
|||
end |
|||
l+="0" |
|||
#Place the output on the screen |
|||
puts(l) |
|||
</pre> |
|||
[[Category: Hackety Lesson Plan]] |
Latest revision as of 20:09, 6 April 2008
Problem Statement
Your physics teacher is teaching you the principles of Oscillations. In a demonstration, She shows you how a spring oscillates. After compressing it to 1cm, according to Hooke's Law, which is formulated as F = -K*x , the spring starts oscillating. Write a program which could plot the variation of force with change in length of the spring?
Sample Output
Please enter the Spring Constant of Spring and press ENTER: 10 The Force at Compressed State = -10 N The Force at Relaxed State = 0 N The simulation of Spring motion is as : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 9 , 8 , 7 ,6 , 5 , 4 , 3 , 2 , 1 , 0
Curriculum Connections
To solve this problem, students will:
- Take input from a user
- Store input in a variable
- Understand the usage of Ternary Operator ( and if-else logic)
- Output data to the user
- Demonstrate an understanding of Forces and Laws of Motion
Solution in RUBY
#this block takes input from the user puts("Please enter the Spring Constant of spring and press ENTER:") k=gets.to_i puts("\nThe Force at Compressed State = "+(-1*k).to_s) puts("\nThe Force at relaxed state = 0 N") #l is the string that accumulates the whole data to be printed l="The simulation of Spring motion is as :" #count is the integer variable whose value is being incremented count=0 #the first loop is the loop used for incrementing the value of count from 0 10 k.times do l+=count.to_s+" ," count+=1 end #the second loop this is used to vary the value of coutn from 10 to 0 k.times do l+=count.to_s+" ," count-=1 end l+="0" #Place the output on the screen puts(l)