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

too few arguments to function. почему так происходит? - C++

Восстановить пароль Регистрация
 
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:01     too few arguments to function. почему так происходит? #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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
 
 
   
    void vremya (int n ,float *t, float &dt)
    {
    float  tn=0.5,tk=6;
    dt=(tk-tn)/(n-1);
    for (int i=0;i<n;i++)
    t[i]=tn+i*dt;
    }
    
 
void uvhoda(int n,float *t, float *uvh)
    {
        int i,tk=6;
    float  tm=2.5,Umin=0,Umax=20.5,tn=0.5;
    for (i=0;i<n;i++)
    if (t[i]<tm) uvh[i]=((t[i]-tn)*(Umax-Umin))/(tm-tn); else uvh[i]=((t[i]-tm)*(Umin-Umax)+Umax*(tk-tm))/(tk-tm);
    }
 
 
 
 
 
void uvihoda(int n,float *uvh,float *uvih,float uvh1)
    { float a=2.0,b=4,c=-1;
    for (int i=0;i<n;i++)
    {
    uvih[i]=a*(pow(uvh[i],2))+b*uvh[i]+c;}
    }
 
void output (int n,float *t,float *uvh,float *uvih)
{int i;
 cout<<endl;
 cout<< " t            uvh               uvih "<<endl;
 for(i=0; i<n; i++)
  {printf(" %3.1f          %4.5f           %4.5f ",t[i], uvh[i], uvih[i]);
   printf ("\n");}
 return;}
 
 
float front(int n, float*t, float*uvih, float *uvh)
 {int i,k=0;
  float umax,umin,dt,u1,u2,a1,a2,dlit,p,w,v=10000,eps=0.12,tk,tn;
  umax=uvih[0];
  umin=uvh[0];
  for(i=1;i<n;i++)
   {if (uvih[i]>umax) umax=uvih[i];
    if (uvh[i]<umin) umin=uvh[i];}
  printf("\n Umax = %.2f", umax);
  printf("\n Umin = %.2f", umin);
  dt=(tk-tn)/(n-1);
  u1=umin+0.9*(umax-umin);
 u2=umin+0.1*(umax-umin);
  for (i=0; i<(n-1); i++)
   {a1=uvih[i];
    a2=uvih[i+1];
    if (uvih[i]<=u1 && uvih[i]>=u2 && a1>a2) k++;
  dlit=k*dt;}
  printf("\n Dlitelnost zadnego fronta signala Uvih = %.3f \n", dlit);
  }
  
float accuracy(int n, float *t, float *uvh, float *uvih)
{
    float p=1, e=0.012, vr1=100000000, vr2=0;
    while(p>e)
    {
    vremya(n,t);
    uvhoda(n,t,uvh);
    output(n,t,uvh,uvih);
    vr2=front(n,t,uvih,uvh);
    p=fabs(vr1-vr2)/vr2;
    cout<<"n="<<n<<"parametr="<<vr2<<"pogrechnost="<<p<<endl;
    vr1=vr2;
    n=n*2;
    }
    return p;
}
 
 
 
int main ()
{
    int n=11;
    float tk, tn, t[n], uvh[n], uvih[n], dt, e, e0, w, v,uvh1;
    tk=6, tn=0.5, e0=0.01, e=1, v=1000000;
    vremya(n,t,dt);
    uvhoda(n,t,uvh);
    uvihoda(n,uvh,uvih,uvh1);
    output(n,t,uvh,uvih);
    front(n,t,uvih,uvh);
    accuracy(n,t,uvh,uvih);
 
    getch();
}
и потом вылазит ошибка: too few arguments to function `void vremya(int, float*, float&)'
не понимаю где у меня мало параметров

заранее всем спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 21:01     too few arguments to function. почему так происходит?
Посмотрите здесь:

Too few arguments to function. Почему? C++
gcc не компилирует: too many arguments to function C++
C++ Почему так происходит и как это устранить
потоки почему так происходит ? C++
Too few arguments to function C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
24.05.2013, 21:13     too few arguments to function. почему так происходит? #2
сразу бросается в глаза
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float accuracy(int n, float *t, float *uvh, float *uvih)
{
    float p=1, e=0.012, vr1=100000000, vr2=0;
    while(p>e)
    {
    vremya(n,t);/// <= ЗДЕСЬ
    uvhoda(n,t,uvh);
    output(n,t,uvh,uvih);
    vr2=front(n,t,uvih,uvh);
    p=fabs(vr1-vr2)/vr2;
    cout<<"n="<<n<<"parametr="<<vr2<<"pogrechnost="<<p<<endl;
    vr1=vr2;
    n=n*2;
    }
    return p;
}
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:28  [ТС]     too few arguments to function. почему так происходит? #3
исправил, но мне всё равно пишет ошибку: too few arguments to function `void vremya(int, float*, float&)'

затем пишет: at this point in file (74 строчка)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.05.2013, 21:30     too few arguments to function. почему так происходит? #4
Цитата Сообщение от kvoter Посмотреть сообщение
но мне всё равно пишет ошибку: too few arguments to function `void vremya(int, float*, float&)'
как правило пишется в какой строчке
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
24.05.2013, 21:30     too few arguments to function. почему так происходит? #5
как заменил покажи
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:35  [ТС]     too few arguments to function. почему так происходит? #6
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
 
 
   
    void vremya (int n ,float *t, float &dt)
    {
    float  tn=0.5,tk=6;
    dt=(tk-tn)/(n-1);
    for (int i=0;i<n;i++)
    t[i]=tn+i*dt;
    }
    
 
void uvhoda(int n,float *t, float *uvh)
    {
        int i,tk=6;
    float  tm=2.5,Umin=0,Umax=20.5,tn=0.5;
    for (i=0;i<n;i++)
    if (t[i]<tm) uvh[i]=((t[i]-tn)*(Umax-Umin))/(tm-tn); else uvh[i]=((t[i]-tm)*(Umin-Umax)+Umax*(tk-tm))/(tk-tm);
    }
 
 
 
 
 
void uvihoda(int n,float *uvh,float *uvih,float uvh1)
    { float a=2.0,b=4,c=-1;
    for (int i=0;i<n;i++)
    {
    uvih[i]=a*(pow(uvh[i],2))+b*uvh[i]+c;}
    }
 
void output (int n,float *t,float *uvh,float *uvih)
{int i;
 cout<<endl;
 cout<< " t            uvh               uvih "<<endl;
 for(i=0; i<n; i++)
  {printf(" %3.1f          %4.5f           %4.5f ",t[i], uvh[i], uvih[i]);
   printf ("\n");}
 return;}
 
 
float front(int n, float*t, float*uvih, float *uvh)
 {int i,k=0;
  float umax,umin,dt,u1,u2,a1,a2,dlit,p,w,v=10000,eps=0.12,tk,tn;
  umax=uvih[0];
  umin=uvh[0];
  for(i=1;i<n;i++)
   {if (uvih[i]>umax) umax=uvih[i];
    if (uvh[i]<umin) umin=uvh[i];}
  printf("\n Umax = %.2f", umax);
  printf("\n Umin = %.2f", umin);
  dt=(tk-tn)/(n-1);
  u1=umin+0.9*(umax-umin);
 u2=umin+0.1*(umax-umin);
  for (i=0; i<(n-1); i++)
   {a1=uvih[i];
    a2=uvih[i+1];
    if (uvih[i]<=u1 && uvih[i]>=u2 && a1>a2) k++;
  dlit=k*dt;}
  printf("\n Dlitelnost zadnego fronta signala Uvih = %.3f \n", dlit);
  }
  
float accuracy(int n, float *t, float *uvh, float *uvih)
{
    float p=1, e=0.012, vr1=100000000, vr2=0;
    while(p>e)
    {
    vremya(n,t);
    uvhoda(n,t,uvh);
    output(n,t,uvh,uvih);
    vr2=front(n,t,uvih,uvh);
    p=fabs(vr1-vr2)/vr2;
    cout<<"n="<<n<<"parametr="<<vr2<<"pogrechnost="<<p<<endl;
    vr1=vr2;
    n=n*2;
    }
    return p;
}
 
 
 
int main ()
{
    int n=11;
    float tk, tn, t[n], uvh[n], uvih[n], dt, e, e0, w, v,uvh1;
    tk=6, tn=0.5, e0=0.01, e=1, v=1000000;
    vremya(n,t,dt);
    uvhoda(n,t,uvh);
    uvihoda(n,uvh,uvih,uvh1);
    output(n,t,uvh,uvih);
    front(n,t,uvih,uvh);
    accuracy(n,t,uvh,uvih);
 
    getch();
}
вот уже полностью замененный файл

вот ошибки:
D:\univer\ In function `float accuracy(int, float*, float*, float*)':
11 D:\univer\ too few arguments to function `void vremya(int, float*, float&)'
74 D:\univer\informatika\kursovik\zadniy front\front_tochnost.cpp at this point in file
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.05.2013, 21:37     too few arguments to function. почему так происходит? #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float accuracy(int n, float *t, float *uvh, float *uvih)
{
    float p=1, e=0.012, vr1=100000000, vr2=0;
    while(p>e)
    {
    vremya(n,t);//<= И ГДЕ ЖЕ ЗАМЕНЕНО?
    uvhoda(n,t,uvh);
    output(n,t,uvh,uvih);
    vr2=front(n,t,uvih,uvh);
    p=fabs(vr1-vr2)/vr2;
    cout<<"n="<<n<<"parametr="<<vr2<<"pogrechnost="<<p<<endl;
    vr1=vr2;
    n=n*2;
    }
    return p;
}
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:42  [ТС]     too few arguments to function. почему так происходит? #8
упс значит не там изменил у себя...

ну тогда вылезает уже такая проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float accuracy(int n, float *t, float *uvh, float *uvih)
{
    float p=1, e=0.012, vr1=100000000, vr2=0;
    while(p>e)
    {
    vremya(n,t,dt);
    uvhoda(n,t,uvh);
    output(n,t,uvh,uvih);
    vr2=front(n,t,uvih,uvh);
    p=fabs(vr1-vr2)/vr2;
    cout<<"n="<<n<<"parametr="<<vr2<<"pogrechnost="<<p<<endl;
    vr1=vr2;
    n=n*2;
    }
    return p;
}
74 D:\univer\ 'dt' undeclared (first use this function) (74 строчка-в данном случае шестая)
(Each undeclared identifier is reported only once for each function it appears in.)
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
24.05.2013, 21:49     too few arguments to function. почему так происходит? #9
ну так не определил ты dt
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:51  [ТС]     too few arguments to function. почему так происходит? #10
Цитата Сообщение от Кудаив Посмотреть сообщение
ну так не определил ты dt
это я и сам понял) а как его определить?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
24.05.2013, 21:54     too few arguments to function. почему так происходит? #11
замени на
C++
1
vremya(n,t,*t);
заработает, но как надо ли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 21:59     too few arguments to function. почему так происходит?
Еще ссылки по теме:

C++ Перегрузка оператора.Почему так происходит?
C++ Почему не компилируется? (too few arguments to function)
C++ Указатели: почему так происходит? Постфиксный и префиксный инкремент

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

Или воспользуйтесь поиском по форуму:
kvoter
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 12
24.05.2013, 21:59  [ТС]     too few arguments to function. почему так происходит? #12
Цитата Сообщение от Кудаив Посмотреть сообщение
замени на
C++
1
vremya(n,t,*t);
заработает, но как надо ли
заработало но как-то не правильно)

Добавлено через 1 минуту
хотя сейчас перерасчитаю и скажу точно правильно ли работает
Yandex
Объявления
24.05.2013, 21:59     too few arguments to function. почему так происходит?
Ответ Создать тему
Опции темы

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