Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2011, 14:33   #1
Seriy9292
Новичок
Джуниор
 
Регистрация: 06.07.2011
Сообщений: 5
По умолчанию построить график в Pascal

Товарищи программисты, помогите пожалуйста сделать так, чтобы по значениям Mas1 и Mas2(15 штук Mas1 и 15 штук Mas2), которые выводятся в конце программы, построился график( должно быть что-то близкое к косинусоиде). Буду очень благодарен за любую помощь, так как в графике я полный ноль Вот код:

Код:
Uses Crt;
var F,ai,bi,ci,di,h,k,l,r,s:array[0..100] of real;
var x,Z:real;
var T,n,m,p,o,b,g,j,v,d,q,w,e,c,gh:byte;
const Xi:array[0..3] of real=(0,0.5235,1.04719,1.570795);
type Massiv=array[0..100] of real;
var Mas1,Mas2:Massiv;
begin

Clrscr;
writeln('vvedite kolichestvo elementov');
read(T);
writeln;
{for n:=0 to T-1 do
 begin
write('vvedite X[',n,']): ');
readln(Xi[n]);
 end;}
  writeln;
  For o:=1 to T-1 do
  begin
h[o]:=Xi[o]-Xi[o-1];
writeln('h[',o,']= ',h[o]:4:2);
 end;

writeln;
writeln('vi vveli sleduushie znacheniya Xi:  ');

For m:=0 to T-1 do
   begin
writeln(Xi[m]:3:2);
writeln;
   end;
writeln;
For b:=0 to T-1 do

  begin
  writeln;

  F[b]:=cos(Xi[b]);
  writeln('F[',b,']= ',F[b]:4:2);
  end;
      For e:=1 to T-1 do begin
  ai[e]:=F[e-1];
  write('ai[',e,']= ',ai[e]:4:2);

  end;

writeln;
For v:=2 to T-1 do
begin
s[v]:=2*(h[v]+h[v-1]);
writeln('s[',v,']= ',s[v]:4:2);
end;
writeln;
K[1]:=0;l[1]:=0;
For d:=2 to T-1 do
begin

r[d]:=3*((F[d]-F[d-1])/h[d]-(F[d-1]-F[d-2])/h[d-1]);
writeln('r[',d,']= ',r[d]:4:2);
k[d]:=(r[d]-h[d-1]*k[d-1])/(s[d]-h[d-1]*l[d-1]);
writeln('k[',d,']=',k[d]:4:3);
l[d]:=h[d]/(s[d]-h[d-1]*l[d-1]);
writeln('l[',d,']=',l[d]:4:2);
end;
ci[1]:=0;
writeln('c[',1,']= ',ci[1]:4:1);
ci[4]:=0;
For w:=T-1 downto 2 do
 begin
  ci[w-1]:=k[w-1];
  ci[w]:=k[w]-l[w]*ci[w+1];
  writeln('c[',w,']=',ci[w]:4:3);
  end;
for q:=1 to T-1 do
begin
bi[q]:=(F[q]-F[q-1])/h[q]-h[q]*(2*ci[q]+ci[q+1])/3;
di[q]:=(ci[q+1]-ci[q])/(3*h[q]);
writeln(' b[',q,']= ',bi[q]:4:2,' c[',q,']=',ci[q]:4:2,
' d[',q,']=', di[q]:4:2);
end;
For c:=0 to 16 do
begin
Mas1[c]:=0.1*c;
  For gh:=1 to T-1 do
  begin
     If (Mas1[c]>=Xi[gh-1]) and (Mas1[c]<=Xi[gh]) then
     begin
     Z:=(Mas1[c]-Xi[gh-1]);
     Mas2[c]:=ai[gh]+bi[gh]*Z+ci[gh]*sqr(z)+di[gh]*z*z*z;
writeln('Mas1[',c,']=',Mas1[c]:4:2,' Mas2[',c,']=',Mas2[c]:4:2);
  end;
     end;
end;
readkey;

end.
Seriy9292 вне форума Ответить с цитированием
Старый 08.07.2011, 14:37   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
var F,ai,bi,ci,di,h,k,l,r,s:array[0..100] of real;
var x,Z:real;
var T,n,m,p,o,b,g,j,v,d,q,w,e,c,gh:byte ;
omfg
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.07.2011, 14:40   #3
Seriy9292
Новичок
Джуниор
 
Регистрация: 06.07.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
omfg
программа еще не совсем закончена, многое надо подредактировать
Seriy9292 вне форума Ответить с цитированием
Старый 11.07.2011, 13:14   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Код:
uses Graph;
....
for i:=1 to 15 do
line(x1,y1,x2,y2);
....
Где х1,у1 - координаты по х и у соответственно для начальной точки
х2,у2 - координаты по х и у соответственно для последующей точки
Т.е. просто последовательно соединяем линиями точки. Больше точек - больше плавность.


По идее константой можно задать смещение на определенное количество пикселей.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)

Последний раз редактировалось Vanta11a; 11.07.2011 в 13:16.
Vanta11a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построить график salmon172 Паскаль, Turbo Pascal, PascalABC.NET 0 25.05.2011 22:19
Построить график С++ WinForms Lazio Помощь студентам 0 23.11.2010 21:40
построить график. с++ Yokka C++ Builder 1 13.05.2010 18:23
Построить график!! Inferno777 Помощь студентам 10 30.06.2009 17:46