
Другие языки программирования и технологии
Помогите на паскале умоляю

Во-первых, эта функция в рассматриваемом сегменте [-3;3] неопределена на множестве [-3;-1)U(0; 1) -смотрите график на скрине! Во-вторых, в области определения у ней только одно нулевое значение при х=0, а все остальные -положительные. Но можно сделать как-нибудь так:
uses crt;
var x, y, h: real;
positives, negatives, i: integer;
function f(x: real): real;
begin
f := sqrt(x * (x * x - 1)) + sin(x * x)
end;
begin
textbackground(white);
clrscr();
textcolor(green);
positives := 0;
negatives := 0;
h := 0.5;
for i := 0 to 2 do
begin
x := -1 + i * h;
y := f(x);
if y < 0 then negatives := negatives + 1;
if y > 0 then positives := positives + 1;
writeln(x: 4: 1, y: 20: 15)
end;
for i := 0 to 4 do
begin
x := 1 + i * h;
y := f(x);
if y < 0 then negatives := negatives + 1;
if y > 0 then positives := positives + 1;
writeln(x: 4: 1, y: 20: 15)
end;
textcolor(red);
writeln('Положительных чисел ', positives);
textcolor(blue);
writeln('Отрицательных чисел ', negatives);
textcolor(brown);
if positives > negatives then
writeln('Больше положительных чисел')
else if negatives > positives then
writeln('Отрицательных чисел больше')
else writeln
('Положительных и отрицательных чисел одинаковое количество')
end.

uses crt;
var x, y, h: real;
positives, negatives, i: integer;
function f(x: real): real;
begin
f := sqrt(x * (x * x - 1)) + sin(x * x)
end;
begin
textbackground(white);
clrscr();
textcolor(green);
positives := 0;
negatives := 0;
h := 0.5;
for i := 0 to 2 do
begin
x := -1 + i * h;
y := f(x);
if y < 0 then negatives := negatives + 1;
if y > 0 then positives := positives + 1;
writeln(x: 4: 1, y: 20: 15)
end;
for i := 0 to 4 do
begin
x := 1 + i * h;
y := f(x);
if y < 0 then negatives := negatives + 1;
if y > 0 then positives := positives + 1;
writeln(x: 4: 1, y: 20: 15)
end;
textcolor(red);
writeln('Положительных чисел ', positives);
textcolor(blue);
writeln('Отрицательных чисел ', negatives);
textcolor(brown);
if positives > negatives then
writeln('Больше положительных чисел')
else if negatives > positives then
writeln('Отрицательных чисел больше')
else writeln
('Положительных и отрицательных чисел одинаковое количество')
end.


на образец, дальше сам
{на интервале 0,16<=z<=1,6 с шагом дельта z=0,24 протабулировать
функцию s=(y+x)в квадрате +arcsin(z) причем, если z<0,5 то х=0,1
иначе х=0,05 }
program tabulaciya;
uses crt;
var
z,s,x,y:real;
BEGIN
clrscr;
writeln('vichislenie funkcii');
writeln('---------------------');
writeln;
write('vvesti Y -->');
readln(y);
writeln;
writeln(' z x s');
writeln('------------------');
z:=0.16;
while z <=1.6 do begin
if z<0.5 then x:=0.1 else x:=0.05;
if z>1 then writeln(z:4:2,x:8:2,' не существует arcsin(z)') else
begin
s:=sqr(x+y)+ arctan(z/(sqrt(abs(1-z*z))));
writeln(z:4:2,x:8:2,s:7:2); end;
z:=z+0.24; //writeln(z);
end;
writeln('----------------');
writeln;
writeln('konec zadachi');
readkey;
END.
{на интервале 0,16<=z<=1,6 с шагом дельта z=0,24 протабулировать
функцию s=(y+x)в квадрате +arcsin(z) причем, если z<0,5 то х=0,1
иначе х=0,05 }
program tabulaciya;
uses crt;
var
z,s,x,y:real;
BEGIN
clrscr;
writeln('vichislenie funkcii');
writeln('---------------------');
writeln;
write('vvesti Y -->');
readln(y);
writeln;
writeln(' z x s');
writeln('------------------');
z:=0.16;
while z <=1.6 do begin
if z<0.5 then x:=0.1 else x:=0.05;
if z>1 then writeln(z:4:2,x:8:2,' не существует arcsin(z)') else
begin
s:=sqr(x+y)+ arctan(z/(sqrt(abs(1-z*z))));
writeln(z:4:2,x:8:2,s:7:2); end;
z:=z+0.24; //writeln(z);
end;
writeln('----------------');
writeln;
writeln('konec zadachi');
readkey;
END.
да деньги вперед
Похожие вопросы
- Помогите с паскалем
- Ааааа....помогите с Паскалем (Pascal)!!!!Срочно!!!!
- Помогите с паскалем пожалуйста!!!!
- помогите с паскалем!!! ужас а не задание!!
- Помогите с Паскалем
- Помогите с паскалем. Помогите написать программу переводящую из 10-ой в 16-ую систему счисления на паскале
- Помогите с паскалем!
- Ребят помогите пожалуйста. Паскаль, Paskal
- Помогите по паскалю
- Помогите с паскалем