Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Покажите что тут нетак и чтоо выводить должно по вашему? |

16.07.2008, 17:03
|
|
Познающий
Регистрация: 20.07.2007
Сообщений: 99
Провел на форуме: 1562993
Репутация:
25
|
|
Покажите что тут нетак и чтоо выводить должно по вашему?
Код:
float x,y,rezult;
for(int j=1; j<500000; j++){
y =(float)j;
for(int i=1; i<500000; i++){
x=(float)i;
rezult = x - (x/y)*y;
if (rezult != 0){cout<<rezult;};
};
};
Что должен этот код выводить?=\
и что выводить должен этот :
Код:
float x,y,rezult;
for(int j=1; j<500000; j++){
y =(float)j;
for(int i=1; i<500000; i++){
x=(float)i;
rezult = x - (x/y)*y;
cout<<rezult;
};
};
И правильноли там преобразование сдделал ато все забыл за лето уже : y =(float)j?
В обшем должно же ноль всегда ввыводить только?)
|
|
|

16.07.2008, 17:47
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
>>>В обшем должно же ноль всегда ввыводить только?)
нет. ты соскобками разберись
так наглядней
Код:
float x,y,rezult;
for(int j=1; j<500000; j++)
{
y =j;
for(int i=1; i<500000; i++)
{
x=i;
rezult = x - (x/y)*y;
if (rezult != 0)
cout<<rezult;
}
}
а выводит он много цифр.
p/s/ преобразование типов в данном случае не надо т.к. переменные и так флоат. Точказапятая после фигурных скобок не обязательна, и есле один оператор то фигурные скобки тож не обязательны
Последний раз редактировалось nc.STRIEM; 16.07.2008 в 17:50..
|
|
|

16.07.2008, 22:02
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
ога, много много "типо" нулей, код то правильный (за исключением точек с запятой невпопад) ... размерность float имеет свою конечную размерность и при делении непопавшии в неё разряды после запятой обрезаются, что даёт некоторую флуктуацию
так что несовсем (x/y)*y = x
както так
|
|
|

16.07.2008, 23:34
|
|
Познающий
Регистрация: 29.05.2008
Сообщений: 53
Провел на форуме: 66389
Репутация:
67
|
|
выводиться как раз будут НЕ нули.
и выводиться все эти цифры будут "сплошняком".
добавь что-ли разделитель какой-нибудь для наглядности.
|
|
|

16.07.2008, 23:49
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
2VAran
"ТИПО" нули
код скомпилируй сначала и вывод сделай такой чтобы поле дробной части было символов в 20
printf("%.20f", rezult);
и сразу видно будет, что это числа порядка 1 * 10^(-15) ... а всё изза конечной размерности типа float
поэтому x - (x/y)*y иногда и != 0
|
|
|

17.07.2008, 10:07
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Код:
rezult = x - (x/y)*y;
Математически в этом выражении будет присваиваться нуль, но из-за особенностей реализации чисел с плавающей точкой в компьютерах нуль там никогда не будет. Число 26.57, к примеру, будет представлено чем-то наподобие 26.5699999999999
|
|
|

17.07.2008, 10:47
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
Сообщение от krypt3r
Код:
rezult = x - (x/y)*y;
Математически в этом выражении будет присваиваться нуль, но из-за особенностей реализации чисел с плавающей точкой в компьютерах нуль там никогда не будет. Число 26.57, к примеру, будет представлено чем-то наподобие 26.5699999999999
че за бред ты отписал?
Тут ноль не будет присваиваться! посмотри код и поймеш что x != y поэтому нуля та мне будет
|
|
|

17.07.2008, 10:53
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
2nc.STRIEM
сокращать дроби не умеем?
(x/y)*y = x
или ты просто скобки не заметил? ^______^
|
|
|

17.07.2008, 11:25
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
nc.STRIEM, ты посты внимательно читаешь или как? Я сказал - МАТЕМАТИЧЕСКИ. Возьми бумажку и ручку, напиши эту формулу, подставь вместо x и y любые числа. Если у тебя остались хоть элементарные познания арифметики, на бумаге у тебя будет нуль. Сам бред несешь. Учи математику.
|
|
|

17.07.2008, 12:07
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
2Exile1985
ненадо ТС путать
если не знаешь, так хотя бы скомпиль код и посмотри, что получится
а чтобы осмыслить то, что получилось прочти то что здесь постили я и krypt3r
ЗЫ читайте, прежде чем ответить, всю тему! и подумайте прежде чем отвечать, а то человека же путаете млин
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|