Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

06.04.2014, 00:48. Просмотров 902. Ответов 14
Метки нет (Все метки)

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;
}
0
Миниатюры
Невозможно преобразование int в double  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 00:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Невозможно преобразование int в double (C++):

Преобразование указателя из char в int и double - C++
указатель sadr является типом char мне нужно перопределить его на типы на int и double int a; double b; void cr(char **sadr) { ...

Некорректное преобразование double в int (приведение типов) - C++
Не совсем очевидно. https://ideone.com/7P0EhY #include &lt;iostream&gt; #include &lt;math.h&gt; int main() { float y = pow(64, 1.0...

Преобразование int и double в char без использования sprintf() - C++
Здравствуйте, ув форумчани! Подскажите пожалуйста, какими инструментами С++ можно преобразовать int, double в char, и самое главное, что...

Преобразование типов double в int для задания размерности массива - C++
Объясните, пожалуйста. Не объявляется массив, хотя его размеры объявил как константы. // #ifndef M_PI #define M_PI...

Как написать такое явное преобразование из double в unsigned long int - C++
как написать такое явное преобразование из double в unsigned long int??? спасибо всем кто поможет...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

14
korvin_
2083 / 1574 / 253
Регистрация: 28.04.2012
Сообщений: 5,670
06.04.2014, 09:59 #2
http://www.cyberforum.ru/cpp/
0
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,532
06.04.2014, 11:11 #3
Очень странная строчка (63)
C
1
(1-A[i]*A[i])=usl;
0
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 11:45  [ТС] #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;
}
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
06.04.2014, 11:48 #5
Цитата Сообщение от BadPumba Посмотреть сообщение
Согласен, но где-то прочитал типо функции справа от знака присваивания должна стоять.
какая функция?
словами объясни что делает эта строчка
0
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 11:57  [ТС] #6
ValeryS, Эта строчка для условия, когда if пишу указываю массив, if (fusl(B,l)>0,5), а это условие состоит в том чтобы элементы массива принимали такое выражение usl=(1-A[i]*A[i]) и именно оно сравнивалось с 0.5, а дальше уже ветвление. Недопонимаю с функциями немного.
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
06.04.2014, 12:01 #7
Цитата Сообщение от BadPumba Посмотреть сообщение
Эта строчка для условия,
еще раз спрошу
что делает эта строчка
Цитата Сообщение от BadPumba Посмотреть сообщение
(1-A[i]*A[i])=usl;
дословно, по шагам
0
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 12:10  [ТС] #8
ValeryS, Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
Перемножения нету у меня, эх) Еще значит один цикл нужен который будет запоминать эти значения? Направьте пожалуйста.
0
korvin_
2083 / 1574 / 253
Регистрация: 28.04.2012
Сообщений: 5,670
06.04.2014, 12:29 #9
Цитата Сообщение от BadPumba Посмотреть сообщение
ValeryS, Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
Валера намекает на присваивание в черт-пойми-куда указатель на функцию.
0
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 12:38  [ТС] #10
korvin_, Почти помогло.
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
06.04.2014, 13:17 #11
Цитата Сообщение от BadPumba Посмотреть сообщение
Вообще должно брать один элемент массива, возводить его в квадрат, и вычитает его из 1, и так по всем (семи) элементам массива, а потом эти 7 значений перемножать и сравнивать с 0.5
я не спрашиваю что ты хотел я спрашиваю что получилось
а получилось вот что
берется значение из A[i] возводится в квадрат
полученный результат вычитается из 1
и полученному числу присваивается адрес функции usl
в результате компилятор сходит с ума
кстати что это за функция и где её реализация, я не нашел
0
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
06.04.2014, 13:45  [ТС] #12
ValeryS, Зачем тогда спрашивать у меня что есть в итоге, раз сечете в этом больше моего. Её должность сравнивать с 0.5 Как к этому прийти, можете подсказать?
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
06.04.2014, 13:55 #13
Цитата Сообщение от BadPumba Посмотреть сообщение
ValeryS, Зачем тогда спрашивать у меня что есть в итоге, раз сечете в этом больше моего.
наверно чтобы ты тоже научился "сечь"
Цитата Сообщение от BadPumba Посмотреть сообщение
Её должность сравнивать с 0.5
её это кого?

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

Ошибка: невозможно преобразовать 'double' в 'double' - C++
Задача алгоритма, мы вводим матрицу А и В матрицу А раскладываем в LU разложение и с его помощью находим обратную матрицу, а после находим...

error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" - C++
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include &lt;stdio.h&gt; #include...

Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []' - C++
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' - C++
Помогите поправить код, а то выдаёт ошибки #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; void...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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