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

Глупый вопрос (возведение в квадрат) - C++

Восстановить пароль Регистрация
 
pistol
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
08.09.2011, 22:48     Глупый вопрос (возведение в квадрат) #1
Всем привет.
Почему то не работает следующая элементарныя строчка кода. Значения y получаются отрицательными, например около -30000, хотя x и y коллкблятся примерно от 1000 до 2000.

Заранее спасибо


C#
1
y = (x-y)*(x-y);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 22:48     Глупый вопрос (возведение в квадрат)
Посмотрите здесь:

простой и глупый вопрос C++
Глупый вопрос по указателям? C++
C++ Стек, связный список и глупый вопрос
C++ Оч глупый вопрос
Глупый вопрос по шаблонам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 22:50     Глупый вопрос (возведение в квадрат) #2
а весь код можно? вдруг ошибка не здесь???
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:51     Глупый вопрос (возведение в квадрат) #3
Типы данных какие?
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 22:52     Глупый вопрос (возведение в квадрат) #4
Цитата Сообщение от pistol Посмотреть сообщение
Код C#
1
y = (x-y)*(x-y);
хехе, код та ведь на C#

Добавлено через 32 секунды
даже если int то равно должно быть 0, а не к -30000
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:53     Глупый вопрос (возведение в квадрат) #5
Цитата Сообщение от jambas92 Посмотреть сообщение
даже если int то равно должно быть 0, а не к -30000
В шарпе нет отрицательного диапазона в int? 0_o
Поясните, плиз.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 22:56     Глупый вопрос (возведение в квадрат) #6
просто когда я использовал числа превышающие диапазон числа, он у меня выводит 0, хотя по идеи должен выводит отрицательное число...
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:59     Глупый вопрос (возведение в квадрат) #7
Хм... Может при переполнении идет обнуление, а не -INT_MAX... Странно.
ps/ А ТС может просто ткнул не туда при наборе сообщения, вот и получился C# листинг.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 23:00     Глупый вопрос (возведение в квадрат) #8
ждем ответа от автора)))
pistol
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
08.09.2011, 23:00  [ТС]     Глупый вопрос (возведение в квадрат) #9
Код на с++, перепутал на форуме. Тип данных int, какой нужно сделать? x и y выводятся нормально, проверял. На всякий случай кусок кода.

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
int dis1, dis2, dis3, dis4, dis5;
int Sks99, Sks95, Sks91, Sks19, Sks59;
int mean, disp;
 
Sks99 = (8.33*((dPRE9Pnt-dCUR9Pnt)/(sqrt(abs(dPRE9Pnt-147+10000))*sqrt(8041)))+1.69)*1000 ;
 
        
        Sks95 = (8.33*((dPRE9Pnt-dCUR5Pnt)/(sqrt(abs(dPRE9Pnt-147+10000))*sqrt(8041)))+1.69)*1000 ;
 
        
        Sks91 = (8.33*((dPRE9Pnt-dCUR0Pnt)/(sqrt(abs(dPRE9Pnt-147+10000))*sqrt(8041)))+1.69)*1000 ;
 
        
        Sks19 = (8.33*((dPRE0Pnt-dCUR9Pnt)/(sqrt(abs(dPRE0Pnt-147+10000))*sqrt(8041)))+1.69)*1000 ;
 
    
        Sks59 = (8.33*((dPRE5Pnt-dCUR9Pnt)/(sqrt(abs(dPRE5Pnt-147+10000))*sqrt(8041)))+1.69)*1000 ;
 
        mean = ((Sks99 + Sks95 + Sks91 + Sks19 + Sks59)/(5));
        
        dis1 = ((mean-Sks99)*(mean-Sks99));
        dis2 = ((mean-Sks95)*(mean-Sks95)); 
        dis3 = ((mean-Sks91)*(mean-Sks91)); 
        dis4 = ((mean-Sks19)*(mean-Sks19)); 
        dis5 = ((mean-Sks59)*(mean-Sks59)); 
                      disp = ((dis1 + dis2 + dis3 + dis4 + dis5)/(5));
Вообщем рассчитываю среднее и дисперсию для Sks99, Sks95, Sks91, Sks19, Sks59 (знаю, что дисперсию можно одной строчкой сделать, просто разбивал на элементарные операции чтобы понять где ошибка). mean выводит нормально, но dis1, dis2, dis3, dis4, dis5 иногда получаются отрицательными. Sks99, Sks95, Sks91, Sks19, Sks59 тоже высчитываются нормально, проверял.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 23:03     Глупый вопрос (возведение в квадрат) #10
Вот тут расписаны максимальные значения типов данных в c++. Выбираете нужный и пользуетесь на здоровье.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 23:04     Глупый вопрос (возведение в квадрат) #11
да, на самом деле, int будет маловат...

Добавлено через 38 секунд
бери максимальный! unsigned long long)))
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 23:07     Глупый вопрос (возведение в квадрат) #12
Цитата Сообщение от jambas92 Посмотреть сообщение
бери максимальный! unsigned long long)))
Угу. Не прогадаешь

Не по теме:

А вообще, к черту эти все int-ы и float-ы. Берешь std::string, перегружаешь для него умножение, сложение и деление, и не паришься. Дел то на 15 минут.

pistol
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
08.09.2011, 23:15  [ТС]     Глупый вопрос (возведение в квадрат) #13
Всем спасибо, что-то действительно не подумал, что дисперсию считаю а не стандартное отклонение.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
09.09.2011, 12:07     Глупый вопрос (возведение в квадрат) #14
Не по теме:
А вообще, к черту эти все int-ы и float-ы. Берешь std::string, перегружаешь для него умножение, сложение и деление, и не паришься. Дел то на 15 минут.
а как это???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2011, 12:20     Глупый вопрос (возведение в квадрат)
Еще ссылки по теме:

C++ Глупый вопрос про наследование
Извините за глупый вопрос. C++
Глупый вопрос по типу данных Variant C++

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

Или воспользуйтесь поиском по форуму:
soon
09.09.2011, 12:20     Глупый вопрос (возведение в квадрат)
  #15

Не по теме:

Цитата Сообщение от soon
Дел то на 15 минут.
Сарказм. Хотя, самые тру-программисты могут это сделать и за 15 минут. Наверно.
А про перегрузку посмотрите... Ну хотя бы тут

Yandex
Объявления
09.09.2011, 12:20     Глупый вопрос (возведение в квадрат)
Ответ Создать тему
Опции темы

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