Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 17
1

Расчет значений тригонометрической ф-и и построение графика

22.06.2011, 21:19. Показов 1180. Ответов 7
Метки нет (Все метки)

Помогите, нужно:
1)расчитать значение тригонометрической функции в заданных точках интервала;
2)построить на экране дисплея графика функции по найденным значениям;
Функция:
sin(3x) + 0.5sin(x)
Интервал:
[0, 2πи]
Шаг:
2пи/30
Вывести график функции y(F(x)):

F(x) на инт-ле [0, 2π]
y =(система)
-0.5, если F(x)<0 на инт-ле [π, 1.5π]
Заранее благодарю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2011, 21:19
Ответы с готовыми решениями:

Построение графика тригонометрической функции
Доброго времени суток. Задание - построить график функции y=arcsin(cosx). График arcsin я...

Расчет значений тригонометрической функции на заданном интервале
Здравствуйте! Помогите, пожалуйста, составить программу, которая реализует: - Расчет значений...

Расчет значений тригонометрической функции в заданных точках интервала
требуется составить программу в на языке Паскаль, которая реализует: - Расчет значений...

Расчет интеграла с параметром и построение графика зависимости от параметра
Здравствуйте, форумчане. Задача состоит в следующем найти решение интеграла, например такого...

7
Модератор
63380 / 47073 / 32446
Регистрация: 18.05.2008
Сообщений: 114,104
22.06.2011, 21:57 2
1.
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
uses crt,graph;
function F(x:real):real;
begin
F:=sin(3*x)+0.5*sin(x);
end;
const xn=0;
      xk=2*pi;
      h=pi/15;
var x,y,mx,my:real;
    x1,y1:array[1..100] of real;
    n,i,gd,gm,x0,y0:integer;
    st:string;
begin
clrscr;
x:=xn;
n:=0;
while x<=xk+h/2 do
 begin
  y:=F(x);
  n:=n+1;
  x1[n]:=x;
  y1[n]:=y;
  x:=x+h;
 end;
writeln('Znachenia argumenta X:');
for i:=1 to n do
write(x1[i]:8:2);
writeln;
writeln('Znachenia functii Y:');
for i:=1 to n do
write(y1[i]:8:2);
writeln;
write('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');
x0:=40;
y0:=getmaxY div 2;
mx:=(getmaxX-60)/(xk-xn);
my:=100;
line(20,y0,getmaxX-20,y0);
outtextXY(getmaxX-15,y0-15,'X');
for i:=1 to round(xk)+1 do
 begin
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
  line(x0+3,y0+round(i*my),x0-3,y0+round(i*my));
  line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
  str(i,st);
  outtextXY(x0+round(i*mx),y0+10,st);
  outtextXY(x0-round(i*mx),y0+10,'-'+st);
  outtextXY(x0-20,y0-round(i*my),st);
  outtextXY(x0-20,y0+round(i*my),'-'+st);
 end;
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
moveto(x0+round(x1[1]*mx),y0-round(y1[1]*my));
for i:=1 to n do
 begin
  setcolor(12);
  lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
  setcolor(10);
  circle(x0+round(x1[i]*mx),y0-round(y1[i]*my),2);
 end;
readln
end.
Добавлено через 3 минуты
y =(система)
-0.5, если F(x)<0
В упор не вижу систему, а бред какой-то вижу...
1
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 17
22.06.2011, 22:37  [ТС] 3
не так отобразилось
y=
F(x) на инт-ле [0, 2π]
-0.5, если F(x)<0 на инт-ле [π, 1.5π]
0
Модератор
63380 / 47073 / 32446
Регистрация: 18.05.2008
Сообщений: 114,104
23.06.2011, 07:51 4
Если правильно понял второе, то так.
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
uses crt,graph;
function F(x:real):real;
begin
F:=sin(3*x)+0.5*sin(x);
end;
const xn=0;
      xk=2*pi;
      h=0.001;
var x,y,mx,my:real;
    n,i,gd,gm,x0,y0:integer;
    st:string;
begin
gd:=0;
initgraph(gd,gm,'');
x0:=40;
y0:=getmaxY div 2;
mx:=(getmaxX-60)/(xk-xn);
my:=100;
line(20,y0,getmaxX-20,y0);
outtextXY(getmaxX-15,y0-15,'X');
for i:=1 to round(xk)+1 do
 begin
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
  line(x0+3,y0+round(i*my),x0-3,y0+round(i*my));
  line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
  str(i,st);
  outtextXY(x0+round(i*mx),y0+10,st);
  outtextXY(x0-round(i*mx),y0+10,'-'+st);
  outtextXY(x0-20,y0-round(i*my),st);
  outtextXY(x0-20,y0+round(i*my),'-'+st);
 end;
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
x:=xn;
while x<=xk do
 begin
  if (x>=pi)and(x<=1.5*pi)and(F(x)<0) then y:=-0.5
  else y:=F(x);
  putpixel(x0+round(x*mx),y0-round(y*my),12);
  x:=x+h;
 end;
readln
end.
1
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 17
29.06.2011, 17:00  [ТС] 5
а как вывести полученные значения 1-й проги во внешний текстовый файл в виде таблицы в Excel?
0
Модератор
63380 / 47073 / 32446
Регистрация: 18.05.2008
Сообщений: 114,104
29.06.2011, 17:12 6
добавить переменную
Pascal
1
var f:text;
далее
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
begin
assign(f,'data.txt');
rewrite(f);
......................
x:=xn;
n:=0;
while x<=xk+h/2 do
 begin
  y:=F(x);
  n:=n+1;
  x1[n]:=x;
  y1[n]:=y;
  writeln(f,x[i]:0:1,' ',y[i]:0:2);//пишем в файл построчно
  x:=x+h;
 end;
файл будет в папке с программой.
В Экселе меню-файл-открыть-текстовые файлы и далее по порядку..

Добавлено через 4 минуты
Вообще-то немного не так. В паскале разделитель точка, а в Экселе запятая. Поэтому нужно так.
добавить переменные
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var f:text;
    s,s1:string;
begin
assign(f,'data.txt');
rewrite(f);
......................
x:=xn;
n:=0;
while x<=xk+h/2 do
 begin
  y:=F(x);
  n:=n+1;
  x1[n]:=x;
  y1[n]:=y;
  str(x1[n]:0:1,s);
  s[pos('.',s)]:=',';//меняем точку на запятую
  str(y1[n]:0:2,s1);
  s1[pos('.',s1)]:=',';
  s:=s+s1;
  writeln(f,s);//пишем в файл построчно
  x:=x+h;
 end;
1
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 17
29.06.2011, 20:11  [ТС] 7
А как ко второй задачке добавить таблицу рассчета значений?
0
Модератор
63380 / 47073 / 32446
Регистрация: 18.05.2008
Сообщений: 114,104
29.06.2011, 20:12 8
Да также как в первой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2011, 20:12

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Построение графика, расчёт которого ведется через произведение векторов и матриц
Необходимо построить график функции. Все необходимые данные в приложенном файле. Один для 15-ой...

Ввод чисел, расчет по формулам и построение графика. Windows Forms или WPF
Подскажите пожалуйста какое руководство/книгу для WindowsForm. Только начинаю изучать и толком не...

Построение графика значений 2х матриц
Даны 2 матрицы, 13х13 Хочу построить график (упорядоченные по возрастанию элементы 1ой) по оси...

Ввод значений на построение графика
Народ дали задание на построение графика-прогу написал,работает всё отлично, но к сожалению я...


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

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

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