Professor Kate Poirier, Spring 2017

In-class Exercise algorithm in JavaScript

I know two other students wrote an algorithm in Java and C++, but I had finished my code right after class the other day and forgot to post on here. Incase others wanted to see another way to solve it, I used JavaScript.

background(255, 255, 255);
var m = 30;
var i = 0;
var x = 7;
var a = 19;
var c = 8;
var num, div, num1, mod;

while( i <10){
var change = (i+1) * 25;
num = (a*x)+c;
div = floor(num/ m);
num1 = div*30;
fill(0, 0, 0);
text(x, 100,change);
x= num-num1;
i++;
}

In the above code, I declared/ initialized some variables. I used a While loop using "i" as a counter. I have the variables outside the loop as a static number and "change", "num", "div", "num1", "x" as a variable inside the loop that will continuously change each time the program loops.

I hope this helps if anyone was confused, or wanted to see another solution. Feel free to message/ reply to this post if you have questions.

I attached a screenshot I took. I wrote the code in Khan Academy since the website lets you write programs and run them.

Also, the variable “change” is just used to format where I want the text to print the number. You can see that in the text command where I text “x” and then place it at 100 on the X-axis and the “change” is the Y-axis. The X- axis is always at 100 and the “change” keeps changing on the Y-axis by 25 pixels each loop.

2 Comments

  1. Kate Poirier

    Awesome, David! Thanks for sharing. You’ll notice that, even though MATLAB is a different language, the steps that you perform there are essentially identical to what you did here.

  2. francisirizarry

    Out of curiosity, Why did you go through the effort of creating two variables for the value of num? (I am referring to num1 and div) when you could of just done num = ((a*x)+c)%30;? Does javascript not have modulus functionality? Or did you do it that way to ensure it was right? Either way, nicely done!

Leave a Reply

Your email address will not be published. Required fields are marked *