Помогите составить программу на паскале!
Помогите составить программу на паскале!
Разработать программу вывода значения функции на интервале [x1; x2] с шагом h. Если в какой-либо точке функция не определена, вывести сообщение «не существует».
-
на образец проги, примени к своей функции с анализом на разрыв, не получится - пиши
1 - 5.5
program tabulaciya;
uses crt;
var
f,x:real;
BEGIN
clrscr;
writeln('vichislenie funkcii');
writeln('---------------------');
writeln;
writeln(' x f');
writeln('----------------');
x:=1;
repeat
f:=cos(x)/sin(x)/cos(x) - ln(x);
writeln(x:6:2,f:7:2);
x:=x+0.5;
until x >5.5;
writeln('----------------');
writeln;
writeln('konec zadachi');
readkey;
END.
вот еще одна программа на 3 ветки функции
program fun;
uses crt; //y = x^2, x< =2 var i:integer; //y -x-1, x>2
y,x,max,min,sred,otric:real; // 1.1 < x < 4.2 mas:array[1..11] of real; BEGIN clrscr; writeln('vichislenie funkcii'); writeln('---------------------'); writeln; writeln('----------------'); writeln(' x y'); writeln('----------------'); x:=1.1; i:=1; repeat if x<=2 then mas:=x*x
else
mas:=-x-1;
writeln(x:6:2,mas:7:2);
x:=x+0.3;
i:=i+1;
until x >4.2;
writeln('----------------');
writeln;
max:=mas[1];
for i:=2 to 11 do
if mas>max then max:=mas;
writeln('max= ',max:6:2);
min:=mas[1];
for i:=2 to 11 do
if mas;
writeln('min= ',min:6:2);
sred:=(max + min)/2;
writeln('srednearifmeticheskoe= ',sred:6:2);
for i:=11 downto 1 do
if mas<0 then otric:=mas;
writeln('pervaya funkciya <0 = ',otric:6:2);
writeln('konec zadachi');
readkey;
END. -
1. Задаёшь значения интервалов x1, x2 и шаг h, либо запрашиваешь на вход у пользователя, либо оформляешь в виде подпрограммы.
2. Задаёшь цикл while (пока i< =x2) с инкрементом i:=i+h;
3. С помощью if-else подставляешь свои формулы.var
f, x: real;
x1, x2, h: longint;
BEGIN
writeln('x1 - ?');
writeln('x2 - ?');
writeln('h - ?');
readln(x1);
readln(x2);
readln(h);
x := 1;
repeat
f := cos(x)/sin(x)/cos(x) - ln(x);
writeln(x:x1:h, f:x2:h);
x := x+h;
until x > x2;
writeln;
END.