|    
			
				28/04/2005, 07:37
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: agosto-2003 Ubicación: Zaragoza 
						Mensajes: 25
					 Antigüedad: 22 años, 2 meses Puntos: 0 |  | 
  |  Finalmente entregue el programa, pero esta mal a causa de que utilce la sentencia goto:
 program Calculos;
 Label 1;
 const
 pi=3.1415926;
 function cambiarRadio:real;
 var
 r:real;
 begin
 {$I-}
 Repeat
 writeln('');
 writeln('Nuevo Radio');
 readln(r);
 Until (IOResult=0) and (r>0);
 cambiarRadio:=r;
 End;
 function cambiarAltura:real;
 var
 al:real;
 begin
 {$I-}
 Repeat
 writeln('');
 writeln('Nueva Altura');
 readln(al);
 Until (IOResult=0) and (al>0);
 cambiarAltura:=al;
 End;
 function mensaje:integer;
 var
 n:integer;
 Begin
 {$I-}
 Repeat
 writeln('');
 writeln('Elige la opcion');
 writeln('1.Cambiar el radio considerado para los calculos');
 writeln('2.Modificar el valor de la altura');
 writeln('3.Calcular el perimetro de la circunferencia');
 writeln('4.Calcular el area de la circulo');
 writeln('5.Calcular el volumen de la esfera');
 writeln('6.Calcular el volumen del cilindro');
 writeln('7.Calcular todos los valores anteriores a la vez');
 writeln('8.Salir del programa');
 readln(n);
 Until (IOResult=0) and (n=1) or (n=2) or (n=3) or (n=4) or (n=5) or (n=6) or (n=7) or (n=8);
 {$I+}
 mensaje:=n;
 End;
 function perimetro(r:real):real;
 var
 pe : real;
 begin
 pe:= 2*pi*r;
 perimetro:=pe;
 end;
 function area(r:real):real;
 var
 a : real;
 begin
 a:= pi*r*r;
 area:=a;
 end;
 function vole(r:real):real;
 var
 voe : real;
 begin
 voe:= 4/3*area(r)*r;
 vole:=voe;
 end;
 function cili(r:real;al:real):real;
 var
 cil : real;
 begin
 cil:=area(r)*al;
 cili:=cil;
 end;
 
 var
 n :integer;
 ra, al, per, ar, vo, ci, a1, a2, a3, a4, a5, l1, l2: real;
 
 Begin
 
 1:begin
 n:=mensaje;
 If n= 1 then
 begin
 ra:=cambiarRadio;
 goto 1;
 end;
 If n=2 then
 begin
 al:=cambiarAltura;
 goto 1;
 end;
 If n=3 then
 begin
 If (a1<>ra) then
 begin
 per:=perimetro(ra);
 writeln('');
 writeln('El perimetro es ',per:2:2);
 writeln('');
 a1:=ra;
 goto 1;
 end;
 If  a1=ra  then
 begin
 writeln('');
 writeln('El perimetro es ',per:2:2);
 writeln('');
 goto 1;
 end;
 end;
 If n=4 then
 begin
 if a2<>ra then
 begin
 ar:=area(ra);
 writeln('');
 writeln('El area es ',ar:2:2);
 writeln('');
 a2:=ra;
 goto 1;
 end;
 if a2=ra then
 begin
 writeln('');
 writeln('El area es ',ar:2:2);
 writeln('');
 goto 1;
 end;
 end;
 If n=5 then
 begin
 if a3<>ra then
 begin
 vo:=vole(ra);
 writeln('');
 writeln('El volumen es ',vo:2:2);
 writeln('');
 a3:=ra;
 goto 1;
 end;
 If a3=ra then
 begin
 writeln('');
 writeln('El volumen es ',vo:2:2);
 writeln('');
 goto 1;
 end;
 end;
 If n=6 then
 begin
 if (a4<>ra) or (a1<>al) then
 begin
 ci:=cili(ra,al);
 writeln('');
 writeln('El volumen es ',ci:2:2);
 writeln('');
 a4:=ra;
 l1:=al;
 goto 1;
 end;
 If a4=ra then
 begin
 writeln('');
 writeln('El volumen es ',ci:2:2);
 writeln('');
 end;
 end;
 If n=7  then
 begin
 ra:=cambiarRadio;
 al:=cambiarAltura;
 if ((a5<>ra) and (l2<>al)) or ((a5<>ra) and (l2=al)) then
 begin
 writeln('');
 per:=perimetro(ra);
 writeln('El perimetro de la circunferencia es ',per:2:2);
 ar:=area(ra);
 writeln('El area del circulo es ',ar:2:2);
 vo:=vole(ra);
 writeln('El volumen de la esfera es ',vo:2:2);
 ci:=cili(ra,al);
 writeln('El volumen del cilindro es ',ci:2:2);
 writeln('');
 a5:=ra;
 l2:=al;
 goto 1;
 end;
 IF (a5=ra) and (l2=al) then
 begin
 writeln('');
 writeln('El perimetro de la circunferencia es ',per:2:2);
 writeln('El area del circulo es ',ar:2:2);
 writeln('El volumen de la esfera es ',vo:2:2);
 writeln('El volumen del cilindro es ',ci:2:2);
 writeln('');
 goto 1;
 end;
 if (a5=ra) and (l2<>al) then
 begin
 writeln('');
 writeln('El perimetro de la circunferencia es ',per:2:2);
 writeln('El area del circulo es ',ar:2:2);
 writeln('El volumen de la esfera es ',vo:2:2);
 ci:=cili(ra,al);
 writeln('El volumen del cilindro es ',ci:2:2);
 writeln('');
 goto 1;
 end;
 end;
 end;
 end.
     |