Що робити, якщо програма не працює?
У людей, які освоюють програмування, часто трапляється таке: передрукували програму з книги або, приміром, з методички в точності до останньої коми, а вона все одно працювати не хоче. Та ще й помилки видає абсолютно незрозумілі. Що це - наша неуважність або помилка в початковому тексті?
Звичайно, неуважність виключати не слід і краще перевірити програму на наявність розбіжностей з написаним у книзі. Але ... перевірили ми її і нічого такого не виявили. Що робити? А самі ми в програмуванні розуміємо мало через свою недосвідченість і з нуля таку програму написати ось вже ніяк не зможемо.
Отже, для початку дивимося - для чого програма призначена. Ага - для обчислення чогось-чогось. Далі: чи знаємо ми, як це взагалі обчислюється без програм, за допомогою калькулятора і письмового приладдя? Так як ми все-таки щось вивчали, значить, знаємо або хоча б розуміємо базові принципи того, що необхідно робити.
Згадаймо, а краще випишемо на папір всі необхідні нам формули в тому порядку, в якому вони використовуються. Наприклад:
1) a + b = c
2) c * d = f
3) f-b = x, де x - шукане число
Відмінно! Тепер дивимося на текст у нас на екрані. Дивимося на ту частину, де у нас знаходяться самі формули. Звичайно, мови програмування бувають різними, але у всіх формули будуть написані приблизно так:
«F: = c * d;».
І ось ми знаходимо неув'язку - формула на листку паперу і формула на екрані не збігаються. Ура! Ура! Швидко все виправляємо і запускаємо програму. Працює? Чудово. Ні? Знову помилка? Перевіряємо інші формули, а потім перевіряємо типи даних, які ми привласнювали різним змінним. Часто помилки можуть виникати через те, що, наприклад, нам потрібно розділити a на 2, причому a = 3 (наприклад), а число має цілочисельний (ціле число) тип.
Існує ще одна річ, її не назвеш навіть помилкою в тому сенсі, що програма все одно працює, але вона могла б бути написана і по-іншому - більш коротко, мати більш ... елегантний вигляд. Часом зустрічаються в тексті, написаному в підручнику, або посібнику з програмування зовсім непотрібні речі - змінні, без яких можна було б обійтися, якщо побудувати програму по-іншому, різні оператори - початківець програміст, переглянувши все це, нічого не розуміє.
Велике значення надається ресурсів: при виконанні процедур, функцій, операторів програми йде витрата ресурсів комп'ютера у вигляді використовуваного обсягу оперативної пам'яті, який зовсім не безмежний. На старих комп'ютерах доводиться буквально по сто разів переробляти свою роботу, для того щоб комп'ютер не "завис» при включенні створеної «проги».
Використання посилань, позначок - те, що потрібно для економії пам'яті. Крім того, і сам текст вийде більш коротким, а значить - у ньому буде потім легше розібратися при налагодженні.
Ефективною називається програма, яка виконує всі необхідні для отримання очікуваного результату дії за мінімальний час, використовуючи при цьому мінімальні ресурси ПК. Домогтися ефективності - основне завдання програміста.
І взагалі - що таке помилка? Помилка - це коли ми робимо щось, що йде врозріз з нормами, правилами, законами, установками. Не роби помилок - живи за правилами - все буде в порядку. Точно так само, як і в кримінальній практиці незнання законів не звільняє від відповідальності, так і в програмуванні - незнання правил складання програм, нерозуміння логіки їх написання не звільняє від появи всіляких помилок.
У книгах часто зустрічаються помилки, які навіть і друкарськими помилками називати важко - таке відчуття, що їх робили свідомо. Можливо, для того, щоб, навіть передруковуючи текст, ми з вами над ним задумалися, включили мізки?
Не можна нічого нізвідки переписувати не замислюючись. І це відноситься не тільки до текстів програм, але і взагалі до чого завгодно - до будь-яких статтями, повідомленнями, результатами чого-небудь. Потрібно хоча б мінімум уваги приділяти переписувати тексту, щоб обчислити завчасно самі грубі помилки.
Пильність і ще раз пильність!