![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.05.2009
Сообщений: 3
|
![]() ![]() так вот...нужно решить уравнение "(е^t)-x" в паскале методом эйлера и Эйлера мод,вывести 2 графика. мне одим оч хороший знакомый решил...но блин препод не поверит что я(блондинка по характеру) смогла этакое вытворить...поэтому мне вв нужно упростить...собствено вот. program kursa1; uses crt,graph; const x0c=1; {znachenie fynkzii v tochke 1} hc=0.1; {shag} t0c=1; {min znacenie argumenta} tkc=2; {max znacenie argumenta} var masx:array[0..1011] of real; Eiler:array[0..1011] of real; EilerMod:array[0..1011] of real; i,N,dy:integer; st:string; gd,gm,err:integer; {grafik init} xmax,ymax:integer; {grafik var} dyp,dym,ky,dxp,dxm,kx:real; xo,yo:integer; xm,ym:integer; qy,nx,ny:integer; key:char; xp,yp:real; x0,h,t0,tk:real; {VXODNIE DANNIE TYT!!!} function fen1(tf,xf:real):real; var rez:real; begin rez:=exp(tf)-xf; fen1:=rez; end; procedure eileri(x0s,xk,y0:real); var i:integer; xi:real; begin for i:=0 to N-1 do begin xi:=x0s+i*h; masx[i+1]:=xi; Eiler[i+1]:=Eiler[i]+h*fen1(xi,Eiler[i]); end; end; procedure EilerM(x0s,xk,y0:real); var i:integer; xi:real; begin for i:=0 to N do begin xi:=x0s+i*h; EilerMod[i+1]:=EilerMod[i]+h*Fen1(xi+h/2,EilerMod[i]+h/2*Fen1(xi-h,EilerMod[i])); end; end; procedure Graffik; begin gd:=detect; Initgraph(gd,gm,''); err:=graphresult; if err<>0 then begin writeln('InitGpraph failure, error:',err,'. Gprah-driver not found. Stopping program..'); readln; halt; end; setcolor(yellow); xmax:=getmaxx; ymax:=getmaxy; if x0<0 then begin dy:=-10; ym:=ymax-60; yo:=20; end else begin dy:=10; ym:=20; yo:=ymax-60; end; xo:=85; xm:=xmax-20; outtextxy(10,ymax-30,'Dlya vivoda tablici s dannimi jmi T, dlya vixoda jmi Q'); outtextxy(10,ymax-10,'Dlya vvoda drygix dannix jmi R'); setcolor(green); setlinestyle(0,0,3); line(xmax-185,ymax-30,xmax-155,ymax-30); outtextxy(xmax-145,ymax-35,'Funczia Eilera'); setcolor(red); line(xmax-185,ymax-10,xmax-155,ymax-10); outtextxy(xmax-145,ymax-15,'Funczia EilerMod'); setlinestyle(0,0,1); dxp:=xm-xo; {chislo pixelei na shkaly} dxm:=n; {chislo otrezkov na shkaly} kx:=abs(dxp/dxm);{chislo pixelei na otrezok} nx:=n; {chislo otrezkov po x} setlinestyle(1,0,1); setcolor(white); {SHKALA PO X} for i:=1 to nx do begin xp:=trunc(xo+kx*i); line(trunc(xp),yo+6,trunc(xp),ym); str(masx[i]:3:1,st); outtextxy(trunc(xp-10),yo+dy,st); end; setlinestyle(0,0,1); line(xo,yo,xm,yo); setlinestyle(1,0,1); {/SHKALA PO X} dyp:=yo-ym; {vsego pixelei} dym:=n; {vsego otrezkov} ky:=dyp/dym; {kolichestvo pixelei v otrezke} ny:=n; {vsego otrezkov na shkaly} {SHKALA PO Y} if abs(eiler[n])>abs(eilermod[n]) then qy:=round(eiler[n]) else qy:=round(eilermod[n]); {maximalnoe znachenie po y} for i:=0 to n do begin yp:=yo-ky*i; line(xo-6,trunc(yp),xm,trunc(yp)); str(qy/n*i:4:1,st); outtextxy(xo-80,trunc(yp),st); end; setlinestyle(0,0,1); line(xo,yo,xo,ym); {/shkala po y} yp:=dyp/qy; {kolichestvo tochek v mat edinice} {RISUEM EILERA} {GREEN} setlinestyle(0,0,3); setcolor(green); for i:=0 to n-1 do begin circle(round(xo+i*kx),round(yo-(eiler[i])*yp),2); line(round(xo+i*kx),round(yo-(eiler[i])*yp),round(xo+(i+1)*kx),round(yo-(eiler[i+1])*yp)); end; circle(round(xo+n*kx),round(yo-(eiler[n])*yp),2); {/RISUEM EILERA} {RISUEM EILERMOD} setcolor(red); for i:=0 to n-1 do begin circle(trunc(xo+i*kx),trunc(yo-(eilermod[i])*yp),2); line(trunc(xo+i*kx),trunc(yo-(eilermod[i])*yp),trunc(xo+(i+1)*kx),trunc(yo-(eilermod[i+1])*yp)); end; circle(trunc(xo+n*kx),trunc(yo-(eilermod[n])*yp),2); {/RISUEM EILERMOD} end; |
![]() |
![]() |
![]() |
#2 |
Регистрация: 20.05.2009
Сообщений: 3
|
![]()
procedure table;
begin {closegraph;} {restorecrtmode;} textmode(lastmode); {clrscr;} writeln(' ___________________________________ _____'); writeln('| X | Eiler | EilerM |'); writeln('|___________|_____________ _|_____________|'); writeln('| | | |'); for i:=1 to n do writeln('|',masx[i]:8:2,' | ',Eiler[i]:11:5,' | ',EilerMod[i]:11:5,' |'); writeln('|___________|_____________ _|_____________|'); writeln; writeln('Jmi G dlya vivoda grafika'); writeln('Jmi R dlya vvoda drygix vxodnix dannix'); writeln('Jmi Q dlya vixoda'); end; {procedure vvodim(ti,tic:real); begin st:=''; err:=0; readln(st); val(st,ti,err); if err<>0 then begin writeln('Vvedeno nevernoe znacenie (ne chislennoe), ispolzuem Default'); ti:=tic; end; writeln(ti:7:2); st:=''; end; } procedure dannie; begin textmode(lastmode); {t0:=t0c; tk:=tkc; h:=hc; x0:=x0c;} writeln; writeln('Vvedite znacenie pervoi tochki argumenta (DEFAULT=',t0c:5,')'); st:=''; err:=0; readln(st); val(st,t0,err); if err<>0 then begin writeln('Vvedeno nevernoe znacenie (ne chislennoe), ispolzuem Default'); t0:=t0c; end; { vvodim(t0,t0c);} writeln; writeln('Vvedite znacenie poslednei tochki argumenta (DEFAULT=',tkc:5,')'); { vvodim(tk,tkc); } st:=''; err:=0; readln(st); val(st,tk,err); if err<>0 then begin writeln('Vvedeno nevernoe znacenie (ne chislennoe), ispolzuem Default'); tk:=tkc; end; writeln; writeln('Vvedite znachenie shaga argumenta (DEFAULT=',hc:5:2,')'); st:=''; err:=0; readln(st); val(st,h,err); if err<>0 then begin writeln('Vvedeno nevernoe znacenie (ne chislennoe), ispolzuem Default'); h:=hc; end; { vvodim(h,hc); } writeln; writeln('Vvedite znacenie funczii v pervoi tochke (DEFAULT=',x0c:5,')'); st:=''; err:=0; readln(st); val(st,x0,err); if err<>0 then begin writeln('Vvedeno nevernoe znacenie (ne chislennoe), ispolzuem Default'); x0:=x0c; end; { vvodim(x0,x0c); } {writeln(h:5:2);} readln; Eiler[0]:=x0; EilerMod[0]:=x0; N:=trunc(abs(tk-t0)/h)+1; writeln('N=',n); writeln('t0=',t0:5:2); writeln('tk=',tk:5:2); writeln('h=',h:5:2); readkey; Eileri(t0,tk,x0); EilerM(t0,tk,x0); end; procedure vetka; begin repeat key:=readkey; if key='r' then begin clrscr; dannie; table; vetka; end else if key='t' then begin {closegraph;} table; vetka; end else if key='g' then begin {SetGraphMode(detect)} graffik; vetka; end; until key='q'; halt; end; {TELO PROGRAMMI NACHALO} begin clrscr; dannie; table; vetka; end. надеюсь на помощ...завтра сдавать ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 24.05.2009
Сообщений: 119
|
![]()
SIGMA
вы бы хоть код отформатировали, как принято,читать же тяжело |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 29.05.2009
Сообщений: 14
|
![]()
помогите пожалуйста!мне надо га си++ написать программу, кторая при вводе какогото арифмитического действия выдает как бы дерево разложения. например (х+5)*(3-(а-8)) и надо чтоб получилось * дальше 2 стрелочки в одной плюс (и из нее отходит опять 2 стрелочки в одной 5 в другой х, вот ) а в другой минус потом из нее 2 стрелочки в одной а в другой минус от нее еще 2 стрелочки в одной а в другой 8, ну короче разложение такое!!
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
![]()
Польская запись.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите девушке с ассемблером | supersuper2 | Помощь студентам | 1 | 02.04.2009 19:17 |
Помогите, пожалуйста, девушке... | Pushinka | Microsoft Office Access | 18 | 06.06.2008 00:03 |
Помогите девушке с простеньким VBA! | yanka | Microsoft Office Excel | 6 | 06.03.2008 00:35 |