-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSeries.js
More file actions
99 lines (94 loc) · 3.76 KB
/
Series.js
File metadata and controls
99 lines (94 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
var seriesTextBox = new TextBox(320,310,350,40,30);
var seriesCheckButton = new Button(380,360,180,40,"Check",30,xOffset=50);
var seriesNewQuestionButton = new Button(370,410,220,40,"New Question",30,xOffset=15);
var seriesGenerateQuestion = true;
var seriesShowExplanation = false;
var seriesRandomNumberOne = 0;
var seriesRandomNumberTwo = 0;
var seriesRandomType = 0;
var seriesRandomRange = 0;
var seriesFirstTerm = 0;
var seriesLastTerm = 0;
var seriesAnswer = 0;
var seriesFeedback="";
var seriesExplanation = "";
function series(){
fill(255,238,153,100);
noStroke();
rect(735,155,615,525,20,0,0,20);
stroke(0);
fill(0);
textSize(65);
text("Σ",340,255);
textSize(30);
seriesTextBox.update();
seriesCheckButton.update();
seriesNewQuestionButton.update();
if(seriesGenerateQuestion == true){
seriesRandomType = Math.floor(random(0,2));
// the series is arithmetic
if (seriesRandomType == 0){
seriesRandomNumberOne = Math.floor(random(1,100));
seriesRandomNumberTwo = Math.floor(random(1,100));
seriesRandomRange = Math.floor(random(1,50));
seriesFirstTerm = seriesRandomNumberOne + seriesRandomNumberTwo
seriesLastTerm = seriesRandomNumberOne + seriesRandomNumberTwo*seriesRandomRange
seriesAnswer = (seriesRandomRange/2)*(seriesFirstTerm + seriesLastTerm);
seriesExplanation = "Apply the formula for finding the sum\nof a Arithmetic Series:\n S = n/2 * (a1 + an)\n n = " + seriesRandomRange + "\n a1 = " + seriesFirstTerm + "\n an = " +
seriesLastTerm + "\n S = " + seriesRandomRange + "/2 * (" + seriesFirstTerm + " + " + seriesLastTerm + ")\n = " + seriesAnswer;
}
// the series is geometric
if (seriesRandomType == 1){
seriesRandomNumberOne = Math.floor(random(1,100));
seriesRandomNumberTwo = Math.floor(random(2,6));
seriesRandomRange = Math.floor(random(1,15));
seriesAnswer = seriesRandomNumberOne*((1-pow(seriesRandomNumberTwo,seriesRandomRange))/(1-seriesRandomNumberTwo));
seriesExplanation = "Apply the formula for finding the sum\nof a Geometric Series:\n S = a * (1 - r^n)/(1 - r)\n a = " + seriesRandomNumberOne + "\n r = " + seriesRandomNumberTwo +
"\n n = " + seriesRandomRange + "\n S = " + seriesRandomNumberOne + " * (1 - " + seriesRandomNumberTwo + "^" + seriesRandomRange + ")/(1 - " + seriesRandomNumberTwo + ")\n = " + seriesAnswer;
}
seriesGenerateQuestion = false;
}
if (seriesNewQuestionButton.clicked==true){
seriesTextBox.data="";
text("",800,170);
seriesGenerateQuestion = true;
seriesShowExplanation=false;
}
if (seriesCheckButton.clicked==true){
seriesShowExplanation = true;
if(parseInt(seriesTextBox.data)==seriesAnswer){
seriesFeedback="Correct!";
addPoints(20);
}else{
seriesFeedback="Try again"
}
}
if (seriesRandomType == 0){
text("Find the sum of the\n Arithmetic Series: ",320,120);
textSize(18);
text(seriesRandomRange,350,200);
text("n=1",345,275);
textSize(30);//reset to old text size
text(seriesRandomNumberOne + " + " + seriesRandomNumberTwo + "n",400,240);
text("Feedback: ",320,490);
text("Work/Explanation:",800,200);
if (seriesShowExplanation){
text(seriesExplanation,800,250);
text(seriesFeedback,470,490);
}
}
if (seriesRandomType == 1){
text("Find the sum of the\n Geometric Series: ",320,120);
textSize(18);
text(seriesRandomRange,350,200);
text("n=1",345,275);
textSize(30);//reset to old text size
text(seriesRandomNumberOne + " . " + seriesRandomNumberTwo + "^(n - 1)",400,240);
text("Feedback: ",320,490);
text("Work/Explanation:",800,200);
if (seriesShowExplanation){
text(seriesExplanation,800,250);
text(seriesFeedback,470,490);
}
}
}