Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // libWebAssign LOL
- function putHelp(solutionSet) {
- title = solutionSet[0]
- solutionSet = solutionSet[1] || {}
- if($$('.bread').getNext()[0].innerHTML.replace(/^\s+/, '') != title) {
- alert("Invalid Solution Set Loaded! I work for '" + title + "'")
- }
- $$('.numSolveButtan').dispose()
- $$('[id^="question"]').each(function(v, k) {
- addSolveButton(v)
- })
- function solve(questionDiv, sol) {
- var elements = []
- questionDiv.getElements('font[color=red]').each(function(v, k) {
- elements.push(
- parseFloat(v.innerHTML)
- )
- })
- var results = sol(elements)
- var inputFields = questionDiv.getElements('input[type=text]')
- try {
- results.each(function(v, k) {
- if(inputFields[k] === undefined) {
- throw "fail";
- } else {
- inputFields[k].set('value', round(v))
- }
- })
- } catch(e) {
- alert("Too many results, too few fields.")
- }
- }
- function addSolveButton(div) {
- var key = div.getElement('.qTitleRight > span').innerHTML.substring(16).replace(/\.\s+/, '')
- var sol = solutionSet[key]
- if(sol === undefined) {
- div.getElement('.leftBarTitle').appendChild(
- new Element('span', {
- 'html': 'no logic present',
- 'styles': {
- 'color': 'grey',
- 'padding': '2px 0 2px 20px',
- 'font-weight': 'bold'
- },
- 'class': 'numSolveButtan'
- })
- )
- } else {
- div.getElement('.leftBarTitle').appendChild(
- new Element('a', {
- html: 'Solve',
- events: {
- click: function(e) {
- solve(div, sol)
- }
- },
- styles: {
- 'font-weight': 'bold',
- 'color': 'red',
- 'padding': '2px 0 2px 20px'
- },
- 'class': 'numSolveButtan'
- })
- )
- }
- }
- }
- var g = -9.80;
- function round(num, places) {
- places = Math.pow(10, places || 2)
- return Math.round(num * places)/places
- }
- function sin(degs) {
- return Math.sin(deg2rad(degs))
- }
- function cos(degs) {
- return Math.cos(deg2rad(degs))
- }
- function deg2rad(degs) {
- return degs * Math.PI / 180
- }
- solutions = ['ch 6 Motion in 2D (Homework)', {
- 'GPhys09 6.MP.052': function(elements) { // question 1
- var distanceY = -elements[0], distanceX = elements[1]
- time = Math.sqrt(
- (2 * distanceY) / g
- )
- velocityX = distanceX / time
- return [time, velocityX]
- },
- 'GPhys09 6.MP.055': function(elements) { // question 2
- var velocityX = elements[0], time = elements[1]
- distanceY = Math.abs(.5* g * Math.pow(time, 2))
- distanceX = velocityX * time
- return [distanceY, distanceX]
- },
- 'GPhys09 6.MP.056': function(elements) { // question 3
- var theta = elements[0], velocity = elements[1];
- height = (Math.pow(velocity * sin(theta), 2)) / (-2 * g)
- range = (Math.pow(velocity, 2) * sin(2 * theta)) / -g
- return [height, range]
- },
- 'GPhys09 6.MP.058': function(elements) { // question 4
- var distanceY = -elements[0], velocityX = (elements[1] * 1000 / 3600)
- time = Math.sqrt(
- (2 * distanceY) / g
- )
- distanceX = velocityX * time
- return [time, distanceX]
- },
- 'GPhys09 6.MP.059': function(elements) { // question 5
- var distanceY = -elements[0], distanceX = elements[1];
- return [
- distanceX / Math.sqrt((2 * distanceY) / g) // velocityX
- ]
- },
- 'GPhys09 6.MP.061': function(elements) { // question 6
- var massKg = elements[0], radius = elements[1];
- var T = 14.3;
- acceleration = (4 * Math.pow(Math.PI, 2) * radius) / Math.pow(T, 2)
- Fnet = massKg * acceleration
- return [acceleration, Fnet]
- }
- }]
- putHelp(solutions)
Add Comment
Please, Sign In to add comment