Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
1

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

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

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
// 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2012, 15:14
Ответы с готовыми решениями:

Обработка исключения try/catch. Неиспользованная локальная переменная
Здравствуйте, есть код, который должен складывать значения нескольких полей и выводить в итоговое...

Warning C4101 и warning C4996
Здравствуйте, пишу программу &quot;Домашняя видеотека&quot;, в которой необходимо реализовать запить...

Warning C4700: использована неинициализированная локальная переменная
1&gt;c:\users\артем\documents\visual studio 2012\projects\consoleapplication37\source.cpp(7): warning...

Warning C4700: использована неинициализированная локальная переменная
Я прекрасно понимаю что это значит но проблема в том что я сначала прогу написал в мэйне, а потом...

16
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
03.11.2012, 15:21 2
Пишет, потому что ты переменные определил(а), но нигде не используешь в коде.
1
Обитатель форума
201 / 184 / 54
Регистрация: 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
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
03.11.2012, 15:27  [ТС] 4
у меня значения а и б заданы 8 и 9. а надо вычислить m значений заданной функций на интервале а,б
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:28 5
Эти неиспользуемые переменные можно удалять из программы. Они все равно не нужны
1
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
03.11.2012, 15:31  [ТС] 6
а тогда что мне писать в типе double
0
Обитатель форума
201 / 184 / 54
Регистрация: 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
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
03.11.2012, 15:41  [ТС] 8
тогда выводе напишет необявленый идкнтификатор
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 15:42 9
Ну вы попробуйте, если выведет ошибку - выложите ее сюда. В моем варианте убраны ненужные переменные.
0
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
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
Обитатель форума
201 / 184 / 54
Регистрация: 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
425 / 390 / 113
Регистрация: 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
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
03.11.2012, 15:51  [ТС] 13
это приудалении этих данных
0
Обитатель форума
201 / 184 / 54
Регистрация: 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
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
03.11.2012, 15:58 15
Цитата Сообщение от flatra Посмотреть сообщение
error C2065: x: необъявленный идентификатор
это сообщение означает что переменная x неопределена(необъявлена). компилятор не знает к какому типу она принадлежит. int, double или char?
для этого перед ее первым использованием нужно написать примерно так:
C++
1
double x;
И так же сделайте со всеми другими неизвестными переменными
0
Нет ТЗ - давай досвидания
746 / 377 / 64
Регистрация: 01.12.2011
Сообщений: 2,250
03.11.2012, 16:01 16
Оп, здесь две страницы. Пардон
0
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 386
03.11.2012, 16:12  [ТС] 17
спасибо большое
0
03.11.2012, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2012, 16:12
Помогаю со студенческими работами здесь

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

Warning C4700: использована неинициализированная локальная переменная "d"
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cmath&gt; using namespace std; int main() {...

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

Как исправить warning C4700: использована неинициализированная локальная переменная "M_PI"
Строка 316 и 339 #pragma once #include&lt;cmath&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; #define...

Почему локальная переменная не уничтожается после выхода из функции
В функции создается строка char *pn = new char;. Мне непонятно почему при выходе из функции эта...

Ошибка компиляции "warning C4700: использована неинициализированная локальная переменная "end""
Здравствуйте! Помогите найти ошибку в программе. Не могу исправить. #include &lt;iostream&gt; #include...

При выводе текста выдаются иероглифы
Народ почему вместо текста ( выдаёт какие-то иероглифы )??? #include &lt;stdio.h&gt; #include...


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

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