Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program pregunta2;
- type TArrCoordenada = array [1..100000] of Real;
- var numSeg:Integer;
- a,b,c,d,e,f,i1,i2,area,longitud: Real;
- x,y: TArrCoordenada;
- procedure DeterminarCoordenadas(a,b,c,d,e,f,i1,i2: Real;var x,y: TArrCoordenada;
- numSeg: Integer);
- var i,numIntervalos: Integer;
- tamIntervalo: Real;
- begin
- //Calcular valores de los intervalos
- for i:=1 to 1000 do begin
- x[i]:=0; y[i]:=0;
- end;
- numIntervalos:=numSeg+1;
- tamIntervalo:=(i2-i1)/numSeg;
- x[1]:=i1;
- for i:=2 to numIntervalos do begin
- x[i]:=x[i-1]+tamIntervalo;
- end;
- //Determinamos las coordenadas
- for i:=1 to numIntervalos do begin
- y[i]:=a*x[i]*x[i]*x[i]*x[i]*x[i]+b*x[i]*x[i]*x[i]*x[i]+c*x[i]*x[i]*x[i]+d*x[i]*x[i]+e*x[i]+f;
- end;
- end;
- function calcularArea(var x,y: TArrCoordenada;numSeg: Integer): Real;
- var i: Integer;
- tamIntervalo,sumaArea,area: Real;
- begin
- sumaArea:=0;
- tamIntervalo:=(i2-i1)/numSeg;
- for i:=1 to numSeg do begin
- area:=(y[i]+y[i+1])/2*TamIntervalo;
- sumaArea:=sumaArea+area;
- end;
- calcularArea:=sumaArea;
- end;
- function calcularLongitud(var x,y: TArrCoordenada;numSeg: Integer):Real;
- var i: Integer;
- sumaLong,long,tamIntervalo: Real;
- begin
- sumaLong:=0;
- tamIntervalo:=(i2-i1)/numSeg;
- for i:=1 to numSeg do begin
- long:=sqrt(sqr(y[i+1]-y[i])+sqr(TamIntervalo));
- sumaLong:=sumaLong+long;
- end;
- calcularLongitud:=sumaLong;
- end;
- procedure calcularAreaYLongitud(a,b,c,d,e,f,i1,i2: Real;var numSeg:Integer;
- var x,y: TArrCoordenada;var area,longitud: Real);
- var area1,area2: Real;
- begin
- area1:=0;
- area2:=0;
- repeat
- area1:=area2;
- inc(numSeg);
- DeterminarCoordenadas(a,b,c,d,e,f,i1,i2,x,y,numSeg);
- area2:=calcularArea(x,y,numSeg);
- longitud:=calcularLongitud(x,y,numSeg);
- until (abs(area1-area2)<0.00001) or (numSeg>99998);
- area:=area2;
- end;
- begin
- writeln('Ingrese los valores para los coeficientes a,b,c,d,e,f:');
- readln(a,b,c,d,e,f);
- writeln('Ingrese los intervalos:');
- readln(i1,i2);
- numSeg:=0;
- calcularAreaYLongitud(a,b,c,d,e,f,i1,i2,numSeg,x,y,area,longitud);
- writeln('Area final: ',area:5:1);
- writeln('Longitud final: ',longitud:5:1);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment