![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Sargonnas |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
Код Вначале создан Юнит Unit Iterate; interface Uses crt, Graph; Var a,i,b,k,Err,x0,y0,x1,y1,m,w,x3,y3,x2,y2:integer; x,y,s:extended; procedure Init_Graph; function iterative(x:real):real; function recursive(a,x,b:extended):extended; procedure gra; Implementation procedure Init_Graph; var GD, GM, EC: Integer; begin GD:= Detect; InitGraph(GD,GM,'C:\Program Files\Turbo_Pascal\BGI\'); EC:= GraphResult; if EC<>GrOK then begin WriteLn('Error Graphic Initialize: ', GraphErrorMsg(EC)); Halt(1); end; end; function iterative(x:real):real; var a,b:real; begin a:=x; s:=0; b:=1; while abs(a/b)>0.001 do begin s:=s+a/b; a:=a*(-x*x); b:=b+2; end; iterative:=s; end; function recursive(a,x,b:extended):extended; begin if abs(a/b)>0.01 then recursive:=recursive(a*(-x*x),x,b+2)+(a/b) else recursive:=0; end; procedure gra; begin x0:=200; y0:=250; m:=150; w:=150; SetColor(2); {coord.line.x} Line(0,450,639,450); {arrows x} Line(639,450,629,445); Line(639,450,629,455); {coord.line.y} Line(200,0,200,479); {arrows y} Line(200,0,205,10); Line(200,0,195,10); {text.x;text.y} OutTextXY(210,5,'Y'); OutTextXY(630,435,'X'); OutTextXY(205,455,'0'); OutTextXY(50,455,'-1'); OutTextXY(350,455,'1'); SetLineStyle(3,0,1); Line(350,450,350,50); Line(50,455,50,50); SetColor(2); SetLineStyle(0,0,0); Rectangle(380,120,385,125); OutTextXY(390,120,'Function y=arctan(x)'); SetColor(4); Rectangle(380,140,385,145); OutTextXY(390,140,'Iterative'); SetColor(5); Rectangle(380,160,385,165); OutTextXY(390,160,'Recursive'); SetColor(2); OutTextXY(390,180,'for next - press ENTER'); readkey; x:=-1; while x<=1 do begin y:=arctan(x); x1:=Round(x0+x*w); y1:=Round(y0-y*m); PutPixel(x1,y1,2); x:=x+0.001; end; readkey; x:=-1; while x<=1 do begin x2:=Round(x0+x*w); y2:=Round(y0-iterative(x)*m); PutPixel(x2,y2,4); x:=x+0.001; end; readkey; x:=-1; while x<=1 do begin x3:=Round(x0+x*w); y3:=Round(y0-recursive(x,x,1)*m); PutPixel(x3,y3,5); x:=x+0.001; end; readkey; {end.else.point.} end; End. Затем главная программа program individualka; Uses Crt,Graph,Iterate; Var a,b,i,k,Err,x0,y0,x1,y1,m,w,x2,y2,x3,y3:integer; x,y,s:extended; Begin clrscr; x:=-1; write('|| X || Iterative || Recursive || Arctg ||'); writeln(''); while x<=1.1 do begin if x>0 then TextColor(Red) else TextColor(Green); writeln('|| ',x:3:2,' || ',iterative(x):3:2,' || ',recursive(x,x,1):3:2,' || ', arctan(x):3:2,' ||'); x:=x+0.1; end; Textcolor(Green); writeln(''); write('press any key for graphics drawing...'); readkey; Init_Graph; gra; readkey; CloseGraph; End. Товарищи, если не тяжело, помогите. Нужно написать эту же программу на С. Желательно, без изменений. Заранее благодарна. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что-то вот такого типа:
1) файл ITERATE.H: #ifndef __ITERATE_H__
#define __ITERATE_H__
void init_graph();
float iterative(float);
double recursive(double, double, double);
void gra();
extern int x0, y0, m, w, x1, y1, x2, y2, x3, y3;
#endif
2) файл ITERATE.CPP #include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
#include <math.h>
#include "ITERATE.H"
/*
Var a,i,b,k,Err,x0,y0,x1,y1,m,w,x3,y3,x2,y2:integer;
x,y,s:extended;
*/
int x0, y0, x1, y1, x2, y2, x3, y3, m, w;
void init_graph() {
int error_code, graph_mode, graph_driver = DETECT;
initgraph(&graph_driver, &graph_mode, "");
if((error_code = graphresult()) != grOk) {
printf("Error Graphic Initialize: %s\n", grapherrormsg(error_code));
getch();
exit(1);
}
}
float iterative(float x) {
// var a,b:real;
float a = x, s = 0;
float b = 1;
while(fabs(a / b) > 0.001) {
s += a / b;
a *= (-x*x);
b += 2;
}
return s;
}
double recursive(double a, double x, double b) {
if(fabs(a / b) > 0.01)
return recursive(a*(-x*x), x, b+2) + (a / b);
else return 0;
}
void gra() {
x0=200; y0=250;
m =150; w =150;
setcolor(GREEN);
// coord.line.x
line(0,450,639,450);
// arrows x
line(639,450,629,445);
line(639,450,629,455);
// coord.line.y
line(200,0,200,479);
// arrows y
line(200,0,205,10);
line(200,0,195,10);
// text.x; text.y
outtextxy(210, 5, "Y");
outtextxy(630,435, "X");
outtextxy(205,455, "0");
outtextxy( 50,455,"-1");
outtextxy(350,455, "1");
setlinestyle(DASHED_LINE, 0, 1);
line(350,450,350,50);
line(50,455,50,50);
setcolor(GREEN);
setlinestyle(SOLID_LINE, 0, 0);
rectangle(380,120,385,125);
outtextxy(390,120,"Function y=arctan(x)");
setcolor(RED);
rectangle(380,140,385,145);
outtextxy(390,140,"Iterative");
setcolor(MAGENTA);
rectangle(380,160,385,165);
outtextxy(390,160,"Recursive");
setcolor(GREEN);
outtextxy(390,180,"for next - press ENTER");
getch();
double x = -1, y;
while(x <= 1) {
y = atan(x);
x1 = (int)(x0 + x*w);
y1 = (int)(y0 - y*m);
putpixel(x1, y1, GREEN);
x += 0.001;
}
getch();
x = -1;
while(x <= 1) {
x2 = (int)(x0+x*w);
y2 = (int)(y0-iterative(x)*m);
putpixel(x2, y2, RED);
x += 0.001;
}
getch();
x = -1;
while(x <= 1) {
x3 = (int)(x0+x*w);
y3 = (int)(y0-recursive(x,x,1)*m);
putpixel(x3, y3, MAGENTA);
x += 0.001;
}
getch();
// end.else.point.
}
3) файл MAIN.CPP #include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include "ITERATE.H"
// Uses Crt,Graph,Iterate;
// Var a,b,i,k,Err,x0,y0,x1,y1,m,w,x2,y2,x3,y3:integer;
// x,y,s:extended;
int main() {
clrscr();
double x = -1;
textcolor(WHITE);
cprintf("|| X || Iterative || Recursive || Arctg ||\n\r\n\r");
while(x <= 1.05) {
if(x > 0) textcolor(LIGHTRED);
else textcolor(LIGHTGREEN);
cprintf("|| %+3.2f || %+3.2f || %+3.2f || %+3.2f ||\n\r",
x, iterative(x), recursive(x, x, 1), atan(x)
);
x += 0.1;
}
textcolor(LIGHTGREEN);
cprintf("\n\rpress any key for graphics drawing...");
getch();
init_graph();
gra();
getch();
closegraph();
return 0;
}
Придется открыть проект, и оба CPP файла к этому проекту добавить (С++ не позволяет делать так, как Pascal, чтобы просто откомпилировать модуль, и потом его использовать в программе - нужно добавлять все CPP, или OBJ, но все равно добавлять, файлы)... Разберешься? (тестировалось на TC++ 3.0) |
Sargonnas |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
Огромное спасибо. Да, конечно, разберусь)
![]() |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 1:52 |