Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме 20000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2009, 07:43   #11
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Видимо, в особенностях работы плавающей точки.

n:=(exp(n*ln(2))); — это ненадёжный способ вычисления степени, когда нужно целое число. Хоть бы Round его, что ли.

UPD: Степень двойки можно вычислять как 1 shl power
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/

Последний раз редактировалось OCTAGRAM; 26.03.2009 в 07:46.
OCTAGRAM вне форума Ответить с цитированием
Старый 26.03.2009, 08:07   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Видимо, в особенностях работы плавающей точки.
Нет это глюк самого Скулпака. У меня такое было, я тогда просто паскаль другой достал
Цитата:
это ненадёжный способ вычисления степени, когда нужно целое число
.
Че так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2009, 08:13   #13
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нет это глюк самого Скулпака.
Нет, это глюк программиста. Я как программист, недоволен этим кодом. И будь я преподом, я бы докопался, и тот факт, что в NTVDM всё работает, не спас бы.

Четвёрка на разных CPU&RTL округляется чуть влево или чуть вправо. В данном случае это как раз хорошо видно. Если посмотреть, как составлена программа, то мелкая особенность CPU становится определяющей. Нельзя так программы писать. Плавающая точка — она и есть плавающая.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/

Последний раз редактировалось OCTAGRAM; 26.03.2009 в 08:18.
OCTAGRAM вне форума Ответить с цитированием
Старый 26.03.2009, 08:28   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
И будь я преподом, я бы докопался
Ну и здря. Нормальный код (тем паче для студента), я его проверил на своем ТР71 выдает 24, как и положенно.

Хотя конечно Борландовцы перестраховавшись всетки доработали это выражение в функции Power в Делфи.

P.S. Кста автор может попробовать включить эмуляцию 8087 на совем паскале.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2009, 08:45   #15
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну и здря. Нормальный код (тем паче для студента)
Неа. Не нормальный.

Код:
n:=(exp(n*ln(2)));
while k<n do
{...}
ln(2) считает с погрешностью, n * ln(2) считает с погрешностью, exp(n * ln(2)) считает с погрешностью. И Бог с ней, с погрешностью, но ведь следующий оператор «while k<n do» явно испытывает судьбу.

При желании можно найти обратный вариант, где в School Pak будет работать, а в NTVDM — нет. Вот, например, чтобы далеко не ходить, вычислим–ка (8 - 2^n)! при n=2:

Код:
program faktorial;
var n,s,k: real;
begin
write('Введите n ');
readln(n);
s:=1; k:=1; n:=8 - (exp(n*ln(2)));
while k<n do
begin
k:=k+1;
s:=s*k;
end;
writeln(n);
writeln('Ответ ',s:0:1);
end.
В School Pak ответ 24, «как и положено».

Цитата:
Сообщение от Stilet Посмотреть сообщение
я его проверил на своем ТР71 выдает 24, как и положенно.
У меня NTVDM ни на одной машине под рукой нет, так что не смогу проверить. Но что–то мне подсказывает, в NTVDM с хорошей вероятностью будет 120.


Кстати, можно ещё потестить изначальный пример на разных n. По–любому где–нибудь отклонится в другую сторону.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 26.03.2021, 18:40   #16
Cherepachka
Новичок
Джуниор
 
Регистрация: 26.03.2021
Сообщений: 1
По умолчанию

Здравствуйте. Ребенок начал изучать программирование в школе. На Виндоус 10 смогли установить только school pak. Сам Паскаль работает, но при запуске программы на выполнение, результат на экран не выводится. Все команды в меню Компиляция перепробовали и Сброс главного экрана делали. Бестолку. Результат на экран не выводится.
Но ведь так не должно быть!
Как настроить school pak чтобы больше эта проблема не повторялась? Помогите очень нужно.
Cherepachka вне форума Ответить с цитированием
Старый 26.03.2021, 18:50   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,176
По умолчанию

Покажите код программы. У вас точно открыто окно "Вывод" (Отладка - Вывод)?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.03.2021, 20:24   #18
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,163
По умолчанию

вангую что выводится, но только окно закрывается.
Readln; перед End. надобно
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.03.2021, 23:39   #19
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,864
По умолчанию

Цитата:
На Виндоус 10 смогли установить только school pak.
Т.е. пробовали и другое, но просто никак?
В списке литературы есть ссылки на книгу "Песни о Паскале".

Если внимательно почитаете, и отбросите версию Pascal ABC (очень много нареканий на форумах), то сможете поставить и Free Pascal или Lazarus.
Это бесплатные среды и нормально работают в среде Windows 10.

Pascal - это требование преподавателя? В ЕГЭ есть и Python.

В дополнение могу порекомендовать книгу Т.А. Павловская, Программирование на ЯВУ, Паскаль.
Искать там-же.

PS: Не вижу смысла изучать среду, которой нет в ВУЗе. Или я чего-то недопонимаю ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ини файл ошибка(глюк или что?) dr.Chas Общие вопросы Delphi 10 18.06.2008 07:09
Класс или тип (сам не знаю) WOLFak Общие вопросы Delphi 6 27.03.2008 00:20
Глюк )) theos О форуме и сайтах клуба 9 08.01.2008 17:44
Глюк? Или я туплю? Nick93.93 Общие вопросы Delphi 6 04.03.2007 14:28


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS