Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <windows.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <string.h>
- #include <ctype.h>
- #include <math.h>
- FILE *data;
- //#define n 10000
- const int n=10;
- const double Pi = 3.14159;
- #define pause system("pause")
- #define cls system("cls")
- int enter_flag=0;
- double a=0,b=0;
- double left=0.00,right=0.00,mid=0.00,trap=0.00;
- double h;
- //f(x)=cos(2x^3)
- double fx(double x){
- //return cos(2*x*x*x);
- return sin(x);
- }
- void mtrap(){
- trap=0;
- trap+=(fx(a)+fx(b))/2;
- int i;
- for (i=0;i<n;i++){
- trap+=fx(a+i*h);
- }
- trap*=h;
- printf("%lf\n", trap);
- pause;
- }
- void mleft(){
- left=0;
- left+=fx(a);
- int i;
- for (i=0;i<n;i++){
- left+=fx(a+i*h);
- }
- left*=h;
- printf("%lf\n", left);
- pause;
- }
- void mright(){
- right=0;
- right+=(fx(a)+fx(b))/2;
- int i;
- for (i=0;i<n;i++){
- right+=fx(a+i*h);
- }
- right*=h;
- printf("%lf\n", right);
- pause;
- }
- void f_read(){
- if (!(data=fopen("data", "rb"))){
- printf("Невозможно создать/открыть файл\n"); return;
- }
- fread(&a,sizeof(int),1,data);
- fread(&b,sizeof(int),1,data);
- fread(&left,sizeof(double),1,data);
- fread(&right,sizeof(double),1,data);
- fread(&mid,sizeof(double),1,data);
- fread(&trap,sizeof(double),1,data);
- fclose(data);
- }
- void f_write(){
- if (!(data=fopen("data", "w+b"))){
- printf("Невозможно создать/открыть файл\n"); return;
- }
- fwrite(&a,sizeof(int),1,data);
- fwrite(&b,sizeof(int),1,data);
- fwrite(&left,sizeof(double),1,data);
- fwrite(&right,sizeof(double),1,data);
- fwrite(&mid,sizeof(double),1,data);
- fwrite(&trap,sizeof(double),1,data);
- fclose(data);
- }
- void init(){
- int i;
- /*printf("Введите нижний предел\n");
- scanf("%lf", &a);
- printf("Введите верхний предел\n");
- scanf("%lf", &b);*/
- a=0;
- b=Pi;
- h=(b-a)/n;
- printf("%lf\n", h);
- pause;
- enter_flag=1;
- }
- void print(){
- char str[n];
- int i,j;
- cls;
- printf("______________________________________________________________________________________________________\n");
- printf("|Нижний предел |Верхний предел |Методом л.п. |Методом п.п. |Методом с.п. |Методом Симпсона |\n");
- printf("|_______________|_______________|_______________|_______________|_______________|____________________|\n");
- itoa(a,str,10);
- printf("|%s", str);
- for (i=0;i<15-strlen(str);i++){
- printf(" ");
- }
- itoa(b,str,10);
- printf("|%s", str);
- for (i=0;i<15-strlen(str);i++){
- printf(" ");
- }
- itoa(left,str,10);
- printf("|%.2lf", left);
- for (i=0;i<12-strlen(str);i++){
- printf(" ");
- }
- itoa(right,str,10);
- printf("|%.2lf", right);
- for (i=0;i<12-strlen(str);i++){
- printf(" ");
- }
- itoa(mid,str,10);
- printf("|%.2lf", mid);
- for (i=0;i<12-strlen(str);i++){
- printf(" ");
- }
- itoa(trap,str,10);
- printf("|%.2lf", trap);
- for (i=0;i<17-strlen(str);i++){
- printf(" ");
- }
- printf("|\n");
- printf("|_______________|_______________|_______________|_______________|_______________|____________________|\n");
- pause;
- }
- int main(void){
- SetConsoleCP (1251);
- SetConsoleOutputCP (1251);
- while (1){
- cls;
- printf("1)Ввод пределов\n");
- printf("2)Расчет интеграла методом левого прямоугольника\n");
- printf("3)Расчет интеграла методом правого прямоугольника\n");
- printf("4)Расчет интеграла методом серединного прямоугольника\n");
- printf("5)Расчет интеграла методом трапеции\n");
- printf("6)Вывод в виде таблицы\n");
- printf("7)Запись в файл\n");
- printf("8)Чтение из файла\n");
- printf("9)Выход\n");
- switch (_getch()){
- case '1':
- init();
- break;
- case '2':
- if (enter_flag!=1){
- printf("Вы не ввели x\n");
- pause;
- break;
- }
- mleft();
- break;
- case '3':
- if (enter_flag!=1){
- printf("Вы не ввели x\n");
- pause;
- break;
- }
- break;
- case '4':
- if (enter_flag!=1){
- printf("Вы не ввели x\n");
- pause;
- break;
- }
- break;
- case '5':
- if (enter_flag!=1){
- printf("Вы не ввели x\n");
- pause;
- break;
- }
- mtrap();
- break;
- case '6':
- print();
- break;
- case '7':
- f_write();
- break;
- case '8':
- f_read();
- break;
- case '9':
- return 0;
- default:
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement