Методика разработки и написания программы

В методике определены основные этапы проектирования программы.

Методика рассматривается на конкретном примере.

 

Дана задача: Написать программу, которая по введенному значению аргумента вычисляет значение функции.

 

Дана функция.

 

Математическая запись этой функции:

Этапы разработки и написания

I. Определить цель: Определить значение функции У при входном значении аргумента X.

 

II. Определить входные данные: Значение аргумента Х должно быть вещественного типа.

 

III. Определить выходные данные: Значение функции У должно быть вещественного типа.

 

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

1) Ввести аргумент Х.

2) Определить, какому интервалу из области определения функции принадлежит введенное значение аргумента Х. Вычислить значение функции У по формуле.

3) Вывести значение У.

 

Далее детализируются пункты алгоритма – п.2

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

2.2 Если аргумент Х принадлежит интервалу [-2; -1), то У = -Х-2.

2.3 Если аргумент Х принадлежит интервалу [-1; 1), то У = Х.

2.4 Если аргумент Х принадлежит интервалу [1; 2), то У = -Х+2.

2.5 Если аргумент Х принадлежит интервалу [2; +;), то У = 0.

Обозначения применяемые в интервале:

[ - нестрогое неравенство >= или <=.

) – строгое неравенство > или <.

 

Алгоритм может быть представлен в виде блок-схемы (в данной методике этот вариант не рассматривается). Алгоритм в неформальном словесном виде допускается по технологии программирования.

 

V. По созданному алгоритму написать программу.

 

//программа расчета функции по ее аргументу

#include <stdio.h>

#include <locale.h>

 

int main()

{

setlocale(LC_ALL, "Russian");//для правильной знакогенерации

 

//объявление переменных

double x; //значение аргумента

double y; //значение функции

 

//ввод

printf_s("Введите значение аргумента Х ->"); scanf_s("%lf", &x);

 

//расчет

if(x < 2) y = 0;

if(x >= -2 && x < -1) y = -x-2;

if(x >= -1 && x < 1 ) y = x;

if(x >= 1 && x < 2 ) y = -x+2;

if(x >= 2) y = 0;

 

//вывод

printf_s("\nДля x = %.2f значение y = %.2f\n", x, y);

return 0;

}

 

VI. Отладить программу – обнаружить и исправить ошибки как синтаксические (их показывает компилятор), так и заложенные в логике программы. Ошибки, заложенные в логике программы, выявляются при ее выполнении. Для устранения таких ошибок выполняется тестирование. Тестирование - процесс выполнения программы на некотором наборе данных, для которого заранее известен результат.

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

Х -5 -1,5 0,5 1,5 -2 -1
У -0,5 0,5 0,5 -1

 

 

VII. Упростить программу в части расчета (оптимизировать).

 

//расчет

if(x >= -2 && x < -1) y = -x-2;

else if(x >= -1 && x < 1 ) y = x;

else if(x >= 1 && x < 2 ) y = -x+2;

else y = 0;

 

VIII. Протестировать программу после оптимизации.