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

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

Войти
Регистрация
Восстановить пароль
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
#1

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

03.10.2013, 15:58. Просмотров 487. Ответов 18
Метки нет (Все метки)

/*Есть функция 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;
}
В итоге выводит единицу! Где неверный кусок решения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 15:58     Найти результат работы функции
Посмотрите здесь:

C++ Найти фрагмент поиска минимума (максимума) и сформулировать результат работы программы.
C++ Определить результат работы программы
найти результат работы C++
Поясните результат работы программы C++
C++ Результат работы фрагмента!
C++ Объясните результат работы следующей программы
C++ Как вернуть значение результат работы функции в переменную?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 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
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 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
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
03.10.2013, 16:45     Найти результат работы функции #10
WilFred, Функции cos и sin принимают аргумент в радианах.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 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
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 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++ Разный результат работы функции в release и debug
C++ Найти ошибку - после работы функции addStudent, оценки старых студентов не присваиваются новому массиву
Записать в файл результат работы функции C++
Результат работы функции как параметр шаблона C++
Каков будет результат работы функции? C++

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

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

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