Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 25
1

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

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

Author24 — интернет-сервис помощи студентам
Вот решил освоить данный язык программирования и столкнулся со следующими проблемами:
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 ==========
Помогите разобраться, где и как я накосячил
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2013, 15:13
Ответы с готовыми решениями:

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

Простейшая прога но не хочет компилиться
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { int i ;...

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

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

11
5498 / 4893 / 831
Регистрация: 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);
}
1
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);
}
я конечно же понимаю, что вы все гении с++, но я только вчера начал его осваивать, так что прошу вас, отвечать как можно подробнее...
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
16.09.2013, 15:35 4
по русски вроде написано...
0
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 25
16.09.2013, 15:39  [ТС] 5
Мне важно понять свою ошибку, а не просто ее исправить=\
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
16.09.2013, 15:44 6
void Summa (double &x, int &k, double &s)
здесь параметры функции - это ссылки, про ссылки гугл хорошо рассказывает, а здесь
pow(&x,i) - &x - взятие адреса у переменной на которую указывает ссылка x, а надо в pow передать два числа
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:04 7
Цитата Сообщение от Nikita19041 Посмотреть сообщение
при попытке сопоставить список аргументов "(double *, int)"
Т.е., вы первым аргументом передаёте указатель на double, а не double.
Вторая ошибка в том, что фнкция void, а в реализации сделан return 0.
0
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&);
Это две большие разницы
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:16 9
Цитата Сообщение от Deexof_ Посмотреть сообщение
Амперсанд поставь после имени аргумента
Поставить, конечно, можно... А скомпилируется?
0
1 / 1 / 0
Регистрация: 25.02.2013
Сообщений: 6
16.09.2013, 16:31 10
Цитата Сообщение от alsav22 Посмотреть сообщение
Поставить, конечно, можно... А скомпилируется?
Вектор размышления я задал, дальше будет уже не педагогично
0
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 секунду
Спасибо всем, что пояснили мне мои проблемы, уже все исправил и скомпилил.
Еще раз огромное спасибо
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 16:43 12
Цитата Сообщение от Deexof_ Посмотреть сообщение
Вектор размышления я задал, дальше будет уже не педагогично
Размышлять об ошибке, которую предложили сделать? А ошибки предлагать - это, по-вашему, педагогично?
0
16.09.2013, 16:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2013, 16:43
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru