IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> паскаль и алгебра, помогите плиз привести в нужный язык
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Привет всем. Необходимо перевести формулу та что на картинке в язык паскаля. что то с алгеброй туго, ни как не могу сообразить как правильно разобраться с логарифмами в паскале.
вот что сам накидал, но вроде не правильно.
Код
Program chast1;
var a,b,y:real;
begin
Write('Введите b=');
Readln (b);
a:=(ln(ln(b)+b))/ln(10);
y:=(1/(Pi*(Sqr(a)+Sqr(b))))*((3*sin(Sqr(a)+Sqr(b)))*sin((Sqr(a)+Sqr(b))+2*((Sqr(a)+Sqr(b)))));
Writeln('a=',a);
Writeln ('y=',y);
end.


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
((3*sin(Sqr(a)+Sqr(b)))*sin((Sqr(a)+Sqr(b))
Откуда взялось выделенное красным? Этого не было на картинке. А вот квадратный корень - был, а у тебя он отсутствует.

Вообще, лучше бы упростить выражение: введи еще одну переменную, скажем Z = A2 + B2, и все сразу станет гораздо проще:

a:=(ln(ln(b)+b))/ln(10);
z := sqr(a) + sqr(b);
y:=(1 / (Pi * Sqrt(z)) * sin(z) * sqr(sin(z));
Writeln('a=',a);
Writeln ('y=',y);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Тоесть правильная формул для sin^3 (a^2 + b^2) бужет такая sin(a^2+b^2)* (sin(a^2+b^2))^2 ???
так что ли?а то я сейчас запутался что с логарифмами сперва, скачл маткад уже там попробовал-по ходу с логарифмом разобрался. остался вопрос по формуле синус в кубе преобразовать.
Спасибо за подсказку!!!
как кстати а форуме плюсики людям ставить?

Сообщение отредактировано: candy888 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Я бы, наверное, предварительно присвоил бы значение синуса некоторой переменной, а потом уже возводил бы в куб как a*Sqr(a). Зачем заставлять машину два раза считать функцию?

Цитата(candy888 @ 1.09.2011 0:36) *
как кстати а форуме плюсики людям ставить?
Я поставил. Сам сможешь после набора 5 постов (зеленый плюсик под ником и аватаром, слева)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


СПАСИБО ТОВАРИЩИ!!!Очень помогли!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> Зачем заставлять машину два раза считать функцию?

Действительно, зачем компилятор заставляет машину два раза считать функцию, а человека - вручную кешировать результат функции?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 1.09.2011 10:23) *
Действительно, зачем компилятор заставляет машину два раза считать функцию, а человека - вручную кешировать результат функции?
Это неизбежные издержки. Была бы функция для куба или хотя бы для степени - этого делать было бы не нужно в данном случае. А так - приходится выбирать "меньшее из зол". Выделенные болдом слова являются ключевыми. Не в этом, так в другом случае придется что-то "кешировать". Сама по себе математическая запись тоже не идеальна. Все доказательства пестрят словами "обозначим это выражение через Q". И что это, по-твоему, как не "кеширование"? ))

Сомневаюсь, что возможно сделать компилятор, который будет совершенно свободен от этого "недостатка". Оптимизация, конечно, может это учесть (то есть, минимизировать количество вычислений для данного конкретного случая) - но, мне кажется, ты, Тарас, первый взвоешь от такой оптимизации (извини за переход на личности)).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> но, мне кажется, ты, Тарас, первый взвоешь от такой оптимизации (извини за переход на личности)).

Почему?
Я всё равно оптимизированные версии для отладки не использую (только на асмовыхлоп смотрю, что там компилятор насочинял), а отключать оптимизации для отладки всегда можно.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 2.09.2011 9:56) *
Почему?
Я всё равно оптимизированные версии для отладки не использую (только на асмовыхлоп смотрю, что там компилятор насочинял), а отключать оптимизации для отладки всегда можно.

Ладно, оставим личности (не очень удачная была шутка, но такое уж у меня сложилось мнение о тебе)).

Отключить оптимизацию на отладке? Хорошо. Но если баг как раз в оптимизации?

Допустим, мы делаем на заказ прогу для владельца машинописного цеха, считающую среднее время между нажатиями на клавишу (для оценки скорости работы машинисток)). В цикле вызываем функуцию Time и вычитаем старое (запомненное) значение из нового. На стадии отадки оптимизация отключена. Отладили, все считается правильно. Мы включаем оптимизацию, компилируем и передаем экзешник в эксплуатацию. А назавтра заказчик звонит и мы понимаем из 2% его слов (которые не мат), что результат всегда 0. Угадаешь, почему? smile.gif

Теперь ответь: как компилятор отличит функцию типа sin от функции типа time? То есть - как он разберет, какую можно кешировать, а какую нельзя?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






> Теперь ответь: как компилятор отличит функцию типа sin от функции типа time? То есть - как он разберет, какую можно кешировать, а какую нельзя?

Чем отличаеться синус от функции времени? Ну понятно: синус чистый, и время - нет.
Как определять чистоту функции? Ну можно вшить в компилятор список чистых функций. Можно разрешить составлять новые чистые функции (если они используют только локальные и входные данные и чистые внешние функции).
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Пипец, я вчера умудрился облажаться с мягким знаком.
Это просто эпидемия какая-то, читаю сообщения серьёзных людей, и там тоже повально.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 5.09.2011 12:54) *
Пипец, я вчера умудрился облажаться с мягким знаком.
Это просто эпидемия какая-то, читаю сообщения серьёзных людей, и там тоже повально.
Ну, тебе мы это спишем на то, что клавиши рядом - задел нечаянно )).
А "серьезных людей" тыкать мордой, как котят! Надеюсь, это не относится к посетителям этого форума.. чего тут серьезного?.. и люди тут как люди..



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 8:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name