program Zadanie_1;
Function Ctg(x : single) : single;
begin
Ctg:=cos(x)/sin(x);
end;
var
x, y: Integer;
z : Real;
begin
Write('x=');
ReadLn(x);
Write('y=');
ReadLn(y);
z:=ctg(1+abs(x+y))-Exp(3*Ln(1+abs(x+y)));
WriteLn('ctg(1+x+y)-(1+x+y)^3)= ',z:5:5);
end.
Проблема с задачей
Ввести с клавиатуры x, y и вычислить, используя метод промежуточного аргумента:
z=Ctg(1+|x+y|)-(1+|x+y|)^3
Сделал вот так, но ответ выдает кажется не правильно.
Код:
Что здесь не правильно?
Попробуй посчитать сначала отдельно ctg(1+|x+y|), а потом с помощью цикла (1+|x+y|) в 3-ей. И выводи после общета каждой части!
Все спасибо, я разобрался, я забыл, про то, что синусу и косинусы в радианах выводятся
Код:
[FONT=Courier New]function GradSin(grad : real) : real;
begin
GradSin := sin(grad * Pi / 180);
end;[/FONT]
begin
GradSin := sin(grad * Pi / 180);
end;[/FONT]
3A3-968M, спасибо
Задание: Построить таблицу фунцции "y" на отрезке [a,b] с шагом "h" с приостановкой выдачи результатов через каждые N строк таблицы. Найти максимальное и минимальное значение "y" и сотвествующие им значения аргумента "x".
Y(x)=cos(x)+|coss(x)/sin(x)|
a=-10, b=5, h=0.2, N=15.
Я сделал только часть:
Код:
Program Name_1;
Uses crt;
Var
Fx, x : Real;
Begin
clrscr;
x:=-10;
While x<=5 do
Begin
Fx:=cos(x)+abs(cos(x)/sin(x));
Writeln('y(x)=', Fx:0:10, ' x=', x:0:10);
x:=x+0.2;
End;
Repeat until KeyPressed;
End.
Uses crt;
Var
Fx, x : Real;
Begin
clrscr;
x:=-10;
While x<=5 do
Begin
Fx:=cos(x)+abs(cos(x)/sin(x));
Writeln('y(x)=', Fx:0:10, ' x=', x:0:10);
x:=x+0.2;
End;
Repeat until KeyPressed;
End.
И то "х" выводится не правильно, а как сделать приостановку выдачи через Н строк и вывод мах и мин значения "у" и "х" не знаю =(
Код:
[FONT=Courier New]program ZazSolution;[/FONT]
[FONT=Courier New]uses crt;[/FONT]
[FONT=Courier New]function[/FONT] [FONT=Courier New]CTg(X : Real) : Real;
begin
CTg := Cos(x)/Sin(x); [COLOR=blue]{Calculate cotangent}[/COLOR]
end;[/FONT]
[FONT=Courier New]function F(x : Real) : Real; [COLOR=blue]{<---This is your function}[/COLOR]
begin
F := Cos(x) + Abs(CTg(x));
end;[/FONT]
[FONT=Courier New]var step, x, y : real;
maxX, maxY, a, b : real;
linePos, tableSize : integer;[/FONT]
[FONT=Courier New]begin
linePos := 0;
clrscr;
write([COLOR=blue]'Entry start value of range [a, b]: '[/COLOR]);
readln(a);
write([COLOR=blue]'Entry end value of range [a, b] : '[/COLOR]);
readln(b);
write([COLOR=blue]'Entry step of evaluation : '[/COLOR]);
readln(step);
write([COLOR=blue]'Entry size of visible part of table : '[/COLOR]);
readln(tableSize);
x := a;
while(x <= b) do
begin
y := F(x);
writeln([COLOR=blue]'Y = '[/COLOR], y, [COLOR=blue]'X = '[/COLOR], x);
x := x + step;
Inc(linePos);
if linePos = tableSize then
begin
writeln([COLOR=blue]'Press any key...'[/COLOR]);
readkey;
clrscr;
linePos := 0;
end;
end;
repeat until keypressed;
end.[/FONT]
[FONT=Courier New]uses crt;[/FONT]
[FONT=Courier New]function[/FONT] [FONT=Courier New]CTg(X : Real) : Real;
begin
CTg := Cos(x)/Sin(x); [COLOR=blue]{Calculate cotangent}[/COLOR]
end;[/FONT]
[FONT=Courier New]function F(x : Real) : Real; [COLOR=blue]{<---This is your function}[/COLOR]
begin
F := Cos(x) + Abs(CTg(x));
end;[/FONT]
[FONT=Courier New]var step, x, y : real;
maxX, maxY, a, b : real;
linePos, tableSize : integer;[/FONT]
[FONT=Courier New]begin
linePos := 0;
clrscr;
write([COLOR=blue]'Entry start value of range [a, b]: '[/COLOR]);
readln(a);
write([COLOR=blue]'Entry end value of range [a, b] : '[/COLOR]);
readln(b);
write([COLOR=blue]'Entry step of evaluation : '[/COLOR]);
readln(step);
write([COLOR=blue]'Entry size of visible part of table : '[/COLOR]);
readln(tableSize);
x := a;
while(x <= b) do
begin
y := F(x);
writeln([COLOR=blue]'Y = '[/COLOR], y, [COLOR=blue]'X = '[/COLOR], x);
x := x + step;
Inc(linePos);
if linePos = tableSize then
begin
writeln([COLOR=blue]'Press any key...'[/COLOR]);
readkey;
clrscr;
linePos := 0;
end;
end;
repeat until keypressed;
end.[/FONT]
Думаю то что тебе и надо
Код:
[FONT=Courier New]program ZazSolution;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]uses crt;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]function CTg(X : Real) : Real;
begin
CTg := Cos(x)/Sin(x); [COLOR=blue]{Calculate cotangent}[/COLOR]
end;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]function F(x : Real) : Real; [COLOR=blue]{<---This is your function}
[/COLOR]begin
F := Cos(x) + Abs(CTg(x));
end;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]var step, x, y : real;
maxX, maxY, a, b, minX, minY : real;
linePos, tableSize : integer;[/FONT]
[FONT=Courier New]begin
linePos := 0;
clrscr;
write([COLOR=blue]'Entry start value of range [a, b]: '[/COLOR]);
readln(a);
write([COLOR=blue]'Entry end value of range [a, b] : '[/COLOR]);
readln(b);
write([COLOR=blue]'Entry step of evaluation : '[/COLOR]);
readln(step);
write([COLOR=blue]'Entry size of visible part of table : '[/COLOR]);
readln(tableSize);
x:= a;
maxX := x;
minX := x;
maxY := F(maxX);
minY := F(minX);
while(x <= b) do
begin
y := F(x);
if minY > y then
begin
minY := y;
minX := x;
end;
if maxY < y then
begin
maxY := y;
maxX := x;
end;
x := x + step;
writeln([COLOR=blue]'Y = '[/COLOR], y, [COLOR=blue]' X = '[/COLOR], x);
Inc(linePos);
if linePos = tableSize then
begin
writeln([COLOR=blue]'Press any key...'[/COLOR]);
readkey;
clrscr;
linePos := 0;
end;
end;
writeln([COLOR=blue]'MAX: Y('[/COLOR], maxX, [COLOR=blue]') = '[/COLOR], maxY);
writeln([COLOR=blue]'MIN: Y('[/COLOR], minX, [COLOR=blue]') = '[/COLOR], minY);
repeat until keypressed;
end.[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]uses crt;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]function CTg(X : Real) : Real;
begin
CTg := Cos(x)/Sin(x); [COLOR=blue]{Calculate cotangent}[/COLOR]
end;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]function F(x : Real) : Real; [COLOR=blue]{<---This is your function}
[/COLOR]begin
F := Cos(x) + Abs(CTg(x));
end;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]var step, x, y : real;
maxX, maxY, a, b, minX, minY : real;
linePos, tableSize : integer;[/FONT]
[FONT=Courier New]begin
linePos := 0;
clrscr;
write([COLOR=blue]'Entry start value of range [a, b]: '[/COLOR]);
readln(a);
write([COLOR=blue]'Entry end value of range [a, b] : '[/COLOR]);
readln(b);
write([COLOR=blue]'Entry step of evaluation : '[/COLOR]);
readln(step);
write([COLOR=blue]'Entry size of visible part of table : '[/COLOR]);
readln(tableSize);
x:= a;
maxX := x;
minX := x;
maxY := F(maxX);
minY := F(minX);
while(x <= b) do
begin
y := F(x);
if minY > y then
begin
minY := y;
minX := x;
end;
if maxY < y then
begin
maxY := y;
maxX := x;
end;
x := x + step;
writeln([COLOR=blue]'Y = '[/COLOR], y, [COLOR=blue]' X = '[/COLOR], x);
Inc(linePos);
if linePos = tableSize then
begin
writeln([COLOR=blue]'Press any key...'[/COLOR]);
readkey;
clrscr;
linePos := 0;
end;
end;
writeln([COLOR=blue]'MAX: Y('[/COLOR], maxX, [COLOR=blue]') = '[/COLOR], maxY);
writeln([COLOR=blue]'MIN: Y('[/COLOR], minX, [COLOR=blue]') = '[/COLOR], minY);
repeat until keypressed;
end.[/FONT]
3A3-968M, большое спасибо!
а как в этой задаче сделать так, чтобы таблица выводилась след. видом: N n/n // x // y