Использование среды программирования для изучения алгоритмов
Итак, как говорилось ранее, в программировании целесообразно начинать с инженерного подхода то есть с ремесла. Выбрать, изучить основы одного из языков программирования, хорошо освоить среду программирования и ее возможности по отладке программ и их оптимизации. Далее следует постепенно усложнять решаемые задачи, приближаясь к творческому процессу, основанному на алгоритмическом подходе. Как изучать алгоритмы решения задач программисту при при проектировании и создании программного обеспечения?
При этом с одной стороны надо изучать алгоритмы только интересующей области знаний(работы, профессии), с другой — надо научиться разбирать и анализировать существующие алгоритмы, не смотря на то, что они реализованы во многих программах. Более того именно существующие программы могут помочь в освоении запрограммированных алгоритмов. Далее рассмотрим как изучать алгоритмы самостоятельно с использование среды программирования.
Для этого необходимо взять любую программу и повыполнять ее в пошаговом режиме, наблюдая за изменениями переменных, так чтобы понять, как работает запрограммированный алгоритм. Одновременно можно запоминать и приемы программирования. И тогда станет ясно, что алгоритмы и программирование это единый процесс для профессионала.
Для примера рассмотрим методику изучения алгоритма пузырьковой сортировки элементов массива на языке Pascal.
Находим программу пузырьковой сортировки массива. Создаем проект консольного типа. Вставляем в него текст программы. Если имеются ошибки, в процессе отладки программы устраняем их.

Когда программа выполняется, расставляем точки останова в местах с которых будем контролировать значения переменных и элементов сортируемого массива. Запускаем программу. Выполнение остановится на первой контрольной точке. Далее выполнение осуществляется по шагам, путем нажатия клавиши F8.
Нулевая итерация внутреннего цикла (i=1, j=1) заключается в выборе первого элемента массива и сравнении его со вторым элементов. Так как результат “ложный”, то ничего не делается.
Первая итерация внутреннего цикла – сравнивается второй элемент с третьим. Сравнение “истина”. Запоминается больший элемент в переменной k=246. Затем меньший элемент 39 записывается на предыдущее место большего. В следующем операторе значение большего элемента записывается на предыдущее место второго элемента. Произошла перестановка второго и третьего элементов. Больший элемент(камень) опустился на одну позицию вниз, меньший элемент(пузырек) поднялся на позицию вверх. Первые три итерации внутреннего цикла показаны на рисунках ниже.

Вторая итерация внутреннего цикла – сравнивается третий элемент с четвертым. Сравнение “истина”. Запоминается больший элемент в переменной k=246. Затем меньший элемент 245 записывается на предыдущее место большего. В следующем операторе значение большего элемента записывается на предыдущее место третьего элемента. Произошла перестановка третего и четвертого элементов. Больший элемент(камень) опустился на одну позицию вниз, меньший элемент(пузырек) поднялся на позицию вверх.

Третья итерация внутреннего цикла – сравнивается четвертый элемент с пятым. Сравнение “истина”. Запоминается больший элемент в переменной k=246. Затем меньший элемент 26 записывается на предыдущее место большего. В следующем операторе значение большего элемента записывается на предыдущее место четвертого элемента. Произошла перестановка четвертого и пятого элементов. Больший элемент(камень) опустился на одну позицию вниз, меньший элемент(пузырек) поднялся на одну позицию вверх.

И так повторяется столько раз, каков размер массива. Для рассматриваемого примера 10 раз. При этом самый большой элемент окажется в самом низу.
Затем вся эта процедура повторяется еще десять раз. В результате в консоль выводится отсортированный массив.
Таким образом, наблюдая за изменениями переменных при выполнении каждого отдельного оператора, познается алгоритм сортировки. Усвоив простейший алгоритм можно попытаться составить программу, в которой сортировка выполняется не с начала, с конца массива. В этом случае при первом десятикратном повторе самый маленький элемент будет подниматься в верх.
Далее аналогично можно рассмотреть работу более совершенных алгоритмов сортировки. Метод быстрой сортировки Хоара и другие. Что касается сложных программ, то здесь нужен опыт и умение применит данный подход к фрагментам программы, а не к программе в целом.
Заключение
Как изучать алгоритмы решения задач программисту при при проектировании и создании программного обеспечения вопрос не риторический и к нему следует подходить ответственно.
Освоение алгоритмов решения задач возможно различными способами – чтение книг, тренинги в специализированных сервисах и разбор существующих программ в отладочных режимах среды программирования.
Связанные материалы
- Алгоритм аутентификации по клавиатурному почерку
- Интегрированные средства разработки программного обеспечения
- Платформа программирования dotNet Framework
- Платформа программирования на языке Java
- Программное обеспечение аутентификации по клавиатурному почерку