miércoles, 3 de agosto de 2022

CREAR PROGRAMAS DE SOLUCIÓN DE PROBLEMAS

Las siguientes son las etapas que se deben cumplir para resolver con éxito un problema de programación:



ENUNCIADO DEL PROBLEMA.- Es la definición clara, precisa y completa del problema. Es importante que conozcamos exactamente que se desea del computador.
Problema: es la diferencia entre una situación actual y una situación deseada, ésta última puedes urgir como producto de una necesidad, una deficiencia o una oportunidad de mejora de los negocios.
Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz.

ANALISIS DE LOS DATOS
Entendido el problema para resolverlo es preciso analizar, haciendonos estas preguntas:
1. ¿Cuáles son los Datos de Salida o Resultados que se esperan? 
2. ¿Cuáles son los Datos de Entrada que nos suministran?
3. ¿Qué Procesos se requiere a fin de obtener los resultados esperados (cálculos,  fórmulas, toma de desiciones y otros recursos necesarios), usando los datos de entrada? 

Para establecer o definir que procesos se utilizarán es  importante que el analista o programador entienda el problema, y utilice sus conocimientos básicos o generales, y si no conoce del tema es recomendable consultar o investigar. 
Una recomendación muy práctica es el que nos pongamos en el lugar del computador, y analizar que es necesario que me ordenen y en que secuencia, para poder producir los resultados esperados. También da buenos resultados hacer similitudes con la labor de un empleado que hace el mismo trabajo que deseamos programarle al computador.

¿QUÉ ES UN ALGORITMO?  
Es la secuencia lógica  y finita de pasos a seguir para la solución de un problema.
Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación.

CARACTERÍSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes características:
  • PRECISO, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se  debe hacer. 
  • FINITO, porque un algoritmo debe tener un número limitado de pasos.
  • DEFINIDO, porque debe producir los mismos resultados para las mismas condiciones de entrada.
DISEÑO  DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes:
  •  ENTRADA DE DATOS, son los datos necesarios que el algoritmo necesita para ser ejecutado.
  •  PROCESO, es la secuencia de pasos para encontrar los resultados del algoritmo tomando los datos de entrada.
  •  SALIDA DE RESULTADOS, son los datos obtenidos después de la ejecución del algoritmo.
HERRAMIENTAS PARA CONSTRUIR UN ALGORITMO
  • PSEUDOCÓDIGOofrece la posibilidad de escribir algoritmos lógicos que indiquen una serie de instrucciones secuenciales que llevan a la resolución de una tarea.
  • DIAGRAMA DE FLUJOuna manera de representar gráficamente un algoritmo o un proceso de alguna naturaleza, a través de una serie de pasos estructurados.
ELEMENTOS DE UN ALGORITMO

ORDENES
Son palabras claves o términos que representan una acción que el programa debe ejecutar secuencialmente.  Las ordenes, también llamadas sentencias o instrucciones se clasifican en dos grupos:

ORDENES NO ESTRUCTURADAS.- aquellas que utilizan una sola línea de sentencia. 
  • LEER.- permite introducir un dato por un dispositivo de entrada y almacenarla en la memoria de la computadora. Por tanto el computador lee el valor de un dato correspondiente. 
  • ESCRIBIR.- permite mostrar o presentar los resultados encontrados en un problema.
  • CALCULAR.- se establece que a continuación se realizará una operación matemática o proceso que permite encontrar los resultados requeridos mediante los datos de entrada.
  • ASIGNAR.- permite tomar un valor y guardarlo en un identificador de memoria o variable, convirtiéndose en una constante si ésta no modifica su valor en el flujo normal del programa
ORDENES ESTRUCTURADAS.- están compuestas por un bloque definido y pueden contener una o más sentencias en su interior. 
  • SI/ENTONCES.- establece decisiones lógicas, sentencias que se ejecutan luego de realizar comparaciones entre dos valores, ya sea por verdad o por falso. 
  • MIENTRAS QUE O REPITA.-  sentencia repetitiva que ejecutara una o varias veces otras órdenes.
  • PARA /HASTA.-  proceso repetitivo automático.

DATOS.- Los datos son los objetos sobre los que opera una computadora. Determinan una clase de información.
TIPOS DE DATOS
  • DATOS NUMÉRICOS: los relativos a diferentes clases de números. Son enteros (sin parte decimal) y reales (con parte entera y decimal).
  • DATOS ALFANUMÉRICOS o TIPO CARÁCTER (cadena): son caracteres que puede interpretar la computadora: alfabéticos A - Z, a - z; dígitos 0 - 9; especiales $, *; incluye el espacio. Los caracteres se organizan en cadenas (secuencia de caracteres válidos encerrados entre comillas o comillas dobles). Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos.
  • DATOS LÓGICOS O BOOLEANOS: aquellos que sólo pueden tomar dos valores: verdadero o falso (true / false).
 VARIABLES
Son espacios de memoria que permiten almacenar datos temporalmente, estos espacios de memoria poseen un nombre que los identifica y quedan definidos según el dato que almacenan.
El nombre de una variable debe estar formado por uno o más caracteres alfanuméricos; no puede usar símbolos o signos especiales, sólo el subguión o _ guión bajo; siempre debe empezar con letra, y no debe contener espacios entre sí.
Ejemplos:
Nombre de estudiante:   nom_est
Nota de 1er Trimestre:   n1t
Edad:                                       e, edad