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

Типы ошибок в алгоритмах. Основные этапы проектирования (алгоритмизации)



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

Различают три типа ошибок: синтаксические ошибки, ошибки выполнения и ошибки в алгоритме программы.

Синтаксические ошибки – возникает при нарушении правил языка QBasic. Такие ошибки сравнительно безобидны, поскольку причина ошибки описывается и программная строка с ошибкой выводится на экран. При наличии определенных навыков исправляются они достаточно быстро. Примером такой ошибки может служить неправильный набор ключевого слова PRITN вместо PRINT.

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

Ошибки в алгоритме программы – это такие ошибки, которые при верных исходных данных и безошибочной работе программы приводят к неправильным результатам. Такие ошибки должен обнаруживать сам программист. Поэтому, избавившись от синтаксических ошибок и ошибок выполнения, необходимо проверить работу программы на данных, охватывающих по возможности все случаи, которые могут встретиться при реальном счете. Для этого создаются и «прокручиваются» различные тесты (контрольные примеры).

Существует несколько методик отладки программы. Один из приемов отладки называется «проследить трассу». Он заключается в том, что в процессе работы программы на экране дисплея выдаются сообщения о ходе вычислений. Желательно одновременно с этим последовательно выводить на экран номера выполняемых строк. Использование отладочных строк с оператором PRINT для выдачи промежуточных результатов в совокупности с трассировкой позволяет быстро локализовать ошибку и исправить ее.

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

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

Эту работу нужно выполнять методично и терпеливо. Имитируя работу программы, мы должны иметь текст программы, список переменных с их текущими значениями и лист бумаги для отслеживания изменений. Выполняя программу вместо машины, нужно все время задавать себе вопрос: «Тот ли получен результат, которого я ожидал?». Если - да, то продолжите выполнение программы. Если - нет, то нужно думать, почему программа работает неправильно.

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

Основные этапы проектирования (алгоритмизации). Рассмотрим процесс решения задачи на конкретном примере:

Задача: Определить дальность полета тела, брошенного под углом к горизонту.

На первом этапе обычно строится описательная информационная модель объекта или процесса. В нашем случае с использованием физических понятий создается идеальная модель движения объекта. Из условия задачи можно сформулировать следующие основные предложения:

1) размеры тела малы по сравнению с траекторией полета, поэтому те­ло можно считать материальной точкой,

2) скорость бросания тела мала, поэтому:

- ускорение свободного падения считать постоянной величиной;

- сопротивлением воздуха можно пренебречь.

На втором этапе создается формальная модель, т.е. описательная информационная модель записывается с помощью какого-либо формального языка.

Из курса физики известны следующие формулы

Vx=V0*cos(A) – горизонтальная проекция вектора скорости

Vy=V0*sin(A) – вертикальная проекция вектора скорости

L=Vx*t – дальность полета, t- время полета

0=Vy*t-gt2/2 – координата точки падения

g=9,81 м/с2 - ускорение свободного падения

Органичения:

V0³0

0<A<

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

Таким образом, метод решения данной задачи описывается следую­щей последовательностью формул:

1. g=9,8

2. Vy=V0*sin(A)

3. Vx=V0*cos(A)

4. t=2*Vy/g

5. L=Vx*t

На третьем этапе необходимо формализованную информационную модель преобразовать в компьютерную модель, т.е. выразить ее на понятном для компьютерном языке. Существуют два принципиально различных пути построения компьютерной модели:

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

- формирование компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и т.д.)

Для реализации первого пути надо построить алгоритм определения координаты тела в определенный момент времени и закодировать его на одном из языков программирования, например на языке QuickBasic.

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

Собственно алгоритм решения данной задачи состоит из последова­тельного решения наших уравнений:

  1. Ввести начальную скорость (V0) и угол бросания (А)
  2. Присвоить переменной Vy значение V0*sin(A)
  3. Присвоить переменной Vx значение V0*cos(A)
  4. Присвоить переменной t (время полета) значение 2*Vy/g
  5. Присвоить переменной L (дальность полета) значение Vx*t
  6. Вывести ответ на экран (L).

Четвертый этап - составление программы, т.е. запись задачи на понятном компьютеру языке. В качестве примера выбран язык QuickBasic.

INPUT “V0= ”; V0

INPUT “A= “; A

VY=V0*SIN(A)

VX=V0*COS(A)

T=2*VY / 9.81

L=VX*T

PRINT “L= “; L

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

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

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





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



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