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

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

Войти
Регистрация
Восстановить пароль
 
 
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
#1

Вычислить значение функции - C++

23.09.2012, 14:49. Просмотров 672. Ответов 18
Метки нет (Все метки)

Прошу,помогите с программой! Я новичок и нуждаюсь в помощи. Программу-то написал,но в ней куча ошибок! Вот сама функция: y=((0.8/(a+b)*(tan^2(x))+1)/((PI/4)+(x^(-1/8))).
А вот программа:
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
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <locale.h>                 //Для русифицированного вывода на консоль
#pragma warning( disable:4996 )     //Для заприщения лишних ошибок
int main( void )
{
    setlocale{ LC_CTYPE, ".1251" }; //Для русифицированного вывода на консоль
    setlocale{ LC_MONETARY, ".1251" };
 
    float a,b,x,                    //Исходные данные
          у;                        //Результат
    FILE *in,                       //Указатель на файл ввода
         *out;                      //Указатель на файл вывода
    int ret;                        //Для контроля ошибок
    const double PI = 3.14159265;
 
    //Открытие файла ввода
    in = fopen( "dat.txt", "rt" );
    if( in == NULL )
    {
        printf( "Ошибка 1: Ошибка открытия файла ввода dat.txt \n" );
        return 1;
    }
 
    //Чтение исходных данных
    ret = fscanf( in, "a=%f b=%f x=%f", &a, &b, &x );
    if( ret != 3)
    {
        printf( "Ошибка 2: Ошибка чтения исходных данных: a=<float> b=<float> x=<float> /n" );
        return 2;
    }
 
    //Закрытие файла ввода
    ret = fclose( in );
    if( ret == EOF )
    {
        printf( "Ошибка 3: Ошибка закрытия файла ввода dat.txt /n" );
        return 3;
    }
 
    //Проверка ОДЗ
    if( a == -b )
    {
        printf( "Ошибка 4: Значение суммы a+b не может быть 0 /n" );
        return 4;
    }
 
    if( x <= 0)
    {
        printf( "Ошибка 5: Значение x не может быть <= 0 /n" );
        return 5;
    }
 
    //Вычисление
    y=((0.8/(a+b)*(tan^2(x))+1)/((PI/4)+(x^(-1/8)));
 
    //Открытие файла вывода
    out = fopen( "res.txt", "wt" );
    if( out == NULL )
    {
        printf( "Ошибка 6: Ошибка открытия файла вывода res.txt /n" );
        return 6;
    }
 
    //Печать технического задания, исходных данных и результата
    fprintf( out, "Вычислить значение функции по формуле /n"
            "Исходные данные: /n a=%.2f b=%.2f x=%.2f /n"
            "Результат: /n y=%.2f", a, b, x, y );
 
    //Закрытие файла вывода
    ret = fclose( out );
    if( ret == EOF )
    {
        printf( "Ошибка 7: Ошибка закрытия файла вывода res.txt /n" );
        return 7;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 14:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить значение функции (C++):

Вычислить значение функции (значение переменной Х передается в качестве параметра функции) - C++
Написать функцию, которая возвращает вычисленное значение функции. Значение переменной Х передается в качестве параметра функции.

Вычислить значение аргумента x, значение функции y, max и min функций - C++
где диапазон изменения аргумента -2 &lt;= x &lt;=3 , шаг 0,1

Вычислить где значение функции меняет знак(отделение корней функции) - C++
Имеется следующая функция f(x)=sqrt(4*x+7)-3*cos(x) Нужно написать программу, где будет выводится таблица, где будет видно при каком...

Вычислить значение функции a = b ^2 sin (b), причем b изменяется от 0,9 до 1,7 с шагом 0,2. Найти среднее значение разности между элементами - C++
Доброго времени суток ! Помогите решить задачу ! Нужно написать в цикле с постусловием следующее : Вычислить значение функции...

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции - C++
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной функции \varphi (x), аргумент которой...

Дано разложение функции в ряд Тейлора. Вычислить для значения x и точности Eps точное значение функции - C++
Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps: • точное значение функции...

18
Garic_
72 / 72 / 7
Регистрация: 03.11.2009
Сообщений: 470
23.09.2012, 15:11 #2
mc_evgenij,
Программу-то написал,но в ней куча ошибок!
Возьми за основу логически подходить к проблеме, не смотреть на кучу ошибок, а разбирать по одной. Начни с первой ошибки и доведи ее до ума.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
23.09.2012, 15:19 #3
Цитата Сообщение от mc_evgenij Посмотреть сообщение
Я новичок и нуждаюсь в помощи.
Золотые слова.

Добавлено через 54 секунды
mc_evgenij, что не так?

Добавлено через 6 минут
C
1
(.8 / (a + b) * (tan( x ) * tan( x )) + 1) / ((PI / 4) + pow( x, -1. / 8 ))
0
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:19  [ТС] #4
Цитата Сообщение от Garic_ Посмотреть сообщение
mc_evgenij,

Возьми за основу логически подходить к проблеме, не смотреть на кучу ошибок, а разбирать по одной. Начни с первой ошибки и доведи ее до ума.
Я пробовал поочереди разбирать ощибки,но причем тут эта ошибка,к тому же встречается 5 раз в тех местах,где ее не должно быть.
0
Миниатюры
Вычислить значение функции  
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 15:24 #5
начнем с того что там скобки {} а надо ()
1
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:27  [ТС] #6
Цитата Сообщение от Nixy Посмотреть сообщение
начнем с того что там скобки {} а надо ()
Ой... Спасибо) Чего-то не заметил это... Осталось только ошибки:
c:\documents and settings\evgeny\рабочий стол\универ\программирование\project\9.1\9.1.cpp(61) : error C2065: 'y' : undeclared identifier
c:\documents and settings\evgeny\рабочий стол\универ\программирование\project\9.1\9.1.cpp(61) : error C2666: 'pow' : 6 overloads have similar conversions
c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): could be 'long double pow(long double,int)'
c:\program files\microsoft visual studio 9.0\vc\include\math.h(573): or 'long double pow(long double,long double)'
c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): or 'float pow(float,int)'
c:\program files\microsoft visual studio 9.0\vc\include\math.h(525): or 'float pow(float,float)'
c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): or 'double pow(double,int)'
c:\program files\microsoft visual studio 9.0\vc\include\math.h(123): or 'double pow(double,double)'
while trying to match the argument list '(float, double)'
c:\documents and settings\evgeny\рабочий стол\универ\программирование\project\9.1\9.1.cpp(74) : error C2065: 'y' : undeclared identifier
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 15:33 #7
если вы думаете что ^ это возведение в степень то вы заблуждаетесь
C++
1
y=((0.8/(a+b)*(tan^2(x))+1)/((PI/4)+(x^(-1/8)));
исправте на
C++
1
y=((0.8/(a+b)*(pow(tan(x),2))+1)/((PI/4)+(pow(x,-1/8)));
Добавлено через 4 минуты
не понимаю почему он не определяет у , сделайте вот так
C++
1
float y=(0.8/(a+b)*(pow(tan(x),2))+1)/((PI/4)+(pow(x,-1/8)));
0
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:38  [ТС] #8
Цитата Сообщение от Nixy Посмотреть сообщение
если вы думаете что ^ это возведение в степень то вы заблуждаетесь
C++
1
y=((0.8/(a+b)*(tan^2(x))+1)/((PI/4)+(x^(-1/8)));
исправте на
C++
1
y=((0.8/(a+b)*(pow(tan(x),2))+1)/((PI/4)+(pow(x,-1/8)));
Добавлено через 4 минуты
не понимаю почему он не определяет у , сделайте вот так
C++
1
float y=(0.8/(a+b)*(pow(tan(x),2))+1)/((PI/4)+(pow(x,-1/8)));
Секундочку...
0
Garic_
72 / 72 / 7
Регистрация: 03.11.2009
Сообщений: 470
23.09.2012, 15:41 #9
mc_evgenij, Смотри по порядку я тебе об этом говорил. К примеру у тебя выводит
error C2065: 'y' : undeclared identifier
Не видит переменную, значит замени на
C++
1
    float a,b,x,у;
И т.д.
0
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:41  [ТС] #10
Нет,не хочет так,ошибка не исчазает,к тому же добавляется еще одна.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
23.09.2012, 15:43 #11
Что-то мне подсказывает что эта конструкция не сработает:
Цитата Сообщение от mc_evgenij Посмотреть сообщение
-1/8
0
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:44  [ТС] #12
Цитата Сообщение от Garic_ Посмотреть сообщение
mc_evgenij, Смотри по порядку я тебе об этом говорил. К примеру у тебя выводит Не видит переменную, значит замени на
C++
1
    float a,b,x,у;
Сработало!!! Спасибо огромное!!! Вот только предупреждение появилось:c:\documents and settings\evgeny\рабочий стол\универ\программирование\project\9.1\9.1.cpp(60) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
Compiling manifest to resources...
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
Embedding manifest...
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.

Могу ли не обращать на него внимание?
0
Garic_
72 / 72 / 7
Регистрация: 03.11.2009
Сообщений: 470
23.09.2012, 15:45 #13
А вообще присмотрелся что у тебя вместо y(английского), русская у
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 15:48 #14
мне кажется у вас там бука У а не Y

Добавлено через 1 минуту
Цитата Сообщение от mc_evgenij Посмотреть сообщение
Сработало!!! Спасибо огромное!!! Вот только предупреждение появилось:c:\documents and settings\evgeny\рабочий стол\универ\программирование\project\9.1\9.1.cpp(60) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
Compiling manifest to resources...
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
Embedding manifest...
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.

Могу ли не обращать на него внимание?
поменяй с float на double , если напрягаеттак ,и будь более внимателен
0
Garic_
72 / 72 / 7
Регистрация: 03.11.2009
Сообщений: 470
23.09.2012, 15:50 #15
Много лишнего выкладываешь. Проще
conversion from 'double' to 'float', possible loss of data
Подумай и скажи что тебе это говорит?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 15:50
Привет! Вот еще темы с ответами:

Функции: вычислить значение сложной (составной) функции - C++
помогите,пожалуйста!! 1)Y= Max(a,b) если х=0 y=Min(a,b) если х=1 y= |a+b| ...

В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты - C++
В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты. ...

Вычислить значение функции - C++
вычислить значение функции z=(ai +bi+ci)/i если a=a1,a2,.,a20; b- изменяется от 0 с шагом 0,3; c- меняется от 0,1 с шагом 0,5 / С++ для...

Вычислить значение функции - C++
Задание: Вычислить значение функции y={x}^{5}-\sqrt{x} Только начинаю программировать. Просьба помочь найти ошибку. #include...


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

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

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