Mostrando las entradas con la etiqueta c#. Mostrar todas las entradas
Mostrando las entradas con la etiqueta c#. Mostrar todas las entradas

miércoles, 16 de junio de 2021

¿Dónde quedó la bolita? | Omega Up 6

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Seguramente alguna vez has visto a los magos a hacer el truco de donde quedo la bolita, en el cual debajo de una de entre tres nueces hay una bolita y el mago realiza varios movimientos intercambiando la posición de las nueces hasta que uno no recuerda donde quedo.

A ti siempre te ha llamo la atención este juego y ahora deseas hacerlo mas difícil, en ves de tres utilizarás cuatro nueces. Cada movimiento consiste en intercambiar un par de nueces, por lo que solo existen 6 movimientos básicos de intercambiar...

Lista de movimientos:
1. la 1 por la 2
2. la 1 por la 3
3. la 1 por la 4
4. la 2 por la 3
5. la 2 por la 4
6. la 3 por la 4

A cada uno de estos movimientos los nombramos del 1 al 6 según aparece arriba.
Para poder realizar el truco, debes conocer en que posición quedó la bolita después de realizar una secuencia de estos movimientos.

Deberás realizar un programa que conociendo en que nuez se encuentra la bolita inicialmente, la serie de movimientos llevados a cabo, calcule la posición final de la bolita.

Entrada
Tu programa deberá leer los siguientes datos: en la primera lineal el número P, que indica la nuez en la que se encuentra la bolita (de 1 a 4).
En la segunda lineal el numero M de movimientos a realizar.
En las siguientes M líneas un numero indicando que movimiento (del 1 al 6) es el que se va a realizar.

Salida
Tu programa debe escribir un solo numero indicando la nuez en la que se encuentra la bolita.




LO QUE YO ENTIENDO:

Este sí me costó algo de trabajo, de hecho no me salió como 4 veces, pero al final salió. Primero te dice que debes introducir la posición donde se encuentra la bolita, y el siguiente valor es el número de movimientos que debes hacer. Esa cantidad de valores deben tener un número del 1 al 6 haciendo referencia el movimiento marcado mencionado allá arriba en la lista de movimientos.
Debes encontrar la lógica para hacer el recorrido de todos esos movimientos y que al final te dé el resultado correcto, obviamente pensando no siempre se puede, por eso te comparto mi código para que repases y te llenes de lógica.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


martes, 15 de junio de 2021

Bisiesto sencillo | Omega Up 5

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Un año es bisiesto si es divisible entre 4, excepto que sea divisible entre 100. Sin embargo, si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto.

Entrada
La primera línea tendrá un número N, que es el año que tendrás que decidir si es o no bisiesto. Todos los años serán mayores a 1600 y menores a 3,000.

Salida
Para el año de la entrada escribe una "S" o una "N", dependiendo de si el año es bisiesto o no respectivamente.


LO QUE YO ENTIENDO:

Se debe ingresar un año de entre el 1600 y el año 3000. Y haciendo la respectiva comparación te debe decir si es bisiesto o no.
Para quienes no tengan el contexto, cada cuatro años febrero tiene 29 días, pero esta condición solo aplica si el año es divisible entre 4 siempre, y divisible entre 100 y 400, pero si solo es divisible entre 100 y no entre 400 esta regla se rompe, por ejemplo el año 200, ese no es bisiesto aunque sea divisible entre 4, porque además es divisible entre 100 y entre 400 no.

Nací el 27 de Febrero de 1996 -> Fue año bisiesto y nací 2 días antes.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


lunes, 14 de junio de 2021

El Triangulito | Omega Up 4

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Asunción por algún motivo quiere dibujar un triangulito en la computadora. Como aún no sabe programar interfaces gráficas, lo hace por medio de la consola.

Entrada
Ninguna.

Salida
El dibujo de un triangulo de 4 unidades de altura escrito con el carácter 'o'.

LO QUE YO ENTIENDO:

Se trata de dibujar un pequeño triángulo de 4 caracteres de base por 4 de altura, algo similar a la pirámide de asteriscos que tengo por alguna parte de este blog, deberías buscarla y empaparte de puro conocimiento. Como no se debe centrar, será aún más sencillo.

o
oo
ooo
oooo

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


domingo, 13 de junio de 2021

Abuelita come helados | Omega Up 3

     Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
A la abuelita de Andrea le gusta mucho comer helados lo que puede llegar a ser un gran problema (demasiada azúcar). Por esa razón, para que su abuelita no coma demasiados helados, Andrea decidió que por cada helado que coma, su abuelita tendrá que comer 3 champiñones (la abuelita de Andrea odia los champiñones). Ayuda a Andrea a averiguar cuántos champiñones le tiene que dar a su abuelita. Andrea te dará el número de helados que su abuelita haya comido.

Entrada
Número de helados que comerá la abuela. 

Salida
Número de champiñones que deberás darle de castigo.

LO QUE YO ENTIENDO:

En realidad no es muy complicado pensar que por cada helado debes castigarla con 3 champiñones, es decir, la tabla del 3. 
1 es a 3
2 es a 6
...
Etc.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.

sábado, 12 de junio de 2021

ASCII for first four characters | Omega Up 2

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Escriba un programa que le pida al usuario que ingrese su nombre. Entonces debería imprimir el Equivalente ASCII de cada uno de los primeros cuatro caracteres de su nombre. Por ejemplo, Aquí hay una muestra del programa a continuación.

Entrada
Cualquier texto, ¡CUALQUIERA!
Ejemplo: Kent

Salida
K ASCII value is 75 
e ASCII value is 101 
n ASCII value is 110 
t ASCII value is 116


LO QUE YO ENTIENDO:

Nada que deba explicar, simplemente el código ASCII es código ASCII, es decir, convertir los primeros 4 caracteres que introducimos en números normales de entre el 0 y el 255.
Facilito, únicamente debemos convertir datos de tipo CHAR en INT, nada nuevo.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


miércoles, 23 de diciembre de 2020

Vector dominante | OmegaUp 1

Problema de OmegaUp


Clic en el enlace o la imagen :)

Descripción
Escribe un programa que lea dos secuencias de n enteros cada una y determine si cada elemento de la primera secuencia es mayor que el elemento respectivo de la otra secuencia.

Entrada
Un entero n seguido de los n enteros de la primera secuencia y los n enteros de la segunda secuencia. Puedes suponer que todos los enteros están en el rango de 1 a 100.

Salida
El valor 1 si se cumple la propiedad descrita o el valor 0 en otro caso.


LO QUE YO ENTIENDO:

El problema te plantea utilizar arreglos, para ser exacto 2 arreglos de la misma longitud, tú defines esa longitud y después los llenas con valores numéricos en un rango de valores de 1 a 100. Si todos los números del primer arreglo son mayores que los del segundo, tu salida debe ser 1, de lo contrario debes regresar un 0 en tu salida.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


domingo, 19 de julio de 2020

Estructura de datos y probabilidad | Rompecráneos 1

He decidido abrir una sección llamada Rompecráneos, que consistirá en resolución de problemas que la gente no encuentra en internet o que quizá está tan ocultos en la red que es imposible encontrarlos, en fin, el día de hoy les traigo este problema:



Define una función que reciba en una estructura de datos, un listado de tamaño variable de pares [nombre | string, importe | float].
Y que regrese de cada par [nombre, importe] la siguiente información:
  1. ¿Es posible que el elemento x sea un total o subtotal? (Calificar con una probabilidad arbitraria de 0% a 100%)


Analicé el problema y llegué la conclusión de que no sé qué debo hacer, es decir, en el código puedo plasmar lo que me está pidiendo, una colección de datos en pares que contenga nombre e importe, ambas variables persistentes en un objeto, pero luego de ahí no sé qué debo hacer exactamente.
Solo puedo imaginar que debo decidir si ese par de datos puede ser un total o un subtotal considerando una sola variable es o no es uno de esos dos valores, en caso de que pueda ser cualquiera de los dos debo decidir qué tan probable es que sí pudiera ser.

Se me ocurrió enlistar una serie de propiedades que un valor total/subtotal pueda tener, como las siguientes:

  1. El valor del importe en la posición x es la suma de todos los otros que no están en la posición x, por lo tanto ese es un total 100% seguro.
  2. El valor en la posición x es mayor que todos los otros valores, sin embargo es menor por poco de la suma del resto de los datos, tiene un 50% de probabilidad de ser un subtotal.
  3. El valor es el menor de toda la lista, 0% de probabilidad de que sea un total o subtotal.
De esa manera fui seleccionando los casos, en realidad no tengo idea de cuál podría ser la solución pero esto es lo único que se me ocurrió, así mismo, planteé el código para que tú me ayudes a resolverlo si te es posible o si lo ves de otra manera, siempre he tenido claro que la mente es grandiosa, mientras que tú piensas en alguna cosa, alguien más está pensando otra similar, igual, o muy diferente que tú, espero que puedan resolver ustedes el problema y si es así háganmelo saber en los comentarios.

Aquí les dejo mi código en C# para que vean cómo lo propuse:


martes, 14 de julio de 2020

Validar variables vacías o nulas en C# | Función definida

Hoy mientras me encontraba en el trabajo revisando al monstruo (el sistema que hace funcionar la empresa), me di cuenta de que las condiciones eran una barbaridad (como diría mi jefecita). En fin, las condiciones eran demasiadas pero en ocasiones eran repetitivas y prácticamente abarcaban el 80% del bloque de código, entonces decidí unificar todas las condiciones parecidas que iba encontrando y se me ocurrió poner en google lo siguiente:


Cuando se trata de programación las búsquedas en inglés o en ruso son lo mejor (Obviamente el ruso es menos común). Así que si quieres buscar algo de programación y pretendes encontrarlo pronto debes buscarlo en ese idioma, la cantidad de información que existe es grandísima, si en español encuentras 1GB de información quizá en inglés encuentres hasta 1000 veces esa cantidad.

En fin, las condiciones trataban de validar que una variable de tipo string no estuviera vacía y tampoco tuviera un valor nulo (null), para ello se hacía la siguiente condición:

if(varString != null && varString != "")

Y la secuencia de validaciones era un sin fin de condiciones similares, a lo que en mi búsqueda encontré una súper función de la librería string que permite hacer esa validación con un solo método enviando una única ocasión la variable a validar y de respuesta te regresa un true o un false.

String.IsNullOrEmpty(variable)

Tan bonita que es la función que les muestro, esta función permite validar si una variable de tipo string es nula, está vacía o si únicamente contiene espacios en blanco.

Espero que te haya servido esta función, quizá en algún otro lenguaje exista o quizá no, pero al menos sabemos que en C# es posible explotarla de todas las maneras que consideremos necesaria, nos vemos en la próxima entrada.

sábado, 4 de abril de 2020

Mayor de 3 números

El problema dice lo siguiente: "Realizar un programa en [CUALQUIER LENGUAJE] que determine cuál es el mayor de 3 números".

Realmente no es un problema difícil de resolver, sin embargo es buen ejercicio para quienes van comenzando en este mundo de la programación. Con fundamentos se deben conocer las estructuras comparativas. Si no las recuerdan, son las siguientes:

Operadores lógicos y funciones lógicas en Excel | Blog

En la mayoría de los lenguajes de programación son exactamente iguales que en la tabla anterior, pero recuerden que si vamos a comparar algo igual a algo, se deben colocar dos signos IGUAL (==), bueno, sabiendo esto ya podemos proceder a la parte de la programación.

Lógica (según): 
Ok, se tienen 3 números, los cuales debemos comparar para saber cuál de los 3 es mayor, y efectivamente, lo único que se debe hacer es compara si el primer número mayor que el segundo, y así mismo comparar el mayor de esos dos con el tercero.
  • número1 es mayor que número2
    • Sí: número1 es mayor que número3
      • Sí: número1 es el mayor.
      • No: número3 es el mayor.
    • No: número2 es mayor que número3
      • Sí: número2 es el mayor.
      • No: número3 es el mayor.
De esta manera queda expresada la lógica que se debe tomar en cuenta para realizar este programa o se puede hacer de la siguiente manera.

variable mayor = -99999999
  • número1 es mayor que mayor
    • Sí: mayor = número1
  • número2 es mayor que mayor
    • Sí: mayor = número2
  • número3 es mayor que mayor
    • Sí: mayor = número3

Ambas formas son correctas, pero la segunda te obliga a realizar 3 condiciones obligatorias, sin embargo es notablemente más reducida que la primera forma, cada quien tiene su lógica, quizá haya personas que puedan hacerlo de otra manera, pero lo dejo a tu criterio y manera de pensar.

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.