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

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

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

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

23.09.2012, 14:49. Просмотров 661. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 14:49     Вычислить значение функции
Посмотрите здесь:

Вычислить значение функции - C++
Вечер добрый!!!! Задали в институте на програмирование сделать 5 лаб на Visual C++, но в нем я профан, может найдутся добрые люди и...

Вычислить значение функции - C++
помогити решить вот эти задачи мы недавно начели С и я в этом нулевой пока что зарание спасибо всем. Задача1. Даны три вещественных...

Вычислить значение функции - C++
http://avoreg.ru/pic_s/c6df923c94675b168aeda1ed81c5d4bc.jpg Собственно задание, тему пропустил поэтому возникли трудности, препод...

Вычислить значение функции - C++
Помогите пожалуйста! Cоставить программу вычисления функции при заданных значениях аргументов. Результаты вывести экран дисплея.

Вычислить значение функции - C++
Вычислить z={e}^{x{}^{y}}+ln((1-{e}^{y}){log}_{2}tgx) при x=3.5, y=1.25. Вычисление tg(x) и {log}_{n}(x) оформить в виде соответствующих...

Вычислить значение функции - C++
.....................Функция...................... .................Условие........................Исх.данные .......................

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Garic_
71 / 71 / 7
Регистрация: 03.11.2009
Сообщений: 468
23.09.2012, 15:11     Вычислить значение функции #2
mc_evgenij,
Программу-то написал,но в ней куча ошибок!
Возьми за основу логически подходить к проблеме, не смотреть на кучу ошибок, а разбирать по одной. Начни с первой ошибки и доведи ее до ума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 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 ))
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:19  [ТС]     Вычислить значение функции #4
Цитата Сообщение от Garic_ Посмотреть сообщение
mc_evgenij,

Возьми за основу логически подходить к проблеме, не смотреть на кучу ошибок, а разбирать по одной. Начни с первой ошибки и доведи ее до ума.
Я пробовал поочереди разбирать ощибки,но причем тут эта ошибка,к тому же встречается 5 раз в тех местах,где ее не должно быть.
Миниатюры
Вычислить значение функции  
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 15:24     Вычислить значение функции #5
начнем с того что там скобки {} а надо ()
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
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)));
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)));
Секундочку...
Garic_
71 / 71 / 7
Регистрация: 03.11.2009
Сообщений: 468
23.09.2012, 15:41     Вычислить значение функции #9
mc_evgenij, Смотри по порядку я тебе об этом говорил. К примеру у тебя выводит
error C2065: 'y' : undeclared identifier
Не видит переменную, значит замени на
C++
1
    float a,b,x,у;
И т.д.
mc_evgenij
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 8
23.09.2012, 15:41  [ТС]     Вычислить значение функции #10
Нет,не хочет так,ошибка не исчазает,к тому же добавляется еще одна.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
23.09.2012, 15:43     Вычислить значение функции #11
Что-то мне подсказывает что эта конструкция не сработает:
Цитата Сообщение от mc_evgenij Посмотреть сообщение
-1/8
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.

Могу ли не обращать на него внимание?
Garic_
71 / 71 / 7
Регистрация: 03.11.2009
Сообщений: 468
23.09.2012, 15:45     Вычислить значение функции #13
А вообще присмотрелся что у тебя вместо y(английского), русская у
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 , если напрягаеттак ,и будь более внимателен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 15:50     Вычислить значение функции
Еще ссылки по теме:

Вычислить значение функции - C++
написать программу, которая по введенному значению аргумента вычисляет значение функции. сама функция задана в виде графика, параметр R...

Вычислить значение функции - C++
вычислить Y=tg(x+2)+ctg²x(ctg(x+1)-tgx) при х = 30°, оформив в виде функций вычисление тангенса и котангенса. Damien166 на форуме...

Вычислить значение функции - C++
Вычислить значение функции с точностью ε = 10^-4, где x изменяется от 0 до 2 с шагом 0.2. Результаты вывести в виде таблицы. ...

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


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

Или воспользуйтесь поиском по форуму:
Garic_
71 / 71 / 7
Регистрация: 03.11.2009
Сообщений: 468
23.09.2012, 15:50     Вычислить значение функции #15
Много лишнего выкладываешь. Проще
conversion from 'double' to 'float', possible loss of data
Подумай и скажи что тебе это говорит?
Yandex
Объявления
23.09.2012, 15:50     Вычислить значение функции
Ответ Создать тему
Опции темы

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