Вопрос:

4.2.2. Создание консольного приложения. Текст программы может выглядеть следующим образом:

Ответ:

Решение:


В данном разделе представлен пример консольного приложения на языке C++, которое вычисляет значения двух функций 2*exp(r*r) и pow(sin(r), 2) в заданном диапазоне и выводит результаты.


Объявление типов и прототипов функций:


typedef double (*TFun)(double); // Декларация типа указателя на функцию
double fun1(double); // Декларация прототипа функции
double fun2(double); // Декларация прототипа функции
void Out_Tabl(TFun, double, double, double); // Декларация прототипа функции


Основная функция main():


void main()
{
double a, b, h;
puts("Input a,b,h");
scanf("%lf%lf%lf", &a, &b, &h);

puts("
Function - 2*exp(x)");
Out_Tabl(fun1, a, b, h);

puts("
Function - sin(x)*sin(x)");
Out_Tabl(fun2, a, b, h);

puts("
Press any key ... ");
getch();
}


Реализации функций пользователя:


double fun1(double r) {
return 2*exp(r*r);
}

double fun2(double r) {
return pow(sin(r), 2);
}


Функция вывода таблицы:


void Out_Tabl(TFun f, double xn, double xk, double h) {
for(double x=xn; x<=xk; x+=h)
printf(" x = %5.2lf, y = %8.4lf
",x,f(x));
}


Результат выполнения программы:


Программа выводит значения двух функций для заданных интервалов и шага. Например, для входных данных 0.1 1.0 0.3:



Input a,b,h
0.1 1.0 0.3

Function - 2*exp(x)
x = 0.10, y = 2.0201
x = 0.40, y = 2.3470
x = 0.70, y = 3.2646
x = 1.00, y = 5.4366

Function - sin(x)*sin(x)
x = 0.10, y = 0.0100
x = 0.40, y = 0.1516
x = 0.70, y = 0.4150
x = 1.00, y = 0.7081

Press any key ...

Примечание: В коде `mem->Lines->Add(...)` использован для вывода в компонент TMemo, что характерно для сред разработки типа Delphi/C++ Builder. В представленном варианте `printf` используется для консольного вывода.

Подать жалобу Правообладателю