![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
serg |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача вычислить значение y соответствующие каждому значению х(хn<=x<=xk,шаг изменения равен dx) по формуле у=корень третей степени из((abs(a-sqr(x))*ln(a+x))деленное на (корень третей степени из sqr(x) +корень 5ой степени из a).вычислить сумму значений у,произведение отрицательных у,кол-во отрицательных у,контрольный расчет провести при а=2.17,xn=-1.5.dx=0.2
МОя задача: program afg; uses crt;
var x,y,pro,sum,otr:extended;i:integer;
begin
pro:=1;otr:=0;
sum:=0;x:=-1.5;
while x<=0.2 do begin
y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5);
sum:=sum+y;
if y<0 then otr:=otr+1;pro:=pro*y;
end;
write('pro= ',pro:10:3,'otricatelnyh= ',otr,'summa= ',sum:10:3);
readkey;end.
помогите найти ошибку( |
serg |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите!
|
Ozzя |
![]()
Сообщение
#3
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
"каждому значению х(хn<=x<=xk,шаг изменения равен dx)"
Вот это ты не делаешь. У тебя в программе нет изменения x y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5); И при значении x=-1.5 сразу выкидывает с ошибкой. Проверяй правильно ли написал формулы. По той записи, что ты привел, понять затруднительно. |
serg |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
"каждому значению х(хn<=x<=xk,шаг изменения равен dx)" Вот это ты не делаешь. У тебя в программе нет изменения x y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5); И при значении x=-1.5 сразу выкидывает с ошибкой. Проверяй правильно ли написал формулы. По той записи, что ты привел, понять затруднительно. dx -шаг есть изменения,сейчас выложу формулу |
serg |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот формула
Эскизы прикрепленных изображений ![]() |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
В твоем случае нельзя пользоваться формулой
xa = Exp(a*Ln(x)) для вычисления кубического корня в числителе, поскольку под корнем отрицательное число(Ln(a+x) = Ln(2.17-1.5) = Ln(0.67) = -0.4, умноженное на модуль - в любом случае будет отрицательный результат), а Ln() от отрицательного числа - "это фантастика" (С). Пользуйся другим методом... Например, проверяй, является ли подкоренное выражение отрицательным потом вычисляй кубический корень из МОДУЛЯ, а знак результата устанавливай в зависимости от проверки на отрицательность... |
![]() ![]() |
![]() |
Текстовая версия | 17.07.2025 19:03 |