Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 28.12.2012
Сообщений: 40

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

29.10.2013, 16:06. Показов 3318. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: Построить графики: а) «обычной» функции; б) параметрически заданного бинарного соответствия; в) функции, заданной в полярной системе координат; г) бинарного соответствия F(x,y)=a
https://www.cyberforum.ru/cgi-bin/latex.cgi?a) y=1-4*sin(\pi*x+2)b) \begin{cases} x=4*sin(2*t)-1 \\ y=3*cos(5*t) \end{cases}c) \rho=1-4*cos(6*\varphi)d) \mid y+x- \mid x \mid \mid =2

Я сумел сделать под буквой a) и b); Помогите сделать под буквой c) хотя бы, думаю под d) я справлюсь!

Вот код программы:
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
84
85
86
87
PROGRAM Graph;
  Uses Crt,GraphABC;
 
  Procedure Setka;
    Var a,i: Integer;
  Begin
    TextBackground(White); ClrScr;
    SetPenColor(clLtGray);
    a:=0;
    For i:=1 to 32 do begin
      line(a,0,a,400);
      a:=a+20;
    end;
    a:=0;
    For i:=1 to 20 do begin
      line(0,a,640,a);
      a:=a+20;
    end;
    SetPenColor(clBlack);
    Line(0,200,640,200);
    Line(320,0,320,400);
    TextOut(323,10,'Y');
    TextOut(620,205,'X');
  End;
  
  Procedure Grafik_1;
    Var DX,DY: Integer;
        x,y: Real;
    Function f(x:Real):Real;
    Begin
      f:=1-4*sin(pi*x+2);
    End;
  Begin
    x:=-320;
    Repeat
      y:=f(x/20)*20;
      DX:=trunc(x)+320;
      DY:=trunc(-y)+200;
      SetPixel(DX,DY,clRed);
      x:=x+0.01;
    until x>=320;
    ReadLn;
  End;
  
  Procedure Grafik_2;
    Var x,y: Integer;
        t: Real;
  Begin
    t:=0;
    x:=320+Round(20*4*sin(2*t)-20);
    y:=200-Round(20*3*cos(5*t));
    SetPixel(x,y,clRed);
    While t<=2*pi do begin
      x:=320+Round(20*4*sin(2*t)-20);
      y:=200-Round(20*3*cos(5*t));
      SetPixel(x,y,clRed);
      t:=t+0.001;
    end;
    ReadLn;
  End;
 
  Procedure Manager;
    Var Num: Integer;
    Procedure Menu;
    Begin
      TextBackground(Black); TextColor(Green); ClrScr;
      GoToXY(25,10); WriteLn('1. ГРАФИК 1');
      GoToXY(25,11); WriteLn('2. ГРАФИК 2');
      GoToXY(25,12); WriteLn('3. ГРАФИК 3');
      GoToXY(25,13); WriteLn('4. ГРАФИК 4');
      GoToXY(25,14); WriteLn('5. ВЫХОД');
      GoToXY(4,24); Write('n>');ReadLn(Num);
    End;
  Begin
    Repeat
      Menu;
      Case Num of
        1: begin Setka; Grafik_1; end;
        2: begin Setka; Grafik_2; end;
      end;
    until Num=5;
    ClrScr; GoToXY(30,12); Write('УСПЕХОВ В РАБОТЕ');
  End;
 
BEGIN
  Manager
END.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2013, 16:06
Ответы с готовыми решениями:

Построить эскиз графика функции, заданной в полярной системе координат
Помогите построить пожалуйста. 1. Построить эскиз графика функции, заданной в полярных координатах: r=2\text{tg}\varphi 2. ...

Построить график функции в полярной системе координат: p=a sin (4u/3) (восьми лепестковая роза)
Построить график функции в полярной системе координат: p=a sin (4u/3) (восьми лепестковая роза);

График Логарифмическая спираль в полярной системе координат
Если символ есть «c» то построить график р(ф):=аф (Логарифмическая спираль) в полярной системе координат.

6
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.10.2013, 16:39
К сожалению, у меня нет простого PascalABC, поэтому вот код на PascalABC.Net.
График функции r = 1 - 4 * cos(6 * t), увеличенный в 50 раз:
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
uses ABCObjects, GraphABC;
 
const
  x0 = 300;
  y0 = 300;
  
var
  i, x1, y1, x, y, n: integer;  
  t: real;
  
begin
  x := x0;
  y := y0;
  n := 800;
  Line(x0, y0, 1000, y0, clred); //OX+
  Line(-x0, y0, 700, y0, clred); //OX-
  Line(x0, -y0, x0, 700, clred); //OY
  for i := 1 to 2 * n do
  begin  
    t := 2 * pi * i / n;
    x1 := round(50 * (1 - 4 * cos(6 * t)) * cos(t));
    y1 := round(50 * (1 - 4 * cos(6 * t)) * sin(t));
    if i > 1 then 
      Line(x + x0, y0 - y, x0 + x1, y0 - y1, clgreen);
    x := x1;
    y := y1;
  end
end.
Замечание: график функции заданной в полярной системе координат строится аналогично по отношению к функции y = y(x), только вместо x ставим x = r * cos(t), а вместо y надо положить y = r * sin(t)
1
0 / 0 / 1
Регистрация: 28.12.2012
Сообщений: 40
29.10.2013, 19:14  [ТС]
erl27, спасибо большое, все работает!
Но у меня ещё один вопрос: КАК МОЖНО СДЕЛАТЬ ОТМЕТКУ НА ГРАФИКЕ С ФУНКЦИЕЙ, ДЛЯ КОТОРОЙ ПОСТРОЕН ГРАФИК?
КАК-НИБУДЬ ТАК:
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.10.2013, 19:36
В самом конце программы после цикла поставь
Pascal
1
TextOut(50,20, ' r = 1 - 4cos(6t)');
здесь процедура TextOut(x,y, S) выводит строку S (любой текст в кавычках) в точку с координатами (x, y) начиная от левого верхнего угла.
1
0 / 0 / 1
Регистрация: 28.12.2012
Сообщений: 40
29.10.2013, 20:19  [ТС]
erl27, пожалуйста, если можете, помогите с последним! Переоценил я свои возможности.
Вот только что приходит на ум:
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
PROGRAM Graf;
  Uses Crt, GraphABC;
  Var x,y,a,i,DX,DY:integer;
      t:real;
 
  Procedure Setka;
  Begin
    ClrScr;
    SetPenColor(clLtGray);
    a:=0;
    For i:=1 to 32 do begin
                         Line(a,0,a,400);
                         a:=a+20;
                         end;
    a:=0;
    For i:=1 to 20 do begin
                         Line(0,a,640,a);
                         a:=a+20;
                         end;
    SetPenColor(1);
    Line(0,200,640,200);
    Line(320,0,320,400);
    TextOut(323,10,'Y');
    TextOut(620,190,'X');
  End;
  
  Procedure Grafik_1;
    Var DX,DY: Integer;
        x,y: Real;
    Function f(x,y:Real):Real;
    Begin
      f:=Abs(y+x-Abs(x));
    End;
  Begin
    y:=-200;
    Repeat
      x:=-320;
      While x>=320 do begin
      If f(x,y)=2 then SetPixel(DX,DY,clRed);
      x:=x+0.01;
      end;
      y:=y+0.01;
    until y>=200;
    ReadLn;
  End;
 
BEGIN
  Setka;
  Grafik_1
END.
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.10.2013, 21:18
|y + x - |x|| = 2;
Если x > 0, то |y + x - x| = 2, откуда |y| = 2, поэтому y = 2 или y = -2.
Если x <= 0, то |y + 2x| = 2, откуда y + 2x = 2 или y + 2x = -2; поэтому y = -2x + 2 или y = -2x - 2.
Таким образом, задача сводится к построению 4 прямых: y = 2, y = -2, y = -2x + 2, y = -2x - 2.
Вот код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses ABCObjects, GraphABC;
 
const
  x0 = 300;
  y0 = 300;
 
begin
  Line(x0, y0, 1000, y0, clred); //OX+
  Line(-x0, y0, 700, y0, clred); //OX-
  Line(x0, -y0, x0, 700, clred); //OY
  
  Line(x0, y0 - 100, 1000, y0 - 100);
  Line(x0, (y0 + 100), 1000, (y0 + 100));
  Line(x0 - 300, y0 - 600, x0, y0 - 100);
  Line(x0 - 300, y0 - 400, x0, y0 + 100);
  TextOut(x0 + 10,y0 - 90, '2');
  TextOut(x0 + 10,y0 + 110, '-2');
  TextOut(x0 + 100,y0 - 120, ' y = 2');
  TextOut(x0 + 100,y0 + 80, ' y = -2');
  TextOut(x0 - 60,y0 - 230, ' y = -2x + 2');
  TextOut(x0 - 120,y0 + 50, ' y = -2x - 2');
end.
1
0 / 0 / 1
Регистрация: 28.12.2012
Сообщений: 40
29.10.2013, 21:33  [ТС]
erl27, ОГРОМНОЕ ВАМ СПАСИБО. БЕЗ ВАС БЫ НЕ СПРАВИЛСЯ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2013, 21:33
Помогаю со студенческими работами здесь

Построение графика кардиоиды и розы в полярной системе координат
Нужна помощь в построении графика кардиоиды и полярной розы в Pascal ABC. Вся сложность заключается в том, что мне необходимо сделать...

Построение графика функций в полярной системе координат p^2=a^2*tg(φ)
Составьте программу построения графика функций в полярной системе координат: p^2=a^2*tg(φ)

Построить график функции в декартовой системе координат: y=dctg(kx)
Построить график функции в декартовой системе координат: y=dctg(kx)

Вывести на экран оси координат с засечками с шагом 1, и построить график заданной функции
написать программу, которая выводит на экран оси координат с засечками с шагом 1, и строит график заданной функции sin(x-2)

Построить в трехмерной системе координат ТЕТРАЭДР и осуществить его поворот
Постановка задачи: Построить в трехмерной системе координат ТЕТРАЭДР и осуществить его поворот относительно оси Оу.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru