1. Общая схема решения задачи на персональном компьютере

В общем виде процесс решения любой программистской задачи на ПК мож­но представить в виде последовательности следующих действий:

1) разработка алгоритма решения задачи;

2) создание текста программы;

3) отладка программы;

4) тестирование программы.

Все эти этапы (иногда в неявной форме) обязательно выполняются любым программистом при решении любой задачи. Рассмотрим их подробнее.

Алгоритмом называется некоторая заранее определенная последователь­ность действий, позволяющая на основании имеющейся информации получить искомый результат. Обязательной составной частью алгоритма является опреде­ление состава и формы представления входной и выходной информации. При решении некоторых наиболее тривиальных задач может показаться, что этап разработки алгоритма отсутствует, однако это означает лишь, что вы пользуетесь уже известным вам алгоритмом.

На этапе создания текста программы вы записываете алгоритм на языке программирования. Один и тот же алгоритм можно запрограммировать множе­ством различных способов, но вы должны стремиться написать оптимальную программу. Хорошо написанная программа, как правило, содержит меньше оши­бок и гораздо быстрее отлаживается.

Этап отладки включает в себя компиляцию программы и проверку ее на простейших тестах. Компиляция (или трансляция) программы - это процесс пе­ревода ее с языка программирования на машинный язык, его осуществляет спе­циальная программа - компилятор (транслятор). При этом вы постепенно ис­правляете допущенные при написании программы синтаксические ошибки, сле­дите за сообщениями компилятора - он указывает, какая обнаружена ошибка и где именно. После того, как вы исправите все синтаксические ошибки и компи­лятор сообщит об успешном завершении компиляции, будет создан файл с име­нем, таким же, как у вашего исходного файла, и с расширением ехе (от ЕХЕсипуе - выполняемый); этот файл содержит программу (в отличие от исходного файла, содержащего лишь текст программы), которая может быть выполнена. Необхо­димо отчетливо понимать, что задачей компилятора ни в коем случае не является поиск ошибок в ваших программах, он сообщает о них лишь в том случае, когда не может правильно интерпретировать ваш текст. Успешно осуществив компи­ляцию, запустите свою программу. Не следует думать, что эта программа не со­держит ошибок! Все логические ошибки, допущенные вами, остались в про­грамме, и на этапе отладки вы должны найти их и исправить. (Не верьте тем про­граммистам, которые утверждают, что они могут сразу написать правильную программу, - таких людей не бывает). Не существует никаких общих рецептов для отладки - класс программиста, главным образом, как раз и проявляется в том, как он отлаживает программы. Но один полезный совет можно дать: аккуратно и подробно выводите при отладке все вычисляемые вашей программой величины.

После того, как вы решите, что ваша программа работает правильно (обычно это не соответствует действительности), начинайте тестирование - выполняйте программу с различными наборами входных данных, причем они обязательно должны содержать все особые случаи. Когда вы убедитесь, что ваша программа иногда работает правильно, а иногда - нет, возвращайтесь к алгоритму, пере­сматривайте его и заново повторяйте все этапы. Успешно завершив тестирова­ние, вы можете надеяться, что ваша программа верна.

Следует четко разграничивать два понятия - верная программа и хорошая программа. Всякая хорошая программа верна, но далеко не всякая верная про­грамма хороша - она может использовать неэффективный (или неэффективно запрограммированный) алгоритм, занимать много лишней памяти, быть неряш­ливо оформленной и т.д. Старайтесь писать не только верные, но и хорошиепро-граммы!