Студопедия — Структурная схема вычисления значения функции в виде блок-схемы
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Структурная схема вычисления значения функции в виде блок-схемы






 

 

Опишем четвертый пункт алгоритма более подробно:

o Если аргумент x принадлежит интервалу [-3; -2), то .

o Если аргумент x принадлежит интервалу [-2; 0), то .

o Если аргумент x принадлежит интервалу [0; 1), то .

o Если аргумент x принадлежит интервалу [1; 3], то .

 

По такому алгоритму можно практически «один в один» написать программу:

{***************************************************}

{Программа: FUNC. }

{Цель: вычисление значения функции. }

{Программист: Иванов И.И. }

{Дата выполнения: 10 апреля 2006 г. }

{***************************************************}

Program FUNC;

Var X, Y: real;

Begin

Writeln(‘Введите значение аргумента’);

Read(X);

Wriyeln(‘X=’, X);

If (x< -3) or (x> 3) then begin

Writeln(‘Значение должно принадлежать интервалу [-3; 3]’);

exit

end;

If x< -2 then y: =-2*x-5;

If (x> =-2) and (x< 0) then y: =-sqrt(1-sqr(x+1))-1;

If (x> =0) and (x< 1) then y: =x-1;

If x> =1 then y: =sqrt(1-sqr(x-2));

Writeln(‘Для x= ’, x: 6: 2, ‘значение функции y= ’, y: 6: 2)

End. {FUNC}

 

Следует обратить внимание на запись условий, содержащих два сравнения. Начинающие часто записывают такие условия, просто воспроизводя математическую формулу, т.е. как a< x< b. Ошибка состоит в том, что операции отношения являются бинарными, т.е. должны иметь два операнда. И если надо проверить два условия (a< x и x< b), то и операций должно быть две. Поскольку необходимо, чтобы эти условия выполнялись одновременно, они объединены с помощью операции логического умножения И (and), т.е. выражение принимает вид (a< x) and (x< b). Заключать каждое условие в круглые скобки необходимо потому, что логические операции имеют более высокий приоритет, чем операции отношения. При отсутствии скобок сначала будет предпринята попытка выполнить операцию x and x2, что вряд ли соответствует замыслу.

Первый и последний условные операторы записаны без двойных условий, потому что проверка того, что аргумент находится в диапазоне [-3; 3], выполнена раньше. Стандартная процедура exit обеспечивает выход из программной единицы, в которой она записана. Тестовые примеры для этой программы должны включать, по крайней мере, по одному значению аргумента из каждого интервала, а для проверки граничных условий – еще и все точки перегиба.

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

 

If x< -2 then y: =-2*x-5

else if x< 0 then y: =-sqrt(1-sqr(x+1))-1

else if x< 1 then y: =x-1

else y: =sqrt(1-sqr(x-2));

Этот вариант вычисления значения функции иллюстрирует следующая блок-схема:

Рис. 2. Второй вариант вычисления значения функции.

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

 

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

 

Приложение № 2.

ВЫСТРЕЛ ПО МИШЕНИ







Дата добавления: 2014-11-10; просмотров: 1313. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия