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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 67, средняя оценка - 4.90
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
#1

табуляция функции в С++ - C++

01.01.2011, 10:34. Просмотров 9327. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста с решением задачи

Задача . (консольная программа).
Выполнить табуляцию функции, указанной в условии, на отрезке [a, b] (a<b) с шагом d. Построение таблицы произвести в текстовом файле table.txt. По окончании работы полученный файл открыть в окне программы Блокнот (программно). Параметры a, b, d ввести в диалоге с клавиатуры (обеспечить проверку корректности ввода).

Пояснение: табулировать функцию на указанном отрезке с указанным шагом означает построить таблицу значений этой функции для всех значений данного отрезка (отстоящих друг от друга на указанном расстоянии d).
Миниатюры
табуляция функции в С++  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2011, 10:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос табуляция функции в С++ (C++):

Табуляция функции - C++
Вот сама задача: http://cs633118.vk.me/v633118233/2836/80zrruaXWok.jpg Вот мой исходник: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Табуляция функции - C++
Составить программу, которая распечатывает заданное количество значений функций asb(sin(x)) и соответствующие значение аргумента.Таблица...

Табуляция функции y=x^2-4x+3 - C++
Табулировать функцию y=x^2-4x+3. Программа должна содержать описание класса, реализующего поставленную задачу. Начальные значения...

Табуляция функции - C++
Табуляция функции в диапазоне от Xmin =-15 до Xmax =20 в N=1000 равноудаленных точках.

Табуляция функции - C++
Доброго времени суток. У меня есть рабочий код программы табуляции функции. Проблема заключается в том, что он работает только с числовыми...

Табуляция функции 2 сменных - C++
Помогите сделать программу на С Табуляция функции 2 сменных,и запись у текстовый файл u , крок u 0.2 v , крок v 0,41 y=ulnv ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
01.01.2011, 12:08 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
int main()
{
    ofstream ofs("table.txt");
    double a,b,d;
    cout << "Enter a,b,d = ";
    cin >> a >> b >> d;
    cout << "\n";
    
    for(double x = a;x<b;x+=d)
    {
            ofs << (1.3*exp((-x)/2)+fabs(cos(((2*M_PI*x)/3)-1.4))-6/11) << "\n";
    }
    
    cin.get();
}
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
01.01.2011, 12:31 #3
вот ещё вариант
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
#include <iostream>
#include <fstream>
#include<iomanip>
#include<windows.h>
#include<cmath>
using namespace std;
 
int main()
{
    float y, x, a, b, d;
    cout<<"enter a, b, d\n\n";
    cin>>a>>b>>d;
    if(a>=b){
        cerr<<"\"a\" must be less than \"b\"";
        return 1;
    }
    ofstream ofs("table.txt");
    ofs<<setw(4)<<'x'<<setw(15)<<'y'<<endl;
    x=a;
    while(x<=b){
        y=1.3*exp(-x/2.0)+fabs(cos(2.0*M_PI*x/3-1.4))-6.0/11;
        ofs<<setw(4)<<x<<setw(15)<<y<<endl;
        x+=d;
    }
    cout << WinExec("c:\\windows\\notepad.exe table.txt",SW_SHOW) << endl;
}
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
02.01.2011, 02:29  [ТС] #4
Проверьте пожалуйста мой вариант,чувствую там много лишнего
ЗЫ всем спасибо!

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
#include <windows.h>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>      //подключение математических функций
#include <cstdlib>
#define pi 3.14       //замена pi на 3.14
using namespace std;
 
/* Автор программы:  Долгосрочное задание, задача #2 */
 
main()
{
SetConsoleOutputCP(1251); //русификация консоли
 
 
double a(0), b(0);      //входные данные
double d(0);            //шаг аргумента
 
cout<<"Введите a>";     //ввод числа "а"
cin>>a;
 
 
do
      {
cout<<"Введите b>";     //ввод числа "b" с проверкой корректности данных
cin>>b;
      }
while (b<=a);
 
 
 
char dStr[50] = "";    //строковый буфер для ввода числа
bool incorrect = false;//критерий правильности ввода числа
 
                       //цикл ввода параметра "d"
do
  {
system("cls");
cout<<"Введите шаг аргумента (вещественное число из отрезка [a,b])>>";
cin>>dStr;
 
 d = atof(dStr);//преобразовать строку в число
 
incorrect = ((d==0) && (strcmp(dStr,"0")!=0)) || ((d<0)||(d>1)); //определить, правильное ли число было введено
  }
while (incorrect); //пока введено неверное значение, продолжать
 
char FileName[260] = "C:\\Table.txt";
ofstream OutFile(FileName); //создание и открытие файла для вывода
 
double start(a), end(b);
double x(start);                 //аргумент функции
double y(0);                    //значение функции
 
OutFile<<"Таблица функции f(x)=1.3*exp(-x/2)-6./11+cos((2*pi*x/3)-1.4)\n\n";
OutFile<<"x\t\tf(x)"<<endl;
while (x<=end)                   //пока x не достиг конца отрезка [a,b] продолжать
   {
if (cos((2*pi*x/3)-1.4)<0.00001)
OutFile<<setprecision(2)<<showpoint<<x<<"\t\t"<<"значение не определено"<<endl;
else
   {
y = 1.3*exp(-x/2)-6./11+cos((2*pi*x/3)-1.4);
OutFile<<x<<"\t\t"<<y<<endl;     //вывести в файл аргумент и значение функции
   }
 
x += d;                         //увеличить значение аргумента
   }
 
OutFile.close();
char Start[260] =  "notepad.exe   C:\\Table.txt";
system  (Start); //открыть файл в программе Блокнот
   }
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
02.01.2011, 08:41 #5
Я думаю, вот этого вполне достаточно будет.
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
#include <iostream>
#include <fstream>
 
#define PI 3.14159265
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");   // русификация консоли
    
    double a, b,    // входные данные
           d;       // шаг аргумента
    
    cout << "Введите начало отрезка a>";    // ввод числа "а"
    cin >> a;
    do {
        cout << "Введите конец отрезка b>"; // ввод числа "b" с проверкой корректности данных
        cin >> b;
    } while (b <= a);
    
    // цикл ввода параметра "d"
    do {
        system("cls");
        cout << "Введите шаг d>";
        cin >> d;
    } while ((b-a) < d);    // пока введено неверное значение, продолжать
 
    ofstream OutFile("Table.txt");  // создание и открытие файла для вывода
 
    double x(a),    // аргумент функции
           y;       // значение функции
    
    OutFile << "Таблица функции: f(x)=1.3*exp(-x/2)+cos((2*pi*x/3)-1.4)-6/11\n\n"
            << "x\t\tf(x)" << endl;
    
    do {
        y = 1.3 * exp(-x/2) + abs(cos(2*PI*x/3-1.4)) - 6./11;
        OutFile << x << "\t\t" << y << endl;    //вывести в файл аргумент и значение функции
        x += d;
    } while (x <= b);
 
    OutFile.close();
    system("notepad.exe Table.txt"); //открыть файл в программе Блокнот
}
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
02.01.2011, 09:16  [ТС] #6
Спасибо всем за помощь!

Добавлено через 10 минут
Цитата Сообщение от Минич Посмотреть сообщение
Я думаю, вот этого вполне достаточно будет.
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
#include <iostream>
#include <fstream>
 
#define PI 3.14159265
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");   // русификация консоли
    
    double a, b,    // входные данные
           d;       // шаг аргумента
    
    cout << "Введите начало отрезка a>";    // ввод числа "а"
    cin >> a;
    do {
        cout << "Введите конец отрезка b>"; // ввод числа "b" с проверкой корректности данных
        cin >> b;
    } while (b <= a);
    
    // цикл ввода параметра "d"
    do {
        system("cls");
        cout << "Введите шаг d>";
        cin >> d;
    } while ((b-a) < d);    // пока введено неверное значение, продолжать
 
    ofstream OutFile("Table.txt");  // создание и открытие файла для вывода
 
    double x(a),    // аргумент функции
           y;       // значение функции
    
    OutFile << "Таблица функции: f(x)=1.3*exp(-x/2)+cos((2*pi*x/3)-1.4)-6/11\n\n"
            << "x\t\tf(x)" << endl;
    
    do {
        y = 1.3 * exp(-x/2) + abs(cos(2*PI*x/3-1.4)) - 6./11;
        OutFile << x << "\t\t" << y << endl;    //вывести в файл аргумент и значение функции
        x += d;
    } while (x <= b);
 
    OutFile.close();
    system("notepad.exe Table.txt"); //открыть файл в программе Блокнот
}
эта не работает,ошибки выдаёт в строках 7,23,37,43
..\hernja\main.cpp:7: error: '::main' must return 'int'

..\hernja\main.cpp: In function 'int main()':

..\hernja\main.cpp:23: error: 'system' was not declared in this scope

..\hernja\main.cpp:37: error: 'exp' was not declared in this scope

..\hernja\main.cpp:37: error: 'cos' was not declared in this scope

..\hernja\main.cpp:37: error: 'abs' was not declared in this scope

..\hernja\main.cpp:43: error: 'system' was not declared in this scope

mingw32-make[1]: *** [tmp/obj/debug_shared/main.o] Error 1

mingw32-make: *** [debug-all] Error 2

Процесс "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился с кодом %2.
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
02.01.2011, 09:21 #7
C++
1
2
3
4
#include <iostream>
#include <fstream>
#include <cmath>      //подключение математических функций
#include <cstdlib>
Подключи библиотеки! Хотя у меня на MS Visual C++ 2010 Express и без них работает!
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
02.01.2011, 09:32  [ТС] #8
Цитата Сообщение от Минич Посмотреть сообщение
C++
1
2
3
4
#include <iostream>
#include <fstream>
#include <cmath>      //подключение математических функций
#include <cstdlib>
Подключи библиотеки! Хотя у меня на MS Visual C++ 2010 Express и без них работает!
Всё заработало,спс
Нас заставляют все проекты в Qt делать и подробно все строки описывать(за что они отвечают)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2011, 09:32
Привет! Вот еще темы с ответами:

Табуляция функции - не сходится ответ - C++
Функция: Cn(x)=\gamma +\ln x+\int_{0}^{x}\frac{t-1}{t}dt Ряд Тейлора: Cn(x)=\gamma + \ln x +\sum_{n=1}^{\propto...

Табуляция функции и схема алгоритма и программа - C++
Помогите, не могу понять, как протабулировать функцию во втором задании и написать схему алгоритма и программу в третьем

Табуляция функции в цикле while-не обновляется счетчик - C++
Работаю в Borland C++ Попробовал запустить программу-таблица выводится бесконечно с одними и теми же значениями. Пробовал запустить в...

табуляция функции. почему не работает код? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdlib.h&gt; #include &lt;cstdio&gt; using namespace std; float arctg(float x) ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.01.2011, 09:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru