Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Pascal
Перезагрузить страницу Графика
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Yakup Yakup вне форума
Member
 
Сообщений: 16
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.11.2017
По умолчанию Графика - 07.12.2017, 21:32

Pascal Код:
uses graphABC;
var
  gx, gy, x0, y0, k, x1, y1, i: integer;
  y, x: real;
 
Begin
  gx := 900;//задаем параметры окна
  gy := 700;//задаем параметры окна
  k := 25;//масштаб
  setwindowsize(gx, gy);//параметры окна
  x0 := gx div 2;//центр x
  y0 := gy div 2;//уентр y
 
  //ось x
  line(0, y0, gx, y0);//построение коорд x
  line(gx, y0, gx - 10, y0 + 10);//стрелка на координате x
  line(gx, y0, gx - 10, y0 - 10);//стрелка на координате x
  textout(gx - 10, y0 + 10, 'X');//подписывание оси X
 
  //ось y
  line(x0, 0, x0, gy);//построение коорд y
  line(x0, 0, x0 - 10, 10);//стрелка на координате y
  line(x0, 0, x0 + 10, 10);//стрелка на координате y
  textout(x0 + 10, 10, 'Y');//подписывание оси Y
 
  //цикл для цены деления X
  i := -6;
  while i < 5 do
  begin
    line(x0 + i * k, y0 + 10, x0 + i * k, y0 - 10);
    textout(x0 + i * k, y0 + 10, inttostr(i));
    inc(i);
  end;
 
  //цикл для цены деления Y
  i := -13;
  while i < 14 do
  begin
    if i <> 0 then
    begin
      line(x0 + 10, y0 + i * k, x0 - 10, y0 + i * k);
      textout(x0 - 10, y0 - i * k, inttostr(i));
    end;
    inc(i);
  end;
 
  x := -6.2;
  while x < 3.35 do
  begin
    y := 2 * (sin(x + 1.5) / cos(x + 1.5));//функция рассчета y
    x1 := x0 + round(x * k);// координата x относительно центра
    y1 := y0 - round(y * k);// координата y относительно центра
    circle(x1, y1, 2);//точка начала
    x := x + 0.03925;
  end;
END.

программу для построения графика сумел написать, а вывести результаты не смог(

вот само задание: Построить график функции y(x) и таблицу значений y(x) с шагом измерения аргумента h.

Функция:Y=2tg(x+1.5)
Шаг:0.03925
Ответить с цитированием
  (#2 (permalink)) Старый
deckard deckard вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
Регистрация: 04.03.2008
По умолчанию 08.12.2017, 20:49

Вместо процедуры Sleep(milliseconds) надо бы использовать нажатие клавиши или
мыши, но я сходу примера не нашел.

Pascal Код:
uses graphABC,System;
var
  gx, gy, x0, y0, k, x1, y1, i: integer;
  y, x: real;
var tx00,ty00:integer;
var str1,str2:string;

Begin

  gx := 900;//задаем параметры окна
  gy := 700;//задаем параметры окна
  k := 25;//масштаб
  setwindowsize(gx, gy);//параметры окна
  x0 := gx div 2;//центр x
  y0 := gy div 2;//уентр y

while True do begin ClearWindow;  
  //ось x
  line(0, y0, gx, y0);//построение коорд x
  line(gx, y0, gx - 10, y0 + 10);//стрелка на координате x
  line(gx, y0, gx - 10, y0 - 10);//стрелка на координате x
  textout(gx - 10, y0 + 10, 'X');//подписывание оси X
 
  //ось y
  line(x0, 0, x0, gy);//построение коорд y
  line(x0, 0, x0 - 10, 10);//стрелка на координате y
  line(x0, 0, x0 + 10, 10);//стрелка на координате y
  textout(x0 + 10, 10, 'Y');//подписывание оси Y
 
  //цикл для цены деления X
  i := -6;
  while i < 5 do
  begin
    line(x0 + i * k, y0 + 10, x0 + i * k, y0 - 10);
    textout(x0 + i * k, y0 + 10, inttostr(i));
    inc(i);
  end;
 
  //цикл для цены деления Y
  i := -13;
  while i < 14 do
  begin
    if i <> 0 then
    begin
      line(x0 + 10, y0 + i * k, x0 - 10, y0 + i * k);
      textout(x0 - 10, y0 - i * k, inttostr(i));
    end;
    inc(i);
  end;


  x := -6.2;
  while x < 3.35 do
  begin
    y := 2 * (sin(x + 1.5) / cos(x + 1.5));//функция рассчета y
    x1 := x0 + round(x * k);// координата x относительно центра
    y1 := y0 - round(y * k);// координата y относительно центра
    circle(x1, y1, 2);//точка начала
    x := x + 0.03925;
  end;
sleep(5000);ClearWindow;
tx00:=8;ty00:=8;
x:=-6.2;
  while x < 3.35 do begin
  y := 2 * (sin(x + 1.5) / cos(x + 1.5));//функция рассчета y
  Str(x:6:3,str1);Str(y:6:3,str2);
  TextOut(tx00,ty00,'x='+str1+' y='+str2);ty00:=ty00+TextHeight('*');
  if ty00>gy-32 then begin ty00:=8;tx00:=tx00+16*8 end;
  x := x + 0.03925;
  end;
Sleep(5000); end;
END.
Ответить с цитированием
Пользователь сказал cпасибо:
Yakup (10.12.2017)
  (#3 (permalink)) Старый
Yakup Yakup вне форума
Member
 
Сообщений: 16
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.11.2017
По умолчанию 10.12.2017, 22:06

большое вам спасибо, какой раз уже меня выручаете))
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
графика GTA 4 dreambuble Любые вопросы от новичков 5 24.11.2014 18:39
Графика в MFC vilija Вопросы начинающих программистов 1 22.12.2012 02:41
графика Define Prolog 9 12.03.2011 11:47
графика glasham Видеокарты 8 04.02.2011 17:32
Графика Рыба Драйвера 17 07.01.2011 17:22
Рисование графика y=tg(x) x от (0 до Pi) Latika Lisp 0 16.05.2010 22:19
Графика на С Ёга С/С++ 3 26.03.2010 02:04
Графика на С(BGI) Ёга Форум программистов 0 21.02.2010 23:01
графика и память Mantyr Pascal 7 17.11.2009 01:06
Графика Надюшка Prolog 4 06.05.2007 13:02
3D графика на VB Dir Visual Basic 3 03.07.2005 18:44
Построение графика в VC++ imported_Pirate Visual C++ 1 22.07.2004 14:39



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов