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

Невозможно преобразование int в double - C++

Восстановить пароль Регистрация
 
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 00:48     Невозможно преобразование int в double #1
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
#include <stdafx.h>
#include <iostream>
#include <time.h>
#include <locale.h>
 
using namespace std;
#define k 6
#define l 8
#define m 10
int massin(double A[], int a);
int massout(double A[], int a);
int tf (double A[], int a);
int pf (double A[], int a);
int usl (double A[], int a);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand((unsigned)time(NULL));
    double A[k], B[l], C[m],p,t,usl,d=1,f=1,q; 
    
    massin(A,k);
    massin(B,l);
    massin(C,m);
    cout<<"Массив А:"<<endl;
    massout(A,k);           //вывод массива А
    cout<<"\nМассив B:"<<endl;
    massout(B,l);           //вывод массива B
    cout<<"\nМассив C: "<<endl;
    massout(C,m);           //вывод массива C
    
 
    
  if (usl(B,l))
{  
    cout << "Результат=" <<t<< endl;
} 
  else 
{  
    cout << "Результат=" <<p<< endl;
}
 
 
system("PAUSE");
}
 
 
int massin(double A[], int a)
{
    for (int i=0; i<a; ++i) 
    A[i]=(rand()%25-12)/123.;
    return 0;
}
int massout(double A[], int a)
{
    for (int i=0; i<a; ++i) 
        cout<<A[i]<<"\n";
    return 0;
}
int fusl (double A[], int a)
{
    for ( int i = 1; i < a; a++)
    (1-A[i]*A[i])=usl;
    return 0;
}
int pf (double p, double A[], int a)
{
    for (int i = 0; i < a; a++)
    p=(1+A[i]*A[i]*A[i]) ;
    return 0;
}
int tf (double t, double A[], int a)
{
    for (int i = 0; i < a; a++)
    t=sin((A[i])+2);  
    return 0;
}
Миниатюры
Невозможно преобразование int в double  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korvin_
 Аватар для korvin_
1327 / 1098 / 160
Регистрация: 28.04.2012
Сообщений: 3,926
06.04.2014, 09:59     Невозможно преобразование int в double #2
http://www.cyberforum.ru/cpp/
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
06.04.2014, 11:11     Невозможно преобразование int в double #3
Очень странная строчка (63)
C
1
(1-A[i]*A[i])=usl;
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 11:45  [ТС]     Невозможно преобразование int в double #4
Байт, Согласен, но где-то прочитал типо функции справа от знака присваивания должна стоять. Тогда ошибка функция в качестве левого операнда
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 <stdafx.h>
#include <iostream>
#include <time.h>
#include <locale.h>
 
using namespace std;
#define k 6
#define l 8
#define m 10
int massin(double A[], int a);
int massout(double A[], int a);
int tf (double A[], int a);
int pf (double A[], int a);
int fusl (double A[], int a);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand((unsigned)time(NULL));
    double A[k], B[l], C[m],p,t,usl,d=1,f=1,q; 
    
    massin(A,k);
    massin(B,l);
    massin(C,m);
    cout<<"Массив А:"<<endl;
    massout(A,k);           //вывод массива А
    cout<<"\nМассив B:"<<endl;
    massout(B,l);           //вывод массива B
    cout<<"\nМассив C: "<<endl;
    massout(C,m);           //вывод массива C
    
 
    
  if (fusl(B,l)>0.5)
{  
    cout << "Результат=" <<tf(A,k)<< endl;
} 
  else 
{  
    cout << "Результат=" <<pf(C,m)<< endl;
}
 
 
system("PAUSE");
}
 
 
int massin(double A[], int a)
{
    for (int i=0; i<a; ++i) 
    A[i]=(rand()%25-12)/123.;
    return 0;
}
int massout(double A[], int a)
{
    for (int i=0; i<a; ++i) 
        cout<<A[i]<<"\n";
    return 0;
}
int fusl (double A[], int a)
{
    for ( int i = 1; i < a; a++)
    usl=(1-A[i]*A[i]);
    return 0;
}
int pf (double p, double A[], int a)
{
    for (int i = 0; i < a; a++)
    p=(1+A[i]*A[i]*A[i]) ;
    cout<<p<<"\n";
    return 0;
}
int tf (double t, double A[], int a)
{
    for (int i = 0; i < a; a++)
    t=sin((A[i])+2);  
    cout<<t<<"\n";
    return 0;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
06.04.2014, 11:48     Невозможно преобразование int в double #5
Цитата Сообщение от BadPumba Посмотреть сообщение
Согласен, но где-то прочитал типо функции справа от знака присваивания должна стоять.
какая функция?
словами объясни что делает эта строчка
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 11:57  [ТС]     Невозможно преобразование int в double #6
ValeryS, Эта строчка для условия, когда if пишу указываю массив, if (fusl(B,l)>0,5), а это условие состоит в том чтобы элементы массива принимали такое выражение usl=(1-A[i]*A[i]) и именно оно сравнивалось с 0.5, а дальше уже ветвление. Недопонимаю с функциями немного.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
06.04.2014, 12:01     Невозможно преобразование int в double #7
Цитата Сообщение от BadPumba Посмотреть сообщение
Эта строчка для условия,
еще раз спрошу
что делает эта строчка
Цитата Сообщение от BadPumba Посмотреть сообщение
(1-A[i]*A[i])=usl;
дословно, по шагам
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 12:10  [ТС]     Невозможно преобразование int в double #8
ValeryS, Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
Перемножения нету у меня, эх) Еще значит один цикл нужен который будет запоминать эти значения? Направьте пожалуйста.
korvin_
 Аватар для korvin_
1327 / 1098 / 160
Регистрация: 28.04.2012
Сообщений: 3,926
06.04.2014, 12:29     Невозможно преобразование int в double #9
Цитата Сообщение от BadPumba Посмотреть сообщение
ValeryS, Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
Валера намекает на присваивание в черт-пойми-куда указатель на функцию.
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 12:38  [ТС]     Невозможно преобразование int в double #10
korvin_, Почти помогло.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
06.04.2014, 13:17     Невозможно преобразование int в double #11
Цитата Сообщение от BadPumba Посмотреть сообщение
Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
я не спрашиваю что ты хотел я спрашиваю что получилось
а получилось вот что
берется значение из A[i] возводится в квадрат
полученный результат вычитается из 1
и полученному числу присваивается адрес функции usl
в результате компилятор сходит с ума
кстати что это за функция и где её реализация, я не нашел
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 13:45  [ТС]     Невозможно преобразование int в double #12
ValeryS, Зачем тогда спрашивать у меня что есть в итоге, раз сечете в этом больше моего. Её должность сравнивать с 0.5 Как к этому прийти, можете подсказать?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
06.04.2014, 13:55     Невозможно преобразование int в double #13
Цитата Сообщение от BadPumba Посмотреть сообщение
ValeryS, Зачем тогда спрашивать у меня что есть в итоге, раз сечете в этом больше моего.
наверно чтобы ты тоже научился "сечь"
Цитата Сообщение от BadPumba Посмотреть сообщение
Её должность сравнивать с 0.5
её это кого?

C++
1
if((1-A[i]*A[i])ХХ0.5)
где ХХ условия сравнения
==(равно) !=(не равно) >(больше) <(меньше) <=(меньше или равно) >=(больше или равно)
ставь то условие которое тебе нужно
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 14:00  [ТС]     Невозможно преобразование int в double #14
ValeryS, тема лабы сделать через функции. Тут никак это не сделать? к тому же надо еще добавить произведение всех членов массива, а потом их сравнить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2014, 23:46     Невозможно преобразование int в double
Еще ссылки по теме:

C++ Ошибка: невозможно преобразовать 'double' в 'double'
Преобразование указателя из char в int и double C++
Преобразование типов double в int для задания размерности массива C++

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

Или воспользуйтесь поиском по форуму:
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
13.04.2014, 23:46  [ТС]     Невозможно преобразование int в double #15
Так и не разобрался в этой лабе, кто может помочь. Необходимо чтобы все было сделано через функции. Проблема с условием. выдаются ошибки типо необъявленный идентификатор. Необходимо чтобы в условие было произведение всех элементов между с собой в формуле (1-A[i]*A[i]). Как к этому придти? Заранее спасибо. Условие задания тоже, в миниатюрке.
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
80
81
#include <stdafx.h>
#include <iostream>
#include <time.h>
#include <locale.h>
 
using namespace std;
#define k 6
#define l 8
#define m 10
int massin(double A[], int a);
int massout(double A[], int a);
int tf (double A[], int a);
int pf (double A[], int a);
int fusl (double A[], int a);
 
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand((unsigned)time(NULL));
    double A[k], B[l], C[m],p=1,t=1,usl; 
    
    massin(A,k);
    massin(B,l);
    massin(C,m);
    cout<<"Массив А:"<<endl;
    massout(A,k);           //вывод массива А
    cout<<"\nМассив B:"<<endl;
    massout(B,l);           //вывод массива B
    cout<<"\nМассив C: "<<endl;
    massout(C,m);           //вывод массива C
    
    
    
  if (fusl(B,l)>0,5)
{  
    cout << "Результат=" <<tf(A,k)<< endl;
} 
  else 
{  
    cout << "Результат=" <<pf(C,m)<< endl;
}
 
 
system("PAUSE");
}
 
 
int massin(double A[], int a)
{
    for (int i=0; i<a; ++i) 
    A[i]=(rand()%25-12)/123.;
    return 0;
}
int massout(double A[], int a)
{
    for (int i=0; i<a; ++i) 
        cout<<A[i]<<"\n";
    return 0;
}
int fusl (double A[], int a)
{
    for ( int i = 1; i < a; a++)
    usl=(1-A[i]*A[i]) ;
    cout<<usl<<"\n";
    return 0;
}
int pf (double p, double A[], int a)
{
    for (int i = 0; i < a; a++)
    p=(1+A[i]*A[i]*A[i]) ;
    cout<<p<<"\n";
    return 0;
}
int tf (double t, double A[], int a)
{
    for (int i = 0; i < a; a++)
    t=sin((A[i])+2);  
    cout<<t<<"\n";
    return 0;
}
Добавлено через 1 час 47 минут
Если сделать присваивание с умножением *= будут ли перемножаться все элементы массива участвующие в формуле?

Добавлено через 16 минут
Даже если не брать в рассмотрение работу условия, просто вывод двух функций тоже не работает, значит какая-то базовая ошибка, кто может подсказать в чем она?

Добавлено через 6 часов 21 минуту
error LNK2019: ссылка на неразрешенный внешний символ "double __cdecl pf(double * const,int)" (?pf@@YANQANH@Z) в функции _main
fatal error LNK1120: неразрешенных внешних элементов: 1

Что не правильно в записи подскажите?
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 <stdafx.h>
#include <iostream>
#include <time.h>
#include <locale.h>
 
using namespace std;
#define k 6
#define l 8
#define m 10
int massin(double A[], int a);
int massout(double A[], int a);
//int tf (double A[], int a);
double pf (double A[], int a);
//int fusl (double A[], int a);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand((unsigned)time(NULL));
    double A[k], B[l], C[m],p=1,t=1,usl=1; 
    
    massin(A,k);
    massin(B,l);
    massin(C,m);
    cout<<"Массив А:"<<endl;
    massout(A,k);           //вывод массива А
    cout<<"\nМассив B:"<<endl;
    massout(B,l);           //вывод массива B
    cout<<"\nМассив C: "<<endl;
    massout(C,m);           //вывод массива C
    
 
    
//  if (fusl(B,l)>0,5)
//{  
  //cout << "Результат=" <<tf(A,k)<< endl;
//} 
 // else 
//{  
   cout << "Результат=" <<pf(C,m)<< endl;
//}
 
 
system("PAUSE");
}
 
 
int massin(double A[], int a)
{
    for (int i=0; i<a; ++i) 
    A[i]=(rand()%25-12)/123.;
    return 0;
}
int massout(double A[], int a)
{
    for (int i=0; i<a; ++i) 
        cout<<A[i]<<"\n";
    return 0;
}
//int fusl (double A[], int a)
//{
  //  for ( int i = 1; i < a; a++)
    //usl=(1-A[i]*A[i]);
    //return 0;
//}
double pf (double p, double A[], int a)
{
   for (int i = 0; i < a; a++)
    p=(1+A[i]*A[i]*A[i]) ;
    cout<<p<<"\n";
    return 0;
}
//int tf (double t, double A[], int a)
//{
  //  for (int i = 0; i < a; a++)
//  t=sin((A[i])+2);  
  //  cout<<t<<"\n";
//  return 0;
//}
Добавлено через 2 часа 37 минут
Может кому пригодится, или найдется ошибка. Всем спасибо
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
80
81
82
83
#include <stdafx.h>
#include <iostream>
#include <time.h>
#include <locale.h>
 
using namespace std;
#define k 6                       //объявление размерности массива А из k элементов
#define l 8                       //объявление размерности массива B из l элементов
#define m 10                       //объявление размерности массива C из m элементов
int massin(double A[], int a);
int massout(double A[], int a);
double tf (double A[], int a);
double pf (double A[], int a);
double fusl (double A[], int a);
char s;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand((unsigned)time(NULL));   // инициализировать генератор случайных чисел
    double A[k], B[l], C[m],t,usl; 
    LOOP:                          // метка для организации цикла повторного запуска вычислений
    massin(A,k);                   // инициализация массива A из k элементов
    massin(B,l);                   // инициализация массива B из l элементов
    massin(C,m);                   // инициализация массива C из m элементов
    cout<<"Массив А:"<<endl;
    massout(A,k);                  //вывод массива А
    cout<<"\nМассив B:"<<endl;
    massout(B,l);                  //вывод массива B
    cout<<"\nМассив C: "<<endl;
    massout(C,m);                  //вывод массива C
    
 
    
if (fusl(B,l)>0,5)                              //Условие для ветвления
{  
  cout << "\n Результат=" <<tf(A,k)<< endl;     // Исход 1
} 
  else                                          // Иначе
{  
 
  cout<< " \n Результат= "  <<pf(C,m)<< endl;   // Исход 2
}
 
cout<<"Продолжить или закончить? (y/n) : ";                //Метка ветвления повторного запуска вычислений
cin>>s;
cout<<"======================================="<<endl;
if (s=='y') goto LOOP;
 
system("PAUSE");
}
 
 
int massin(double A[], int a)      //Описание функции инициализации массива
{
    for (int i=0; i<a; ++i) 
    A[i]=(rand()%25-12)/123.;
    return 0;
}
int massout(double A[], int a)    //Описание функции вывода массива
{
    for (int i=0; i<a; ++i) 
        cout<<A[i]<<"\n";
    return 0;
}
double fusl ( double A[], int a)  //Описание функции условия 
{double usl=1;
   for (int i=0; i<a; i++)
    usl*=(1-A[i]*A[i]);
    return usl;
}
double pf ( double A[], int a)   //Описание функции исхода 1
{double p=1;
   for (int i=0; i<a; i++)
    p*=(1-A[i]*A[i]*A[i]);
    return p;
}
double tf ( double A[], int a)  //Описание функции исхода 2
{double t=1;
   for (int i=0; i<a; i++)
    t*=(sin(A[i])+2);
    return t;
}
Yandex
Объявления
13.04.2014, 23:46     Невозможно преобразование int в double
Ответ Создать тему
Опции темы

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