Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 19:50   #1
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
Вопрос

Вычислить значения t, соответствующие каждому значению х (xn<=x<=xk , шаг изменения x равен dx) по формуле .Вычислить сумму значений y, произведение отрицательных y, количество отрицательных y. Контрольный расчёт провести при a=5.41, xn=-5, xk=5, dx=1.

Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;

Var xn, xk, dx,a,b,x,t,s,q,p:double;
k:byte;
begin
Write(' a = ');
Readln(a);
Write(' b = ');
Readln(b);
Write(' xn = ');
Readln(xn);
Write(' xk = ');
Readln(xk);
Write(' dx = ');
Readln(dx);
write(' x=');
readln(x);
s:=0;
k:=0;
begin
if (x<0) then writeln('Net reshenia');
While (xk>=xn) do
begin
if (xn>0) then
begin
t:=(a+(b/x))*sqrt(x);
q:=(a+ln(b+x))*(a+ln(b+x));
if (q=0) then writeln('DeJLeHue HA HoJLb!') else t:=t/q;
s:=s+t;
inc(k);
if (t<0) then p:=p*t;
//end;
end;
xn:=xn+dx;

end;
Writeln(' cymma t>1 = ',s:7:3);
Writeln(' IIpou3BeDeHue t<1 = ', p:7:2);
Writeln(' koJLu4ectBo t>2 = ', k:3);
Readln;
end;
end.
Помогите я правильно решил?

Код:
program Project115;

{$APPTYPE CONSOLE}

uses
  SysUtils,Math,Windows;
var
a,b,x,z:double;
nach,kon,shag:double;
s,p:double;
k:byte;

begin
Write('Vvedite a=');
Readln(a);
Write('Vvedite b=');
Readln(b);
Write('Vvedite Shag=');
Readln(shag);
Write('Vvedite Nach Znach=');
Readln(nach);
Write('Vvedite Kon Znach=');
Readln(kon);

x:=nach;
s:=0;
p:=1;
k:=0;
while x<=kon do
begin
 if (x>0) then if (a>0) then
begin
  z:=(a+b/x)*sqrt(x)/(a+ln(b+x))*(a+ln(b+x));
 s:=s+z;
 p:=p*z;
end;
 inc(k);
if (p=1) and (s=0) then Writeln('Raschet pri x=',x:4:1,' Ne Vozmogen!') else writeln('raschet pri x=',x:4:1,' z=',z:8:3);
 x:=x+shag;
end;
writeln('Summa = ',s:7:3);
writeln('Proizvedenie = ',p:7:2);
writeln('Kol-vo = ',k:3);
readln;
end.
Помогите, как сделать чтобы при вводе отрицательного b не выкидывало из программы.

Последний раз редактировалось Stilet; 02.07.2009 в 09:10.
Doublefaced вне форума Ответить с цитированием
Старый 01.07.2009, 20:27   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
repeat 
Write('Vvedite b=');
Readln(b);
until b > 0;
как-нибудь так..
вообще говоря, проблема в аргументе логарифма... можно как-нибудь так
Код:
 if (x>0) and (a>0) and (b>0) then
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 01.07.2009, 20:29   #3
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

А можно сделать что-то типа такого
Код:
if (x>0) then if (a>0) then
Doublefaced вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
циклы Кирилл17 Помощь студентам 4 30.10.2009 20:59
Циклы Evgo Помощь студентам 1 17.06.2009 10:30
Циклы NDR777 Общие вопросы Delphi 9 06.02.2009 14:11
Циклы }{oт@бь)ч Общие вопросы Delphi 4 05.02.2009 16:41
циклы. Кирилл17 Помощь студентам 6 24.12.2008 03:23