Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Ошибки в выборе алгоритма



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

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

Ошибки анализа Связаны либо с неполным учетом ситуации, которые могут возникнуть, либо с неверным решением задачи.

К 1 случаю относятся, например, пренебрежение возможностью появления отрицательных значений переменных, малых и больших величин.

Во 2 случае обычно имеют место крупные и мелкие логические ошибки, из которых можно назвать:

-Отсутствие заданий начальных значений переменных.

-Неверные условия окончания цикла.

-Неверную индексацию цикла.

-Отсутствие задания условий инициирования цикла.

-Неправильное указание ветви алгоритма для продолжения процесса решения задачи.

Ошибки общего характера

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

Такими ошибками могут быть:

-ошибки из-за недостаточного знания или понимания программистом языка программирования или самой машины

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

Синтаксические ошибки.

Выявление транслятором синтаксических ошибок представляет собой самый важный и необходимый этап отладки программы.

Если под синтаксической ошибкой понимать "всякое нарушение требований языка программирования", то следует признать, что многие ошибки остаются необнаруженными.

В качестве примеров синтаксических ошибок можно назвать:

пропуск необходимого знака пунктуации

несогласованность скобок

пропуск нужных скобок

неправильное формирование оператора

неверное образование имени переменной

неправильное использование арифметических операторов

неверное написание зарезервированных слов

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

Противоречивые команды.

Отсутствие условий окончания цикла.

Дублирование или отсутствие меток.

Отсутствие описания массива.

Запрещенный переход.

Советы по устранению ошибок:

Если ошибок много, то в первую очередь устранить очевидные.

Обратиться к руководству по программированию на данном языке (справка).

Выбрать хороший отладочный компилятор.

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

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





Дата публикования: 2015-02-03; Прочитано: 741 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...