Tengo este programa donde hice una variable x, y quiero asignarle un valor basado en esta fórmula (donde c es un número entero positivo):
int x;
if (c < 100)
x = c;
else if (c < 200)
x = 100;
else
x = c-100;
Escuché que si las declaraciones como esta se pueden convertir en alguna fórmula, pero no estoy seguro de por dónde empezar, ¡cualquier ayuda sería apreciada! Al final, espero tener solo una declaración:
int x = f(c);
La mayoría de los lenguajes de programación tienen alguna función ternaria-if. Puede verse como (c, c ++, java)
int x = c < 100 ? c : c < 200 ? 100 : c - 100;
o (pitón)
x = c if c < 100 else 100 if c < 200 else c - 100
Esto expresa claramente la intención de su asignación. Los paréntesis no son necesarios en este caso, pero es posible que desee agregarlos para que quede aún más claro, por ejemplo,
int x = c < 100 ? c : (c < 200 ? 100 : c - 100);
Ahora, estos no contienen sentencias if , pero sí contienen expresiones if . Si no está satisfecho con eso, debe recurrir al engaño como en la respuesta de Jaap Scherphuis.
En la teoría de la computabilidad he encontrado la siguiente notación
dónde ( es un conjunto) es una función 0-1 tal que si y de otra manera
Definir una función como esta
int f(int c){
if (c < 100)
return c;
else if (c < 200)
return 100;
else
return c-100
}
Ahora puede llamarlo en una declaración como esta, según sea necesario.
int x = f(c);
ejemplar
Jaap Scherphuis
ejemplar
Magdiragdag
pierrecarre
Magdiragdag