0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 123
1

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing

04.04.2013, 21:34. Показов 3357. Ответов 2
Метки нет (Все метки)

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
68
69
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
float f1(float x)/*vira*enie 1*/
 {return (x*cos(x))/(1+ pow(x,2));}
 
float f2 (float x) /*vira*enie 2*/
{return(exp(x)/x);}
 
float f3 (float x)/*vira*enie 3*/
{return (1/(3+2*cos(x)));}
 
float proizv1(float *f(float),float x)
/* pervaja proizvodnaja iz klassi4eskogo opredelenija eto f'(x)=(f(x0)-f(x))/(x-x0) */
/* opredelim proizvodnyjy s tochnost'jy h=x-x0=0.001 */
/* znachit x0=x-h */
/*polychaem znachenie dlja proizvodnoj (f(x-h)-f(x)/h */
{ float h;
h=0.001;
return((f(x-h)-f(x))/h);      
}
 
 
float proizv2(float *proizv1(float),float x)
/*vtoraja proizvodnaja iz klassi4eskogo opredelenija*/
/* f''(x)=(f'(x))' proizvodnaja ot proizvodnoj*/
{ float h;
h=0.001;
return((proizv1(x-h)-proizv1(x))/h);      
}
 
void tochki(float *proizv2(float),float xn,float xk,float dx)
{float x1,y; int i;
 printf("____________________________\n");
 printf("|___i____|___x____|____y____|\n");
 i=0;
  for (x1=xn;x1<=xk;x1+=dx)
   {proizv2(x1);
    i++;
    printf("|___%d____|_%.1f_|_%.5f_|\n",i,x1,proizv2(x1));
   }
    for (x1=xn;x1<=xk;x1+=dx)
     {proizv2(x1);
      if (proizv2(x1)==0) printf("tochka peregiba=%.1f\n",x1);
      /*yslovie syshestvovanija tochki peregiba*/
      else printf("net tochek peregiba");
     }
} 
void vibor(float *tochki(float))
{int n;
printf("Kakoj fynkciej bydem rabotat'?\n");
printf("1.  x*cos(x))/(1+ pow(x,2)\n");
printf("2. exp(x)/x\n");
printf("3. 1/(3+2*cos(x))\n");
printf("0. Vihod\n"); 
  scanf("%d",n);
   switch(n)
            {case 1: tochki(f1,-4,4,0.5); break;
             case 2: tochki(f2,-6,1,0.5); break;
             case 3: tochki(f3,0,4,0.5); break;
             case 0: break;    
             default:printf("Nevernij re*im");  
             }
  void main()
  { vibor(float *tochki(float);
   system("pause");
   return 0;
   }
програмка ищет точки перегиба в выбранной функции на нужном интервале. выбивает только одну ошибку. в void vibor(float *tochki(float))

ругается на case cannot convert `float (*)(float)' to `float' in argument passing
я неправильно передаю функцию???
как исправить подскажите пожалуйста??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2013, 21:34
Ответы с готовыми решениями:

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй...

Ошибка cannot convert 'float' to 'float*'
Здравствуйте, что означает error: cannot convert 'float' to 'float*' for argument '1' to 'int...

cannot convert `float' to `float*. Почему так происходит?
всем привет, помогите исправить ошибки... а то голова мало варит уже, а завтра надо сдать уже ...

Не понимает Dictionary<string, (float[][] train, float[][] valid, float[][] test)> DataSet;
Доброго времени суток. Пытаюсь запустить пример по работе с библиотекой. Не понимает конструкцию ...

2
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
04.04.2013, 21:49 2
1) float*f(float) - это (float*)f(float), а не float(*f)(float).
2) 50-я строка - неправильный тип параметра.
3) main должен возвращать int.
4) Не хватает закрывающей фигурной скобки в vibor.
5) 66-я строка - это что?
6) В scanf надо передавать адрес n, а не саму её.
0
0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 123
14.04.2013, 23:01  [ТС] 3
У меня в самой функции vibor неразбериха. Функция tochki возвращает результат через имя, а у меня самостоятельный оператор..Нужно передавать функцию присваиванием новому оператору-аргументу или как??

Запуталась в том как правильно функцию tochki передать в switch case.Очень сильно запуталасьКак правльно передавать?
И как функцию vibor правильно вызвать в основной функции программы,немного путаюсь уже.Если я понимаю правильно основная функция у меня - похожа больше на описание а не на вызов, но возможный как по моему вызов я написала,хотя при нем много новых ошибок возникает.
Объясните мои ошибки и помогите хоть немножечко с тем что не получается,пожалуйста
По исправляла ошибки,которые вы описали.
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
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
float f1(float x)/*vira*enie 1*/
 {return (x*cos(x))/(1+ pow(x,2));}
 
float f2 (float x) /*vira*enie 2*/
{return(exp(x)/x);}
 
float f3 (float x)/*vira*enie 3*/
{return (1/(3+2*cos(x)));}
 
float proizv1(float *f(float),float x)
/* pervaja proizvodnaja iz klassi4eskogo opredelenija eto f'(x)=(f(x0)-f(x))/(x-x0) */
/* opredelim proizvodnyjy s tochnost'jy h=x-x0=0.001 */
/* znachit x0=x-h */
/*polychaem znachenie dlja proizvodnoj (f(x-h)-f(x)/h */
{ float h;
h=0.001;
return((f(x-h)-f(x))/h);      
}
 
 
float proizv2(float *proizv1(float),float x)
/*vtoraja proizvodnaja iz klassi4eskogo opredelenija*/
/* f''(x)=(f'(x))' proizvodnaja ot proizvodnoj*/
{ float h;
h=0.001;
return((proizv1(x-h)-proizv1(x))/h);      
}
 
float tochki(float *proizv2(float),float xn,float xk,float dx)
{float x1,y; int i;
 printf("____________________________\n");
 printf("|___i____|___x___|_____y___|\n");
 i=0;
  for (x1=xn;x1<=xk;x1+=dx)
   {proizv2(x1);
    i++;
    printf("|___%d____|_%.1f_|_%.5f_|\n",i,x1,proizv2(x1));
   }
    for (x1=xn;x1<=xk;x1+=dx)
     {proizv2(x1);
      if (proizv2(x1)==0) printf("tochka peregiba=%.1f\n",x1);
      /*yslovie syshestvovanija tochki peregiba*/
      else printf("net tochek peregiba");
     }
} 
 
float vibor( float(*tochki)(float),float xn,float xk,float dx )
{int n;
printf("S kakoj fynkciej bydem rabotat'?\n");
printf("1.  x*cos(x))/(1+ pow(x,2)\n");
printf("2. exp(x)/x\n");
printf("3. 1/(3+2*cos(x))\n");
printf("0. Vihod\n"); 
  scanf("%d",&n);
   switch(n)
            {case 1: tochki(f1,-4,4,0.5); break;//dlja pervoj fynkcii na intervale -4 4
             case 2: tochki(f2,-6,1,0.5); break;//dlja vtoroj fynkcii na intervale -6 1
             case 3: tochki(f3,0,4,0.5); break;//dlja tret'ej fynkcii na intervale 0 4
             case 0: break;    
             default:printf("Nevernij re*im");  
             }
}          
 int main()
  { vibor( float(*tochki)(float),float xn,float xk,float dx);  //bydet li pravil'nim takoj vizov???pri nem pojavljajytsa novie oshibki//
   system("pause");
   return 0;
   }
0
14.04.2013, 23:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2013, 23:01
Помогаю со студенческими работами здесь

Ошибка при создании трех колонок (float:left, float:right и margin:0 auto;)
3-й час бьюсь, но никак не могу понять, что не так делаю. почему оранжевый блок опускается? ...

Ошибка преобразования float в float*
Выдает ошибку невозможности преобразование /main.cpp/ #include &lt;iostream&gt; #include &quot;gkh.h&quot; int...

Чем отличаются float преобразования (float)var от float(var)
Здравствуйте! Подскажите, чем отличается (float)var от float(var)

ошибка "invalid operands to binary expression ('float*' and 'float')"
начала писать программу и запоролась на первой же функции double atmosphere(double h_geo) { ...

В чём разница между константами Float.MIN_VALUE и Float.MIN_NORMAL?
Никак не могу понять, в чём разница между константами Float.MIN_VALUE и Float.MIN_NORMAL класса...

Error C2664: fmatr: невозможно преобразовать параметр 1 из 'float [4][4]' в 'float *'
#include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; /* Описание функции fmatr */ void...


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

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

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