Сделайте программу, которая будет живописать графиктангенса (В Паскале нет функции для

Сделайте программку, которая будет рисовать график
тангенса (В Паскале нет функции для вычисления
тангенса, но есть функции для вычисления синуса и
косинуса используйте их)

Срочнооо,помогите пожалуйста!

Задать свой вопрос
Daniil Kalahanov
а можешь написать программку?
Цернова Таня
есть условия,сейчас добавлю сюда скрины
Ljudmila Konyshina
все,добавила
Vladik Gromyshkov
а не подскажите,как на именуется,чтоб её найти?
1 ответ
// PascalABC.NET 3.2, сборка 1381 от 04.02.2017
// Внимание! Если программа не работает, обновите версию!

uses graphABC;
const
  w=1000;
  h=600;

function f(x:real):=Tan(x);

begin
  SetWindowSize(w,h);
  // поле для графика в окне
  var xLeft:=50;
  var yLeft:=50;
  var xRight:=w-xLeft;
  var yRight:=h-yLeft;
  // интервалы по осям
  var ax:=-7.0;
  var bx:=7.0;
  var hx:=0.5;
  var ay:=-10.0; // минимум f(x) с припасом
  var by:=10.0;
  var hy:=1.0;
  // масштабы по осям
  var mx:=(xRight-xLeft)/(bx-ax);
  var my:=(yRight-yLeft)/(by-ay);
  // точка начала координат графика
  var x0:=xLeft+Trunc(абс(ax)*mx);
  var y0:=yRight-Trunc(абс(ay)*my);
  // рисование координатных осей
  Line(xLeft,y0,xRight+10,y0);
  Line(x0,yLeft-10,x0,yRight);
  SetFontSize(12); SetFontColor(clBlue);
  TextOut(xRight+15,y0-10,'X');
  TextOut(x0-4,yLeft-30,'Y');
  SetFontSize(8); SetFontColor(clGreen);
  // рисование засечек
  var s:string;
  for var i:=1 to Round((bx-ax)/hx)+1 do begin
    var num:=ax+(i-1)*hx;
    var x:=xLeft+Trunc(mx*(num-ax));
    Line(x,y0-3,x,y0+3);
    Str(num,s);
    if абс(num)gt;1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
    end;
  for var i:=1 to Round((by-ay)/hy)+1 do begin
    var num:=ay+(i-1)*hy;
    var y:=yRight-Trunc(my*(num-ay));
    Line(x0-3,y,x0+3,y);
    Str(num,s);
    if абс(num)gt;1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
    end;
    TextOut(x0-10,y0+10,'0');
  // фактически график
  var xi:=ax;
  while xilt;=bx do begin
    var yi:=f(xi);
    var x:=x0+Round(xi*mx);
    var y:=y0-Round(yi*my);
    if (ygt;=yLeft) and (ylt;=yRight) then SetPixel(x,y,clRed);
    xi+=1e-3
    end
end.

Пример работы - во вложении
Валерия
оххх....спасибо огромное
Эмилия Цвелова
Можно узнать еще,вы творили программку по тем условиям,которые на скринах?
Васька Списивцев
т.е по моим отрывкам программку не написать?
Таисия Шеликарева
ок,спасибо еще раз
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт