Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Учет конкретных особенностей задач



Допустим, необходимо решить какую-либо задачу и при этом нужно воспользоваться услугами ЭВМ. С чего начать? Прежде всего нужно разобраться, что в изучаемом объекте или явлении существенно для данной задачи, а чем можно пренебречь. При этом существенные свойства должны быть сформулированы так, чтобы их можно было записать на языке математических понятий (формул, уравнений, неравенств и т.п.). В результате будет получена математическая модель задачи.

Математическая модель всегда основана на некотором упрощении, однако благодаря замене реального объекта соответствующей моделью появляется возможность сформулировать задачу его изучения как математическую и воспользоваться для ее решения средствами математики. Итак, для создания математической модели нужно:

• сделать предположения, на которых будет основана математическая модель;

• определить, что надо считать исходными данными и конечными результатами;

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

Следующим этапом является создание алгоритма. При составлении алгоритма необходимо учитывать особенности организации вычислительного процесса при помощи ЭВМ.

В ходе анализа решаемой задачи следует четко выделить данные, подлежащие вводу в ЭВМ. Опытные программисты всегда руководствуются принципом минимизации вводимых данных: вводить следует только то, что нельзя вычислить. Например, для вычисления Y=f(x), где х=1, 3, 5, 7, 9, 11, ..., 19, следует ввести хн=1, хк=19 и Δ х=2, а все остальные значения х вычислить по правилу: х: =х+Δ х. Для программ разового действия вместо ввода исходных данных целесообразно использовать операторы присваивания. Самой первой операцией рекомендуется ставить вывод заголовка задачи и печать текста «Исходные данные», чтобы при отладке программы иметь информацию о начале ее работы. После ввода исходных данных рекомендуется сразу осуществить вывод исходных данных на печать, чтобы обеспечить своевременное обнаружение ошибок ввода.

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

Начало;

........

Цикл...

Если... То

х: =...

Иначе

z: =...

Конец-Если;

Конец-цикла;

........

Конец.

Для обозначения констант, переменных и массивов рекомендуется использовать короткие названия, состоящие из 4–6 букв. Применение коротких имен позволит избежать синтаксических ошибок при последующем написании программы. Имя должно нести смысловую нагрузку, что позволяет улучшить читаемость алгоритма, например: radius, vhod, length и т.п. (вместо х, у, z). Не беда, если для этой цели будут использованы русские слова, записанные английскими буквами (не все изучают английский язык), главное, чтобы в дальнейшем при переводе алгоритма в программу не делать ошибок.

Константы рекомендуется вводить с помощью операций присваивания в самом начале алгоритма. Этот прием дает возможность достаточно просто модифицировать программу при ее доработке в процессе эксплуатации. Например: pi: =3.141593; square: =14.273; и т.д.

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

При использовании базовых структур следует выявить в алгоритме общие фрагменты (фрагменты, повторяющиеся в алгоритме несколько раз), которые рекомендуется выносить в предварительный блок. Такой подход приводит к сокращению времени вычислений или объема памяти, занимаемой программой, времени ввода программы и т.п.

Алгоритм должен быть составлен ясно, понятно, из небольших фрагментов (блоков). Это дает возможность быстро составлять по нему программу, а в случае необходимости оперативно внести изменения.

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

Рассмотрим некоторые характерные примеры.

Пример 1.При вычислении функции

где хiэлемент массива х(1: п), результат может быть получен только тогда, когда подкоренное выражение Q(xi) положительное или равно нулю. Поэтому перед расчетом квадратного корня в алгоритме необходимо предусмотреть проверку:

Q(xi) ≥ 0.

Если это условие не выполняется, то в алгоритме следует поставить оператор выдачи сообщения о том, что при заданном значении хi функция F не имеет смысла, и перейти к расчету значения

Q(xi+1).

Пример2. Математическое выражение, содержащее дробь, может быть вычислено только в том случае, если знаменатель дроби не стремится к нулю. Следовательно, прежде чем рассчитывать функцию

F=Q(y)/W(z),

необходимо предусмотреть проверку:

W(z)> 0.

Алгоритмически проверку можно организовать так:

|W(z)|> 10-6.

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

При невыполнении этого условия после выдачи сообщения о невозможности расчета функции F следует прекратить выполнение алгоритма, если z просто переменная, или перейти к расчету следующего значения W(z), если z — элемент массива.

Пример 3.Функция tg(x) не может быть рассчитана, если х принимает значения, кратные Pi/2. Таких точек на числовой оси бесконечное множество. Однако проверка существования функции tg(x) может быть легко организована, если учесть, что tg(x)=sin(x)/cos(x). В этом случае в алгоритм целесообразно включить проверку: |cos(x)|> 10-6.

Аналогично может быть организована проверка существования функции ctg(x). Здесь проверяется условие |sin(x)|> 10-6.

Пример 4.Функция y=log(x) существует только для положительных значений х, поэтому в данном случае нужно проверять условие x> 0. Описать все случаи организации проверок существования функции при произвольных значениях аргументов не представляется возможным. Пользователь должен сам, составляя конкретный алгоритм, предусмотреть необходимые проверки.

 

 

Заключение

 

7. Необходимо повышенное внимание уделять особым случаям, которые встречаются в данных либо в формулах (например, в алгоритме нахождения минимального числа множества – это случай, когда входное множество содержит один элемент либо оно пустое; при некоторых вычислениях возникает необходимость деления на 0 и т.п.).

 


Поделиться:



Популярное:

  1. I. 20. Учет, картирование и прогнозирование засоренности полей.
  2. I. Иммунология. Определение, задачи, методы. История развитии иммунологии.
  3. I. Цели и задачи библиотеки на 2015 год
  4. II. 36. Основные задачи семеноводства.
  5. II. ЦЕЛИ, ЗАДАЧИ И ВИДЫ ДЕЯТЕЛЬНОСТИ ОРГАНИЗАЦИИ.
  6. III-56 Сущность калькуляции. Понятие объектов учета затрат и объектов калькуляции.
  7. V. Учет и хранение трудовых книжек.
  8. V1: Предмет, цели и задачи товароведения
  9. VII. Задачи научного руководителя дипломной работы
  10. VII. Прием, регистрация, учет и направление документов на исполнение
  11. Абсолютно твердое тело - система материальных точек, расстояние между которыми не изменяются в данной задаче. Абсолютно твердое тело обладает только поступательными и вращательными степенями свободы.
  12. Алгоритм Симплекс-метода для решения задачи линейного программирования об оптимальном использовании ресурсов.


Последнее изменение этой страницы: 2016-08-31; Просмотров: 471; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь