Motivation: One of the main uses of computers in calculus is to provide graphical description of different functions. The graphical representation of a graph y = f(x) is formed by different points with coordinates (x, y = f(x)).
Task:
1. Define a class Point in which each object has two real-valued coordinates x and y. Do not forget to include a constructor, accessor methods, and mutator methods.
2. In the main method, define an array of 100 points, in which the i-th point has coordinates x = i/100 and y = x^2.
3. Trace your code for the first two points, with x = 0 and y = 0, and with x = 0.01 and y = 0.0001.
Comment: your code will be helpful in plotting a quadratic function y = x^2.
Solution:
public class Point{
private double x;
private double y;
public Point(double ax, double ay){x = ax; y = ay;}
public double getX(){return x;}
public double getY(){return y;}
public void setX(double newX){x = newX;}
public void setY(double newY){y = newY;}
}
in the main program:
Point[] quadratic = new Point[100];
double x;
double y;
for(int i = 0; i < 100; i++)
{x = (double) i / 100.0; y = x * x;
quadratic[i] = new Point(x, y);}
tracing for i =0 and i = 1 :
First, we define a new array quadratic of objects of type Point:
----
| \| quadratic
---\
\
\|
- -------
| nil | quadratic[0]
-------
| nil | quadratic[1]
-------
...
Then, we have new variables x and y which are undefined (i.e., have
a garbage value):
------- --------
| ? | | ? |
------- --------
x y
At the first step of the loop, we define a new variable i and assign
to it the value 0:
-------
| 0 |
-------
i
We then assign to x and y new values:
------- --------
| 0.0 | | 0.0 |
------- --------
x y
We then call a constructor method:
--------------
| ---------- |
| | 0.0 | |
| ---------- |
| ax |
| ---------- |
| | 0.0 | |
| ---------- |
| ay |
--------------
| |
| |
| |
| |
| |
| |
--------------
Point
after which we create a new object:
--------------
| ---------- |
| | 0.0 | |
| ---------- |
| x |
| ---------- |
| | 0.0 | |
| ---------- |
| y |
--------------
quadratic[0]
Then, we increase i by 1:
-------
| 1 |
-------
i
We then assign to x and y new values:
------- --------
| 0.01 | | 0.0001 |
------- --------
x y
call a constructor method:
--------------
| ---------- |
| | 0.01 | |
| ---------- |
| ax |
| ---------- |
| | 0.0001 | |
| ---------- |
| ay |
--------------
| |
| |
| |
| |
| |
| |
--------------
Point
and create a new object:
--------------
| ---------- |
| | 0.01 | |
| ---------- |
| x |
| ---------- |
| | 0.0001 | |
| ---------- |
| y |
--------------
quadratic[1]
etc.