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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
#1

Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" - C++

03.11.2012, 15:14. Просмотров 2237. Ответов 16
Метки нет (Все метки)

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
// gd.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
#include "conio.h"
#include "locale.h"
void main()
{
    setlocale(LC_ALL, "Russian");
    double yt, yc, a, x;
    double sq, sq0, sh, sum, sm;
    unsigned long sqn, n, shn;
    printf("\n\t вычисление функций: y=(2*x+1)/sqrt(x)\n\n");
    printf("x \t f1(x) \t f2(x) \t точность \t итерации\n");
 
for(x=8.0; x<=9.0; x+=0.4 )
{
            yt=(2*x+1.0)/sqrt(x);
            sqn=0;
            sq=x;
            do{
                sqn++;
                sq0=sq;
                sq=(sq0+x/(sq0))/2;
                }
            while(sq !=sq0);
            yc=(2*x+1.0)/sq;
            a=yc-yt;
            printf("\t%lf \t%lf \t%lf \t%le \t%ld \n",
                    x, yc, yt, a, shn>sqn?shn:sqn);
            
 
 
} /* end for()*/
 
 
 
 
}
Ошибки
Код
1>------ Перестроение всех файлов начато: проект: gd, Конфигурация: Debug Win32 ------
1>Построение начато 03.11.2012 15:14:11.
1>_PrepareForClean:
1>  Файл "Debug\gd.lastbuildstate" удаляется.
1>InitializeBuildStatus:
1>  Создание "Debug\gd.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1>  stdafx.cpp
1>  gd.cpp
1>i:\gd\gd\gd.cpp(14): warning C4101: sm: неиспользованная локальная переменная
1>i:\gd\gd\gd.cpp(15): warning C4101: n: неиспользованная локальная переменная
1>i:\gd\gd\gd.cpp(14): warning C4101: sum: неиспользованная локальная переменная
1>i:\gd\gd\gd.cpp(14): warning C4101: sh: неиспользованная локальная переменная
1>i:\gd\gd\gd.cpp(33): warning C4700: использована неинициализированная локальная переменная "shn"
1>Manifest:
1>  Файл "Debug\gd.exe.embed.manifest" удаляется.
1>LinkEmbedManifest:
1>  gd.vcxproj -> I:\gd\Debug\gd.exe
1>FinalizeBuildStatus:
1>  Файл "Debug\gd.unsuccessfulbuild" удаляется.
1>  Обращение к "Debug\gd.lastbuildstate".
1>
1>Построение успешно завершено.
1>
1>Затраченное время: 00:00:21.95
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 15:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" (C++):

Warning C4700: использована неинициализированная локальная переменная "matrix" - C++
тогда еще 1 вопрос: при попытке реализовать чтение из файла в виде функции: #include &lt;fstream&gt; #include &lt;iostream&gt; #include...

Как исправить: warning C4700: использована неинициализированная локальная переменная "a"? - C++
Задача: Код:#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; #define M 10 #define N 10 #define MAX 50

"Использована неинициализированная локальная переменная" при работе с указателем - C++
использована неинициализированная локальная переменная ukaz !!!! Прошу посмотрите на функцию perevod. Почему мой указатель на структуру...

Функция PTinqpoint() и ошибка "Использована неинициализированная локальная переменная" - C++
Добрый день, возникает проблема с реализацией функции. Документация по ней: PTinqpoint int32 PTinqpoint(char * filename, char...

Ошибка "error C4700: использована неинициализированная локальная переменная" - C++
Здравствуйте! Есть задача: Дана вещественная матрица размерностью 8x8. Определить: 1) сумму отрицательных элементов в нечетных...

Error C4700: использована неинициализированная локальная переменная "k" - C++
Начал программировать в С++ недавно, решил набить программу по нахождению палиндрома, но когда компилирую видает Ошибка 1 error C4700:...

16
nonedark2008
914 / 653 / 135
Регистрация: 28.07.2012
Сообщений: 1,764
03.11.2012, 15:21 #2
Пишет, потому что ты переменные определил(а), но нигде не используешь в коде.
1
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:24 #3
собственно эти переменные и не использованы в коде, а просто объявлены.

C++
1
2
3
    double yt, yc, a, x;
    double sq, sq0;
    unsigned long sqn, shn;
shn не имеет значения.

C++
1
    shn>sqn?shn:sqn);
1
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
03.11.2012, 15:27  [ТС] #4
у меня значения а и б заданы 8 и 9. а надо вычислить m значений заданной функций на интервале а,б
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:28 #5
Эти неиспользуемые переменные можно удалять из программы. Они все равно не нужны
1
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
03.11.2012, 15:31  [ТС] #6
а тогда что мне писать в типе double
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:34 #7
Просто удали эти неиспользуемые переменные.

C++
1
2
3
4
5
6
7
    double yt, yc, a, x, sq, sq0;
    unsigned long sqn;
 
...
 
        printf("\t%lf \t%lf \t%lf \t%le \t%ld \n",
        x, yc, yt, a, sqn);
0
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
03.11.2012, 15:41  [ТС] #8
тогда выводе напишет необявленый идкнтификатор
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:42 #9
Ну вы попробуйте, если выведет ошибку - выложите ее сюда. В моем варианте убраны ненужные переменные.
0
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
03.11.2012, 15:46  [ТС] #10
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
#include "stdafx.h"
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
#include "conio.h"
#include "locale.h"
void main()
{
    setlocale(LC_ALL, "Russian");
    double sh, sum, sm;
    unsigned long n, shn;
    printf("\n\t вычисление функций: y=(2*x+1)/sqrt(x)\n\n");
    printf("x \t f1(x) \t f2(x) \t точность \t итерации\n");
 
for(x=8.0; x<=9.0; x+=0.4 )
{
            yt=(2*x+1.0)/sqrt(x);
            sqn=0;
            sq=x;
            do{
                sqn++;
                sq0=sq;
                sq=(sq0+x/(sq0))/2;
                }
            while(sq !=sq0);
            yc=(2*x+1.0)/sq;
            a=yc-yt;
Добавлено через 1 минуту
Ошибки
Код
1>i:\gd\gd\gd.cpp(18): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(18): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(18): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(20): error C2065: yt: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(20): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(20): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(21): error C2065: sqn: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(22): error C2065: sq: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(22): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(24): error C2065: sqn: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(25): error C2065: sq0: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(25): error C2065: sq: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(26): error C2065: sq: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(26): error C2065: sq0: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(26): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(26): error C2065: sq0: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(28): error C2065: sq: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(28): error C2065: sq0: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(29): error C2065: yc: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(29): error C2065: x: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(29): error C2065: sq: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(30): error C2065: a: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(30): error C2065: yc: необъявленный идентификатор
1>i:\gd\gd\gd.cpp(30): error C2065: yt: необъявленный идентификатор
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:49 #11
бррр. Вы сделали абсолютно наоборот. Убрали используемые переменные, оставив только неиспользуемые.

Вместо
C++
1
2
    double sh, sum, sm;
unsigned long n, shn;
поставьте:
C++
1
2
    double yt, yc, a, x, sq, sq0;
    unsigned long sqn;
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:51 #12
Цитата Сообщение от flatra Посмотреть сообщение
yt=(2*x+1.0)/sqrt(x);
sqn=0;
yt, sqn и sq0 необъявили. пропишите в начале программы
C++
1
double yt, sqn, sq0;
0
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
03.11.2012, 15:51  [ТС] #13
это приудалении этих данных
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:54 #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
void main()
{
    setlocale(LC_ALL, "Russian");
    double yt, yc, a, x, sq, sq0;
    unsigned long sqn;
    printf("\n\t вычисление функций: y=(2*x+1)/sqrt(x)\n\n");
    printf("x \t f1(x) \t f2(x) \t точность \t итерации\n");
 
    for(x=8.0; x<=9.0; x+=0.4 )
    {
        yt=(2*x+1.0)/sqrt(x);
        sqn=0;
        sq=x;
        
        do
        {
            sqn++;
            sq0=sq;
            sq=(sq0+x/(sq0))/2;
        }
        while(sq !=sq0);
        
        yc=(2*x+1.0)/sq;
        a=yc-yt;
        printf("\t%lf \t%lf \t%lf \t%le \t%ld \n",
        x, yc, yt, a, sqn);
    }
}
Вот так не будет выводить ошибок и предупреждений по части переменных
1
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:58 #15
Цитата Сообщение от flatra Посмотреть сообщение
error C2065: x: необъявленный идентификатор
это сообщение означает что переменная x неопределена(необъявлена). компилятор не знает к какому типу она принадлежит. int, double или char?
для этого перед ее первым использованием нужно написать примерно так:
C++
1
double x;
И так же сделайте со всеми другими неизвестными переменными
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 15:58
Привет! Вот еще темы с ответами:

Ошибка в коде: "использована неинициализированная локальная переменная" - C++
Я пытаюсь сделать программу, которая меняет отрицательный элемент с конца на положительный элемент с начала, предпоследний отрицательный со...

Ошибка в коде: "использована неиницилизирована локальная переменная" - C++
решал задачку где нужно создать функию котора выводит среднее значение введеных чисел масива. код написал но не компилируется, выдает...

Ошибка со структурой - "использована неинициализированная локальная переменная" - C++
Здравствуйте! Есть структура, сначала мы создаем объект и инициализируем его, потом создаем новый объект, но делаем его пустым, чтобы...

Ошибка C4703 используется потенциально неинициализированная локальная переменная-указатель "A" - C++
Помогите не могу понять, что не так то, уже многое перепробовал #include &quot;stdafx.h&quot; #include &lt;locale.h&gt; #include &quot;conio.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
03.11.2012, 15:58
Ответ Создать тему
Опции темы

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