1

Тема: Розробити функцію з даної програми с++.)

Доброго дня.)Допоможіть будь ласка написати цю програму через функцію... *WALL*

#include <locale.h>
#include <conio.h> 
int main() 
{ setlocale(0,"");
float X0,Xk,x,y,h ;  printf("Введ1ть дан1:\n");
printf("\nВвед1ть Хпоч,"         "Хк1н, h ...  "); scanf_s("%f %f %f", &X0,&Xk,&h); 
printf("\nІнтервал [%3.2f, %3.2f]\n Крок h = %3.2f\n", X0,Xk,h); 
printf("\n----------------------\n|     x    |    y    |"); 
printf("\n|----------|---------|");
 x=X0; while (x<=Xk) 
 {if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
          else y=4+x*x; 
 printf("\n|  %7.2f |  %7.2f |",x,y); 
     x+=h; 
 } 
 printf("\n-----------------------");  
 _getch();
 return 0; }

2

Re: Розробити функцію з даної програми с++.)

1. Чим вас функція main не влаштовує?
2. Якщо написати іншу програму, то вона не буде цією програмою. Уточніть, що саме вам потрібно.

3

Re: Розробити функцію з даної програми с++.)

koala написав:

1. Чим вас функція main не влаштовує?
2. Якщо написати іншу програму, то вона не буде цією програмою. Уточніть, що саме вам потрібно.

Мені потрібно щоб функція main() викликала іншу функцію, яка робить розрахунки...

4 Востаннє редагувалося P.Y. (31.05.2016 19:03:54)

Re: Розробити функцію з даної програми с++.)

Очевидно, в іншу функцію треба винести ту частину, де на основі x обчислюється y — тоді x буде параметром такої функції, а значення y повертатиметься через return.

5

Re: Розробити функцію з даної програми с++.)

P.Y. написав:

Очевидно, в іншу функцію треба винести ту частину, де на основі x обчислюється y — тоді x буде параметром такої функції, а значення y повертатиметься через return.

вже зробив..)

#include <locale.h>
#include <conio.h> 
 
void func(float X0, float Xk, float h)
{
float x,y;
 x=X0; while (x<=Xk) 
 {if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
        else y=4+x*x; 
 printf("\n|  %7.2f |  %7.2f |",x,y); 
    x+=h; 
 } 
 printf("\n-----------------------");
}
 
 
int main() 
{ setlocale(0,"");
float X0,Xk,x,y,h ;
 
printf("Введ1ть дан1:\n");
printf("\nВвед1ть Хпоч,"         "Хк1н, h ...  ");
 
scanf_s("%f %f %f", &X0,&Xk,&h); 
 
printf("\nІнтервал [%3.2f, %3.2f]\n Крок h = %3.2f\n", X0,Xk,h); 
printf("\n----------------------\n|     x    |    y    |"); 
printf("\n|----------|---------|");
 
func(X0, Xk, h);
 
 _getch();
 return 0; }
Подякували: koala1

6 Востаннє редагувалося P.Y. (31.05.2016 19:13:58)

Re: Розробити функцію з даної програми с++.)

Технічно, можна й так, але в такому виділенні функції особливого сенсу нема. Я мав на увазі зробити функцію лише з оцього:

if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
        else y=4+x*x;

Замість y= функція використовуватиме return, а замість цього фрагменту в основній програмі буде

y=f(x);

Тоді програму можна буде легко переписати для обчислень за цим же алгоритмом на основі якоїсь іншої математичної функції, переписавши лише саму функцію f

Подякували: leofun011

7

Re: Розробити функцію з даної програми с++.)

P.Y. написав:

Технічно, можна й так, але в такому виділенні функції особливого сенсу нема. Я мав на увазі зробити функцію лише з оцього:

if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
        else y=4+x*x;

Замість y= функція використовуватиме return, а замість цього фрагменту в основній програмі буде

y=f(x);

я попробую..) всеодно дякую.) *THUMBSUP*