Юрий Ионов Дебютант

Что делать, если программа не работает?

У людей, осваивающих программирование, часто случается такое: перепечатали программу из книги или, к примеру, из методички в точности до последней запятой, а она все равно работать не хочет. Да еще и ошибки выдает совершенно непонятные. Что это — наша невнимательность или опечатка в исходном тексте?

Конечно, невнимательность исключать не следует и лучше проверить программу на наличие расхождений с написанным в книге. Но… проверили мы ее и ничего такого не обнаружили. Что делать? А сами мы в программировании понимаем мало в силу своей неопытности и с нуля такую программу написать вот уж никак не сможем.

Итак, для начала смотрим — для чего программа предназначена. Ага — для вычисления чего-то-чего-то. Дальше: знаем ли мы, как это вообще вычисляется без программ, с помощью калькулятора и письменных принадлежностей? Так как мы все-таки что-то изучали, значит, знаем или хотя бы понимаем базовые принципы того, что необходимо делать.

Вспомним, а лучше выпишем на бумагу все необходимые нам формулы в том порядке, в котором они используются. Например:
1) a+b=c
2) c*d=f
3) f-b=x, где x — искомое число

Отлично! Теперь смотрим на текст у нас на экране. Смотрим на ту часть, где у нас находятся сами формулы. Конечно, языки программирования бывают разными, но во всех формулы будут написаны примерно так:
«f:=c*d;».

И вот мы находим неувязку — формула на листке бумаги и формула на экране не совпадают. Ура! Ура! Быстро все исправляем и запускаем программу. Работает? Замечательно. Нет? Опять ошибка? Проверяем остальные формулы, а затем проверяем типы данных, которые мы присваивали различным переменным. Часто ошибки могут возникать из-за того, что, например, нам нужно разделить a на 2, причем a=3 (например), а число имеет целочисленный (целое число) тип.

Существует еще одна вещь, ее не назовешь даже ошибкой в том смысле, что программа все равно работает, но она могла бы быть написана и по-другому — более коротко, иметь более… элегантный вид. Порой встречаются в тексте, написанном в учебнике, или пособии по программированию совершенно ненужные вещи — переменные, без которых можно было бы обойтись, если построить программу по-другому, различные операторы — начинающий программист, просмотрев все это, ничего не понимает.

Большое значение придается ресурсам: при выполнении процедур, функций, операторов программы идет затрата ресурсов компьютера в виде используемого объема оперативной памяти, который вовсе не безграничен. На старых компьютерах приходится буквально по сто раз переделывать свою работу, для того чтобы компьютер не «завис» при включении созданной «проги».

Использование ссылок, меток — то, что нужно для экономии памяти. Кроме того, и сам текст получится более коротким, а значит — в нем будет потом легче разобраться при отладке.

Эффективной называется программа, которая выполняет все необходимые для получения ожидаемого результата действия за минимальное время, используя при этом минимальные ресурсы ПК. Добиться эффективности — основная задача программиста.

И вообще — что такое ошибка? Ошибка — это когда мы делаем что-то, что идет вразрез с нормами, правилами, законами, установками. Не делай ошибок — живи по правилам — все будет в порядке. Точно так же, как и в уголовной практике незнание законов не освобождает от ответственности, так и в программировании — незнание правил составления программ, непонимание логики их написания не освобождает от появления всяческих ошибок.

В книгах часто встречаются ошибки, которые даже и опечатками называть трудно — такое ощущение, что их делали сознательно. Может быть, для того, чтобы, даже перепечатывая текст, мы с вами над ним призадумались, включили мозги?

Нельзя ничего ниоткуда переписывать не задумываясь. И это относится не только к текстам программ, но и вообще к чему угодно — к каким-либо статьям, сообщениям, результатам чего-либо. Нужно хотя бы минимум внимания уделять переписываемому тексту, чтобы вычислить заблаговременно самые грубые ошибки.

Бдительность и еще раз бдительность!

Обновлено 26.11.2008
Статья размещена на сайте 23.11.2008

Комментарии (1):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Марианна Власова Марианна Власова Бывший главный редактор 29 ноября 2008 в 20:28

    В книгах часто встречаются ошибки, которые даже и опечатками называть трудно – такое ощущение, что их делали сознательно.

    Вспомнилось (В.Орлов. Альтист Данилов.):
    "Ученые личности составляли для людей мнимые рецепты.
    На вид рецепты должны были быть как бы подлинными, но один или два
    компонента их по давней традиции (и фараоны кушали пшеничные лепешки,
    испеченные по тем рецептам) полагалось вводить ложные."

    Думаю, что оптимизировать чужие программы неспециалисту уж точно не следует. Найти ошибку и не наделать своих - еще куда ни шло, порой и выхода другого нет...