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

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

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

Задача не компилиться - C++

16.09.2013, 15:13. Просмотров 454. Ответов 11
Метки нет (Все метки)

Вот решил освоить данный язык программирования и столкнулся со следующими проблемами:
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
// KR_3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
 
double Summa (double, int);
void Summa (double*, int*,double*);
void Summa (double&, int&,double&);
const double PI = 4.*atan(1.);
 
int main()
{
  double  s, x, a, b, h;
  int     k;
  setlocale(LC_ALL, "Russian");
  cout<<"Вас приветствует учебная программа по вычислению функции, пожалуста введите\nисходные данные...\n";
  cout << "Введите a, b, h, k:" << endl;
  cin >> a >> b >> h >> k;
  cout << "\n     Value"<<setw(20)<<"Pointer"<<setw(24)<<"Reference\n";
  x = a;
  do                                                    
  {
    cout << setw(5) << x << setw(10) << Summa (x, k);
 
    Summa (&x, &k,&s);
    cout << setw(10) << x << setw(10) << s ;
 
    Summa (x, k, s);
    cout << setw(10) << x << setw(10) << s<< endl;
    x += h;
  } 
    while (x <= b + h/2);
  cout << endl;
  return 0;
}
 
double Summa (double x, int k)
{
    double s; 
    int i;
    s = 0;
    for (i = 1; i <= k; i++)
         s+=(cos(i*PI)/(i+1))*pow(x,i);
    return s;
}
 
void Summa (double *x, int *k, double *s)
{
    int i;
    *s = 0;
    for (i = 1; i <= *k; i++)
         *s+=(cos(i*PI)/(i+1))*pow(*x,i);
}
 
void Summa (double &x, int &k, double &s)
{
    int i;
    s = 0;
    for (i = 1; i <= k; i++)
         s+=(cos(i*PI)/(i+1))*pow(&x,i);
 
    return 0;
}
При компиляции следующие ошибки:
1>------ Построение начато: проект: KR_3, Конфигурация: Debug Win32 ------
1>Построение начато 16.09.2013 14:05:30.
1>InitializeBuildStatus:
1> Обращение к "Debug\KR_3.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> KR_3.cpp
1>d:\c++ задание\проекты\kr_3\kr_3\kr_3.cpp(64): error C2665: pow: ни одна из 6 перегрузок не может преобразовать все типы аргументов
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(122): может быть "double pow(double,double)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(497): или "double pow(double,int)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(533): или "float pow(float,float)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(535): или "float pow(float,int)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(581): или "long double pow(long double,long double)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(583): или "long double pow(long double,int)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(122): или "double pow(double,double)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(497): или "double pow(double,int)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(533): или "float pow(float,float)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(535): или "float pow(float,int)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(581): или "long double pow(long double,long double)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(583): или "long double pow(long double,int)"
1> при попытке сопоставить список аргументов "(double *, int)"
1>d:\c++ задание\проекты\kr_3\kr_3\kr_3.cpp(66): error C2562: Summa: функция типа "void", возвращающая значение
1> d:\c++ задание\проекты\kr_3\kr_3\kr_3.cpp(12): см. объявление "Summa"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.53
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Помогите разобраться, где и как я накосячил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 15:13     Задача не компилиться
Посмотрите здесь:

Не компилиться код - C++
помогите пожалуйста разобраться с этой проблемой

Функция русификации перестала компилиться - C++
Раньше эта функция очень успешно не то что компилировалась, а даж работала. Она позволяет при работе программ нормально выводить русский...

Компилиться везде кроме визуал - C++
Виснет на 17 строчке, подскажите в чем дело. задача простая - в алфавитно порядке показать количество каждого слова. Компилится в dev++,...

Простейшая прога но не хочет компилиться - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { int i ; scanf(&quot;%d&quot;,&amp;i); int kol = 1; double d =...

Элементарная прога. Не компилиться. Где напортачил? - C++
Здрасьте, господа в джинсах и потёртых свитрах :) В общем задали в универе написать программу для решения уравнения. В C++ я не силён,...

Почему программа компилится, хотя компилиться не должна? - C++
#include &lt;windows.h&gt; #include &lt;stdio.h&gt; using namespace std; class foo { public: foo () {} };

есть вложенный класс который является другом объемлюющего и всё это должно компилиться. - C++
Сперва логика: Есть класс matrix. И есть класс diagonal; так я поразмыслил и пришёл к выводу, что объект diagonal в отрыве от объекта...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 15:21     Задача не компилиться #2
C++
1
2
3
4
5
6
7
void Summa (double &x, int &k, double &s)
{
    int i;
    s = 0;
    for (i = 1; i <= k; i++)
         s+=(cos(i*PI)/(i+1))*pow(x,i);
}
Nikita19041
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 25
16.09.2013, 15:24  [ТС]     Задача не компилиться #3
Как я понимаю, идет ошибка в синтаксисе передачи параметров по значению, ссылке и адресу, мб кто подскажет правильный синтаксис, если у меня неправильный...

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
void Summa (double &x, int &k, double &s)
{
    int i;
    s = 0;
    for (i = 1; i <= k; i++)
         s+=(cos(i*PI)/(i+1))*pow(x,i);
}
я конечно же понимаю, что вы все гении с++, но я только вчера начал его осваивать, так что прошу вас, отвечать как можно подробнее...
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
16.09.2013, 15:35     Задача не компилиться #4
по русски вроде написано...
Nikita19041
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 25
16.09.2013, 15:39  [ТС]     Задача не компилиться #5
Мне важно понять свою ошибку, а не просто ее исправить=\
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
16.09.2013, 15:44     Задача не компилиться #6
void Summa (double &x, int &k, double &s)
здесь параметры функции - это ссылки, про ссылки гугл хорошо рассказывает, а здесь
pow(&x,i) - &x - взятие адреса у переменной на которую указывает ссылка x, а надо в pow передать два числа
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:04     Задача не компилиться #7
Цитата Сообщение от Nikita19041 Посмотреть сообщение
при попытке сопоставить список аргументов "(double *, int)"
Т.е., вы первым аргументом передаёте указатель на double, а не double.
Вторая ошибка в том, что фнкция void, а в реализации сделан return 0.
Deexof_
1 / 1 / 0
Регистрация: 25.02.2013
Сообщений: 6
16.09.2013, 16:07     Задача не компилиться #8
Амперсанд поставь после имени аргумента
не void Summa (double &x, int &k, double &s)
а
void Summa (double x&, int k&, double s&);
Это две большие разницы
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:16     Задача не компилиться #9
Цитата Сообщение от Deexof_ Посмотреть сообщение
Амперсанд поставь после имени аргумента
Поставить, конечно, можно... А скомпилируется?
Deexof_
1 / 1 / 0
Регистрация: 25.02.2013
Сообщений: 6
16.09.2013, 16:31     Задача не компилиться #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Поставить, конечно, можно... А скомпилируется?
Вектор размышления я задал, дальше будет уже не педагогично
Nikita19041
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 25
16.09.2013, 16:43  [ТС]     Задача не компилиться #11
Цитата Сообщение от Deexof_ Посмотреть сообщение
Амперсанд поставь после имени аргумента
не void Summa (double &x, int &k, double &s)
а
void Summa (double x&, int k&, double s&);
Это две большие разницы
Если сделать так, как Вы указываете, то тогда при комплияции выдает ошибку, что я не поставил перед & запятую, а так же что у меня появились новые неуказанные переменные. То есть если поставить & после значения, то компилятор не понимает, что это ссылка.
Таким образом или Вы не правы, или же компилятор мой решил юморнуть

Добавлено через 41 секунду
Спасибо всем, что пояснили мне мои проблемы, уже все исправил и скомпилил.
Еще раз огромное спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2013, 16:43     Задача не компилиться
Еще ссылки по теме:

не компилиться ехе - C++ Builder
народ помогайте, файл компилируеться он если перенести exe файл на комп где нету с++ не работает выдает ошибку что нету фалов с++ типо что...

не компилиться код - Delphi
подскажите чего не хватает?

Не компилиться программа - C++ Qt
Создал проект C++, с формой, но при запуске слева появляется слово сборка, а потом исчезает и все, а как я понял, при запуске, сразу должно...

не компилиться Hello world. Qt 5.1.1 + linux - C++ Qt
в наличии qt 5.1.1 + linux mint 13 и qt 5.1.1 + elementary os luna ни там ни там не собираеться hello world. поведение такое, в...

Ща на зачёте заставте прогу компилиться - C (СИ)
Добавил в робочую прогу функцию расчёта среднего арифметического float SrednArithm (int*mas,int size) { float Result = 0,0 ...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:43     Задача не компилиться #12
Цитата Сообщение от Deexof_ Посмотреть сообщение
Вектор размышления я задал, дальше будет уже не педагогично
Размышлять об ошибке, которую предложили сделать? А ошибки предлагать - это, по-вашему, педагогично?
Yandex
Объявления
16.09.2013, 16:43     Задача не компилиться
Ответ Создать тему
Опции темы

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