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 


lunes, 23 de mayo de 2022

HISTORIA Y EVOLUCIÓN DE LA COMPUTADORA


Dispositivos computacionales utilizados a través del tiempo

 Abaco (5,000 años atrás) Surgió en Asia Menor y se utiliza actualmente. Se utilizó originalmente por mercaderes para llevar a cabo transacciones y contar los días. Comenzó a perder importancia cuando se inventó el lápiz y el papel.

Calculadora de Pascal (1642)- Blaise Pascal inventó una máquina de sumar mecánica para ayudar a su padre a calcular impuestos.

Máquina de multiplicar de Gottfried Leibniz (1694)- Artefacto con funciones aritméticas basada en el módelo de Pascal.

Máquina de telar de Joseph M. Jacquard- Artefacto controlado por tarjeta en las cuales los huecos estaban estratégicamente perforados.

Máquina diferencial de Charles Babbage (1822)- Diseñada para trabajar con vapor, era una máquina amplia del tamaño de una locomotora. Tenía como función resolver ecuaciones diferenciales. Durante el transcurso del tiempo Babbage comenzó a trabajar en la primera computadora de uso general o máquina analítica.

Primer uso de la programación (1832)-Lady Ada de Lovelace creó instrucciones rutinarias para controlar la computadora, sugirió que las tarjetas perforadas podían prepararse para repetir ciertas instrucciones.

Máquina tabuladora de Herman Hollerith (1889)- Le dio paso al procesamiento de datos automatizado. Hollerith fundó una compañía de máquinas tabuladoras que posteriormente paso a ser “International Business Machines” o IBM.

Mark I de Howard Aiken, fue el primer ordenador electromecánico, construido en IBM y enviado a Harvard en 1944. 

Primera computadora eléctrica ABC de John Vincent Atanasoff y Clifford Berry (1942).

La ENIAC fue construida en la Universidad de Pensilvania por John Presper Eckert y John William Mauchly


Invención del ratón (mouse) y la interface gráfica (1970)-Por la compañía Xerox PARC.

Apple (1976)- Crearon las computadoras Apple I y II y las máquinas Macintosh en 1984. Se comenzó a utilizar las computadoras personales en las oficinas y hogares.

Generaciones de la Computadora (Eventos más trascendentales)

Primera Generación (1945-1956)

§  La computadora fue utilizada para fines militares durante la Seguna Guerra Mundial.

§  IBM creó la primera calculadora electrónica en 1944.

§  Se desarrolló la computadora ENIAC (Electronic Numerical Integrator and Computer), EDVAC (Electronic Discrete Variable Automatic Computer) en 1945 y la UNIVAC (Universal Automatic Computer)en 1951.

§  Lo más significativo de esta generación fue el uso de los tubos al vacío.

Segunda Generación (1956-1963)

§  Se remplazaron los tubos al vacío por los transistores.

§  Se reemplazó el lenguaje de máquina por el lenguaje ensamblador.

§  Se crearon los lenguajes de alto nivel como COBOL (Common Business-Oriented Language) y FORTRAN (Formula Translator).

§  Se diseñaron computadoras más pequeñas, rápidas y eficientes.

Tercera Generación (1964-1971)

§  Uso de chips de silicón.

§  Sistemas operativos.

Cuarta Generación (1971-1981)

§  Se desarrollaron nuevos chips con mayor capacidad de almacenamiento.

§  Se comenzaron a utilizar las computadoras personales y las Macintosh.

§  Se desarrolló el diseño de redes.

§  Comunicaciòn en Linea - Modem 


Quinta Generación (1981-Actualidad)

§  Inteligencia artificial, sistemas expertos, redes neuronales, algoritmos genéticos, 

   Internet de banda ancha, fibras ópticas, telecomunicaciones, Almacenamiento masivo en 

   dispositivos magneticos y solidos, información en la nube, etc.