# Khan/khan-exercises

### Subversion checkout URL

You can clone with
or
.

massive merge

commit 432ecb9fea799659d5e984c14dec75309a315dad 2 parents 39709fe + ef02c95
nsfmc authored
Showing with 8,397 additions and 655 deletions.
2. +36 −1 css/khan-exercise.css
3. +23 −29 exercises/absolute_value.html
12. +26 −3 exercises/angle_types.html
13. +304 −0 exercises/arithmetic_word_problems_1.html
14. +18 −2 exercises/chain_rule_1.html
15. +0 −46 exercises/changing_decimals_to_fractions_1.html
16. +31 −0 exercises/changing_decimals_to_percents.html
17. +45 −0 exercises/changing_fractions_to_decimals_1.html
18. +13 −6 exercises/changing_fractions_to_percents.html
19. +30 −0 exercises/changing_percents_to_decimals.html
20. +44 −0 exercises/changing_percents_to_fractions.html
21. +87 −0 exercises/comparing_absolute_values.html
22. +8 −8 exercises/comparing_fractions_1.html
23. +8 −6 exercises/comparing_fractions_2.html
24. +1 −1  exercises/complementary_angles.html
25. +15 −0 exercises/conic_sections.html
26. +54 −0 exercises/converting_decimals_to_fractions_1.html
27. +62 −0 exercises/converting_decimals_to_fractions_2.html
28. +106 −0 exercises/converting_mixed_numbers_and_improper_fractions.html
29. +78 −0 exercises/decimals_on_the_number_line.html
30. +1 −1  exercises/dividing_decimals.html
31. +2 −1  exercises/dividing_fractions.html
32. +2 −2 exercises/divisibility.html
33. +1 −1  exercises/division_0.5.html
34. +1 −1  exercises/division_1.5.html
35. +1 −1  exercises/division_1.html
36. +1 −1  exercises/division_2.html
37. +1 −1  exercises/division_3.html
38. +1 −1  exercises/division_4.html
39. +70 −0 exercises/equation_of_a_hyperbola.html
40. +51 −0 exercises/equation_of_a_parabola.html
41. +54 −0 exercises/equation_of_an_ellipse.html
42. +94 −0 exercises/estimation_with_decimals.html
43. +65 −0 exercises/evaluating_expressions_2.html
44. +206 −0 exercises/even_and_odd_integers.html
45. +4 −5 exercises/exponent_rules.html
46. +1 −1  exercises/exponents_4.html
47. +42 −0 exercises/expressing_ratios_as_fractions.html
48. +86 −19 exercises/fraction_word_problems_1.html
49. +111 −0 exercises/fractions_on_the_number_line.html
50. +1 −1  exercises/graphing_points.html
51. +2 −1  exercises/graphs_of_sine_and_cosine.html
52. +216 −0 exercises/inequalities_on_a_number_line.html
53. +7 −7 exercises/inverse_trig_functions.html
54. +7 −2 exercises/khan-exercise.html
55. +2 −2 exercises/khan-site.html
56. +1 −1  exercises/line_relationships.html
57. +6 −4 exercises/linear_equations_4.html
58. +61 −0 exercises/lines_of_symmetry.html
59. +10 −21 exercises/measuring_angles.html
60. +7 −5 exercises/multiplication_0.5.html
61. +1 −1  exercises/multiplication_1.5.html
62. +5 −5 exercises/multiplication_1.html
63. +1 −1  exercises/multiplication_2.html
64. +1 −1  exercises/multiplication_3.html
65. +1 −1  exercises/multiplication_4.html
66. +1 −1  exercises/multiplying_decimals.html
67. +1 −1  exercises/multiplying_fractions.html
68. +526 −0 exercises/multiplying_fractions_1.html
69. +58 −0 exercises/number_line.html
70. +115 −0 exercises/one_step_inequalities.html
71. +0 −3  exercises/order_of_operations.html
72. +37 −29 exercises/ordering_fractions.html
73. +108 −0 exercises/ordering_negative_numbers.html
74. +7 −7 exercises/pythagorean_theorem_2.html
76. +99 −0 exercises/ratio_word_problems.html
77. +45 −34 exercises/recognizing_conic_sections.html
78. +12 −11 exercises/recognizing_fractions.html
79. +101 −0 exercises/recognizing_percents.html
80. +12 −5 exercises/recognizing_rays_lines_and_line_segments.html
81. +12 −12 exercises/rounding_numbers.html
82. +1 −8 exercises/scientific_notation.html
83. +72 −0 exercises/signs_of_a_parabola.html
84. +1 −1  exercises/simplifying_fractions.html
85. +3 −3 exercises/solving_for_a_variable.html
86. +143 −0 exercises/square_roots_cube_roots.html
87. +2 −2 exercises/subtracting_decimals.html
88. +40 −100 exercises/subtracting_fractions.html
89. +1 −1  exercises/subtracting_fractions_with_common_denominators.html
90. +1 −1  exercises/subtraction_1.html
91. +1 −1  exercises/subtraction_2.html
92. +1 −1  exercises/subtraction_3.html
93. +1 −1  exercises/subtraction_4.html
94. +2 −2 exercises/systems_of_equations.html
95. +85 −0 exercises/telling_time.html
96. +6 −12 exercises/trigonometry_1.html
97. +15 −28 exercises/trigonometry_2.html
98. +1 −1  exercises/writing_expressions_2.html
99. +81 −0 exercises/writing_proportions.html
100. images/protractor.png
101. +3,616 −0 jquery.js
102. +171 −63 khan-exercise.js
103. +0 −1  test/qunit
105. +260 −0 utils/exercise_maker.html
106. +13 −6 utils/expressions.js
107. +32 −0 utils/graphie-helpers-arithmetic.js
108. +272 −83 utils/graphie-helpers.js
109. +15 −0 utils/graphie.js
110. +81 −2 utils/math-format.js
111. +33 −0 utils/math.js
112. +1 −1  utils/tmpl.js
113. +83 −3 utils/word-problems.js
 @@ -22,3 +22,7 @@ The process for writing exercises is rather well documented. More information ab * [How to Get Involved](https://github.com/Khan/khan-exercises/wiki/Getting-Involved) * [How to Write Exercises](https://github.com/Khan/khan-exercises/wiki/Writing-Exercises:-Home) * [How to Test Exercises](https://github.com/Khan/khan-exercises/wiki/Testing-Exercises) + +## More + +If you're passionate about creating these exercises and want to apply to be a full-time exercise developer at the Khan Academy, [please do so](http://hire.jobvite.com/CompanyJobs/Careers.aspx?c=qd69Vfw7&page=Job%20Description&j=ohjSVfw7).
37 css/khan-exercise.css
 @@ -55,6 +55,8 @@ body.debug .graphie { outline: 1px dashed red; } #answer_area input.button:disabled { opacity: 0.7; cursor: default; color: #333; } +#hint-remainder { color: #777; } + #footer .simple-button { padding: 3px 10px; top: -1px } #issue .error { font-style: italic; font-weight: bold; } @@ -66,4 +68,37 @@ body.debug .graphie { outline: 1px dashed red; } var, div.graphie { white-space: pre; } -#issue-throbber { position: relative; top: 3px; } +#issue-throbber { position: relative; top: 3px; } + +.exp input { vertical-align: super; font-size: 9px; height: 11px; } + +#warning-bar { + background: red; + width: 100%; + height: 35px; + text-align: center; + color: #eee; + font-size: 15px; + display: none; +} + +#warning-bar span { + position: relative; + top: 5px; +} + +#warning-bar-close { + top: 5px; + float: right; + right: 20px; + position: relative; +} + +#warning-bar a { + color: #eee; +} + +#warning-bar-content a { + color: #eee; + text-decoration: underline; +}
52 exercises/absolute_value.html
 @@ -23,36 +23,30 @@
-

The number INT + FRAC is already non-negative, so it is its own absolute value.

-
-

The number -INT + FRAC is negative, so its absolute value is positive: INT + FRAC.

-
-
-
- init({ - range: [ [-1, 11], [-1, 1] ] - }); - var start = 0; - var end = 10; - var originX = 0; - var x = abs( INT ) + FRAC; - if ( SIGN === "-" ) { - start = -10; - end = 0; - originX = 10; - x = 10 - x; - } - numberLine( start, end ); - style({ stroke: "#6495ED", fill: "#6495ED" }); - graph.pt = circle( [ x, 0 ], 0.15 ); - style({ stroke: "#FFA500", fill: "#FFA500", strokeWidth: 3.5, arrows: "->" }); - path( [ [ originX, 0 ], [ x, 0 ] ] ); - circle( [ originX, 0 ], 0.10 ); - graph.pt.toFront(); -
-

The distance from 0 to SIGN + INT + FRAC is INT + FRAC, which equals the absolute value.

-

In other words, INT + FRAC is the non-negative version of SIGN + INT + FRAC.

+
+ init({ + range: [ [-1, 11], [-1, 1] ] + }); + var start = 0; + var end = 10; + var originX = 0; + var x = abs( INT ) + FRAC; + if ( SIGN === "-" ) { + start = -10; + end = 0; + originX = 10; + x = 10 - x; + } + numberLine( start, end ); + style({ stroke: "#6495ED", fill: "#6495ED" }); + graph.pt = circle( [ x, 0 ], 0.15 ); + style({ stroke: "#FFA500", fill: "#FFA500", strokeWidth: 3.5, arrows: "->" }); + path( [ [ originX, 0 ], [ x, 0 ] ] ); + circle( [ originX, 0 ], 0.10 ); + graph.pt.toFront();
+

The distance from 0 to SIGN + INT + FRAC is INT + FRAC, which equals the absolute value.

+

In other words, INT + FRAC is the non-negative version of SIGN + INT + FRAC.

 @@ -22,7 +22,7 @@

fraction( N1, D1 ) + fraction( N2, D2 ) = {?}

-
N1 / D1 + N2 / D2
+
N1 / D1 + N2 / D2
 @@ -51,7 +51,7 @@
init({ - range: [ [ -1, X_SIDE ], [ -0.5, 3 ] ], + range: [ [ -2, 17 ], [ -0.5, 3 ] ], scale: [30, 45] }); style({ @@ -60,7 +60,7 @@ X_MAX = X_MAX + ( B_DECIMAL - A_DECIMAL ) * (A_DECIMAL < B_DECIMAL ? 1 : -1); path( [ [ -0.5, Y_SECOND - 0.5 ], [ X_MAX + 0.5, Y_SECOND - 0.5 ] ]); - HIGHLIGHTS.push( label( [ X_SIDE, Y_SIDE ], "\\large{\\text{Make sure the decimals are lined up.}}", "right" ) ); + HIGHLIGHTS.push( label( [ X_SIDE, Y_SIDE ], "\\text{Make sure the decimals are lined up.}", "right" ) ); drawDigits( A_DIGITS.slice( 0 ).reverse(), X_MAX - A_DIGITS.length + 1, Y_FIRST ); drawDigits( B_DIGITS.slice( 0 ).reverse(), X_MAX - B_DIGITS.length + 1, Y_SECOND ); for ( var i = 0; i < 3; i++ ){
 @@ -0,0 +1,54 @@ + + + + + Adding fractions + + + +
+
+ randRange( 1, 9 ) + randRange( N1 + 1, 13 ) + getGCD( N1, D1 ) + N1 / GCD1 + D1 / GCD1 + + randRange( 1, 9 ) + randRange( N2 + 1, 13 ) + getGCD( N2, D2 ) + N2 / GCD2 + D2 / GCD2 + + getLCM( SIMP_D1, SIMP_D2 ) +
+ +
+
+

fraction( N1, D1 ) + fraction( N2, D2 ) = {?}

+

N1 / D1 + N2 / D2

+
+
+ +
+
+

Simplify each fraction.

+

fraction( SIMP_N1, SIMP_D1 ) + fraction( SIMP_N2, SIMP_D2 )

+
+

Find a common denominator by finding the least common multiple of SIMP_D1 and SIMP_D2.

+

\text{LCM(}SIMP_D1\text{, }SIMP_D2\text{)} = LCM

+
+

Change each fraction to an equivalent fraction with a denominator of LCM.

+

fraction( SIMP_N1, SIMP_D1 ) + fraction( SIMP_N2, SIMP_D2 )

+

=fraction( SIMP_N1, SIMP_D1 ) \cdot fraction( LCM / SIMP_D1, LCM / SIMP_D1 ) + fraction( SIMP_N2, SIMP_D2 ) \cdot fraction( LCM / SIMP_D2, LCM / SIMP_D2 )

+
+

=fraction( SIMP_N1 * LCM / SIMP_D1, LCM ) + fraction( SIMP_N2 * LCM / SIMP_D2, LCM )

+

=fraction( SIMP_N1 * LCM / SIMP_D1 + SIMP_N2 * LCM / SIMP_D2, LCM )

+
+

Simplify.

+

=fractionReduce( SIMP_N1 * LCM / SIMP_D1 + SIMP_N2 * LCM / SIMP_D2, LCM )

+
+
+
+ +
 @@ -18,7 +18,7 @@

fraction( N1, D ) + fraction( N2, D ) = {?}

-
( N1 + N2 ) / D
+
( N1 + N2 ) / D
 @@ -17,7 +17,7 @@
init({ - range: [ [0, 0], [0, 1] ] + range: [ [0, 12], [-1, 1] ] }); label( [0, 0],
 @@ -28,7 +28,7 @@
init({ - range: [ [ -1, 5 ], [ -0.5, 3 ] ], + range: [ [ -1, 11 ], [ -0.5, 3.5 ] ], scale: [30, 45] }); drawDigits( A_DIGITS.slice( 0 ).reverse(), X_MAX - A_DIGITS.length + 1, Y_FIRST );
 @@ -28,7 +28,7 @@
init({ - range: [ [ -1, 5 ], [ -0.5, 3 ] ], + range: [ [ -1, 11 ], [ -0.5, 3.5 ] ], scale: [30, 45] }); drawDigits( A_DIGITS.slice( 0 ).reverse(), X_MAX - A_DIGITS.length + 1, Y_FIRST );
 @@ -28,7 +28,7 @@
init({ - range: [ [ -1, 5 ], [ -0.5, 3 ] ], + range: [ [ -1, 11 ], [ -0.5, 3.5 ] ], scale: [30, 45] }); drawDigits( A_DIGITS.slice( 0 ).reverse(), X_MAX - A_DIGITS.length + 1, Y_FIRST );
29 exercises/angle_types.html
 @@ -1,9 +1,19 @@ - + Angle types +
@@ -17,20 +27,24 @@

Is the shown angle acute, right, or obtuse?

-
+
var ANGLE_TWO = ANGLE_ONE + DIFF; var ANGLE_ONE_R = ANGLE_ONE * PI / 180; var ANGLE_TWO_R = ANGLE_TWO * PI / 180; init({ - range: [ [-6, 6], [-6, 6] ], + range: [ [-11, 31], [-10, 10] ], scale: 20 }); path([ [5 * cos( ANGLE_ONE_R ), 5 * sin( ANGLE_ONE_R )], [0, 0], [5 * cos( ANGLE_TWO_R ), 5 * sin( ANGLE_TWO_R )] ]); arc( [0,0], 1, ANGLE_ONE, ANGLE_TWO ); + graph.protractor = new Protractor( [22, 0], 8 ); + jQuery( "#scratchpad-show" ).replaceWith( "Scratchpad not available" ).hide(); + jQuery( "#scratchpad" ).hide(); +
@@ -42,6 +56,9 @@
+
+ protractorHint( graph.protractor, 360 - ANGLE_ONE, DIFF ); +

The shown angle measures less than 90^\circ.

Therefore, it is an acute angle.

@@ -55,6 +72,9 @@
Right
+
+ protractorHint( graph.protractor, 360 - ANGLE_ONE, DIFF ); +

The shown angle measures 90^\circ.

Therefore, it is a right angle.

@@ -68,6 +88,9 @@
Obtuse
+
+ protractorHint( graph.protractor, 360 - ANGLE_ONE, DIFF ); +

The shown angle measures more than 90^\circ.

Therefore, it is an obtuse angle.

304 exercises/arithmetic_word_problems_1.html
 @@ -0,0 +1,304 @@ + + + + + Arithmetic word problems 1 + + + +
+
+ randRange( 10, 100 ) + randRange( 1, TOTAL - 1 ) + TOTAL - NUM1 +
+ +
+ +
+

+ There plural('was', TOTAL) plural(TOTAL, 'person') riding on a train. + At the previous stop, plural(NUM2, 'person') got off. +

+

+ How many people are riding the train now? +

+

+ NUM1 +

+
+

+ The number riding the train now is the difference between the number who were riding and the number who got off at the previous stop. +

+

+ The difference is TOTAL - NUM2 plural('person') on the train. +

+

+ TOTAL - NUM2 = NUM1 plural('person', NUM1) plural('is', NUM1) on the train. +

+
+
+ +
+

+ There plural('is', NUM1) plural(NUM1, 'person') riding on a train. + At the previous stop, plural(NUM2, 'person') got off. +

+

+ How many people were riding the train before the stop? +

+

+ TOTAL +

+
+

+ The number riding the train before the stop is the sum of the number who are riding now and the number who got off at the previous stop. +

+

+ The sum is NUM1 + NUM2 plural('person') on the train. +

+

+ NUM1 + NUM2 = TOTAL plural('person') plural('is', TOTAL) on the train. +

+
+
+ +
+

+ There plural('was', TOTAL) plural(TOTAL, 'person') riding on a train before it stopped and some number of people got off. + Now there are plural(NUM2, 'person') riding on the train. +

+

+ How many people got off the train at the stop? +

+

+ NUM1 +

+
+

+ The number of people who got off is the difference between the number who were riding before and the number who are riding now. +

+

+ The difference is TOTAL - NUM2 plural('person'). +

+

+ TOTAL - NUM2 = NUM1 plural('person', NUM1) plural('is', NUM1). +

+
+
+ +
+

+ There plural('is', NUM1) plural(NUM1, 'tree') on the right bank of a river and plural(NUM2, 'tree') on the left bank. +

+

+ How many trees are on the banks of the river? +

+

+ TOTAL +

+
+

+ The total number of trees on the two banks of the river is the sum of the number of trees on the left bank and the number of trees on the right bank. +

+

+ The sum is NUM1 + NUM2 plural('tree'). +

+

+ NUM1 + NUM2 = TOTAL plural('tree'). +

+
+
+ +
+

+ There plural('is', TOTAL) plural(TOTAL, 'tree') on the banks of the river. The side(1) bank has NUM2 of them. +

+

+ How many trees are on the side(2) bank of the river? +

+

+ NUM1 +

+
+

+ The number of trees on the side(2) bank of the river is the difference between the number of trees on both banks of the river and the number of trees on the side(1) bank. +

+

+ The difference is TOTAL - NUM2 plural('tree'). +

+

+ TOTAL - NUM2 = NUM1 plural('tree', NUM1). +

+
+
+ +
+

+ Some cars were parked in the store(1) store parking lot. + NUM2 more plural('car') plural('parks', 'park', NUM2) at the store(1) store, + and now there plural('is', TOTAL) plural(TOTAL, 'car') in the parking lot. +

+

+ How many cars were parked at the store(1) store at the beginning? +

+

+ NUM1 +

+
+

+ The number of cars parked at the store at the beginning is the difference of the number parked now and the number that came and parked earlier. +

+

+ The difference is TOTAL - NUM2 plural('car'). +

+

+ TOTAL - NUM2 = NUM1 plural('car', NUM1). +

+
+
+ +
+

+ There plural('was', NUM2) plural(NUM2, 'car') parked in the store(1) store parking lot. + Some more cars park at the store(1) store, and now there plural('is', TOTAL) plural(TOTAL, 'car') in the parking lot. +

+

+ How many more cars parked at the store(1) store? +

+

+ NUM1 +

+
+

+ The number of cars that came and parked at the store is the difference between the number that were parked earlier and the number that are parked now. +

+

+ The difference is TOTAL - NUM2 plural('car'). +

+

+ TOTAL - NUM2 = NUM1 plural('car', NUM1). +

+
+
+ +
+

+ plural(NUM1, 'car') plural('was', NUM1) in the store(1) store parking lot. + NUM2 more plural('car', NUM2) plural('parks', 'park', NUM2) at the store(1) store. +

+

+ How many cars are in the parking lot now? +

+

+ TOTAL +

+
+

+ The number of cars that are parked now is the sum of the number that were parked earlier and the number that came to park. +

+

+ The sum is NUM1 + NUM2 plural('car'). +

+

+ NUM1 + NUM2 = TOTAL plural('car'). +

+
+
+ +
+

+ person(1) did plural(TOTAL, exercise(1)) timeofday(1). + person(2) did plural(NUM2, exercise(1)) timeofday(2). +

+

+ How many more plural(exercise(1)) did person(1) do than person(2)? +

+

+ NUM1 +

+
+

+ Find the difference between person(1)'s plural(exercise(1)) and person(2)'s plural(exercise(1)). +

+

+ The difference is TOTAL - NUM2. +

+

+ TOTAL - NUM2 = NUM1. +

+
+
+ +
+

+ How many fewer plural(exercise(1)) did person(2) do than person(1)? +

+
+ +
+

+ person(1) did NUM1 more plural(exercise(1), NUM1) than person(2) timeofday(1). + person(2) did plural(NUM2, exercise(1)). +

+

+ How many plural(exercise(1)) did person(1) do? +

+

+ TOTAL +

+
+

+ person(2) did plural(NUM2, exercise(1)), and person(1) did NUM1 more than that, so find the sum. +

+

+ The sum is NUM2 + NUM1 plural(exercise(1)). +

+

+ He(1) did NUM2 + NUM1 = TOTAL plural(exercise(1)). +

+
+
+ +
+

+ person(2) did NUM1 fewer plural(exercise(1), NUM1) than person(1) timeofday(1). + person(2) did plural(NUM2, exercise(1)). +

+
+ +
+

+ person(1) did NUM1 more plural(exercise(1), NUM1) than person(2) timeofday(1). + person(1) did plural(TOTAL, exercise(1)). +

+

+ How many plural(exercise(1)) did person(2) do? +

+

+ NUM2 +

+
+

+ person(1) did plural(TOTAL, exercise(1)), and person(2) did NUM1 fewer than that, so find the difference. +

+

+ The difference is TOTAL - NUM1 plural(exercise(1)). +

+

+ He(1) did TOTAL - NUM1 = NUM2 plural(exercise(1), NUM2). +

+
+
+ +
+

+ person(2) did NUM1 fewer plural(exercise(1), NUM1) than person(1) timeofday(1). + person(1) did plural(TOTAL, exercise(1)). +

+
+ +
+
+ +
20 exercises/chain_rule_1.html
 @@ -11,6 +11,16 @@ generateFunction("x") new CalcFunctions[randRange(1, CalcFunctions.length - 1)](INNER.f) +
+ randFromArray( INNER.wrongs ) + randFromArray( OUTER.wrongs ) +
+ +
+ randFromArray( INNER.wrongs ) + randFromArray( OUTER.wrongs ) +
+ expr(["*", OUTER.ddxF, INNER.ddxF]) funcNotation("x") @@ -24,10 +34,16 @@
• - expr(["*", randFromArray(OUTER.wrongs), randFromArray(INNER.wrongs)]) + expr(["*", OUTER.ddxF, randFromArray(INNER.wrongs)]) +
• +
• + expr(["*", randFromArray(OUTER.wrongs), INNER.ddxF]) +
• +
• + expr(["*", OUTER_WRONG_1, INNER_WRONG_1])
• - expr(["*", randFromArray(OUTER.wrongs), randFromArray(INNER.wrongs)]) + expr(["*", OUTER_WRONG_2, INNER_WRONG_1])
• expr(["+", randFromArray(OUTER.wrongs), randFromArray(INNER.wrongs)])
46 exercises/changing_decimals_to_fractions_1.html
 @@ -1,46 +0,0 @@ - - - - Changing Decimals to Fractions 1 - - - - - - -
-
- randRange( 1, 9 ) / 10 - randRangeExclude(1, 99, [10,20,30,40,50,60,70,80,90]) / 100 -
- -
-
-

Express T as a fraction.

-

T

-

(You can express this as any fraction - you don't have to simplify your answer)

-
-

The number T * 10 is in the the tenths place.

-

Since there is one decimal place, we simply put the number over 10.

-

The answer is fraction( T * 10, 10 ).

-
-
- -
-

Express H as a fraction.

-

H

-
-

The number ( floor( H * 10 )).toFixed(0) is in the the tenths place.

-

The number ( floor( H * 100 )).toFixed(0) - ( floor( H * 10 )).toFixed(0) * 10 is in the the hundredths place.

-

This then becomes fraction(( floor( H * 10 )).toFixed(0), 10 ) + fraction(( floor( H * 100 )).toFixed(0) - ( floor( H * 10 )).toFixed(0) * 10 , 100 )

-

Finding a common denominator: fraction(( floor( H * 10 )).toFixed(0) * 10, 100 ) + fraction(( floor( H * 100 )).toFixed(0) - ( floor( H * 10 )).toFixed(0) * 10 , 100 )

-

Or more simply: Since there are two decimal places, we simply put the number over 100.

-

The answer is fraction( roundTo( 2, H * 100 ) , 100 ).

-
-
- - -
-
- -
31 exercises/changing_decimals_to_percents.html
 @@ -0,0 +1,31 @@ + + + + Changing decimals to percents + + + +
+
+ randRange( 50, 999 ) / 1000 + DECIMAL * 100 +
+ +
+
+

Express DECIMAL as a percent.

+
+

SOLN %

+
+ +
+

To convert a decimal to a fraction, we need to multiply by 100 and add the \% symbol.

+

To multiply by 100, we can just move the decimal point two places to the right.

+

DECIMAL \rightarrow DECIMAL * 10 \rightarrow SOLN

+

So DECIMAL = SOLN\%.

+
+
+
+
+ +
45 exercises/changing_fractions_to_decimals_1.html
 @@ -0,0 +1,45 @@ + + + + Changing fractions to decimals 1 + + + + + + +
+
+
+ randFromArray([ 4, 5, 8, 10, 16, 20, 25, 40, 50, 100 ]) + randRange( 1, _D - 1 ) + _N / _D +
+ + getGCD( _N, _D ) + round( _N / GCD ) + round( _D / GCD ) +
+ +
+
+

Express fraction( _N, _D ) as a decimal.

+
DEC
+
+
+ +
+

fraction( _N, _D ) reduces to fraction( N, D ).

+

Denominators of 10 or 100 are easy cases: The decimal form is just the numerator with the decimal place moved left by the number of 0s in the denominator. +

For this question, this means D === 10 ? "1 place" : "2 places".

+

To turn fractionSmall( N, D ) into a decimal, perform long division, dividing D into N (if you need help with this, try practicing some Division exercises or watching some related videos).

+

N \div D = DEC

+
+
+ +
19 exercises/changing_fractions_to_percents.html
 @@ -37,12 +37,19 @@
-

fraction( _N, _D ) reduces to fraction( N, D ).

-

To turn a fraction into a percent, turn the fraction into a decimal and then multiply the decimal by 100.

-

To turn fraction( N, D ) into a decimal, perform long division, dividing D into N (if you need help with this, try practicing some Division exercises or watching some related videos).

-

N \div D = DEC

-

To convert this decimal into a percent, we need to multiply it by 100.

-

DEC = (100 \cdot DEC) \% = roundTo( 2, 100 * DEC )\%

+
+

When the denominator is 100, you can simply take the numerator and apply the % sign:

+

fraction( _N, _D ) = 100 * DEC%

+
+
+

fraction( _N, _D ) reduces to fraction( N, D ).

+

To turn a fraction into a percent, turn the fraction into a decimal and then multiply the decimal by 100.

+

Denominators of 10 are an easy case: The decimal form is just the numerator with the decimal place moved left by the number of 0s in the denominator - in this case 1 place.

+

To turn fraction( N, D ) into a decimal, perform long division, dividing D into N (if you need help with this, try practicing some Division exercises or watching some related videos).

+

N \div D = DEC

+

To convert this decimal into a percent, we need to multiply it by 100.

+

DEC = (100 \cdot DEC) \% = roundTo( 2, 100 * DEC )\%

+
30 exercises/changing_percents_to_decimals.html
 @@ -0,0 +1,30 @@ + + + + Changing percents to decimals + + + +
+
+ randRange( 10, 1999 ) / 10 + roundTo( 5 , PCT / 100 ) +
+ +
+
+

Express PCT\% as a decimal.

+
SOLN
+ +
+

PCT\% literally means PCT per 100

+

PCT\% = \dfrac{PCT}{100}

+

To easily divide by 100, you can just move the decimal point two places to the left.

+

PCT \rightarrow roundTo( 5, PCT / 10 ) \rightarrow SOLN

+

So PCT\% = SOLN

+

+
+
+
+ +
44 exercises/changing_percents_to_fractions.html
 @@ -0,0 +1,44 @@ + + + + Changing percents to fractions + + + + +
+ +
+
+
+ randRangeExclude( 1 , 299 , [ 100 ] ) +
+

Express A\% as a fraction. Reduce to lowest terms.

+

A / 100

+
+

A\% literally means A per 100

+

Putting this in fraction form: fraction( A , 100 )

+

Both numerator and denominator are divisible by getGCD( A , 100 ).

+

Reducing to lowest terms, fractionReduce( A , 100 ).

+

Optionally, the improper fraction fractionReduce( A , 100 ) can be converted to the mixed number ( A - A % 100 ) / 100 + fractionReduce( round ( A % 100 ), 100 ).

+
+
+ +
+
+ randRange( 101, 1999 ) / 10 +
+
+

A\% literally means A per 100

+

Putting this in fraction form: fraction( A , 100 )

+

Multiplying top and bottom by 10 to get rid of the decimal: fraction( A * 10 , 1000 )

+

Both numerator and denominator are divisible by getGCD( A * 10 , 1000 ).

+

Reducing to lowest terms, fractionReduce( A * 10 , 1000 ).

+

Optionally, the improper fraction fractionReduce( A * 10 , 1000 ) can be converted to the mixed number ( A * 10 - A * 10 % 1000 ) / 1000 + fractionReduce( round ( A * 10 % 1000 ), 1000 ).

+
+
+ +
+
+ +
87 exercises/comparing_absolute_values.html
 @@ -0,0 +1,87 @@ + + + + + Comparing absolute values + + + + + +
+
+
+
+ randFromArray([[ "|", "|", ], [ "|", "", ], [ "", "|", ]]) + randRange(-10, 10) + ( NUM_1 < 0 ) ? randRange(0, 10) : randRange(-10, -1) + ABS_1 ? abs( NUM_1 ) : NUM_1 + ABS_2 ? abs( NUM_2 ) : NUM_2 + (function() { + if ( NUM_1_VALUE === NUM_2_VALUE ) { + return "="; + } + return NUM_1_VALUE < NUM_2_VALUE ? "<" : ">"; + })() +
+ +
+

Fill in the blank.

+

+ ABS_1 + NUM_1 + ABS_1 ____ ABS_2 + NUM_2 + ABS_2 +

+
+

SOLUTION

+
+
• <
• +
• >
• +
• =
• +
+
+
+ drawNumberLine( NUM_1 ); +
+

+ The "absolute value" can be viewed as the distance from 0. The distance from NUM_1 to 0 is NUM_1_VALUE so |NUM_1| = NUM_1_VALUE +

+
+ drawNumberLine( NUM_2 ); +
+

+ The "absolute value" can be viewed as the distance from 0. The distance from NUM_2 to 0 is NUM_2_VALUE so |NUM_2| = NUM_2_VALUE +

+

Is NUM_1_VALUE less than, greater than, or equal to NUM_2_VALUE?

+

NUM_1_VALUE SOLUTION NUM_2_VALUE

+

ABS_1NUM_1ABS_1 SOLUTION ABS_2NUM_2ABS_2

+
+
+
+
+ +
16 exercises/comparing_fractions_1.html
 @@ -37,13 +37,13 @@

Fill in the blank.

\dfrac{NUM_1}{DEN_1} - ____\dfrac{NUM_2}{DEN_2} + ____ \dfrac{NUM_2}{DEN_2}

-

SOLUTION

+

SOLUTION

-
• <
• -
• >
• +
• <
• +
• >
@@ -88,13 +88,13 @@

Fill in the blank.

\dfrac{NUM_1}{DEN_1} - ____\dfrac{NUM_2}{DEN_2} + ____ \dfrac{NUM_2}{DEN_2}

-

SOLUTION

+

SOLUTION

-
• <
• -
• >
• +
• <
• +
• >
14 exercises/comparing_fractions_2.html
 @@ -13,7 +13,7 @@ -->
-
+
randRange( 2, 3 ) randRange( 1, 14 ) randRange( 1, 14 ) @@ -44,14 +44,14 @@

Fill in the blank.

\dfrac{NUM_1}{DEN_1} - ____\dfrac{NUM_2}{DEN_2} + ____ \dfrac{NUM_2}{DEN_2}

-

SOLUTION

+

SOLUTION

-
• <
• -
• =
• -
• >
• +
• <
• +
• >
• +
• =
@@ -77,6 +77,8 @@
[ NUM_2, NUM_1 ] [ DEN_2, DEN_1 ] + [ F2, F1 ] + [ BECOMES_2, BECOMES_1 ]
2  exercises/complementary_angles.html
 @@ -24,7 +24,7 @@
-

If m \angle A + O + C is a right angle and m ANGLE_ONE = ANGLE^\circ, what is m ANGLE_TWO, in degrees?

+

If \angle A + O + C is a right angle and m ANGLE_ONE = ANGLE^\circ, what is m ANGLE_TWO, in degrees?

init({
15 exercises/conic_sections.html
 @@ -0,0 +1,15 @@ + + + + + Conic sections + + + +
+
+
+
+ + +
54 exercises/converting_decimals_to_fractions_1.html
 @@ -0,0 +1,54 @@ + + + + Converting decimals to fractions 1 + + + + +
+
+
+
+ randRange( 1, 9 ) / 10 + floor( D * 10 ) +
+

Express D as a fraction.

+

D

+
+

The number T is in the tenths place, so we have cardinal( T ) tenths.

+

Cardinal( T ) tenths can be written as fraction( T, 10 ).

+
+
+ +
+
+ randRangeExclude(1, 99, [10,20,30,40,50,60,70,80,90]) / 100 + floor( D * 10 ) + floor( ( D * 100 ) % 10 ) +
+

Express D as a fraction.

+

D

+
+

The number T is in the tenths place, so we have cardinal( T ) tenths.

+

Cardinal( T ) tenths can be written as fraction( T, 10 ).

+

The number H is in the hundredths place, so we have cardinal( H ) hundredths.

+

Cardinal( H ) hundredths can be written as fraction( H, 100 ).

+
+

+

fraction( T, 10 ) + fraction( H, 100 )

+
+
+

= fraction( T * 10, 100 ) + fraction( H, 100 )

+

= fraction( T * 10 + H, 100 )

+
+
+

You can also skip a few steps by making a fraction with floor( D * 100 ) as the numerator and 100 (because the decimal extends to the hundredths place) as the denominator.

+

fraction( T * 10 + H, 100 )

+
+
+
+
+
+ +
62 exercises/converting_decimals_to_fractions_2.html
 @@ -0,0 +1,62 @@ + + + + Changing decimals to fractions 2 + + + + + + +
+ +
+
+
+ randRange( 0, 1 ) ? randRange( 100, 999 ) : randRange( 1000, 9999 ) + ( NUMERATOR / 10000 ).toFixed( 4 ) +
+

Express D as a fraction.

+

D

+
+
+

D can be represented as follows.

+

= 0 + fraction( D.substr( 2, 1 ) , 10 ) + fraction( D.substr( 3, 1 ) , 100 ) + fraction( D.substr( 4, 1 ), 1000 ) + fraction( D.substr( 5, 1 ), 10000 )

+

= fraction( NUMERATOR, 10000 )

+
+
+

You can also skip a few steps by making a fraction with NUMERATOR as the numerator and 10000 (because the decimal extends to the ten thousandths place) as the denominator.

+

fraction( NUMERATOR, 10000 )

+
+
+
+ +
+
+ randRange( 1, 19 ) + randRangeExclude(1, 99, [ 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ]) / 100 + getGCD( D * 100 , 100 ) +
+

Express W + D as a mixed number. Reduce to lowest terms.

+ +

W + D

+ +
+
+

W + D can be represented as follows:

+

= W + fraction( floor( D * 10 ), 10 ) + fraction( floor( ( D * 100 ) % 10 ), 100 )

+
+

= W + fraction( D * 100, 100 )

+
+

Reduce the fractional part by dividing the numerator and denominator by GCD.

+

=W + fractionReduce( D * 100 , 100 )

+
+
+
+ +
+
+ +
106 exercises/converting_mixed_numbers_and_improper_fractions.html
 @@ -0,0 +1,106 @@ + + + + Converting mixed numbers and improper fractions + + + +
+
+ randRange( 1, 10 ) + + randRange( 1, 30 ) + randRange( 1, 30 ) + + M_NUM / getGCD( M_NUM, M_DENOM ) + M_DENOM / getGCD( M_NUM, M_DENOM ) + + WHOLE * M_REDUCED_DENOM + M_REDUCED_NUM + M_REDUCED_DENOM +
+ +
+
+

Convert fraction( I_NUM, I_DENOM, false, true ) to a mixed number.

+ +

I_NUM / I_DENOM

+ +
+
+

First, divide the numerator by the denominator.

+

I_NUM \div I_DENOM = \color{#28AE7B}{WHOLE}\ \text{ R } \color{purple}{M_REDUCED_NUM}

+
+
+

So the improper fraction has WHOLE wholes in it, which is equal to \color{#28AE7B}{WHOLE} \times \dfrac{I_DENOM}{I_DENOM} = \color{#28AE7B}{fraction( I_DENOM * WHOLE, I_DENOM, false, false )}.

+
+ init({ range: [ [0, 1], [0, WHOLE] ], scale: [250, 25] }); + + for ( var y = 0; y < WHOLE; y++ ) { + rectchart( [M_REDUCED_DENOM, 0], ["#28AE7B", "#999"], y ); + } +
+

This quotient WHOLE is the whole number part of the mixed number.

+
+
+

We also have a remainder of M_REDUCED_NUM, though. That represents the \dfrac{\color{purple}{M_REDUCED_NUM}}{I_DENOM} remaining from the improper fraction; it wasn't enough to be another whole number.

+
+ init({ range: [ [0, 1], [0, 1] ], scale: [250, 25] }); + + rectchart( [M_REDUCED_NUM, M_REDUCED_DENOM - M_REDUCED_NUM], ["purple", "#999"] ); +
+
+
+

The converted mixed fraction is \color{#28AE7B}{WHOLE}\ \color{purple}{fraction( M_NUM, M_DENOM, false, true )}.

+
+ init({ range: [ [0, 1], [0, WHOLE + 1] ], scale: [250, 25] }); + + for ( var y = 1; y <= WHOLE; y++ ) { + rectchart( [M_REDUCED_DENOM, 0], ["#28AE7B", "#999"], y ); + } + + rectchart( [M_REDUCED_NUM, M_REDUCED_DENOM - M_REDUCED_NUM], ["purple", "#999"] ); +
+
+

Note that if we add up the two pieces of our mixed fraction, \color{#28AE7B}{fraction( I_DENOM * WHOLE, I_DENOM, false, false )} + \color{purple}{fraction( M_NUM, M_DENOM, false, true )}, we get the original improper fraction fraction( I_NUM, I_DENOM, false, true ).

+
+
+ +
+

Convert WHOLE\ fraction( M_NUM, M_DENOM, false, true ) to an improper fraction.

+ +

I_NUM / I_DENOM

+ +
+

\color{#FFA500}{WHOLE}\ \color{#6495ED}{fraction( M_NUM, M_DENOM, false, true )}

+

This mixed number is equivalent to \color{#FFA500}{WHOLE} + \color{#6495ED}{fraction( M_NUM, M_DENOM, false, true )}.

+
+

First, convert the whole part of the mixed number to a fraction with the same denominator M_REDUCED_DENOM as the fractional part.

+

\color{#FFA500}{WHOLE} \times \dfrac{M_REDUCED_DENOM}{M_REDUCED_DENOM} = \color{#FFA500}{\dfrac{WHOLE * M_REDUCED_DENOM}{M_REDUCED_DENOM}}

+
+ init({ range: [ [0, 1], [0, WHOLE] ], scale: [250, 25] }); + + for ( var y = 0; y < WHOLE; y++ ) { + rectchart( [M_REDUCED_DENOM, 0], ["#FFA500", "#999"], y ); + } +
+
+
+

So now we have our number in the form \color{#FFA500}{\dfrac{WHOLE * M_REDUCED_DENOM}{M_REDUCED_DENOM}} + \color{#6495ED}{fraction( M_NUM, M_DENOM, false, true )}.

+
+ init({ range: [ [0, 1], [0, WHOLE + 1] ], scale: [250, 25] }); + + for ( var y = 1; y <= WHOLE; y++ ) { + rectchart( [M_REDUCED_DENOM, 0], ["#FFA500", "#999"], y ); + } + + rectchart( [M_REDUCED_NUM, M_REDUCED_DENOM - M_REDUCED_NUM], ["#6495ED", "#999"] ); +
+

Now, just add the two fractions and simplify!

+
+

\color{#FFA500}{\dfrac{WHOLE * M_REDUCED_DENOM}{M_REDUCED_DENOM}} + \color{#6495ED}{fraction( M_NUM, M_DENOM, false, true )} = fraction( I_NUM, I_DENOM, true, true )

+
+
+
+
+ +
78 exercises/decimals_on_the_number_line.html
 @@ -0,0 +1,78 @@ + + + + + Decimals on the number line + + + + +
+
+ ( randRange( -300, 300 ) / 100 ) + ( function() { + var pos = rand( 5 ); + while( NUMBER - (0.47 * pos) < -3 ){ + pos--; + } + while( NUMBER + 0.47 * (5 - pos) > 3 ){ + pos++; + } + + arr = []; + for ( i = 0; i < pos; i++){ + arr.push( NUMBER - ((pos - i) * 0.47)) + } + arr.push( NUMBER ); + for ( i = pos + 1; i < 5; i++ ){ + arr.push( NUMBER + (( i - pos) * 0.47)) + } + return arr; + })() + [ "A", "B", "C", "D", "E" ] + POSS_ANSWER[ WRONGS.indexOf( NUMBER ) ] +
+
+
+
+

Which dot marks the position of NUMBER on the number line?

+ +
+ init({ + scale: [ 80, 40 ], + range: [ [-0.2, 22], [-1, 1] ] + }); + var start = -3; + var end = 3; + var originX = 0; + var x = NUMBER; + numberLine( start, end ); + style({ stroke: "#6495ED", fill: "#6495ED" }); + style({ stroke: "#FFA500", fill: "#FFA500", strokeWidth: 3.5, arrows: "->" }); + var already = []; + for( i = 0; i != WRONGS.length; i++ ){ + ellipse( [ WRONGS[ i ] + 3, 0 ], [ 0.06, 0.12 ] ); + label( [WRONGS[ i ] + 3, 0 ], POSS_ANSWER[ i ] , "above", { labelDistance: 5 } ); + } +
+
+
+
• A
• +
• B
• +
• C
• +
• D
• +
• E
• +
+
+ +
+

NUMBER is between floor( NUMBER ) and ceil( NUMBER ).

+ +

NUMBER is closest to round( NUMBER )

+

+
+
+
+
+ +
2  exercises/dividing_decimals.html
 @@ -28,7 +28,7 @@
init({ - range: [ [ -2 - DIVISOR_DIGITS.length, DIVIDEND_DIGITS.length + 2 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], + range: [ [ -2 - DIVISOR_DIGITS.length, 17 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], scale: [ 30, 45 ] }); style({
3  exercises/dividing_fractions.html
 @@ -21,10 +21,11 @@
+
Reduce to lowest terms:

\displaystyle NEG1S \frac{A}{B} \div NEG2S \frac{C}{D} = {?}

-
(NEG1 * A * NEG2 * D) / (B * C)
+
(NEG1 * A * NEG2 * D) / (B * C)
4 exercises/divisibility.html
 @@ -7,9 +7,9 @@
-
+
randRange( 10, 25 ) - randRange( 10, 25 ) + randRange( 10, 25 ) getLCM( A, B ) getPrimeFactorization( LCM )
2  exercises/division_0.5.html
 @@ -18,7 +18,7 @@
var bottomBoundary = ( B === 1 ) ? A - 1 : -1; init({ - range: [ [ -1, B + 1 ], [ bottomBoundary, A + 1 ] ], + range: [ [ -1, 10 ], [ bottomBoundary, A + 1 ] ], scale: [ 50, 50 ] });
2  exercises/division_1.5.html
 @@ -32,7 +32,7 @@
init({ - range: [ [ -1 - DIVISOR_DIGITS.length, DIVIDEND_DIGITS.length + 2 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], + range: [ [ -1 - DIVISOR_DIGITS.length, 17], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], scale: [ 30, 45 ] }); style({
2  exercises/division_1.html
 @@ -18,7 +18,7 @@
var bottomBoundary = ( B === 1 ) ? A - 1 : -1; init({ - range: [ [ -1, B + 1 ], [ bottomBoundary, A + 1 ] ], + range: [ [ -1, 10 ], [ bottomBoundary, A + 1 ] ], scale: [ 50, 50 ] });
2  exercises/division_2.html
 @@ -23,7 +23,7 @@
init({ - range: [ [ -1 - DIVISOR_DIGITS.length, DIVIDEND_DIGITS.length + 2 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], + range: [ [ -1 - DIVISOR_DIGITS.length, 17 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], scale: [ 30, 45 ] }); style({
2  exercises/division_3.html
 @@ -26,7 +26,7 @@
init({ - range: [ [ -1 - DIVISOR_DIGITS.length, DIVIDEND_DIGITS.length + 2 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], + range: [ [ -1 - DIVISOR_DIGITS.length, 17 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], scale: [ 30, 45 ] }); style({
2  exercises/division_4.html
 @@ -23,7 +23,7 @@
init({ - range: [ [ -1 - DIVISOR_DIGITS.length, DIVIDEND_DIGITS.length + 2 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], + range: [ [ -1 - DIVISOR_DIGITS.length, 17 ], [ DIVIDEND_DIGITS.length * -2 - 1, 2 ] ], scale: [ 30, 45 ] }); style({
70 exercises/equation_of_a_hyperbola.html
 @@ -0,0 +1,70 @@ + + + + + Equation of a hyperbola + + + + +
+
+ randRange( 2, 9 ) + randRange( 2, 9 ) + + randRange( -9, 9 ) + randRange( -9, 9 ) + + rand(2) + + WHICH_NEG === 1 ? "+" : "+" + WHICH_NEG === 1 ? "" : "-" + + "\\dfrac{" + expr( ["*", reduce( A, B )[1] , plus( "x", -H ) ] ) + "}{" + reduce( A, B )[0] + "}" + B+"*(-" + H + "+ x)/" + A + H === 0 ? "x^2" : expr(["^", ["+", "x", -H], 2]) + K === 0 ? "y^2" : expr(["^", ["+", "y", -K], 2]) + H === 0 ? "\\dfrac{x^2}{" + A*A + "}" : "\\dfrac {" + expr(["^", ["+", "x", -H], 2]) + "}{" + A*A +"}" + K === 0 ? "\\dfrac{y^2}{" + B*B + "}" : "\\dfrac {" + expr(["^", ["+", "y", -K], 2]) + "}{" + B*B +"}" +
+ +
+
+
+

The equation of a hyperbola H is WHICH_NEG == 1 ? expr(["-", Y2T, X2T]) : expr(["-", X2T, Y2T]) = 1.

+

What are the asymptotes?

+
+ +
+

+
+
+
+ +
+
+

We first rewrite the equation in terms of y.

+

Y2T = Y_MINUS 1 X_MINUS X2T

+
+ +
+

Multiply both sides of the equation by B * B.

+

Y = { Y_MINUS B*B X_MINUS \dfrac{ X \cdot B*B }{ A*A }}

+
+
+

Take the square root.

+

plus("y", -K) = \pm \sqrt { Y_MINUS B*B X_MINUS \dfrac{ X \cdot B*B }{ A*A }}

+
+
+

As x approaches infinity, the constants matter less and less.

+

y \approx \sqrt { \dfrac{ X \cdot B*B }{ A*A }}

+
+

Therefore, the asymptotes are \pm ASYMPT.

+
+
+ +
51 exercises/equation_of_a_parabola.html
 @@ -0,0 +1,51 @@ + + + + + Equation of a parabola + + + + +
+
+ randRange( -5, 5 ) + randRange( -5, 5 ) + randRange( -5, 5 ) + // y = A*(x-H)^2 + K = A(x^2-2Hx+H^2) + K = Ax^2 -2AHx + A*H^2+K + -2 * A * H + A * H * H + K +
+ +
+
+
+

The equation of a parabola P is y = Ax^2 + Bx + C

+

What are its vertex (h, k) and its y intercept?

+
+ +
+

(h, k) = (H, K)

+

Y intercept= C

+
+ +
+

Y intercept is the point on the Y axis, where x = 0

+

If x = 0, we have y = A \cdot 0^2 + B \cdot 0 + C

+

y = C, thus the Y intercept is C

+ +

The equation of a parabola with vertex (h, k) is y = a(x - h)^2 + k.

+

We can rewrite the given equation as Ax^2 + A \cdot - 2 * H + H * A * H + K, in order to get the form a(x - h)^2

+i

We factor out A, y = A ( x^2 + 2 * H + H * H ) + K

+

The equation in the parantheses is of the form ( a + b )^2, because ( x^2 + 2 * H + H * H ) = ( x^2 + 2 \cdot H + H^2 )

+

Therefore y = A( x - H)^2 + K.

+

y = A(x - (H))^2 + K

+

Thus, the center (h, k) = (H, K)

+
+
+ +
54 exercises/equation_of_an_ellipse.html
 @@ -0,0 +1,54 @@ + + + + + Equation of an ellipse + + + + +
+
+ randRange( 2, 9 ) + randRange( 2, 9 ) + + randRange( -9, 9 ) + randRange( -9, 9 ) + + max( A, B ) + min( A, B) + + H === 0 ? "\\dfrac{x^2}{" + A*A + "}" : "\\dfrac {" + expr(["^", ["+", "x", -H], 2]) + "}{" + A*A +"}" + K === 0 ? "\\dfrac{y^2}{" + B*B + "}" : "\\dfrac {" + expr(["^", ["+", "y", -K], 2]) + "}{" + B*B +"}" +
+ +
+
+
+

The equation of an ellipse E is rand(2) == 1 ? expr(["+", Y2T, X2T]) : expr(["+", X2T, Y2T]) = 1.

+ +

What are its center (h, k) and its major and minor radius?

+ +
+ +
+

(h, k) = (H, K)

+

+

+
+
+
+ +
+

The equation of an ellipse with center (h, k) is \dfrac{(x - h)^2}{a^2} + \dfrac{(y - k)^2}{b^2} = 1.

+

We can rewrite the given equation as \dfrac{(x - negParens(H))^2}{A*A} + \dfrac{(y - negParens(K))^2}{B*B} = 1 .

+

Thus, the center (h, k) = (H, K).

+

MAJ*MAJ is bigger than MIN*MIN so the major radius is \sqrt{MAJ*MAJ} = MAJ and the minor radius is \sqrt{MIN*MIN} = MIN.

+
+
+ +
94 exercises/estimation_with_decimals.html
 @@ -0,0 +1,94 @@ + + + + + Estimation with decimals + + + + +
+ +
+
+
+ $.map( randRange( 1000, 16000, randRange( 3, 7 ) ), function( n ){ return ( n / 1000 ).toFixed( randRange( 1, 2 ) ); } ) + eval($.map( VALUES , round ).join("+") ) + randFromArray( [ [ "jogging", "ran", "mile" ], [ "riding a bicycle ", "traveled", "mile" ], [ "collecting mushrooms", "collected", "pound" ], [ "painting a roof", "painted", "square foot" ], [ "harvesting grain", "harvested", "tonne" ] ] ) + 0 + \$.map( VALUES, function( i ){ + if ( round( i ) < i ) { + return "smaller than"; + } + else{ + return "bigger or equal to"; + } + } ) +
+

person( 1 ) has been TYPES[ 0 ] every day for the last VALUES.length days.

+

Given that person( 1 ) TYPES[ 1 ] the following amounts (in plural( TYPES[ 2 ] )) each day, estimate how much he( 1 ) TYPES[ 1 ] in total by rounding each amount to a whole number and summing.

+
+ Day + Amount +
+
+ i+1 + val +
+

+ ANSWER plural( TYPES[ 2 ] ) +

+ +