Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 25.11.2011
Сообщений: 36
1

Дэльфи, большая формула, нужно составить прогу для ее вычисления.

24.03.2012, 13:24. Показов 2107. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить программу для вычисления заданной формулы с обработкой исключений.

u=\frac{\sqrt[3]{8+\left|x-y \right|^2+1}}{x^2+y^2+2}-e^{\left|x-y\right|}\left(tg^2z+1\right)^x

Есть аналог другой программы, вот он:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Button1Click(Sender: TObject);
var x,y,z,v,s,d,t,cs:Real;
i,n:Integer;
begin
try
x:=strtoint(e1.text);
y:=strtoint(e2.Text);
z:=strtoint(e3.Text);
s:=1+sqr(sin(x+y));
d:=x-((2*y)/(1+(sqr(x)*sqr(y))));
cs:=Sqr(Cos(1/sqr(Cos(1/z))));
n:=strtoint(e2.text);
for i:=0 to n do
x:=x*x;
v:=(s/d)*x+cs;
e4.Text:=FloatToStr(v);
except
on EZeroDivide do
ShowMessage('ошибка деления на 0');
on eMathError do
ShowMessage('ошибка с плавающей точкой 0');
end;
end;
Но я не могу формулу свою туда запилить, поможете?) Кстати вот форма:
Миниатюры
Дэльфи, большая формула, нужно составить прогу для ее вычисления.  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2012, 13:24
Ответы с готовыми решениями:

Вычисления суммы ряда. Формула. Дэльфи турбо
Всем привет, недавно начал писать на дельфи, в институте паскаль променяли на него. Нужно написать...

Составить программу для вычисления суммы ряда с заданной точностью e, если известна формула
Не могу вписать формулу в Паскаль Составить программу для вычисления суммы ряда с заданной...

Нужно составить формулу для вычисления
Нужно в формулах прогнать этот алгоритм с выводом ответа

Нужно составить программу для вычисления функции
Нужно составить программу для вычисления функции F(x)= { x^2, если 0< или = x < или = 3, ...

17
2 / 2 / 1
Регистрация: 25.11.2011
Сообщений: 36
24.03.2012, 13:43  [ТС] 2
Извините вот формула, а то сверху неправильно сделал.

https://www.cyberforum.ru/cgi-bin/latex.cgi?u=\frac{\sqrt[3]{8+\left|x-y \right|^2+1}}{x^2+y^2+2}-e^{\left|x-y\right|}\left(tg^2z+1\right)^x

Добавлено через 38 секунд
Да блин, почему не отображается формула??? Написано только u= и все!!!!!(((((
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 13:58 3
Kosss, есть скриншот формулы? Залейте его сюда.
1
2 / 2 / 1
Регистрация: 25.11.2011
Сообщений: 36
24.03.2012, 14:00  [ТС] 4
Вот, добавил
Миниатюры
Дэльфи, большая формула, нужно составить прогу для ее вычисления.  
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 14:22 5
Формула выглядит так:
Delphi
1
2
3
4
s:=exp(ln(8+sqr(abs(x-y))+1)*1/3);
d:=sqr(x)+sqr(y)+2;
cs:=exp(abs(x-y))*exp((sqr(sin(z))/sqr(cos(z))+1)*x);
v:=(s/d)-cs;
Сейчас глянем на решение.

Добавлено через 11 минут
А какие тут могут быть исключения?
В знаменателе 0 никогда не будет,т.к. квадраты любое число в положительное превращают. В числителе тоже отрицательного числа под корнем не будет, т.к. мало того что x и y в квадрате, так и еще и под модулем.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var x,y,z,v,s,d,t,cs:Real;
i,n:Integer;
begin
try
x:=strtoint(edit1.text);
y:=strtoint(edit2.Text);
z:=strtoint(edit3.Text);
s:=exp(ln(8+sqr(abs(x-y))+1)*1/3);
d:=sqr(x)+sqr(y)+2;
cs:=exp(abs(x-y))*exp((sqr(sin(z))/sqr(cos(z))+1)*x);
n:=strtoint(edit2.text);
for i:=0 to n do
v:=(s/d)-cs;
edit4.Text:=FloatToStr(v);
except
on EZeroDivide do
ShowMessage('ошибка деления на 0');
on eMathError do
ShowMessage('ошибка с плавающей точкой 0');
end;
end;
1
2 / 2 / 1
Регистрация: 25.11.2011
Сообщений: 36
24.03.2012, 14:30  [ТС] 6
Цитата Сообщение от BumerangSP Посмотреть сообщение
Формула выглядит так:
Delphi
1
2
3
4
s:=exp(ln(8+sqr(abs(x-y))+1)*1/3);
d:=sqr(x)+sqr(y)+2;
cs:=exp(abs(x-y))*exp((sqr(sin(z))/sqr(cos(z))+1)*x);
v:=(s/d)-cs;
Сейчас глянем на решение.

Добавлено через 11 минут
А какие тут могут быть исключения?
В знаменателе 0 никогда не будет,т.к. квадраты любое число в положительное превращают. В числителе тоже отрицательного числа под корнем не будет, т.к. мало того что x и y в квадрате, так и еще и под модулем.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var x,y,z,v,s,d,t,cs:Real;
i,n:Integer;
begin
try
x:=strtoint(edit1.text);
y:=strtoint(edit2.Text);
z:=strtoint(edit3.Text);
s:=exp(ln(8+sqr(abs(x-y))+1)*1/3);
d:=sqr(x)+sqr(y)+2;
cs:=exp(abs(x-y))*exp((sqr(sin(z))/sqr(cos(z))+1)*x);
n:=strtoint(edit2.text);
for i:=0 to n do
v:=(s/d)-cs;
edit4.Text:=FloatToStr(v);
except
on EZeroDivide do
ShowMessage('ошибка деления на 0');
on eMathError do
ShowMessage('ошибка с плавающей точкой 0');
end;
end;
о, спасибо, наверно поэтому не мог сделать, с формулами у меня совсем плохо.. Спасибо большое) Очень помогли)
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 15:54 7
BumerangSP, очень простые исключения, при z=π/2+π*N tg(z)=+∞ ...
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 15:57 8
Psilon, не совсем понятно, что здесь имеется в виду. Чтобы найти исключения, достаточно написать ОДЗ для этих 3-х кусков.
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 15:59 9
BumerangSP, тангенс , равный пи пополам и через каждые полпериода дает +inf...

Алсо, автор, если будете использовать эту форму, советую убрать из лейбла (где написано ничего не вводить) весь текст и поставить атрибут readonly:=true;
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 16:02 10
Psilon, inf - это что-то с верхними гранями? Лучше, наверно, автору сразу исправленный код выложить
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 16:04 11
BumerangSP, вы школьную математику не помните? Что происходит при делении на ноль? А теперь вспоминаем, что tg(z)=sin(z)/cos(z) и чему равен cos(pi/2). А что касается автора, достаточно проверку сделать в вычислениях try except, потому что условие на кратность трансцендентному числу довольно муторное получится...
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 16:06 12
Psilon,

Не по теме:

ах, вон Вы о чем:) Хотя, по сути, его ведь не должно быть, будь в паскале тангенс.

1
2 / 2 / 1
Регистрация: 25.11.2011
Сообщений: 36
24.03.2012, 16:08  [ТС] 13
Из вышесказанного я половину не понял(( Что изменит атрибут ReadOnly ???
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 16:18 14
Kosss,
Delphi
1
2
3
4
5
6
try
<работа с выражением, содержащим тангенс>
except
showmessage('boom');
exit;
end;
А readonly запретит редактирование с клавиатуры (если вам не надо туда с клавы записывать, гораздо лучше это запретить, чем просить пользователя этого не делать...)

Добавлено через 5 минут
BumerangSP, попробуйте ввести и посмотреть результат:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program Project1;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
math;
 
begin
//Можно написать writeln(tg(pi/2):1:4); и вылетать не будет, но ответ все равно неправильный будет
writeln(1/sin(0):1:4); 
readln;
end.
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 16:23 15
Psilon, я итак понял, о чем Вы. Просто еще раз повторю: делал на основе ОДЗ примера, который был выложен автором. Не программно проверял ошибки. Поэтому и не учел. Тангенс как-то на автомате уже заменяется синус/косинус, поэтому внимания не обратил. Это не незнание, это элементарная невнимательность.
2
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 16:33 16
BumerangSP, да ничего страшного, просто вы так уверенно сказали "да какие ОДЗ", к тому же не понял ,при чем тут "программная" проверка
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.03.2012, 17:32 17
да какие ОДЗ

Не по теме:

Я прям так не говорил:)

1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.03.2012, 17:44 18
BumerangSP,
Цитата Сообщение от BumerangSP Посмотреть сообщение
А какие тут могут быть исключения?
1
24.03.2012, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2012, 17:44
Помогаю со студенческими работами здесь

Выбрать алгоритм и составить его блок-схему для вычисления значения указанной функции.Составить программу вычисления
Пожалуйста,помогите!!!

Объясните пожайлуста, нужно составить программу для вычисления значений функции для различных значений аргумента
Дано функция, отрезок функции и &quot;количество узлов&quot;.Зачем здесь узлы и что мне с ними делать?

нужно составить программу для вычисления с точностью золотого сечения q, используя представление q в виде бесконечного корня:
Составить программу для вычисления с точностью золотого сечения q, используя представление q в...

Итерационная формула. Составить программу вычисления суммы и печати таблицы чисел по итерационной формуле
Составить программу вычисления суммы и печати таблицы чисел по итерационной формуле. p0 = 1, p1 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru