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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:14     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #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
// 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 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 15:14     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная"
Посмотрите здесь:

warning C4700: использована неинициализированная локальная переменная "matrix" C++
C++ Почему локальная переменная не уничтожается после выхода из функции
Локальная переменная C++
C++ Почему возникают предупреждения?
C++ warning C4700: использована неинициализированная локальная переменная
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
03.11.2012, 15:21     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #2
Пишет, потому что ты переменные определил(а), но нигде не используешь в коде.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
03.11.2012, 15:24     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #3
собственно эти переменные и не использованы в коде, а просто объявлены.

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

C++
1
    shn>sqn?shn:sqn);
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:27  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #4
у меня значения а и б заданы 8 и 9. а надо вычислить m значений заданной функций на интервале а,б
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:28     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #5
Эти неиспользуемые переменные можно удалять из программы. Они все равно не нужны
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:31  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #6
а тогда что мне писать в типе double
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
03.11.2012, 15:34     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #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);
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:41  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #8
тогда выводе напишет необявленый идкнтификатор
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
03.11.2012, 15:42     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #9
Ну вы попробуйте, если выведет ошибку - выложите ее сюда. В моем варианте убраны ненужные переменные.
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:46  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #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: необъявленный идентификатор
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
03.11.2012, 15:49     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #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;
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:51     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #12
Цитата Сообщение от flatra Посмотреть сообщение
yt=(2*x+1.0)/sqrt(x);
sqn=0;
yt, sqn и sq0 необъявили. пропишите в начале программы
C++
1
double yt, sqn, sq0;
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 15:51  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #13
это приудалении этих данных
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
03.11.2012, 15:54     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #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);
    }
}
Вот так не будет выводить ошибок и предупреждений по части переменных
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:58     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #15
Цитата Сообщение от flatra Посмотреть сообщение
error C2065: x: необъявленный идентификатор
это сообщение означает что переменная x неопределена(необъявлена). компилятор не знает к какому типу она принадлежит. int, double или char?
для этого перед ее первым использованием нужно написать примерно так:
C++
1
double x;
И так же сделайте со всеми другими неизвестными переменными
BuPy7
Нет ТЗ - давай досвидания
 Аватар для BuPy7
747 / 344 / 30
Регистрация: 01.12.2011
Сообщений: 2,028
03.11.2012, 16:01     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #16
Оп, здесь две страницы. Пардон
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 16:12     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная"
Еще ссылки по теме:

C++ Почему выводит ошибку C4700, что локальная переменная неинициализированна, если она инициализированна
C++ Warning C4101 и warning C4996
C++ Warning C4700: использована неинициализированная локальная переменная

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

Или воспользуйтесь поиском по форуму:
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
03.11.2012, 16:12  [ТС]     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" #17
спасибо большое
Yandex
Объявления
03.11.2012, 16:12     Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная"
Ответ Создать тему
Опции темы

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