Форум программистов, компьютерный форум CyberForum.ru

Проверьте пожалуйста - C++

Восстановить пароль Регистрация
 
784141
0 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 4
25.12.2013, 17:00     Проверьте пожалуйста #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
 
 
double func(int a, int b, int d, double x)
{
    return 1.0 * a * cos(1.0 * b*x) + pow(x, d); 
}
 
double method_of_trapezium(int a, int b, int d, double x1, double x2, double dx)
{
    double x = x1;
    double sum = (func(a, b, d, x1 + dx) + func(a, b, d, x1)) * dx / 2.0;
    while(x < x2)
    {
        sum += (func(a, b, d, x + dx) + func(a, b, d, x))*dx / 2.0;
        x += dx;
    }
 
    cout<<"result: "<<sum<<endl;
    return sum;
}
 
 
void writeToFile(double val)
{
    char * fileName = "output.txt";
    FILE * file = fopen(fileName, "w");
    if (file) // если есть доступ к файлу,
    {
        fprintf(file,"%f", val);
    }
    //Закрываем файл
    fclose(file);
 
}
 
void main(int argc, char argv[])
{
 
    clock_t t;
    t = clock();
 
    int a,b,d;
    double x1,x2;
 
    double dx = 0.001;
 
 
    //Открываем файл для чтения
    ifstream infile;
    infile.open ("file.txt");
    int i =0;
    //Считываем строки из файла до тех пор, пока не дошли до конца файла
    while(infile.eof() == false)
    {
        
        //Получаем строку из файла
        string line = "";
        getline(infile, line);
 
        if (line.find("a=") != string::npos)
        {
            line.erase(0,2);
            a = atoi(line.c_str());
        }
 
        if (line.find("b=") != string::npos)
        {
            line.erase(0,2);
            b = atoi(line.c_str());
        }
 
        if (line.find("d=") != string::npos)
        {
            line.erase(0,2);
            d = atoi(line.c_str());
        }
 
        if (line.find("x1=") != string::npos)
        {
            line.erase(0,3);
            x1 = atof(line.c_str());
        }
 
        if (line.find("x2=") != string::npos)
        {
            line.erase(0,3);
            x2 = atof(line.c_str());
        }
        if (line.find("dx=") != string::npos)
        {
            line.erase(0,3);
            dx = atof(line.c_str());
        }
    }
 
    cout<<"a="<<a<<endl;
    cout<<"b="<<b<<endl;
    cout<<"d="<<d<<endl;
    cout<<"x1="<<x1<<endl;
    cout<<"x2="<<x2<<endl;
    cout<<"dx="<<dx<<endl;
 
    double result = method_of_trapezium(a,b,d,x1,x2,dx);
 
    writeToFile(result);
 
    t = clock() - t;
 
    cout<<"File created. Time: ";
    printf("%f", (double)t/CLOCKS_PER_SEC);
    cout<<endl;
}





а само задание было : Разработать программу для вычисления определенного интеграла ме-тодом трапеции для функции y=a*cos(b*x)+x. Коэффициенты a,b,d и границы интервала интегрирования должны быть считаны из файла. Расчет интеграла провести с использованием функции с передачей исходных данных как пара-метров и возвратом результата в главную функцию программы. Определить время работы вычислительного алгоритма программы. Результат записать в файл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 17:00     Проверьте пожалуйста
Посмотрите здесь:

Пожалуйста, проверьте правильность C++
C++ Проверьте пожалуйста код
C++ Проверьте пожалуйста программу
проверьте пожалуйста! C++
Проверьте пожалуйста код (C++) C++
C++ Проверьте программу пожалуйста
C++ проверьте пожалуйста!
C++ Проверьте пожалуйста задачи

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru