Tengo una consulta acerca de esta herramienta. Estuve empleando PSeInt (versión 20250314) para adaptar algunos ejercicios escritos originalmente en C y encontré una posible limitación de la estructura "Según" de la que quería comentar.
En particular, estaba implementando una calculadora en la que el operador se almacena como carácter ('+', '-', '' y '/'). En C, y en otros lenguajes, resulta natural utilizar esos mismos valores directamente como casos de un "switch", por ejemplo:
«switch (operador) {
case '+':
result = num1 + num2;
printf("= %.2lf", result);
break;
case '-':
result = num1 - num2;
printf("= %.2lf", result);
break;
case '':
result = num1 num2;
printf("= %.2lf", result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("= %.2lf", result);
}
else {
printf("La division por cero no esta permitida.");
}
break;
default:
printf("Operador no valido.");
break;
}»
Nótese que, en mi caso, estoy declarando a la variable "operador" como carácter:
« char operador; »
Adjunté un archivo de texto con el código original en C como referencia.
Al querer representarlo en PSeInt, no estoy pudiendo representar de manera equivalente ese comportamiento mediante "Según" en el pseudocódigo porque la estructura está planteada en términos de una <variable_numerica>.</variable_numerica>
Es decir:
« Segun variable_numerica Hacer
opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_3:
secuencia_de_acciones_3
De Otro Modo:
secuencia_de_acciones_dom
FinSegun »
El extracto de ayuda explica esta cuestión de forma muy clara:
SEGUN
• {variable_numerica}: complete aquí la variable cuyo contenido se debe evaluar para decidir que acciones ejecutar.
• {opcion_n} y {secuencia_de_acciones_n}: reemplaze {opcion_n} por un posible valores para {variable_numerica} y complete {secuencia_de_acciones_n} con las instrucciones a ejecutar en caso de que el valor coincida. Puede agregar {opcion_n} y {secuencia_de_acciones_n} tantas veces como sea necesario para cubrir los casos que correspondan. Puede asociar más de una opción a un mismo grupo de acciones colocando en {opcion_n} la lista de valores separados por comas.
<...>
Por supuesto, el algoritmo puede reformularse utilizando números para sortear el percance, por ejemplo:
1 = suma
2 = resta
3 = multiplicación
4 = división
o mediante una sucesión de condicionales Si-Entonces-SiNo, pero eso modifica un poco la representación original del problema porque, en C, el propio operador aritmético funciona como valor de selección y resulta visualmente más didáctico.
También aprovecho para preguntar si este es el lugar adecuado para hacer esta consulta.
Agradecería mucho su ayuda porque con esta herramienta aprendí pseudocódigo de en serio. Me ha sido de gran utilidad.
Finalmente, y gracias a este foro, logré encontrar que, en la configuración, hay una opción que reza "Limitar la estructura Según a variables de control numéricas". Desactivé la casilla de verificación y pude aplicar mi ejemplo sin ningún problema.
Sin embargo, encuentro que este arreglo parece haber sido añadido para arreglar el problema, como un parche, porque no hay una explicación en la ayuda de PSeInt, en el apartado de Estructuras de Control, en la que parece referir a las variables numéricas como única opción.
¿Quizás algún mensaje dentro de la ayuda podría servir para clarificar mejor este asunto?
Aprovecho para consultar solo por curiosidad, ¿Por qué razón estaba esta limitación en primer lugar?
Saludos,
Esteban.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hola,
Tengo una consulta acerca de esta herramienta. Estuve empleando PSeInt (versión 20250314) para adaptar algunos ejercicios escritos originalmente en C y encontré una posible limitación de la estructura "Según" de la que quería comentar.
En particular, estaba implementando una calculadora en la que el operador se almacena como carácter ('+', '-', '' y '/'). En C, y en otros lenguajes, resulta natural utilizar esos mismos valores directamente como casos de un "switch", por ejemplo:
«switch (operador) {
case '+':
result = num1 + num2;
printf("= %.2lf", result);
break;
case '-':
result = num1 - num2;
printf("= %.2lf", result);
break;
case '':
result = num1 num2;
printf("= %.2lf", result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("= %.2lf", result);
}
else {
printf("La division por cero no esta permitida.");
}
break;
default:
printf("Operador no valido.");
break;
}»
Nótese que, en mi caso, estoy declarando a la variable "operador" como carácter:
« char operador; »
Adjunté un archivo de texto con el código original en C como referencia.
Al querer representarlo en PSeInt, no estoy pudiendo representar de manera equivalente ese comportamiento mediante "Según" en el pseudocódigo porque la estructura está planteada en términos de una <variable_numerica>.</variable_numerica>
Es decir:
« Segun variable_numerica Hacer
opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_3:
secuencia_de_acciones_3
De Otro Modo:
secuencia_de_acciones_dom
FinSegun »
El extracto de ayuda explica esta cuestión de forma muy clara:
SEGUN
• {variable_numerica}: complete aquí la variable cuyo contenido se debe evaluar para decidir que acciones ejecutar.
• {opcion_n} y {secuencia_de_acciones_n}: reemplaze {opcion_n} por un posible valores para {variable_numerica} y complete {secuencia_de_acciones_n} con las instrucciones a ejecutar en caso de que el valor coincida. Puede agregar {opcion_n} y {secuencia_de_acciones_n} tantas veces como sea necesario para cubrir los casos que correspondan. Puede asociar más de una opción a un mismo grupo de acciones colocando en {opcion_n} la lista de valores separados por comas.
<...>
Por supuesto, el algoritmo puede reformularse utilizando números para sortear el percance, por ejemplo:
1 = suma
2 = resta
3 = multiplicación
4 = división
o mediante una sucesión de condicionales Si-Entonces-SiNo, pero eso modifica un poco la representación original del problema porque, en C, el propio operador aritmético funciona como valor de selección y resulta visualmente más didáctico.
También aprovecho para preguntar si este es el lugar adecuado para hacer esta consulta.
Agradecería mucho su ayuda porque con esta herramienta aprendí pseudocódigo de en serio. Me ha sido de gran utilidad.
Saludos cordiales,
Esteban.
Finalmente, y gracias a este foro, logré encontrar que, en la configuración, hay una opción que reza "Limitar la estructura Según a variables de control numéricas". Desactivé la casilla de verificación y pude aplicar mi ejemplo sin ningún problema.
Sin embargo, encuentro que este arreglo parece haber sido añadido para arreglar el problema, como un parche, porque no hay una explicación en la ayuda de PSeInt, en el apartado de Estructuras de Control, en la que parece referir a las variables numéricas como única opción.
¿Quizás algún mensaje dentro de la ayuda podría servir para clarificar mejor este asunto?
Aprovecho para consultar solo por curiosidad, ¿Por qué razón estaba esta limitación en primer lugar?
Saludos,
Esteban.