Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <string.h>
  6. #include <ctype.h>
  7. #include <math.h>
  8.  
  9. FILE *data;
  10. //#define n 10000
  11. const int n=10;
  12. const double Pi = 3.14159;
  13. #define pause system("pause")
  14. #define cls system("cls")
  15. int enter_flag=0;
  16. double a=0,b=0;
  17. double left=0.00,right=0.00,mid=0.00,trap=0.00;
  18. double h;
  19. //f(x)=cos(2x^3)
  20.  
  21. double fx(double x){
  22.     //return cos(2*x*x*x);
  23.     return sin(x);
  24. }
  25.  
  26. void mtrap(){
  27.     trap=0;
  28.     trap+=(fx(a)+fx(b))/2;
  29.     int i;
  30.     for (i=0;i<n;i++){
  31.         trap+=fx(a+i*h);
  32.     }
  33.     trap*=h;
  34.     printf("%lf\n", trap);
  35.     pause;
  36. }
  37.  
  38. void mleft(){
  39.     left=0;
  40.     left+=fx(a);
  41.     int i;
  42.     for (i=0;i<n;i++){
  43.         left+=fx(a+i*h);
  44.     }
  45.     left*=h;
  46.     printf("%lf\n", left);
  47.     pause;
  48. }
  49.  
  50. void mright(){
  51.     right=0;
  52.     right+=(fx(a)+fx(b))/2;
  53.     int i;
  54.     for (i=0;i<n;i++){
  55.         right+=fx(a+i*h);
  56.     }
  57.     right*=h;
  58.     printf("%lf\n", right);
  59.     pause;
  60. }
  61.  
  62. void f_read(){
  63.     if (!(data=fopen("data", "rb"))){
  64.         printf("Невозможно создать/открыть файл\n"); return;
  65.     }
  66.         fread(&a,sizeof(int),1,data);
  67.         fread(&b,sizeof(int),1,data);
  68.         fread(&left,sizeof(double),1,data);
  69.         fread(&right,sizeof(double),1,data);
  70.         fread(&mid,sizeof(double),1,data);
  71.         fread(&trap,sizeof(double),1,data);
  72.     fclose(data);
  73. }
  74.  
  75. void f_write(){
  76.     if (!(data=fopen("data", "w+b"))){
  77.         printf("Невозможно создать/открыть файл\n"); return;
  78.     }
  79.         fwrite(&a,sizeof(int),1,data);
  80.         fwrite(&b,sizeof(int),1,data);
  81.         fwrite(&left,sizeof(double),1,data);
  82.         fwrite(&right,sizeof(double),1,data);
  83.         fwrite(&mid,sizeof(double),1,data);
  84.         fwrite(&trap,sizeof(double),1,data);
  85.     fclose(data);
  86. }
  87.  
  88. void init(){
  89.     int i;
  90.     /*printf("Введите нижний предел\n");
  91.     scanf("%lf", &a);
  92.     printf("Введите верхний предел\n");
  93.     scanf("%lf", &b);*/
  94.     a=0;
  95.     b=Pi;
  96.     h=(b-a)/n;
  97.     printf("%lf\n", h);
  98.     pause;
  99.     enter_flag=1;
  100. }
  101.  
  102. void print(){
  103.     char str[n];
  104.     int i,j;
  105.     cls;
  106.     printf("______________________________________________________________________________________________________\n");
  107.     printf("|Нижний предел  |Верхний предел |Методом л.п.   |Методом п.п.   |Методом с.п.   |Методом Симпсона    |\n");
  108.     printf("|_______________|_______________|_______________|_______________|_______________|____________________|\n");
  109.     itoa(a,str,10);
  110.     printf("|%s", str);
  111.     for (i=0;i<15-strlen(str);i++){
  112.         printf(" ");
  113.     }
  114.     itoa(b,str,10);
  115.     printf("|%s", str);
  116.     for (i=0;i<15-strlen(str);i++){
  117.         printf(" ");
  118.     }
  119.     itoa(left,str,10);
  120.     printf("|%.2lf", left);
  121.     for (i=0;i<12-strlen(str);i++){
  122.         printf(" ");
  123.     }
  124.     itoa(right,str,10);
  125.     printf("|%.2lf", right);
  126.     for (i=0;i<12-strlen(str);i++){
  127.         printf(" ");
  128.     }
  129.     itoa(mid,str,10);
  130.     printf("|%.2lf", mid);
  131.     for (i=0;i<12-strlen(str);i++){
  132.         printf(" ");
  133.     }
  134.     itoa(trap,str,10);
  135.     printf("|%.2lf", trap);
  136.     for (i=0;i<17-strlen(str);i++){
  137.         printf(" ");
  138.     }
  139.     printf("|\n");
  140.     printf("|_______________|_______________|_______________|_______________|_______________|____________________|\n");
  141.     pause;
  142. }
  143.  
  144. int main(void){
  145.     SetConsoleCP (1251);
  146.     SetConsoleOutputCP (1251);
  147.     while (1){
  148.         cls;
  149.         printf("1)Ввод пределов\n");
  150.         printf("2)Расчет интеграла методом левого прямоугольника\n");
  151.         printf("3)Расчет интеграла методом правого прямоугольника\n");
  152.         printf("4)Расчет интеграла методом серединного прямоугольника\n");
  153.         printf("5)Расчет интеграла методом трапеции\n");
  154.         printf("6)Вывод в виде таблицы\n");
  155.         printf("7)Запись в файл\n");
  156.         printf("8)Чтение из файла\n");
  157.         printf("9)Выход\n");
  158.         switch (_getch()){
  159.             case '1':
  160.                 init();
  161.                 break;
  162.             case '2':
  163.                 if (enter_flag!=1){
  164.                     printf("Вы не ввели x\n");
  165.                     pause;
  166.                     break;
  167.                 }
  168.                 mleft();
  169.                 break;
  170.             case '3':
  171.                 if (enter_flag!=1){
  172.                     printf("Вы не ввели x\n");
  173.                     pause;
  174.                     break;
  175.                 }
  176.                 break;
  177.             case '4':
  178.                 if (enter_flag!=1){
  179.                     printf("Вы не ввели x\n");
  180.                     pause;
  181.                     break;
  182.                 }
  183.                 break;
  184.             case '5':
  185.                 if (enter_flag!=1){
  186.                     printf("Вы не ввели x\n");
  187.                     pause;
  188.                     break;
  189.                 }
  190.                 mtrap();
  191.                 break;
  192.             case '6':
  193.                 print();
  194.                 break;
  195.             case '7':
  196.                 f_write();
  197.                 break;
  198.             case '8':
  199.                 f_read();
  200.                 break;
  201.             case '9':
  202.                 return 0;
  203.             default:
  204.                 break;
  205.         }
  206.     }
  207.     return 0;
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement