ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Покажите что тут нетак и чтоо выводить должно по вашему?
  #1  
Старый 16.07.2008, 17:03
NorB
Познающий
Регистрация: 20.07.2007
Сообщений: 99
Провел на форуме:
1562993

Репутация: 25
Question Покажите что тут нетак и чтоо выводить должно по вашему?

Код:
 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?
В обшем должно же ноль всегда ввыводить только?)
 
Ответить с цитированием

  #2  
Старый 16.07.2008, 17:47
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

>>>В обшем должно же ноль всегда ввыводить только?)
нет. ты соскобками разберись

так наглядней
Код:
 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..
 
Ответить с цитированием

  #3  
Старый 16.07.2008, 22:02
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
Отправить сообщение для izlesa с помощью ICQ
По умолчанию

ога, много много "типо" нулей, код то правильный (за исключением точек с запятой невпопад) ... размерность float имеет свою конечную размерность и при делении непопавшии в неё разряды после запятой обрезаются, что даёт некоторую флуктуацию
так что несовсем (x/y)*y = x
както так
 
Ответить с цитированием

  #4  
Старый 16.07.2008, 23:34
VAran
Познающий
Регистрация: 29.05.2008
Сообщений: 53
Провел на форуме:
66389

Репутация: 67
По умолчанию

Цитата:
if (rezult != 0)
выводиться как раз будут НЕ нули.
и выводиться все эти цифры будут "сплошняком".
добавь что-ли разделитель какой-нибудь для наглядности.
 
Ответить с цитированием

  #5  
Старый 16.07.2008, 23:49
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
Отправить сообщение для izlesa с помощью ICQ
По умолчанию

2VAran
"ТИПО" нули
код скомпилируй сначала и вывод сделай такой чтобы поле дробной части было символов в 20

printf("%.20f", rezult);

и сразу видно будет, что это числа порядка 1 * 10^(-15) ... а всё изза конечной размерности типа float
поэтому x - (x/y)*y иногда и != 0
 
Ответить с цитированием

  #6  
Старый 17.07.2008, 10:07
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Код:
rezult = x - (x/y)*y;
Математически в этом выражении будет присваиваться нуль, но из-за особенностей реализации чисел с плавающей точкой в компьютерах нуль там никогда не будет. Число 26.57, к примеру, будет представлено чем-то наподобие 26.5699999999999
 
Ответить с цитированием

  #7  
Старый 17.07.2008, 10:47
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

Цитата:
Сообщение от krypt3r  
Код:
rezult = x - (x/y)*y;
Математически в этом выражении будет присваиваться нуль, но из-за особенностей реализации чисел с плавающей точкой в компьютерах нуль там никогда не будет. Число 26.57, к примеру, будет представлено чем-то наподобие 26.5699999999999
че за бред ты отписал?
Тут ноль не будет присваиваться! посмотри код и поймеш что x != y поэтому нуля та мне будет
 
Ответить с цитированием

  #8  
Старый 17.07.2008, 10:53
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
Отправить сообщение для izlesa с помощью ICQ
По умолчанию

2nc.STRIEM
сокращать дроби не умеем?
(x/y)*y = x
или ты просто скобки не заметил? ^______^
 
Ответить с цитированием

  #9  
Старый 17.07.2008, 11:25
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

nc.STRIEM, ты посты внимательно читаешь или как? Я сказал - МАТЕМАТИЧЕСКИ. Возьми бумажку и ручку, напиши эту формулу, подставь вместо x и y любые числа. Если у тебя остались хоть элементарные познания арифметики, на бумаге у тебя будет нуль. Сам бред несешь. Учи математику.
 
Ответить с цитированием

  #10  
Старый 17.07.2008, 12:07
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
Отправить сообщение для izlesa с помощью ICQ
По умолчанию

2Exile1985
ненадо ТС путать
если не знаешь, так хотя бы скомпиль код и посмотри, что получится
а чтобы осмыслить то, что получилось прочти то что здесь постили я и krypt3r

ЗЫ читайте, прежде чем ответить, всю тему! и подумайте прежде чем отвечать, а то человека же путаете млин
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень красиво опустили СекЛабовцев =) SladerNon Мировые новости 28 16.07.2008 06:19
Большой Faq для новичков Robin_Hood Статьи 3 20.06.2008 10:07
Сексуальные новости 2003 года Рогатый Трупоед Болталка 9 23.10.2007 00:24
Установка Windoze глазами линуксоида (100% факты) nerezus Болталка 47 16.10.2005 15:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ