Как сделать прогресс бар с отрезками?
Задачка, конечно, очень смешная.
И как всегда - на арифметику

Шкала у нас нелинейная, первый шаг 100 единиц, последний - 2000.
Но при этом для вычислений мы берём не позицию шага, а его значение.
Ну и разумеется получаем то, что получаем. 
250 от 3000 - это никакие не "примерно 50 единиц", а примерно 8 процентов. Вот эти 8 процентов вам и показывает. 

Длина отрезка при разбивке на 5 частей будет 20%
И вот 8 от 20 как раз и составляет те самые "примерно 50" процентов длины первого отрезка :)

Выше товарищ правильно пишет про отладку. 
Но отладка в обязательном порядке состоит из двух вещей:
1. Надо понимать, что делает твой код. В частности, иметь представление, какое значение каждая переменная должна иметь на каждом этапе.
2. Запускать код, выводя промежуточные результаты, и сравнивая их с ожидаемыми. 

Без п.1 заниматься отладкой бессмысленно. 
Именно поэтому для программиста очень важно понимать, как работает его код. Иначе он просто не сможет его отладить.
Для поиска ошибок в существующем коде нужно заняться его отладкой.
Если совсем не знаешь, с чего начать, то начни с самого понятия отладка.
Ну или жди телепатов.