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

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

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

> паскаль и алгебра, помогите плиз привести в нужный язык
candy888
сообщение 31.08.2011 20:20
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 11)
IUnknown
сообщение 31.08.2011 22:43
Сообщение #2


a.k.a. volvo877
*****

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

Репутация: -  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 
 К началу страницы 
+ Ответить 
candy888
сообщение 31.08.2011 23:36
Сообщение #3





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

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


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

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


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

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

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


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

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


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





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

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


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


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

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

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


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

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


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


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

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

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


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

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


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


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

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

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


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

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


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


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

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

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


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

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

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

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

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


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


Гость






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

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


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

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

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


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


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


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

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

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


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



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

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

 



- Текстовая версия 4.06.2024 14:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"