Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
ZzedD
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 5
#1

Построить график

15.02.2016, 15:46. Просмотров 374. Ответов 0
Метки нет (Все метки)

Вот код программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Program Davlenie;
Uses crt;
uses
  graphABC; //Подключаем графический модуль
const
  W = 800; H = 500;//Размеры графического окнa
var x0, y0, x, y, xLeft, yLeft, xRight, yRight,xcal,ycal: integer;
    a, b, fmin, fmax,  mx, my,x1, y1, dx, dy,P, num: real;
    V:=15;V0:=0.6;P0:=760;
    N: array [0..8] of integer=(10,20,30,40,50,100,150,200,250);
    j:integer;
    i:byte;
    s: string;
    function F(x:real): real;
      begin
        F:=P;
      end;
begin
  for j := 0 to 8 do
  begin
    P:=P0*exp(N[j]*ln(V/(V+V0)));
    writeln('остаточное давление в камере= ',P:0:3);
    SetWindowSize(W, H); //Устанавливаем размеры графического окна
    //Координаты левой верхней границы системы координат:
    xLeft := 50;
    yLeft := 50;
    //Координаты правой нижней границы системы координат:
    xRight := W - 50;
    yRight := H - 50;
    //интервал по Х; a и b должно нацело делится на dx:
    a := 0; b := 300; dx := 30;
    //Интервал по Y; fmin и fmax должно нацело делится на dy:
    fmin := 0; fmax := 520; dy := 40;
    //Устанавливаем масштаб:
    mx := (xRight - xLeft) / (b - a); //масштаб по Х
    my := (yRight - yLeft) / (fmax - fmin); //масштаб по Y
    //начало координат:
    x0 := trunc(abs(a) * mx) + xLeft;
    y0 := yRight - trunc(abs(fmin) * my);
    //Рисуем оси координат:
    line(xLeft, y0, xRight + 10, y0); //ось ОХ
    line(x0, yLeft - 10, x0, yRight); //ось ОY
    SetFontSize(12); //Размер шрифта
    SetFontColor(clBlue); //Цвет шрифта
    TextOut(xRight + 20, y0 - 15, 'X'); //Подписываем ось OX
    TextOut(x0 - 10, yLeft - 30, 'Y'); //Подписываем ось OY
    SetFontSize(8); //Размер шрифта
    SetFontColor(clRed); //Цвет шрифта
    { Засечки по оси OX: }
    xcal := round((b - a) / dx) + 1; //количество засечек по ОХ
    for i := 1 to xcal do
      begin
        num := a + (i - 1) * dx; //Координата на оси ОХ
        x := xLeft + trunc(mx * (num - a)); //Координата num в окне
        Line(x, y0 - 3, x, y0 + 3); //рисуем засечки на оси OX
        str(Num:0:1, s);
        if abs(num) > 1E-15 then //Исключаем 0 на оси OX
          TextOut(x - TextWidth(s) div 2, y0 + 10, s)
      end;
    { Засечки на оси OY: }
    ycal := round((fmax - fmin) / dy) + 1; //количество засечек по ОY
    for i := 1 to ycal do
      begin
        num := fMin + (i - 1) * dy; //Координата на оси ОY
        y := yRight - trunc(my * (num - fmin));
        Line(x0 - 3, y, x0 + 3, y); //рисуем засечки на оси Oy
        str(num:0:0, s);
        if abs(num) > 1E-15 then //Исключаем 0 на оси OY
          TextOut(x0 + 7, y - TextHeight(s) div 2, s)
      end;
    { График функции строим по точкам: }
    x1 := N[0]; //Начальное значение аргумента
    while x1 <= b do
      begin
        y1 := F(x1); //Вычисляем значение функции
        x := x0 + round(x1 * mx); //Координата Х в графическом окне
        y := y0 - round(y1 * my); //Координата Y в графическом окне
        //Если y попадает в границы [yLeft; yRight], то ставим точку:
        if (y >= yLeft) and (y <= yRight) then SetPixel(x, y, clGreen);
        x1 := x1 + 0.001 //Увеличиваем абсциссу
      end
  end;
end.
Как я понимаю, он должен создавать гиперболу, и мне кажется, что ошибка в нахождение Xи Y, но не могу её найти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2016, 15:46
Ответы с готовыми решениями:

Построить график функции и график её производной
Построить график функции (a*x^4)+(b*x^3)/(x^2+c) + График производной

Построить график
Построить график y=tg(x)e^x на промежутке с шагом 0,5.

Построить график
построить график F(x) = \begin{cases} x^2 + 3x + 9, &amp; {\text if $x \leq 3;} \\...

Построить график
var x, y: array of integer; dx, dy: array of integer; i: integer; begin ...

Построить график ( 1/x )
Приветствую. Помогите построить данный график в паскале

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2016, 15:46

Построить график
Построить в одной системе координат графики функции: y1=sin(x),y2=cos(x),y3=sin(x)*cos(x) на...

Построить график функции
Здравствуйте, помогите пожалуйста построить график ф-ции x^2 * Sinx в диапазоне (0, 2П) Заранее...

Построить график функции Y
как это можно осуществить? Построить график функции Y. При построении графика использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru