Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 04:09   #81
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Сейчас попробую написать тот же свой алгоритм в Паскале...

Кстати об тех глюках...
От чего Делфи может выдавать: 43,432 - 40 = 3,43199999999996 ..?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 04:13   #82
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от DomiNick
От чего Делфи может выдавать: 43,432 - 40 = 3,43199999999996 ..?
о_О
Код:
ShowMessage(FloatToStr(43.432 - 40));
Исправно выдает 3,432
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 04:36   #83
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Ну давайте посчитаем, например, это: " (443.432 - 440) * 100 = ? "...
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Var a: Real; n: Integer;
Begin
a:=443.432;
a:=(a-440)*100;     //  a = (443.432 - 440) * 100 = сколько..?    Вы думали 343.2..?   А нифига:
ShowMessage(FloatToStr(a));    //  a = 343.200000000002     Х_х
End;

UpDate

Эх... По-видимому там в хвосте числа появляется какой-то мусор из памяти... Откуда он и как от его избавиться?
Так бы моя версия программы работала.....
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 17.05.2009 в 15:10. Причина: UpDate
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 10:46   #84
Карабин
Пользователь
 
Аватар для Карабин
 
Регистрация: 01.04.2009
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Вы наверняка пытаетесь вывести какое-то промежуточное значение (tmp или tmp2).

Откуда 15? о_О Вы же вводите 11.05

Скажите: что вы хотите вывести, кроме последней цифры?
Мне, человеку это известно, что говорит о том, что 11.05 в квадрете не может дать 225. 225 получается, если возвести в квадрат 15.
А вообще, я пока спал, пришёл к выводу, что если М у меня в программе выводит значение num, а num число 2/5 у вас и любое заданное пользователем у меня (например, 11.05), то программа должна была показать М=11.05, а уж точно не 225, так как во время работы программы ни пользователь, ни программа не меняет фактическое исходное число, только получают 3 новых числа - последнюю цыфру от исходного числа, квадрат числа, последнюю цыфру от квадрата числа.
Сократ: "Я знаю, что ничего не знаю".
Карабин вне форума Ответить с цитированием
Старый 17.05.2009, 11:46   #85
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Карабин, Так что вы хотите вывести-то? Квадрат исходного числа? Ну так у вас же число в num? И оно оттуда никуда не девается. Вот и возведите его в квадрат:
Код:
num := sqr(num);
writeln('Square of number is ',num:0:17);
DomiNick, хм.. что-то Делфи с точностью мудрит.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 12:11   #86
Карабин
Пользователь
 
Аватар для Карабин
 
Регистрация: 01.04.2009
Сообщений: 27
По умолчанию

Sazary, дело в том, что я думаю программа неверно считает, так как я задал число num:=11.05 , а на экране получилось что num=M=225, хотя я задал в конце программы оператор вывода writeln('M=',num:0:17) .
Из того, что я знаю, вообще 0 - количество цыфр слева от запятой, а 17 - количество цыфр справа от запятой. Как вообще программа выдала значение num=M=225 ?
Сократ: "Я знаю, что ничего не знаю".
Карабин вне форума Ответить с цитированием
Старый 17.05.2009, 12:18   #87
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а на экране получилось что num=M=225, хотя я задал в конце программы оператор вывода writeln('M=',num:0:17) .
Вот результат работы:
Код:
11.05
Last digit: 5
Last digit is: 5
Square of number is 122.102500000000000
Все верно.

Посмотрите пост 85 и проверьте, не делаете ли вы в конце что-нибудь лишнее (например, лишнее преобразование из строки в число)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 14:38   #88
Jora_Kornev
Пользователь
 
Аватар для Jora_Kornev
 
Регистрация: 06.01.2009
Сообщений: 72
По умолчанию

вот это да! столько постов на такую прокраммку - круть))
ася: тристадевяносто 068 ноль восемь шесть
Jora_Kornev вне форума Ответить с цитированием
Старый 17.05.2009, 15:08   #89
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Сообщение от Jora_Kornev Посмотреть сообщение
вот это да! столько постов на такую прокраммку - круть))
Моя версия была бы ещё проще, если б Делфи/Паскаль считали правильно...

Цитата:
Сообщение от Sazary Посмотреть сообщение
DomiNick, хм.. что-то Делфи с точностью мудрит.
Сделал то же на Паскале... Там местами даже похуже бывает...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 15:12   #90
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Бррр..)) Какие тут дебаты))) Программа правильно работает, в пределах погрешности, которую мы вчера с Sazary обсуждали =) Тут уже говорить не о чем больше =)
Цитата:
Ну давайте посчитаем, например, это: " 443.432 - 440 = ? "...
showmessage(floattostr((443.432-440)*100)); = 343.2 =) А какой делфи у вас? у меня delphi 7
Цитата:
Апичатка...
"числа, оканчивающегося на 2, последней цифрой квадрата будет 4.."
да, ошибся) спасибо)
Uguu~
__STDC__ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти сумму цифр, состовляющих числа. babaika Общие вопросы C/C++ 4 29.12.2008 08:58
Найти первую цифру в данных ячейки.. kra183 Microsoft Office Excel 11 09.05.2008 01:35
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
двузначные числа которые при умножении на 3 будут заканчиваться на цифру 4 Ases_51 Паскаль, Turbo Pascal, PascalABC.NET 4 13.01.2008 11:37
как найти корень из числа $Дмитрий Общие вопросы Delphi 7 26.04.2007 13:40