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

Предупреждения Possible use of '...' before definition - C++

Восстановить пароль Регистрация
 
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
16.11.2012, 01:03     Предупреждения Possible use of '...' before definition #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
#include <iostream.h>
#include <conio.h>
#include <math.h>
#define eps 0.0001
 
float element_n(int n)
    {
    cout<<"Input n: ";
    cin>>n;
    float u=1;
    for(int k=1;k<n;k++)
    u*=-(float)k/(k+1);
    cout<<"\n"<<n<<"-uy element ryada = ";
  return u;
    }
        
float suma_n(int n)
    {
    cout<<"Input n: ";
    cin>>n;
    float u=1;
    float s=0;
 
    for(int k=1;k<n;k++)
    {
    s+=u;
    u*=-(float)k/(k+1);
    }
    cout<<"\n Suma pervyh "<<n<<" elementov = ";
  return(s);
    }
   float suma_s_tochnostju(int k)
   {
   cout<<"Input  n: ";
   float u=1;
   float s=0;
   k=1;
   while(fabs(u)>=eps) //
   {
   s+=u; 
     u*=(float)-k/(k+1);
     k++;
  }
  cout<<"\n Suma elementov s tochnistju "<<eps<<"=";
     return (s);
  }
 
void main()
{
 
int k,n;
char Pr;
do {
    cout<<"\nVvedite nomer puncta";
    cout<<"\n1 - Vycheslit n - uy element zadanogo arefmetycheskogo ryada";
     cout<<"\n2 - Vycheslit sumu n pervyh elementov zadanogo ryada";
    cout<<"\n3 - Vycheslit znachenye summy arefmetycheskogo ryada c tochnostju eps";
    cout<<"\n4 - Exit\n";
    cin>>Pr;
       switch(Pr)
{ case '1':
{ cout<<element_n(n);
 
}
break;
 
 case '2':
{ cout<<suma_n(n);
 
}
break;
 case '3':
 {cout<<suma_s_tochnistju(k);   }
 
 
break;
 
case  '4': cout<<"\n Exit!!!";  break;
default:  cout<<"\n Error znachenie.Zadajte znachenie ot 1 do 4 ";
    }
  getch();
 }
  while(Pr!='4');
}
Программа,работает,но выдает 2 предупреждения:
Possible use of 'n' before definition
Possible use of 'k' before definition
Помогите пожалуйста их убрать.

Исходное задание:
Написать прогу,которая позволяет в зависимости от введенного значения параметра Pr (1,2,3) выполнить одно из следующих действий для ряда -к/(к+1):
1.Вычислить н-ый елемент ряда
2.Вычислить сумму н первых елементов ряда
3.Вичислить значение суммы арифметического ряда с точностью эпс=0,0001
Программу написать с использованием функций.

Заранее благодарен!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.11.2012, 01:18     Предупреждения Possible use of '...' before definition #2
Смотрите, вы в 51 строке объявили переменные, а значения им не задали. Вот и предупреждения лезут.
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 167
16.11.2012, 01:20     Предупреждения Possible use of '...' before definition #3
Я хз у меня на компиле без ошибок идет
просто под свой компиль iostream.h на iostream поменял и в маине вместо void - int + return, функция вроде в 3 кейсе непрально была написана, а может это я ее было задел, в общем у меня такое идет без ошибок... но не проверял как результаты выдает ....
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
#include <iostream>
#include <conio.h>
#include <math.h>
#define eps 0.0001
 
using namespace std;
 
float element_n(int n)
    {
    cout<<"Input n: ";
    cin>>n;
    float u=1;
    for(int k=1;k<n;k++)
    u*=-(float)k/(k+1);
    cout<<"\n"<<n<<"-uy element ryada = ";
  return u;
    }
        
float suma_n(int n)
    {
    cout<<"Input n: ";
    cin>>n;
    float u=1;
    float s=0;
 
    for(int k=1;k<n;k++)
            {
            s+=u;
            u*=-(float)k/(k+1);
            }
    cout<<"\n Suma pervyh "<<n<<" elementov = ";
    return(s);
    }
    
    float suma_s_tochnostju(int k)
    {
    cout<<"Input  n: ";
    float u=1;
    float s=0;
    k=1;
    while(fabs(u)>=eps) //
            {
            s+=u; 
            u*=(float)-k/(k+1);
            k++;
            }
    cout<<"\n Suma elementov s tochnistju "<<eps<<"=";
    return (s);
    }
 
int main()
     {
     int k,n;
     char Pr;
     do 
        {
        cout<<"\nVvedite nomer puncta";
        cout<<"\n1 - Vycheslit n - uy element zadanogo arefmetycheskogo ryada";
        cout<<"\n2 - Vycheslit sumu n pervyh elementov zadanogo ryada";
        cout<<"\n3 - Vycheslit znachenye summy arefmetycheskogo ryada c tochnostju eps";
        cout<<"\n4 - Exit\n";
        cin>>Pr;
        switch(Pr)
                  {
                  case '1':cout<<element_n(n);break;
                  case '2':cout<<suma_n(n);break;
                  case '3':cout<<suma_s_tochnostju(k);break;
                  case '4': cout<<"\n Exit!!!";  break;
                  default:  cout<<"\n Error znachenie.Zadajte znachenie ot 1 do 4 ";
                  }
        getch();
        }
     while(Pr!='4');
     return 0;
     }
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.11.2012, 01:23     Предупреждения Possible use of '...' before definition #4
GoodLife, вы понимаете разницу между ошибкой и предупреждением (error & warning)?
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
16.11.2012, 01:29     Предупреждения Possible use of '...' before definition #5
И вообще зачем функции element_n и suma_n принимают параметры типа int? Вы ведь потом просите юзера ввести число и оно сразу перезаписывает эту переменную. Просто уберите int n из скобок и внутри функции создайте int n.
Тогда можно будет вызывать функцию без параметра, а ту строку перед do с int n,k; просто удалить.

Добавлено через 1 минуту
Также функция suma_s_tochnostju просит юзера ввести n. Но после этого у вас нет никакого кода, чтобы считать то, что ввёл юзер.
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
16.11.2012, 01:29  [ТС]     Предупреждения Possible use of '...' before definition #6
Цитата Сообщение от HighPredator Посмотреть сообщение
Смотрите, вы в 51 строке объявили переменные, а значения им не задали. Вот и предупреждения лезут.
Значения вводятся с клавиатуры, я не могу их заведомо задать.
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
16.11.2012, 01:30     Предупреждения Possible use of '...' before definition #7
В общем вы явно намудрили. В мейне оставьте только переменную Pr, после этого с помощью switch пусть вызываются функции без каких либо параметров. После этого вы создаете переменные внутри функции и просите пользователя ввести их.
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.11.2012, 01:32     Предупреждения Possible use of '...' before definition #8
Цитата Сообщение от workout Посмотреть сообщение
Значения вводятся с клавиатуры, я не могу их заведомо задать.
Так вы посмотрите внимательно, что именно вы делаете: вы их объявили, а затем передали функциям. Машина же не знает что, где и когда вы там считывать будете. Вот она вас и предупреждает, мол, нету определенного значения, а уже куда-то посылаются.
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
16.11.2012, 01:33     Предупреждения Possible use of '...' before definition #9
workout, вы просите ввести значения с клавиатуры внутри функции! Поэтому и объявлять их тогда нужно внутри функции. И опять же, объясните, почему у вас функции типа
C++
1
2
3
4
5
float element_n(int n){
}
//а не
float element_n(){
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 01:51     Предупреждения Possible use of '...' before definition
Еще ссылки по теме:

C++ multiple definition
Как избавиться от предупреждения? C++
C++ Pure virtual function definition (C++11)

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

Или воспользуйтесь поиском по форуму:
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
16.11.2012, 01:51  [ТС]     Предупреждения Possible use of '...' before definition #10
kebal,я не силен в програмировании,новичек,помогите пожалуйста откоректировать,у самого не получается.

Добавлено через 2 минуты
убрал int n из скобок и внутри функции создал int n,вызывал функцию без параметра, а ту строку перед do с int n,k; просто удалил теперь пишет ошибки....

теперь осталась ошибка не известный символ к

Добавлено через 6 минут
Спасибо всем большое,исправил,ошибок нет...!!!!
Yandex
Объявления
16.11.2012, 01:51     Предупреждения Possible use of '...' before definition
Ответ Создать тему
Опции темы

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