[ Foro de Pseudocódigo ]

Codigo que falla?¿?

24-Mar-2014 18:32
Invitado (RDDR)
5 Respuestas

mi pregunta es que es el fallo en este menu ?¿?
por que me estoy volviendo bastante loco con lo de las variables definirla y todo esto he empezado a aprender las cosas basicas pero la verdad esk hasta con tutoriales /manuales es dificl pero intento esforzarme par entender lo y aprender a programar en PSeint para empezar a familiarizarme un poco con lo de los pseudocodigos etc. en fin dejo mi pequeño programma mi intencion es que una vez ejecutado cada uno de los 5 puntos puedas volver a repetir o reniciar vamos mi idea es hacer una calculadora jeje para empezar con menu y mas adelante pues mejorarla y convertirla en una calculadora a medida que vaya aprendiendo esta claro!!

gracias de antemano

aqui el codigo:

 
Proceso matematicas
	Definir OP Como Entero;
	Repetir
		// mostrar menu
		definir B,C,D,E,F,G,H,I,J,K,L,M,N como real;
		Limpiar Pantalla;
		Escribir "Menú de matematicas";
		Escribir "   1. Suma";
		Escribir "   2. Resta";
		Escribir "   3. Multiplicacion";
		Escribir "   4. division ";
		Escribir "   5. Salir";
		// ingresar una opcion
		Escribir "Elija una opción (1-5): ";
		Leer OP;
		// procesar esa opción
		Segun OP Hacer
			1:
				Escribir "Introduce dos nummeros para la Suma";
				leer N;
				leer B;
				C<-(N+B);
				Escribir "el resultado de la suma es:", C;
			2:
				Escribir "Inserte dos numeros para la resta";
				leer D;
				leer F;
				G<-(D-F);
				escribir "el resultado de la resta es:", G;
			3:
				Escribir "Inserte dos numeros para la multiplicacion";
				leer H;
				leer I;
				J<-(H*I);
				escribir "el resultado de la multiplicacion es:", J;
			4:
				Escribir "Inserte dos numeros para la division";
				leer K;
				leer L;
				M<-(K/L);
				escribir "el resultado de la division es:", M;
				escribir "selecione otro numero";
				leer OP;
			5:
				Escribir "ADIOS GRACIAS POR SU USO";
			De otro modo:
				Escribir "Opción no válida";
		FinSegun
		Escribir "Presione enter para continuar";
		Esperar Tecla;
	Hasta Que OP=5
FinProceso
 



24-Mar-2014 19:41
Invitado (RDDR)

Perdonen las molestias por lo que estoy viendo se me ha mandado todo el codigo 2 veces :(


25-Mar-2014 14:34
Nacho Cabanes (+31)

¿Qué fallo tiene?

Ahora no puedo probarlo, pero la estructura es buena. Hay alguna cosa mejorable, pero no son graves:

- Por convenio, se suele declarar todas la variables al principio (de hecho, hay lenguajes que no permiten declararlas en medio de otras órdenes).

- No necesitas usar tantas variables: puedes emplear las mismas 2 o 3 variables para sumar y para restar, por ejemplo.

- No necesitas paréntesis en operaciones tan simples.

- No entiendo por qué lees otro número en la opción 4 (división).


25-Mar-2014 15:27
robert dickl

Hola nacho gracias por la ayudo por suerte el problema que tenia ya lo he podido solucionar a base de buscar y buscar jeje bueno en fin lo que arriba habia mencionado ya esta mas que solucionado pero ahora se me presenta otro problema que es el siguiente:

He reestructurado todo mi programa y lo he vuelto un poco mas complejo la verdad esk no llevo ni tres dias programando y estoy sorprendido de lo que aprendido!!! enfin :

ya me he creado un pequeño menu con un poco de diseño
en vez de solo 5 opciones le he añadido 5 mas por lo tanto ahora son 10

mi duda esta en por que cuando pulso el 10 no se me cierra el programma y en vez de eso se renicia lo que antes queria hacer ahora lo quiero quitar XD pero solo cuando se introduce el numero correspondiente al cierre!!!

bueno enfin mucho hablar y pocas nueces ejej
espero que no moleste tanto codigo :P
PD: me gustaria que me fueseis criticando sobre mis trabajos ya que solo asi se puede mejorar :D Gracias de antemano por todo
aqui esta el codigo nuevo!!!!---->

 
Proceso PRUEBA
 
Definir OP,AB,AC,AD,AE,AF,AG,AH,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,BA,BB,BC,BD,BE,BF,BG,BH,BJ,BK,BL Como Entero;
Repetir
	Limpiar Pantalla;
	Escribir "Bienvenidos al DRRD CALCULATOR";
	Escribir " _____________________________";
	Escribir "| 1.SUMAR!                    |";
	Escribir "| 2.RESTAR!                   |";
	Escribir "| 3.MULTIPLICAR!              |";
	Escribir "| 4.DIVIDIR!                  |";
	Escribir "| 5.EL MAYOR DE DOS!          |";
	Escribir "| 6.EL MAYOR DE TRES!         |";
	Escribir "| 7.LA MITAD EXACTA!          |";
	Escribir "| 8.LA MEDIA DE EDAD MAX.5!   |";
	Escribir "| 9.CALCUALA DIAS Y HORAS    |";
	Escribir "|10.PARA SALIR DEL PROGRAMA   |";
	Escribir "|_____________________________|";
	Escribir "|  PORFAVOR ELIGA UNA DE LAS  |";
	Escribir "|      ANTERIORES OPCIONES    |";
	Escribir "|           GRACIAS!!!        |";
	Escribir "|_____________________________|";
	Leer OP;
	Segun OP Hacer
 
		1:
			Escribir " PORFAVOR INTRODUZCA DOS NUMEROS PARA INICIAR LA SUMA!!!";
			Leer AB;
			Leer AC;
			AD<-(AB+AC);
			Escribir " EL RESULTADO DE LA SUMA ES: ",AD;
		2:
			Escribir " PORFAVOR INTRODUZCA DOS NUMMEROS PARA INICIAR LA RESTA!!!";
			Leer AE;
			Leer AF;
			AG<-(AE-AF);
			Escribir " EL RESULTADO DE LA RESTA ES: ",AG;
		3:
			Escribir " PORFAVOR INTRODUZCA DOS NUMMEROS PARA INICIAR LA MULTIPLICACION!!!";
			Leer AH;
			Leer AJ;
			AK<-(AH*AJ);
			Escribir " EL RESULTADO DE LA MULTIPLICACION ES: ",AK;
		4:
			Escribir " PORFAVOR INTRODUZCA DOS NUMEROS PARA INICIAR LA DIVISION!!!";
			Leer AQ;
			leer AR;
			AS<-(AQ/AR);
			Escribir " ELSULTADO DE LA DIVISION ES: ",AS;
		5:
			Escribir " PORFAVOR INTRODUZCA DOS NUMMEROS PARA VER CUAL ES MAYOR!!!";
			Leer AL;
			leer AM;
			si AL>AM entonces
				Escribir " EL PRIMER NUMERO ES MAYOR Y ES EL SIGUIENTE: ",AL;
				Escribir " EL SEGUNDO NUMERO ES MENOR Y ES EL SIGUIENTE: ",AM;
			finsi
			si AL<AM Entonces
				Escribir " EL SEGUNDO NUMERO ES MAYOR Y ES EL SIGUIENTE: ",AM;
				Escribir " EL PRIMER NUMERO ES MENOR Y ES EL SIGUIENTE: ",AL;
			FinSi
			si AL=AM Entonces
				Escribir " LOS DOS NUMEROS SON IGUALES y son: ",AL;
			FinSi
		6:
			Escribir "MAYOR INFERIOR O IGUAL ";
			Escribir "PORFAVOR INTRODUZCA 3 NUMEROS!!!";
			Leer AN;
			Leer AO;
			Leer AP;
			si AN>AO Y AO>AP Entonces
				Escribir "EL PRIMERO NUMERO ES MAYOR Y ES EL: ",AN;
				Escribir "EL SEGUNDO NUMERO ES EL MEDIANO Y ES EL: ",AO;
				Escribir "EL TERCERO NUMERO ES EL MENOR Y ES EL: ",AP;
			FinSi
			si AO>AN Y AN>AP Entonces
				Escribir "EL SEGUNDO NUMERO ES MAYOR Y ES EL: ",AO;
				Escribir "EL PRIMERO NUMERO ES EL MEDIANO Y ES EL: ",AN;
				Escribir "EL TERCERO NUMERO ES EL MENOR Y ES EL: ",AP;
			FinSi
			si AP>AO Y AO>AN Entonces
				Escribir "EL TERCERO NUMERO ES MAYOR Y ES EL: ",AP;
				Escribir "EL SEGUNDO NUMERO ES EL MEDIANO Y ES EL: ",AO;
				Escribir "EL PRIMERO NUMERO ES EL MENOR Y ES EL: ",AN;
			FinSi
			Si AN=AO Y AO=AP Entonces
				Escribir "LOS TRES NUMEROS SON IGUALES Y SON EL: ",AN;
			finsi
		7:
			Escribir " LA MITAD EXACTA DE LA SUMA DE DOS NUMEROS!!!";
			Leer AT;
			Leer AU;
			AV<-(AT+AU);
			AW<-(AV/2);
			Escribir "LA MITAD EXACTA DE LA SUMA ES: ",AW;
		8:
			Escribir "AVERIGUA LA EDAD MEDIA QUE TENEIS ENTRE 5 PERSONAS!!!";
			Leer BA;
			Leer BB;
			Leer BC;
			Leer BD;
			Leer BE;
			BF<-(BA+BB+BC+BD+BE);
			BG<-(BF/5);
			Escribir "La media de los 5 es: ",BG;
		9:
			Escribir " __________________________";
			Escribir "|TODOS SABEMOS QUE UN AÑO  |";
			Escribir "| TIENE 365 DIAS UN TOTAL  |";
			Escribir "| DE 8760 HORAS QUE Y UNOS |";
			Escribir "|     525600 SEGUNDOS!!!   |";
			Escribir "|==========================|";
			Escribir "|   QUIERES SABER CUANTO   |";
			Escribir "|  TIEMPO LLEVAS VIVIENDO  |";
			Escribir "|CALCULALO CON ESTA OPCION |";
			Escribir "|   VERAS QUE SENCILLO ES  |";
			Escribir "|SOLO TIENES QUE INTRODUCIR|";
			Escribir "| LA CANTIDAD DE AÑOS QUE  |";
			Escribir "|     TIENES NADA MAS      |";
			Escribir "|==========================|";
			Leer BH;
			BJ<-(BH*365);
			BK<-(BJ*24);
			BL<-(BK*60);
			Escribir "ESTA ES LA CANTIDAD DE AÑOS VIVIDOS: ",BH;
			Escribir "ESTA ES LA CANTIDAD DE DIAS VIVIDOS: ",BJ;
			Escribir "ESTA ES LA CANTIDAD DE HORAS VIVIDOS: ",BK;
			Escribir "ESTA ES LA CANTIDAD DE SEGUNDOS VIVIDOS: ",BL;
 
		10:
 
			Escribir "Gracias, vuelva pronto";
		De otro modo:
			Escribir "Opción no válida";
		FINSEGUN
			Escribir "Presione enter para continuar";
	       Esperar Tecla;
	   Hasta que OP<-10;
FinProceso
 




25-Mar-2014 15:54
Nacho Cabanes (+31)

La apariencia es buena. Además de las mejoras que te he propuesto antes, hay alguna más:

- Usa nombres de variables tan legibles como sea posible (por ejemplo "media" en vez de "bg").

- Si haces programas pequeños, en vez de un "macroprograma", te será más fácil encontrar fallos y ampliar posteriormente. Que cada programa contenga sólo cosas relacionadas, porque éste ya tiene cosas muy distintas entre sí.

- El "hasta" está mal, o al menos debe estar haciendo algo que no creo que sea lo que tú esperas que haga: cuando haces "Hasta que OP<-10;" estás asignando un valor, en vez de comprobarlo.


25-Mar-2014 19:31
robert dickl

bueno lo de BG esk megusta complicarme la vida xD ahora estoy probando con lo de claves de acceso y tal que le estoy incorporando sigo tu curso de pseudocodigos y solo estoy por el tema 5-6 aunq voy ojeando otras cosas para hacer mas cosas y aprender mas por eso es tan complejo pero aparte de eso estoy creandome carpetas con cada tipo de codigos que voy haciendo por si algun dia se me escapa algo poder revisar con rapidez :P se que voy bastante deprisa haciendo como hago pero esque tengo muchisimas ganas de aprender a programar ya que tengo muchas ideas para app, juegos ... enfin simplemente gracias por todo y voy a ver si consigo hacer algo util :P
si tengo algun otro problema o duda consultare en este mismo post para no rellennar el foro con estupideces si les parece bien claro saludo Robert






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)