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
Perdonen las molestias por lo que estoy viendo se me ha mandado todo el codigo 2 veces :(
¿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).
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
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.
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.)