Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/04/2005, 07:37
Rikimaru
 
Fecha de Ingreso: agosto-2003
Ubicación: Zaragoza
Mensajes: 25
Antigüedad: 20 años, 9 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.