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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализация Fifo с разными типами данных http://www.cyberforum.ru/cpp-beginners/thread1140005.html
Доброго времени суток! Задача следующая: Есть абстрактный класс CData, от него наследуются классы CByte, CWord, CNumber. Нужно создать класс CFifo (очередь для объектов выше перечисленных классов). Добавление и удаление объектов в очередь реализовать через перегрузку операторов << и >> соответственно. Как перегрузить << и >> для ostream/istream я прекрасно понимаю, а вот как их...
C++ Разделить строку по пробелам (без потоков) Здравствуйте. Я решаю задачку из книги, надо написать небольшую оболочку. Использую Linux. Думаю над тем, как разделить строку (команду), введённую пользователем так, чтобы в одну переменную (command) записалось название команды, а в другую (parameters) - операнды. Пока что имею следующий код: #include <iostream> #include <unistd.h> // execve() #include <sys/wait.h> // waitpid() using... http://www.cyberforum.ru/cpp-beginners/thread1139995.html
Все слова строки, которые начинаются с цифры отсортировать по убыванию C++
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255 символов. Выполнить ввод строки и обработку строки: Все слова строки, которые начинаются с цифры отсортировать по убыванию.
Преобразование и вывод массива C++
Есть задание: В одномерном массиве из N вещественных элементов, вычислить: • количество элементов массива, меньших С; • сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. • Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального, не более чем на 20%, а потом – все остальные. Помогите с...
C++ Собственная реализация контейнера для хранения значений произвольного типа http://www.cyberforum.ru/cpp-beginners/thread1139970.html
Дали следующее задание. Не совсем понимаю с чего начинать и как дальше быть. Сказали, что нужно через шаблоны сделать. Если у кого-нибудь из вас есть идеи, либо же в интернете есть примеры одного из вариантов, не важно какого. То будьте любезны предоставьте любую информацию. С меня много благодарностей, респект и уважуха. Задание: Создать собственную реализацию контейнера для хранения...
C++ Не понятны размеры массива (циклы) for(int i=0;i<b-j;i++) for(int j=0;j<a-i-1;j++) for(q=0;q!=a-i-1;q++) cout<<mas3<<"."; какой сдесь размер массива?? подробнее

Показать сообщение отдельно
BadPumba
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 27
13.04.2014, 23:46  [ТС]     Невозможно преобразование int в double
Так и не разобрался в этой лабе, кто может помочь. Необходимо чтобы все было сделано через функции. Проблема с условием. выдаются ошибки типо необъявленный идентификатор. Необходимо чтобы в условие было произведение всех элементов между с собой в формуле (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;
}
 
Текущее время: 06:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru