Moderador: Moderadores Programación
por oliverm » Vie Jul 16, 2010 7:30 pm
hola estoy aprendiendo pal segundo semestre y quiero hacer un programa que primero pregunte si quiero calcular el area o el volumen de la esfera, despues pregunte cantidad de decimales y luego el radio de la esfera, hasta el momento, diseñé esto, pero no compila ): - Código: Seleccionar todo
program aprendiendo; (*Oliver Mohr Versi¢n 1.1.0 Fecha de inicio 14-07-2010 Objetivo: Aprender Fichero: aprendiendo.pas*) const Pi=3.141592653589793238462643; var R: real; D: integer; dec: integer; n: char; function Volumen(R: real):real; function Area(R: real):real; begin Volumen:= (4/3)*Pi*R*R*R; Area:= 4*Pi*R*R; end; begin writeln('Bienvenido, antes de empezar especifique si desea calcular rea o volumen de la esfera (a/v)'); readln(n); CASE n of 'v': begin repeat writeln('¨Cu ntos decimales necesita usar (0-9)?'); readln(d); if (0>d) or (d>9) then write ('Ingrese un n£mero entre 0 y 9.'); until (0<=d) and (d<=9); repeat writeln('Ingrese el radio de la esfera.'); readln(R); if R > 0 then write ('Esfera de radio ',R:2*d:d, ' tiene volumen ',Volumen(R):2*d:d) else write ('El radio ingresado no es un n£mero mayor a 0.'); writeln(); writeln ('Desea continuar? (s/n)'); readln(n); until n='n'; writeln('Adios presione cualquier tecla para terminar.'); readln(); end; 'a': begin repeat writeln('¨Cu ntos decimales necesita usar (0-9)?'); readln(d); if (0>d) or (d>9) then write ('Ingrese un n£mero entre 0 y 9.'); until (0<=d) and (d<=9); repeat writeln('Ingrese el radio de la esfera.'); readln(R); if R > 0 then write ('Esfera de radio ',R:2*d:d, ' tiene rea ',Area(R):2*d:d) else write ('El radio ingresado no es un n£mero mayor a 0.'); writeln(); writeln ('Desea continuar? (s/n)'); readln(n); until n='n'; writeln('Adios presione cualquier tecla para terminar.'); readln(); end; end; end.
(e visto q muchos tienen espacios para el lado y se ve más ordenado, mi programa no lo hace sólo y tampoco se si lo hace alguno o si lo hacen los programadores para ordenarse, al caso, tiré algunas lineas para el lado yo) agradecería ayuda 
-
oliverm
- Mechón
-
- Mensajes: 17
- Registrado: Sab May 22, 2010 3:43 pm
- Campus: Casa Central
-
por ANGeee » Vie Jul 16, 2010 7:49 pm
compañero : esto que estay haciendo es casi lo ultimo de pascal es materia del 2º certamen
program aprendiendo; const Pi=3.141592653589793238462643; var R: real; D: integer; dec: integer; n: char; function Volumen(R: real):real; begin Volumen:= (4/3)*Pi*R*R*R; end; function Area(R: real):real; begin
Area:= 4*Pi*R*R; end; begin writeln('Bienvenido, antes de empezar especifique si desea calcular rea o volumen de la esfera (a/v)'); readln(n); CASE n of 'v': begin repeat writeln('¨Cu ntos decimales necesita usar (0-9)?'); readln(d); if (0>d) or (d>9) then write ('Ingrese un n£mero entre 0 y 9.'); until (0<=d) and (d<=9); repeat writeln('Ingrese el radio de la esfera.'); readln(R); if R > 0 then write ('Esfera de radio ',R:2*d:d, ' tiene volumen ',Volumen(R):2*d:d) else write ('El radio ingresado no es un n£mero mayor a 0.'); writeln(); writeln ('Desea continuar? (s/n)'); readln(n); until n='n'; writeln('Adios presione cualquier tecla para terminar.'); readln(); end; 'a': begin repeat writeln('¨Cu ntos decimales necesita usar (0-9)?'); readln(d); if (0>d) or (d>9) then write ('Ingrese un n£mero entre 0 y 9.'); until (0<=d) and (d<=9); repeat writeln('Ingrese el radio de la esfera.'); readln(R); if R > 0 then write ('Esfera de radio ',R:2*d:d, ' tiene rea ',Area(R):2*d:d) else write ('El radio ingresado no es un n£mero mayor a 0.'); writeln(); writeln ('Desea continuar? (s/n)'); readln(n); until n='n'; writeln('Adios presione cualquier tecla para terminar.'); end; end; end.
la funcion volumen la teniai estaba mala ahi la arregle
@angcerpa
-

ANGeee
- Mechón
-
- Mensajes: 12
- Registrado: Mié Ago 12, 2009 8:12 pm
- Campus: Casa Central
-
por oliverm » Vie Jul 16, 2010 9:30 pm
buena gracias, a puro ocio no más No sabrías cómo hacer si pongo "h" por ejemplo cuando me pregunta si deseo continuar, que diga la opción digitada no es válida intente nuevamente, o cuando pide números lo mismo o cuando pregunta area o volumen... gracias 
-
oliverm
- Mechón
-
- Mensajes: 17
- Registrado: Sab May 22, 2010 3:43 pm
- Campus: Casa Central
-
por ANGeee » Sab Jul 17, 2010 1:37 am
siipos obvio que se hacerlo ;D xd la forma mas estándar pa validar los datos es mas o menos asi, dependiendo si quieres recibir un numero o un carácter o una cadena de caracteres
repeat writeln('Bienvenido, antes de empezar especifique si desea calcular rea o volumen de la esfera (a/v)'); readln(n); if (n<>'a') and (n<>'v') then writeln('debe ingresar a o v'); until (n='a') or (n='v');
y asi pos o si queres que te ingrese una edad de alguien y tiene que ser mayor de edad por ejemplo:
repeat writeln('ingrese edad '); readln(n); until n>=18;
de ahi hay cosas mas raras para cambiar de caracter a numero y de numero a caracter si es necesario en tu validación pero eso lo veras en clases
Última edición por ANGeee el Sab Jul 17, 2010 10:41 am, editado 1 vez en total
@angcerpa
-

ANGeee
- Mechón
-
- Mensajes: 12
- Registrado: Mié Ago 12, 2009 8:12 pm
- Campus: Casa Central
-
por oliverm » Sab Jul 17, 2010 3:28 am
ANGeee escribió:siipos obvio que se hacerlo ;D xd la forma mas estándar pa validar los datos es mas o menos asi, dependiendo si quieres recibir un numero o un carácter o una cadena de caracteres
repeat writeln('Bienvenido, antes de empezar especifique si desea calcular rea o volumen de la esfera (a/v)'); readln(n); if (n<>a') and (n<>'v') then writeln('debe ingresar a o v'); until (n='a') or (n='v');
y asi pos o si queres que te ingrese una edad de alguien y tiene que ser mayor de edad por ejemplo:
repeat writeln('ingrese edad '); readln(n); until n>=18;
de ahi hay cosas mas raras para cambiar de caracter a numero y de numero a caracter si es necesario en tu validación pero eso lo veras en clases
puta que me siento wn xD
-
oliverm
- Mechón
-
- Mensajes: 17
- Registrado: Sab May 22, 2010 3:43 pm
- Campus: Casa Central
-
Volver a Lenguaje Pascal
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado
|