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

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

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

 
 Ответить  Открыть новую тему 
> Программа с циклом, Помогите пожалуйста
goosberry
сообщение 27.03.2009 22:13
Сообщение #1


Новичок
*

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

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


Задание такое: определить во сколько раз произведение положительных значений функции отличается от модуля произведения отрицательных значений функции y=((x^3)-1)sin2x на отрезке изменения аргумента от xn до xk с интервалом h.
В общем, я частично написала, а вот про произведение значений что-то никак не соображу. Помогите пожалуйста))

program zadacha;
uses
crt;
var x,y,xn,xk,h:real;
pol,otr:integer;
begin
write('x nachalnoye= ');
readln (xn);
write('x konechnoye= ');
readln (xk);
write('chag= ');
readln (h);
pol:=0;
otr:=0;
x:=xn;
while x<xk do
begin
y:=(sqr(x)*x-1)*sin(2*x);
if y<0 then otr:=otr+1 else pol:=pol+1;
writeln('x= ',x:3:3, ' y= ', y:3:3);
x:=x+h;
end;
readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.03.2009 23:35
Сообщение #2


Гость






Цитата
В общем, я частично написала
А зачем ты считаешь количество положительных и отрицательных значений? Тебе надо посчитать их произведения, и потом посмотреть, во сколько раз одно произведение больше другого (т.е., чему равно отношение pol/|otr|):
var pol, otr: real;
...
pol:=1; { все-таки, подсчет произведений, а не сумм }
otr:=1;
x:=xn;
while x<xk do
begin
y:=(sqr(x)*x-1)*sin(2*x);
if y<0 then otr:=otr*y else if y > 0 then pol:=pol*y;
writeln('x= ',x:3:3, ' y= ', y:3:3);
x:=x+h;
end;
{ Ну вот, произведения посчитаны, теперь находим pol / abs(otr) }

вроде бы нулевых значений ни в pol ни в otr быть не должно после "двойной" проверки - сначала на (y < 0), потом на (y > 0)...
 К началу страницы 
+ Ответить 
goosberry
сообщение 28.03.2009 9:15
Сообщение #3


Новичок
*

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

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


Цитата(volvo @ 27.03.2009 23:35) *

А зачем ты считаешь количество положительных и отрицательных значений? Тебе надо посчитать их произведения, и потом посмотреть, во сколько раз одно произведение больше другого (т.е., чему равно отношение pol/|otr|):

Эм...это я просто с другой проги своей скопировала...не посмотрела...
Спасибо большое за всё give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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