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

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

Войти
Регистрация
Восстановить пароль
 
pistol
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
#1

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

08.09.2011, 22:48. Просмотров 807. Ответов 14
Метки нет (Все метки)

Всем привет.
Почему то не работает следующая элементарныя строчка кода. Значения y получаются отрицательными, например около -30000, хотя x и y коллкблятся примерно от 1000 до 2000.

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


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

Оч глупый вопрос - C++
вот вместо цифры 1 как поставить переменную p->Bitmap->SaveToFile("C:\\bm\\rf\\1.bmp"); до этого баловался только с борландом.. поэтому...

Глупый вопрос по указателям? - C++
Здравствуйте! Подскажите как это работает? Правильно ли я понимаю? struct A { }; struct B: public A { int var1; ...

Глупый вопрос по шаблонам - C++
Доброе время суток! Я достаточно опытный программист Java, но жизнь, как говорится, заставила переквалифицироваться на C++, причем,...

Извините за глупый вопрос. - C++
Как в С++ записывается "и"? (Например в Pascal это "and"). И как записать это в условие типа: if (N<1000) "и" (N>100) { bla bla bla...

простой и глупый вопрос - C++
Да, вопрос немного глуповат, но в нете так ничего и не нашла. Либо просто вводила не то для поиска. Не знаю короче. Суть вопроса: У меня...

Глупый вопрос про наследование - C++
Вот фрагмент кода, реального: class CListviewParamPrimary : public CListviewParamFloats { private: /** * @brief Возвращает...

14
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 22:50 #2
а весь код можно? вдруг ошибка не здесь???
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:51 #3
Типы данных какие?
0
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
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:53 #5
Цитата Сообщение от jambas92 Посмотреть сообщение
даже если int то равно должно быть 0, а не к -30000
В шарпе нет отрицательного диапазона в int? 0_o
Поясните, плиз.
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 22:56 #6
просто когда я использовал числа превышающие диапазон числа, он у меня выводит 0, хотя по идеи должен выводит отрицательное число...
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:59 #7
Хм... Может при переполнении идет обнуление, а не -INT_MAX... Странно.
ps/ А ТС может просто ткнул не туда при наборе сообщения, вот и получился C# листинг.
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 23:00 #8
ждем ответа от автора)))
0
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 тоже высчитываются нормально, проверял.
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 23:03 #10
Вот тут расписаны максимальные значения типов данных в c++. Выбираете нужный и пользуетесь на здоровье.
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 23:04 #11
да, на самом деле, int будет маловат...

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

Не по теме:

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

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

Не по теме:

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

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2011, 12:20
Привет! Вот еще темы с ответами:

Глупый вопрос по считыванию символов с клавиатуры - C++
заранее извиняюсь за глупый вопрос, но ответ на него отгуглить не смог: n = getche не считывает нажатия на enter, но считывает пробелы...

Глупый вопрос по типу данных Variant - C++
Обнаружил, что не очень четко понимаю что он из себя представляет и при его использовании возникает пачка вопросов. Может быть...

Стек, связный список и глупый вопрос - C++
Содержание stack.h #include <cstddef> // Определение константы NULL template <typename T> class Stack { public: Stack(); ...

Возведение палиндрома в квадрат - C++
Всем доброго времени суток. Не могу понять как можно возвести палиндром в квадрат согласно условию. Если кто может помочь буду...


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

Или воспользуйтесь поиском по форуму:
15
09.09.2011, 12:20
Ответ Создать тему
Опции темы

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