miércoles, 27 de mayo de 2020

ESTRUCTURAS DE CONTROL



¿Por qué es importantes que las nuevas generaciones de estudiantes aprendan a programar?


La revolución tecnológica que se ha dado en esta última década ha alcanzado y transformado profundamente la sociedad. En esta situación es muy importante ayudar a las generaciones futuras a tener las herramientas y actitud adecuadas para contribuir a que este cambio sea para su beneficio y de toda la humanidad. El mercado laboral se enfrenta a un desajuste entre la formación actual y las habilidades profesionales demandadas por las empresas. Este “deficit de talento” es especialmente notable en los perfiles relacionadas con las habilidades tecnológicas. Las previsiones para el año 2020 son devastadoras.
El objetivo de este lenguaje de programación no es otro que el de aprender jugando a construir programas dinámicos e interactivos, de esa forma se podrá mostrar el lenguaje de la programación profesional para quien se quiera dedicar a ello en un futuro
Imagina tener el poder de crear herramientas que te ayuden a hacer tu vida, y la de otras personas que comparten tu necesidad, más sencilla. Eso es exactamente lo que sucede con las aplicaciones, sitios, programas y todos aquellos software exitosos: satisfacen una necesidad común.
Aprender a programar puede abrirte las puertas a un mejor empleo, nuevas áreas de trabajo o incluso a una nueva forma de ver cómo funciona todo a nuestro alrededor.
En ocasiones una de las grandes barreras para aprender algo nuevo es el miedo. Pero cuando se trata de algo tan común e importante para la vida cotidiana y que además nos acerca al entorno tecnológico, se convierte en una oportunidad que no podemos dejar pasar.
Sin duda alguna, los beneficios que otorga aprender a programar no solo se reflejan en el mundo digital, sino también en la solución de problemas de la vida cotidiana.
La importancia de aprender (Actualmente) programación - El Cosmonauta




Qué habilidades desarrollan los estudiantes que aprenden a programar ?

El programador se ha convertido en una figura básica en la mayoría de las empresas modernas. Incluso en compañías pequeñas y no dedicadas al software, contar con un programador en sus filas que pueda producir producto propio se ha vuelto fundamental.


Mucha gente piensa que los programadores son profesionales muy técnicos, que trabajan de forma aislada sin interactuar con el resto del equipo. No pueden estar más equivocados. Hay una serie de habilidades que los programadores desarrollan

Resolución de problemas
Cuando enseño a la gente a programar, veo a mucha más gente «luchando» con la resolución del problema que con el código en sí mismo. La capacidad de dividir un problema en otros más pequeños y luego resolver todos esos problemas ordenadamente requiere mucha práctica. Obtener buenos resultados en la resolución de problemas puede convertirte en un gran programador.

Además, para la mayoría de los problemas, suele haber más de una solución posible. Una gran parte de nuestro trabajo como desarrolladores de software es pensar en esas diferentes soluciones y elegir la mejor..


Creatividad

Lo que más me gusta de ser programador es que puedo usar mi energía creativa para construir cosas de las que otras personas puedan beneficiarse. Puedes pensar de forma original para crear cosas realmente geniales.

Tener ideas creativas es importante para crear nuevas funciones, interfaces y aplicaciones. Una vez conseguí que alguien comprara una licencia para un producto que diseñé en gran parte debido a la interfaz creativa.

Además, muchos de los problemas requieren creatividad para resolverse. Hay más de una solución para casi todos los problemas de programación y proponer enfoques creativos para resolverlos a menudo puede llevar a una solución optimizada.


Adaptabilidad
La programación sigue siendo un mundo nuevo, y está evolucionando súper rápido. Ser capaz de adaptarse cuando las cosas cambian es fundamental. Cuando sale una nueva biblioteca o un lenguaje nuevo aparece en escena, es importante ser capaz de aprenderlo (dentro de lo razonable, por supuesto). Nuestra industria se vería dramáticamente diferente si todavía estuviéramos escribiendo código en Fortran. Tenemos que ser capaces de evolucionar y adaptarnos cuando las cosas cambian.
Además, los objetivos y las características de los proyectos a menudo cambian, especialmente con el trabajo de los clientes.

Colaboración

Es muy probable que tengas que trabajar con otras personas, como otros desarrolladores, clientes, jefes, colaboradores de open source… Incluso si eres un trabajador independiente o autónomo, tendrás que colaborar con otros. Aprender a trabajar bien con otras personas y sus diferentes personalidades es fundamental.

Es muy importante saber que una persona no puede hacer todo, o al menos hacer todo bien. Diferentes personas tienen diferentes habilidades, puntos de vista y experiencias de vida que son más útiles en combinación que de forma aislada.

Pide ayuda a otras personas. No es necesario ser un experto en todo y otras personas pueden ser más expertos que tú en diferentes cosas. Confía en los demás. Si estás atascado en algo, asegúrate de pedir ayuda para que no te bloquees por mucho tiempo.
cuando alguien te pida ayuda, ayúdale. Puedes aprender mucho explicando bien las cosas y podrás reforzar tus conocimientos sobre el tema.


Comunicación
Cuando se trabaja con otras personas, ya sean compañeros de trabajo, clientes, personas que utilizan sus productos, gerentes o subordinados, una buena comunicación es crucial. Desarrollas información honesta sobre cómo van las cosas, cuál es la situación actual de los proyectos, y recibe sus opiniones con honestidad y con amabilidad. La gente será menos receptiva a la retroalimentación si eres grosero o no constructivo. Si eres deshonesto o endulzas la verdad, entonces puede que no veas un cambio positivo en los demás. Definitivamente hay una fina línea aquí.

Paciencia
La primera persona con la que necesitas tener paciencia cuando estás programando es contigo mismo. La programación es difícil y a veces tendrá errores o problemas difíciles de superar. Si siempre fuese fácil, entonces no te estarías desafiando a ti mismo y no estarías creciendo como programador.

Ten paciencia con otras personas. La gente no es perfecta. Cometer errores y fallar pueden ser algunas de las experiencias más importantes en el proceso de aprendizaje, así que fomenta un ambiente donde sea seguro tomar riesgos y crecer. Entiende que las cosas diferentes encajan más fácilmente para personas diferentes.

Humildad
Puedes aprender mucho de otros programadores. Una persona no puede saber todo en el mundo de la programación. Sé receptivo a la crítica constructiva y evita estar a la defensiva. Puedes mejorar tu código y a ti mismo a partir de la retroalimentación. No siempre tienes razón y debes ser receptivo a las ideas de los demás.

Confianza
Por otro lado, también hay que tener confianza. Creer en ti mismo y tener confianza en tus habilidades es realmente importante.

Plenumsoft on Twitter: "10 Habilidades Que Todo Programador Debe ...

En programación, ¿ qué es una estructura de control?


En programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:

De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)

De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)

Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)

Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)

Ejecutar un grupo de sentencias un número determinado de veces (For-Next)

Todos los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura.
Estructuras de controlC++ Estructuras de Control: Condicionales - YouTube
¿Cuántas estructuras de control existen en la programación?


El término "estructuras de control" viene del campo de la ciencia computacional. Cuando se presentan implementaciones de Java para las estructuras de control, nos referimos a ellas con la terminología de la Especificación del lenguaje Java, que se refiera a ella como instrucciones modernas.

Ejecución secuencial
Por lo general, las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial.

Transferencia de control
En Java, como en otros lenguajes de programación por excelencia como C y C++, el programador puede especificar que la siguiente instrucciones a ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita esta instrucción.

De selección

Las estructuras de control de selección ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina según se cumpla o no una condición.


Estructura de control Editar

Las estructuras de control, denominadas también sentencias de control, permiten tomar decisiones y realizar un proceso repetidas veces. Se trata de estructuras muy importantes, ya que son las encargadas de controlar el flujo de un programa, según los requerimientos del mismo. canal o proceso que se puede actualizar

Selección if simple Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera.

Si la condición es verdadera, se ejecuta el bloque de sentencias 1; de lo contrario, se ejecuta el bloque de sentencias 2.


IF (Condición) THEN

(Bloque de sentencias 1)

ELSE

(Bloque de sentencias 2)

END IF

Se pueden plantear múltiples condiciones simultáneamente: si se cumple la (Condición 1) se ejecuta (Bloque de sentencias 1). En caso contrario se comprueba la (Condición 2); si es cierta se ejecuta (Bloque de sentencias 2), y así sucesivamente hasta n condiciones. Si ninguna de ellas es cumple se ejecuta (Bloque de sentencias else).


IF (Condición 1) THEN

(Bloque de sentencias 1)

ELSEIF (Condición 2) THEN

(Bloque de sentencias 2)


.....


ELSEIF (Condición n) THEN

(Bloque de sentencias n)

ELSE

(Bloque de sentencias else)

END IF

Select-Case Editar

Artículo principal: Sentencia Select-Case

Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a if then else cuando se compara la misma expresión con diferentes valores.


Se evalúa la expresión, dando como resultado un número.

Luego, se recorren los "Case" dentro de la estructura buscando que el número coincida con uno de los valores.

Es necesario que coincidan todos sus valores.

Cuando se encuentra la primera coincidencia, se ejecuta el bloque de sentencias correspondiente y se sale de la estructura Select-Case.

Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el bloque de sentencias de la sección "Case Else".

Select (Expresión)

Case Valor1

(Bloque de sentencias 1)

Case Valor2

(Bloque de sentencias 2)

Case Valor n

(Bloque de sentencias n)

Case Else

(Bloque de sentencias "Else")

End Select

Estructuras de control iterativas Editar

Las estructuras de control iterativas o de repetición, inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una condición.


Do-While Editar

Artículo principal: Bucle do

Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.


Do While (Condición)

(Bloque de sentencias)

Loop

que también puede expresarse:


While (Condición)

(Bloque de sentencias)

wend

Do se Editar

✅ Fundamentos de Programación: Tipos de Estructuras de ControlEstructuras de control
REFERENCIAS:
http://www.olimpiadadeinformatica.org.mx/OMI/OMI/Material/Bibliografia.aspx

lunes, 27 de enero de 2020

SOLUCIÓN DE PROBLEMAS

                                           Qué es solución de problemas según Pólya


George Pólya presentó en su libro Cómo plantear y resolver problemas (en inglés, How to solve it) un método de 4 pasos para resolver problemas matemáticos. Dicho método fue adaptado para resolver problemas de programación, por Simon Thompson en How to program it.

Para empezar: Qué es un problema?

Un problema es un hecho, situación o cuestión que precisa de una solución. Es un conflicto que se presenta como inconveniente para alcanzar objetivos o estabilidad en distintos ámbitos.

Un problema aparece cuando las personas o sujetos involucrados no conocen los caminos a seguir para encontrar una salida, por lo que su esquema previo o la planificación que tenían se ve sometida a cuestionamientos que los llevan a reordenar o rehacer sus ideas. Es lo que se entiende también como incongruencia entre el pensamiento y los hechos.

Además, los problemas pueden ser enunciados que son propuestos como cuestionamientos, con el propósito de buscar y encontrar solución, demostración o comprobación, como sucede con los matemáticos.

Puede servirte: Toma de Decisiones.

Tipos de problemas

Encontramos entonces dos tipos:
Divergentes: Las soluciones pueden ser muy contradictorias y variadas, llegando a tener una cantidad infinita de posibles decisiones a tomar al respecto. Ejemplo: problemas sociales y filosóficos.
Convergentes: Ejemplo de estos son las fórmulas matemáticas, químicas o de las ciencias exactas donde la resolución llega a ser una, o muy pocas pero conocidas. Se caracterizan por ser lógicos estructurados.

Según la matemática un problema es cualquier planteo matemático que debe resolverse siguiendo un procedimiento, mientras que en una ciencia tan diferente como la sociologí, un problema es un conflicto capaz de ser resuelto y que se abre lugar en la sociedad y que surge por diversos factores.

Método de Pólya para resolver problemas matemáticos


Para resolver un problema se necesita:
Paso 1: Entender el problema
¿Cuál es la incógnita?, ¿Cuáles son los datos?
¿Cuál es la condición? ¿Es la condición suficiente para determinar la incógnita? ¿Es insuficiente? ¿Redundante? ¿Contradictoria?
Paso 2: Configurar un plan
¿Te has encontrado con un problema semejante? ¿O has visto el mismo problema planteado en forma ligeramente diferente?
¿Conoces algún problema relacionado con éste? ¿Conoces algún teorema que te pueda ser útil? Mira atentamente la incógnita y trata de recordar un problema que sea familiar y que tenga la misma incógnita o una incógnita similar.
He aquí un problema relacionado al tuyo y que ya has resuelto ya. ¿Puedes utilizarlo? ¿Puedes pensar en algunos otros datos apropiados para determinar la incógnita? ¿Puedes cambiar la incógnita? ¿Puedes cambiar la incógnita o los datos, o ambos si es necesario, de tal forma que estén más cercanos entre sí?
¿Has empleado todos los datos? ¿Has empleado toda la condición? ¿Has considerado todas las nociones esenciales concernientes al problema?
Paso 3: Ejecutar el plan
Al ejercutar tu plan de la solución, comprueba cada uno de los pasos
¿Puedes ver claramente que el paso es correcto? ¿Puedes demostrarlo?
Paso 4: Examinar la solución obtenida
¿Puedes verificar el resultado? ¿Puedes el razonamiento?
¿Puedes obtener el resultado en forma diferente? ¿Puedes verlo de golpe? ¿Puedes emplear el resultado o el método en algún otro problema?



Método de Pólya para resolver problemas de programación


Para resolver un problema se necesita:
Paso 1: Entender el problema
¿Cuáles son las argumentos? ¿Cuál es el resultado? ¿Cuál es nombre de la función? ¿Cuál es su tipo?
¿Cuál es la especificación del problema? ¿Puede satisfacerse la especificación? ¿Es insuficiente? ¿Redundante? ¿Contradictoria? ¿Qué restricciones se suponen sobre los argumentos y el resultado?
¿Puedes descomponer el problema en partes? Puede ser útil dibujar diagramas con ejemplos de argumentos y resultados.
Paso 2: Diseñar el programa
¿Te has encontrado con un problema semejante? ¿O has visto el mismo problema planteado en forma ligeramente diferente?
¿Conoces algún problema relacionado con éste? ¿Conoces alguna función que te pueda ser útil? Mira atentamente el tipo y trata de recordar un problema que sea familiar y que tenga el mismo tipo o un tipo similar.
¿Conoces algún problema familiar con una especificación similar?
He aquí un problema relacionado al tuyo y que ya has resuelto. ¿Puedes utilizarlo? ¿Puedes utilizar su resultado? ¿Puedes emplear su método? ¿Te hace falta introducir alguna función auxiliar a fin de poder utilizarlo?
Si no puedes resolver el problema propuesto, trata de resolver primero algún problema similar. ¿Puedes imaginarte un problema análogo un tanto más accesible? ¿Un problema más general? ¿Un problema más particular? ¿Un problema análogo?
Paso 3: Escribir el programa
Al escribir el programa, comprueba cada uno de los pasos y funciones auxiliares.
¿Puedes ver claramente que cada paso o función auxiliar es correcta?
Puedes escribir el programa en etapas. Piensas en los diferentes casos en los que se divide el problema; en particular, piensas en los diferentes casos para los datos. Puedes pensar en el cálculo de los casos independientemente y unirlos para obtener el resultado final
¿Puedes apoyarte en otros problemas que has resuelto? ¿Pueden usarse? ¿Pueden modificarse? ¿Pueden guiar la solución del problema original?
Paso 4: Examinar la solución obtenida
¿Puedes comprobar el funcionamiento del programa sobre una colección de argumentos?
¿Puedes comprobar propiedades del programa?
¿Puedes escribir el programa en una forma diferente?
¿Puedes emplear el programa o el método en algún otro programa?
Resultado de imagen para solucion de problemas segun polya

                                                  QUE ES UN ALGORITMO 


En matemáticas, lógica, ciencias de la computacióny disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y este del griego arithmos, que significa «número», quizá también con influencia del nombre del matemático persa es un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisot de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineale

En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema. Los derechos de autor otorgan al propietario el derecho exclusivo sobre el uso de la obra, con algunas excepciones. Cuando alguien crea una obra original fija en un medio tangible.

Resultado de imagen para que es un algoritmoResultado de imagen para que es un algoritmo
                                 

                                              Qué es un diagrama de flujo?


Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces se denominan con nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama de flujo de procesos (PFD)". Están relacionados con otros diagramas populares, como los diagramas de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).
                       SIMBOLOGIA DEL DIAGRAMA DE FLUJO 
Resultado de imagen para que es un diagrama de flujo
FUENTE:https://www.lucidchart.com/pages/es/que-es-un-diagrama-de-flujo