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

Найти результат работы функции - C++

Восстановить пароль Регистрация
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 15:58     Найти результат работы функции #1
/*Есть функция F(x)=5cos(x)-2sin(x). Надо найти сред.ариф. тех значений, которые функция принимает при значениях аргумента (то есть значениях x) в диапазоне [-2..3] с шагом 0.1. Делать через функцию.*/
C++ (Qt)
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 <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
int Racer(int Num)
{
    const int s = 5;
    double Z;
    int sum = 0;
    for (int x = -2; x <= 3; x=x+0.1)
      {
        double FX = (5 * cos(x)) - (2 * sin(x));
        sum += FX;
      }
    Z = (sum / (5/0.1));
    return Z;
}
 
main()
{
    cout <<"SredArif: " << Racer << "\n";
    
    system("pause");
    return 0;
}
В итоге выводит единицу! Где неверный кусок решения?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 16:12     Найти результат работы функции #2
Super GT, попробуй так:
C++
1
double FX = (5.0 * cos(x*M_PI/180)) - (2.0 * sin(x*M_PI/180));
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 16:17  [ТС]     Найти результат работы функции #3
Тоже самое, не помогло.
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 16:23     Найти результат работы функции #4
Цитата Сообщение от Super GT Посмотреть сообщение
int Racer(int Num)
C++
1
double Racer(int Num)
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 16:27  [ТС]     Найти результат работы функции #5
Что-то безрезультатно, уже все типы перепробовал, функция возвращает верный тип, который указываю, но толку нет. Похоже где-то закралась ошибка...
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
03.10.2013, 16:28     Найти результат работы функции #6
Целое x не может увеличиваться с шагом 0.1 в цикле.
Поставь double x
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 16:32  [ТС]     Найти результат работы функции #7
Поставил, без толку.

Сейчас вот так сделал, таже история.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
double Racer(int Num)
{
    const int s = 5;
    double Z;
    double sum = 0;
    for (double x = -2; x <= 3; x=x+0.1)
      {
        double FX = (5 * cos(x)) - (2 * sin(x));
        sum += FX;
      }
    Z = (sum / (5/0.1));
    return Z;
}
Аа, у меня в заголовке функции зачем-то Num стоит...щас посмотрим.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
03.10.2013, 16:41     Найти результат работы функции #8
Не может быть чтобы функция Racer возвращала 1.
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 16:42     Найти результат работы функции #9
Super GT, вот у меня работает
C++
1
2
3
4
5
float Z;
    int sum = 0;
    for (float x = -2; x <= 3; x+=0.1)
        sum += (5.0 * cos(x*M_PI/180)) - (2.0 * sin(x*M_PI/180));
    Z = (sum / (50));
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
03.10.2013, 16:45     Найти результат работы функции #10
WilFred, Функции cos и sin принимают аргумент в радианах.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.10.2013, 16:51     Найти результат работы функции #11
castaway, WilFred, дело не в радианах и не просто в целочисленных константах.
У него сам икс объявлен целым числом, хотя в цикле ему присваиваются дробные значения!!!
Цитата Сообщение от Super GT Посмотреть сообщение
for (int x = -2; x <= 3; x=x+0.1)
C++
1
for (float x = -2; x <= 3; x=x+0.1)
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 16:52  [ТС]     Найти результат работы функции #12
Не помогает. Непонятно, в чем причина. :\
А алгоритм по сути правильный?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.10.2013, 16:54     Найти результат работы функции #13
Super GT, так ты ещё раз пересмотри свою программу! может ещё где-то забыл int на float поменять?!?! там же не только float x
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 17:00  [ТС]     Найти результат работы функции #14
Вот функция:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
double Racer()
{
    float sum = 0;
    for (float x = -2; x <= 3; x+=0.1)
      {
        sum += (5 * cos(x)) - (2 * sin(x));
      }
    float Z = (sum / (5/0.1));
    return Z;
}
В итоге вылетает 1, и что не так
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 17:04     Найти результат работы функции #15
Super GT, у меня всё работает...
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 17:08  [ТС]     Найти результат работы функции #16
Проверьте плз этот код, будет ли у вас он работать:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
double Racer()
{
    float sum = 0;
    for (float x = -2; x <= 3; x+=0.1)
      {
        sum += (5 * cos(x)) - (2 * sin(x));
      }
    float Z = (sum / (5/0.1));
    return Z;
}
 
main()
{
    cout <<"SredArif: " << Racer << "\n";
    
    system("pause");
    return 0;
}
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 17:11     Найти результат работы функции #17
Цитата Сообщение от Super GT Посмотреть сообщение
cout <<"SredArif: " << Racer << "\n";
Работает вот так:
C++
1
cout <<"SredArif: " << Racer() << "\n";
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 17:14  [ТС]     Найти результат работы функции #18
WilFred,
Ай-яй-яй, спс дружище!
Я уж думал у меня проблемы с восприятием простейших вещей. Скобки забыл)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 17:30     Найти результат работы функции
Еще ссылки по теме:

C++ Как вернуть значение результат работы функции в переменную?
C++ Разный результат работы функции в release и debug
Записать в файл результат работы функции C++

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
03.10.2013, 17:30     Найти результат работы функции #19
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
castaway, WilFred, дело не в радианах и не просто в целочисленных константах.
У него сам икс объявлен целым числом, хотя в цикле ему присваиваются дробные значения!!!
Об этом я ему сказал в 6-м посте
Yandex
Объявления
03.10.2013, 17:30     Найти результат работы функции
Ответ Создать тему
Опции темы

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