Program S2;
uses crt;
Const
a = 0;
b = 3;
Type
tenreg = Record
rect : real;
trap : real;
nb : integer;
End;
tf = file Of tenreg;
Var
f : tf;
v : tenreg;
eps : real;
rep : integer;
//**************************************
Function fct (x:real) : real;
Begin
fct := sqr(x);
End;
//**************************************
Procedure epsilon (Var eps:real);
Begin
Repeat
write(' taper une valeur pour epsilon:');
readln(eps);
Until (eps>=0.0001) And (eps<=0.1);
End;
//**************************************
Function rectangle ( n:integer) : real;
Var
x, h,S : real;
i : integer;
Begin
S := 0;
h := (b-a)/n;
x := (a+h/2);
For i:=1 To n Do
Begin
S := S+fct(x);
x := x+h;
End;
rectangle := s*h;
End;
//**************************************
Function trapeze ( n:integer) : real;
Var
x, h,S : real;
i : integer;
Begin
h := (b+a)/n;
s := (fct(a)+fct(a+h))/2;
x := a;
For i:=1 To n-1 Do
Begin
x := x+h;
S := S+(fct(x)+fct(x+h))/2;
End;
trapeze := s*h;
End;
//**************************************
Procedure trait (Var f:tf; eps:real; Var rep:integer);
Var
n : integer;
v : tenreg;
Dif1,dif2,A1,A2 : real;
Begin
reset(f);
n := 1;
Repeat
n := n+1;
A1 := rectangle(n);
A2 := trapeze(n);
v.nb := n;
V.rect := A1;
v.trap := A2;
write(f,v);
dif1 := abs(rectangle(n)-rectangle(n-1));
dif2 := abs(trapeze(n)-trapeze(n-1));
writeln('n=',n, A1:9:5, A2:9:5);
readln;
Until (dif1<=eps)Or(dif2<=eps);
If (dif1<eps) Then
rep := 1;
If (dif2<eps) Then
rep := 2;
writeln('la methode est ',rep);
close(f);
End;
//**************************************
Procedure afficher (Var f:tf; rep:integer);
Var
v : tenreg;
mes : string;
Begin
writeln('***N****','*Rectangle*','*trapeze*');
reset(f);
While Not(eof(f)) Do
Begin
read(f,v);
writeln(v.nb,v.rect:9:5,v.trap:9:5);
End;
If rep=1 Then
mes := 'Med des rectangles'
Else If rep=2 Then
mes := 'Med des trapèzes'
Else mes := 'Exéquo';
writeln('la methode qui converge la première est :',mes);
End;
Begin
assign(f,'c:\calcul.dat');
rewrite(f);
Repeat
epsilon(eps);
writeln(rectangle(5));
trait(f,eps,rep);
afficher(f,rep);
Until keypressed;
End.
Inscription à :
Publier les commentaires (Atom)