Пожалуйста помогите решить эту функцию!
Функция: y:=ax+sin(at)/sqrt(2t+Exp(-0,5x*Ln(e))
X: интервал: x [от 1; до 2]; шаг: 0,3
Y: интервал: t [от 1; до 2]; шаг: 0,3
Исходные данные: a:=0,7
что значит "решить функцию"?
написать программу, вычисляющую ее? найти минимум/максимум из этих точек? найти, где функция равна нулю? построить график?....
в общем, я не ясновидящая
Составить программу, используя вложенные операторы цикла с предусловием.
Поиск -> Табулирование функции, ну а условия, после ввода данных проверй это :
1) e >= 1 (для логарифма)
2) 2t+Exp(-0,5x*Ln(e) > 0 (чтобы не возникло деление на 0 + корень из отрицательного)
Второе суловие возможно придется проверять и в цикле ...
Хотелось бы увидеть программу в готовом виде.
Таких программ как ты выразился "в готовом виде" на форуме куча, и писать еще одну такуюже специально для тебя никто не собирается, читай предыдущий мой пост.
Поиск и еще раз поиск, что-то не получится ? Поможем.
Умоляю подскажите что не так!!!
Program 1;
begin
y:=ax+sin(at)/sqrt(2t+Exp(-0,5x*Ln(e));
end;
Const
a:double = 1;
b:double = 2;
step:double = 0,3;
eps:double = 0.00001;
Var
x,r:double;
begin
x:=a;
while
(b-x)>eps do begin
r:=f1(x);
writeln®;
x:=x+step
end;
readln
end.
начнем с того, что надо использовать теги!
по тексту программы - это что за новая структура:
1. тело программы
2. const,var
3. продолжение тела.
это не с++, а паскаль.
переменные объявляются до всех бегинов/эндов. или оформляй эту бяку как подпрограмму, используя зарезервированные слова "функция" или "процедура".
В общем чувствуется тут опять может на 30 постов все дело разойтись, так подойдет ?
uses crt;
const
a = 0.7;
step = 0.3;
function F(x, t: Single): Single;
begin
F := a*x + sin(a*t) / sqrt(2*t + exp(-0.5*x * ln(exp(1))));
end;
var
x, t: Single;
begin
clrscr;
x := 1;
writeln('x':3, 't':9, 'F(x, t)':13);
while (x <= 2) do begin
t := 1;
while (t <= 2) do begin
if (2*t + exp(-0.5*x * ln(exp(1))) > 0) then
writeln(x:3:3, t:9:3, F(x, t):9:3);
t := t + step;
end;
x := x + step;
end;
readln;
end.
Пожалуйста подскажите где ошибка:
Program Sm;
uses crt;
var
x,t:Single;
const
a=0.7;
step=0.3;
Function F(x,t:Single):Single;
begin
F:=a*x+sin(a*t)/sqrt(2*t+exp(-0.5*x*ln(exp(1))));
end;
begin
clrscr;
x:=1;
writeln('x':3,'t':9,'F(x,t)':13);
while (x <= 2) do begin
t:= 1;
while (t <= 2) do begin
if (2*t+exp(-0.5*x*ln(exp(1)))>0) then
writeln(x:3:3, t:9:3, F(x,t):9:3);
t:=t+step;
end;
x:=x+step;
end;
readln;
end.
Огромное спасибо за помощь. И огромная благодарность Андрею(klem4)!!!
И последний вопрос. Что значит строчка Function F(x,t:Single):Single;
Читай документацию:
http://zeus.sai.msu.ru:7000/programming/bp70_lr/lr1.shtml#6
Уважаемые програмисты! Не могли бы вы из этой программы убрать функции. Очень надо!!!
P.S. Сам пытался - не получилось. Вся надежда на вас!
ВСЕ? sin, exp,ln...?
Тут нет функций... Она всего одна в программе.
Как пытался убрать, покажи...
Пожалуйста :
{$N+}
Program Sm;
uses crt;
var
x,t,F:Single;
const
a=0.7;
step=0.3;
begin
F:=a*x+sin(a*t)/sqrt(2*t+exp(-0.5*x*ln(exp(1))));
end.
begin
clrscr;
x:=1;
writeln ('x':3,'t':9,'F(x,t)':13);
while (x <= 2) do begin
t:= 1;
while (t <= 2) do begin
if (2*t+exp(-0.5*x*ln(exp(1)))>0) then
writeln (x:3:3, t:9:3, F(x,t):9:3);
t:=t+step;
end;
x:=x+step;
end;
readln;
end.
а ничего, что к моменту подсчета еще не заданы значения х и t?
поищи, где вызывается функция, и примерно в тот район вставь F:=a*x+sin(a*t)/sqrt(2*t+exp(-0.5*x*ln(exp(1))));
Заработала! Вот только правильно ли?
{$N+}
Program Sm;
uses crt;
var
x,t,F:Single;
const
a=0.7;
step=0.3;
begin
clrscr;
x:=1;
writeln ('x':3,'t':9,'F(x,t)':13);
while (x <= 2) do begin
t:= 1;
F:=a*x+sin(a*t)/sqrt(2*t+exp(-0.5*x*ln(exp(1))));
while (t <= 2) do begin
writeln (x:3:3, t:9:3, F:9:3);
t:=t+step;
end;
x:=x+step;
end;
readln;
end.
Юля, а ничего, что там после вычисления F и End-а стояла точка, т.е. все остальное в принципе не компилировалось?
{$N+}
Program Sm;
uses crt;
var x,t,F:Single;
const
a=0.7;
step=0.3;
begin
clrscr;
x:=1;
writeln ('x':3,'t':9,'F(x,t)':13);
while (x <= 2) do begin
t:= 1;
while (t <= 2) do begin
F:=a*x+sin(a*t)/sqrt(2*t+exp(-0.5*x*ln(exp(1))));
writeln (x:3:3, t:9:3, F:9:3);
t:=t+step;
end;
x:=x+step;
end;
readln;
end.
Всё работает! И без функции! Как мне поставить тебе + к репутации?