HomePractice Drawing Floor and Ceiling Functions: Step Graphs with Open and Closed Endpoints Free original lessons
Practice Drawing Floor and Ceiling Functions: Step Graphs with Open and Closed Endpoints
Learn to graph floor and ceiling step functions by plotting horizontal segments, marking open and closed endpoints, and checking values at integers.
Free lesson
Four exercises
Worked answers
Algebra and Function Practice
Floor and ceiling functions turn every input into an integer, so their graphs look like staircases made of horizontal segments. The floor function returns the greatest integer less than or equal to the input; the ceiling function returns the least integer greater than or equal to the input. Because the output jumps at every integer input, each step has two endpoints: one open and one closed. This lesson shows a consistent convention for drawing those endpoints, gives a worked example, and provides four practice tasks with reasoning and check methods. All numerical values used for grid spacing are hypothetical examples; measure your own paper or graphing tool before relying on any scale.
Practice materials: Printable downloads are not available for this lesson yet. Use the instructions and four exercises below.
Reading the notation and choosing a drawing convention
The floor of x is written floor(x) or with bracket-like notation, and it equals the greatest integer not exceeding x. For example, floor(2.3) = 2 and floor(-1.2) = -2. The ceiling of x is written ceil(x), and it equals the least integer not less than x. For example, ceil(2.3) = 3 and ceil(-1.2) = -1. At integer inputs the two functions agree: floor(3) = ceil(3) = 3.
A step function graph is a set of horizontal line segments. At each integer boundary the function jumps, so the endpoint on one side is included and the endpoint on the other side is excluded. Use a filled dot for an included endpoint and an open circle for an excluded endpoint. This convention is a drawing choice, not a universal law; any clearly labeled convention that distinguishes included from excluded points is valid. State your convention beside the graph so a reader can interpret it.
- Write the function and identify whether it is floor or ceiling.
- List the integer boundaries in the viewing window, such as -2, -1, 0, 1, 2.
- For each interval between consecutive integers, choose a test input and compute the output.
- Draw a horizontal segment at that output height across the interval.
- At each boundary, decide from the definition whether the endpoint is included or excluded, then mark a filled dot or open circle.
- Label the axes and state your endpoint convention.
Graphing floor functions step by step
For y = floor(x), every interval from an integer n up to but not including n+1 has output n. So on the interval [0, 1) the graph is a horizontal segment at y = 0, with a filled dot at x = 0 and an open circle at x = 1. On [1, 2) the segment sits at y = 1, with a filled dot at x = 1 and an open circle at x = 2. The pattern repeats: each step is one unit higher than the step to its left.
Negative inputs follow the same rule but are easy to misread. On [-1, 0) the output is -1, because -1 is the greatest integer not exceeding any number in that interval. On [-2, -1) the output is -2. The filled dot is always at the left endpoint of each floor step, and the open circle is at the right endpoint.
- Mark integer boundaries on the x-axis.
- Compute one test value per interval, for example x = 0.5 gives floor(0.5) = 0.
- Draw each horizontal segment between consecutive integer boundaries.
- Place a filled dot at the left end and an open circle at the right end of every floor step.
- Check that adjacent steps differ by exactly one unit in height.
Graphing ceiling functions and transformed steps
For y = ceil(x), every interval from an integer n up to but not including n+1 has output n+1. On (0, 1] the graph is at y = 1, with an open circle at x = 0 and a filled dot at x = 1. On (1, 2] the graph is at y = 2. The filled dot is at the right endpoint of each ceiling step, and the open circle is at the left endpoint.
Transformations shift or stretch the steps but do not change the endpoint logic. For y = floor(x) + 2, every step height increases by 2. For y = ceil(x) - 1, every step height decreases by 1. For y = floor(2x), the jumps occur twice as often because the input reaches each integer at half-integer values of x. Always recompute boundaries after a transformation rather than assuming the original spacing.
- Identify the base function and any shift or stretch.
- Find the new boundary inputs by solving for where the inside expression equals an integer.
- Compute a test output for each new interval.
- Draw segments and mark included endpoints with filled dots and excluded endpoints with open circles.
- Verify at least two boundary points by direct substitution.
Worked example
Graph y = floor(x) + 1 for x from -2 to 3. Mark open and closed endpoints and state the convention used.
Worked answer
Using filled dots for included endpoints and open circles for excluded endpoints: on [-2, -1) the segment is at y = -1, filled at x = -2 and open at x = -1; on [-1, 0) the segment is at y = 0, filled at x = -1 and open at x = 0; on [0, 1) the segment is at y = 1, filled at x = 0 and open at x = 1; on [1, 2) the segment is at y = 2, filled at x = 1 and open at x = 2; on [2, 3) the segment is at y = 3, filled at x = 2 and open at x = 3. At x = 3 the value is floor(3) + 1 = 4, so a filled dot at (3, 4) begins the next step if the window extends there.
Four practice exercises
Exercise 1
Graph y = floor(x) for x from -2 to 2. Mark all endpoints and state your convention.
Show answer and check
On [-2, -1) the segment is at y = -2; on [-1, 0) at y = -1; on [0, 1) at y = 0; on [1, 2) at y = 1. Each step has a filled dot at its left endpoint and an open circle at its right endpoint. At x = 2 the value is 2, so a filled dot at (2, 2) begins the next step if shown.
Why: Floor returns the greatest integer not exceeding the input, so each interval [n, n+1) has constant output n. The left endpoint is included because floor(n) = n, and the right endpoint is excluded because floor(n+1) belongs to the next step.
Check: Substitute x = -1.5, -0.5, 0.5, and 1.5 to confirm outputs -2, -1, 0, and 1. Then substitute x = -2, -1, 0, 1, and 2 to confirm the filled endpoints.
Exercise 2
Graph y = ceil(x) for x from -1 to 2. Mark all endpoints and state your convention.
Show answer and check
On (-1, 0] the segment is at y = 0; on (0, 1] at y = 1; on (1, 2] at y = 2. Each step has an open circle at its left endpoint and a filled dot at its right endpoint. At x = -1 the value is -1, so a filled dot at (-1, -1) ends the previous step if shown.
Why: Ceiling returns the least integer not less than the input. On an interval (n, n+1] the output is n+1, so the right endpoint is included and the left endpoint is excluded.
Check: Substitute x = -0.5, 0.5, and 1.5 to confirm outputs 0, 1, and 2. Then substitute x = 0, 1, and 2 to confirm the filled right endpoints.
Exercise 3
Graph y = floor(x) - 1 for x from -1 to 2. Mark all endpoints and state your convention.
Show answer and check
On [-1, 0) the segment is at y = -2; on [0, 1) at y = -1; on [1, 2) at y = 0. Each step has a filled dot at its left endpoint and an open circle at its right endpoint. At x = 2 the value is floor(2) - 1 = 1, so a filled dot at (2, 1) begins the next step if shown.
Why: The shift subtracts 1 from every floor output, so each step height is one unit lower than the corresponding step of y = floor(x). The boundary locations and endpoint types are unchanged.
Check: Compare with the graph of y = floor(x): every segment should be exactly one unit lower. Substitute x = -0.5, 0.5, and 1.5 to confirm outputs -2, -1, and 0.
Exercise 4
Graph y = ceil(2x) for x from 0 to 1.5. Mark all endpoints and state your convention.
Show answer and check
The inside expression 2x reaches integers at x = 0, 0.5, 1, and 1.5. On (0, 0.5] the segment is at y = 1; on (0.5, 1] at y = 2; on (1, 1.5] at y = 3. Each step has an open circle at its left endpoint and a filled dot at its right endpoint. At x = 0 the value is ceil(0) = 0, so a filled dot at (0, 0) ends the previous step if shown.
Why: Ceiling of 2x jumps when 2x crosses an integer, which happens at half-integer values of x. The right endpoint of each interval is included because ceil(2x) equals the integer at that boundary.
Check: Substitute x = 0.25, 0.75, and 1.25 to confirm outputs 1, 2, and 3. Then substitute x = 0.5, 1, and 1.5 to confirm the filled right endpoints.
Common mistakes
- Putting the filled dot on the wrong end of a floor step. For floor(x), the left endpoint of each step is included and the right endpoint is excluded. Test x = 0 and x = 1 to confirm: floor(0) = 0 is included, while floor(1) belongs to the next step.
- Treating floor(-1.2) as -1. The floor is the greatest integer not exceeding the input, so floor(-1.2) = -2. Plot a test point on the negative side before drawing the step.
- Drawing a continuous staircase with connected diagonal lines. Floor and ceiling graphs are horizontal segments only. The jump between steps is a discontinuity, not a slanted connector.
- Assuming floor(2x) jumps at every integer x. Solve 2x = n for integer n, giving x = n/2. The jumps occur at half-integers, so recompute boundaries after any stretch.
Self-check rubric
- Correctly identifies the base function as floor or ceiling.
- Computes at least one test output per interval accurately.
- Draws horizontal segments only, with no diagonal connectors.
- Marks included endpoints with filled dots and excluded endpoints with open circles, or states an equally clear alternative convention.
- Labels axes and states the endpoint convention beside the graph.
- Checks at least two boundary values by direct substitution.
Questions and answers
What is the difference between floor and ceiling at an integer?
At an integer input both functions return that integer. For example, floor(4) = 4 and ceil(4) = 4. The difference appears between integers: floor(4.1) = 4 while ceil(4.1) = 5.
Why does a step graph need open and closed endpoints?
At each jump the function takes only one of the two possible output values. The open circle shows which endpoint is not part of the graph, and the filled dot shows which one is.
Can I use a different endpoint symbol?
Yes, as long as you state the convention clearly. Some people use a bracket for an included endpoint and a parenthesis for an excluded one. The filled-dot and open-circle convention is common because it is easy to see.
How do I check a step graph quickly?
Pick one input from each interval, compute the function value, and confirm the point lies on the drawn segment. Then check each boundary by substituting the integer value directly.