Está en la página 1de 23

UNIVERSIDAD POLITECNICA MESOAMERICANA

MATERIA: INTRODUCCION A LA PROGRAMACION

UNIDAD 1: ALGORITMOS Y ESTRUCTURA DE UN PROGRAMA

MAESTRO: FRANCISCO WALDEMAR MOSQUEDA JIMNEZ

GRUPO: A
INTEGRNATES:
• AURY LIZETH LANDERO CRUZ
• ENDER OSVALDO GUZMAN GUZMAN
objetivo
• Presentar todo el panorama histórico desde los inicios hasta los más
recientes avances a fin de que el estudiante comprenda ideas y principios
básicos que llevaron al desarrollo de las computadoras modernas.
• Que el estudiante conozca la arquitectura de un computador y sus
componentes de hardware y software.
HISTORIA DE LA COMPUTACIÓN

• Antecedentes
El concepto numérico se considera, generalmente, como anterior al
desarrollo de los lenguajes escritos; los primeros registros del hombre son
anotaciones sobre la cantidad de granos, animales y demás posesiones
personales. Con este fin, el hombre empleaba guijarros, palos y/o marcas en
las paredes de las cavernas que habitaba.
El deseo humano de obtener mayor información y mejores comunicaciones,
gradualmente fue dejando atrás estos sencillos instrumentos. El ábaco es
considerado como el primer instrumento elaborado por el hombre para
realizar operaciones aritméticas de manera más eficiente.
El ábaco no realiza cálculos de manera autónoma (por si solo), simplemente
le permite al hombre realizarlos de manera más eficiente.
La fabricación en serie (generaciones de computadores)
Tiene relación con la modernización de la tecnología constructiva
y de componentes, reviste un carácter marcadamente comercial.
• Generación Cero: En la cuál el hombre construyo
máquinas, usando dispositivos mecánicos tales como
ruedas dentadas y piñones, para realizar básicamente
operaciones aritméticas como suma, resta,
multiplicaciones y divisiones. Estas máquinas se conocen
con el nombre de Máquinas Aritméticas.
• Primera Generación: Las máquinas de cómputo de
esta generación tenían pocas facilidades de
programación. La comunicación se establecía en
lenguaje de máquina (lenguaje binario)
• Segunda Generación: En la cuál el hombre construyó
computadores (máquinas de cálculo),
• basados en el transistor..
Lenguaje de programación
• Lenguaje de Máquina
Es el único lenguaje que entiende el
hardware (máquina) y usa
exclusivamente el sistema
binario (ceros y unos). Este lenguaje
es específico para cada hardware
(procesador, dispositivos,). El
programa (tanto códigos de
instrucción como datos) es
almacenado en memoria. La
estructura de una instrucción en
lenguaje máquina es la siguiente:
• Lenguaje Ensamblador
• Es un lenguaje que usa
mnemónicos (palabras cortas
escritas con caracteres
alfanuméricos),
• para codificar las operaciones.
• Un ENSAMBLADOR es un software,
generalmente escrito en lenguaje
de máquina, que es
• capaz de traducir de lenguaje
ensamblador a lenguaje de
máquina.
Lenguaje de Alto Nivel
Es un lenguaje basado en una estructura gramatical para codificar estructuras de
control y/o instrucciones. Cuenta con un conjunto de palabras reservadas (escritas en
lenguaje natural). Estos lenguajes permiten el uso de símbolos aritméticos y
relacionales para describir cálculos matemáticos, y generalmente representan las
cantidades numéricas mediante sistema decimal.
Los COMPILADORES e INTERPRETES son software capaz de traducir de un lenguaje de
alto nivel al lenguaje ensamblador específico de una máquina. Los primeros toman
todo el programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo
ejecutan. Los últimos toman instrucción por instrucción, la traducen y la van
ejecutando.
Aplicaciones y herramientas
• Una APLICACION es un software construido
para que el computador realice una tarea
específica y con el cual no se puede construir
otro software. Ejemplos de aplicaciones son
los procesadores de texto como Microsoft
Word y Word Perfect y las hojas electrónicas
de cálculo como Microsoft Excel y Lotus.
• Una HERRAMIENTA es un software
construido especialmente para el desarrollo
de nuevo software, (tanto de aplicaciones
como de herramientas).
¿Que es la programación?
• Es el proceso de diseñar, codificar, depurar y mantener el código
fuente de programas computacionales. El código fuente es escrito en
un lenguaje de programación. El propósito de la programación es crear
programas que exhiban un comportamiento deseado. El proceso de
escribir código requiere frecuentemente conocimientos en varias áreas
distintas, además del dominio del lenguaje a utilizar, algoritmos
especializados y lógica formal.
• Programar no involucra necesariamente otras tareas tales como el
análisis y diseño de la aplicación (pero sí el diseño del código), aunque
sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Tipos de programación
• Secuencial: programas que se diseñan con instrucciones que van unas detrás de
otras tales como Basic, Cobol.
• Estructurada: Se considera programación estructurada a la programación que se
hace por módulos. Cada módulo realiza alguna tarea específica y cuando se
necesite esa tarea simplemente se hace el llamado a ese módulo independiente de
que se tengan que ejecutar los demás. Ejemplos tales como: Turbo PASCAL,
C, Modula, Ada.
• Orientada a Objetos: Se considera programación orientada a objetos aquellos
lenguajes que permiten la utilización de objetos dentro del diseño del programa y
el usuario puede pegar a cada objeto código de programa. Ejemplos de estos
lenguajes se pueden mencionar el Visual Basic de la Microsoft, C Builder de
la Borland Internacional, Java, Xml, entre otros.
• Lógica o de lenguaje natural: son aquellos programas que se diseñan con
interfaces tal que la persona o usuario puede ordenar a la máquina tareas en un
lenguaje natural. Pueden interactuar como una persona pero nunca llegan a
producir conocimiento. Ejemplo como Prolog (Programming Logic). Estos lenguajes
se desarrollaron con base en las estructuras de sus antecesores. Recorren o
navegan las bases de datos obedeciendo a reglas.
• Inteligencia Artificial: Los programas de inteligencia artificial Son programas que se
acercan a la inteligencia humana. Estos programas son capaces de desarrollar
conocimiento. Este tipo de lenguajes trabajan similar a la mente humana.
ALGORITMOS

• Un ALGORITMO es una secuencia finita ‘bien definida’


de tareas ‘bien definidas’, cada una de las cuales se
puede realizar con una cantidad finita de recursos. Se
dice que una tarea esta ‘bien definida’, si se saben de
manera precisa las acciones requeridas para su
realización. Aunque los recursos que debe utilizar cada
tarea deben ser finitos estos no están limitados, es
decir, si una tarea bien definida requiere una cantidad
inmensa (pero finita) de algún recurso para su
realización, dicha tarea puede formar parte de un
algoritmo. Además, se dice que una secuencia de
tareas está ‘bien definida’ si se sabe el orden exacto en
que deben ejecutarse.
Diagramas de flujo
Se basan en la utilización de diversos símbolos geométricos para
representar operaciones específicas. Se les llama diagramas de flujo
porque los símbolos utilizados se conectan por medio de flechas para
indicar la secuencia que sigue la ejecución de las operaciones. En la
sección de Programación Estructurada se explica la forma de construir
diagramas de flujo utilizando esta técnica.
Pseudocódigo
Tiene asociado un léxico (conjunto de
palabras),
una sintaxis (reglas gramaticales) y una
semántica precisa (significado), de
manera análoga a
un lenguaje natural como el castellano.
El uso de tal lenguaje hace
relativamente fácil el paso de
codificación final del algoritmo (esto es,
la traducción a un lenguaje de
programación).
PROGRAMACIÓN ESTRUCTURADA
Se considera programación estructurada a la programación
que se hace por módulos. Cada módulo realiza alguna
tarea específica y cuando se necesite esa tarea
simplemente se hace el llamado a ese módulo
independiente de que se tengan que ejecutar los demás.
utilizando tres formas de organizar sus instrucciones:
• 1. Secuencia
• 2. Selección
• 3. Iteración
El propósito de un algoritmo estructurado puede
comprenderse al leerlo de arriba hacia abajo. Esto facilita
que el creador de un programa lo comparta con otros
programadores, lo dé a conocer, o delegue en otros la
labor de modificarlo. Turbo PASCAL, C, Modula, Ada.
Teorema de la estructura.

• Cualquier programa propio se puede escribir usando solamente las


tres estructuras de control: secuencia, selección e iteración.
Un programa propio contempla dos propiedades básicas:
1. Tiene exactamente un punto de entrada y uno de salida
2. Entre el punto de entrada y el de salida hay trayectorias que
conducen a cada parte del programa; esto significa que no existen
grupos de instrucciones que se ejecuten indefinidamente, ni
instrucciones que jamás se vayan a ejecutar.
Secuencia:
• Las instrucciones del programa se ejecutan en el orden en el cual ellas aparecen
en el texto del programa como se indica en el siguiente diagrama:

A y B pueden ser instrucciones básicas o compuestas. A y B deben ser ambos


programas propios en el sentido ya definido de entrada y salida. La combinación de
A y B es también un programa propio y que tiene también una entrada y una salida.
Selección:
• permite escoger entre dos grupos de instrucciones, de acuerdo a la evaluación de
una condición o predicado lógico. Se conoce como estructura SI–ENTONCES–
SINO. En el siguiente diagrama, P representa un predicado y, A y B representan
grupos de instrucciones. Debe ser claro que si P es falso, se realiza el conjunto de
instrucciones B; de lo contrario se realiza A. Las flechas horizontales de más a la
izquierda y de más a la derecha representan los puntos de entrada y salida,
respectivamente.
Iteración:
• Esta forma de control permite repetir varias veces una instrucción o
conjunto de instrucciones hasta cuando deje de cumplirse una condición
(predicado lógico). Se conoce como la estructura HACER – MIENTRAS. En
el siguiente diagrama, P representa un predicado y A representa un
grupo de instrucciones. Debe ser claro que siempre que P sea verdadero,
se realiza el conjunto de instrucciones A; de lo contrario se termina la
iteración. Las flechas horizontales de más a la izquierda y de más a la
derecha representan los puntos de entrada y salida, respectivamente.
Programación declarativa
• Es un paradigma de programación que está basado en el desarrollo
de programas especificando o "declarando" un conjunto de
condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o
transformaciones que describen el problema y detallan su solución.
• Imperativa: Un algoritmo en el que se describen los pasos necesarios
para solucionar el problema.
• Declarativa: Lo que hacen es describir el problema que se quiere
solucionar; se programa diciendo lo que se quiere resolver a nivel de
usuario, pero no las instrucciones necesarias para solucionarlo.
programación modular y orientada a objetos
• Consiste en dividir un programa en • (POO, u OOP según sus siglas en inglés)
módulos o subprogramas con el fin de es un paradigma de programación que
hacerlo más legible y manejable. viene a innovar la forma de obtener
resultados. Los objetos manipulan los
datos de entrada para la obtención de
• Se presenta históricamente como una datos de salida específicos, donde cada
evolución de la programación objeto ofrece una funcionalidad especial.
estructurada para solucionar problemas • permiten la agrupación en bibliotecas o
de programación más grandes y librerías, sin embargo, muchos de estos
complejos de lo que esta puede resolver. lenguajes permiten al usuario la creación
de sus propias bibliotecas.
• un módulo puede entenderse como una • Está basada en varias técnicas,
parte de un programa, procedimientos y incluyendo herencia, cohesión, abstracció
funciones. n, polimorfismo, acoplamiento y encapsul
amiento
Programación e ingeniería del software
• Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que
es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata
de grandes proyectos.
• El proceso de creación de software desde el punto de vista de la Ingeniería tiene los siguientes pasos:
• Reconocer la necesidad de un programa para solucionar un problema ó identificar la posibilidad de
automatización de una tarea.
• Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se
necesita.
• Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas
que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
• Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
• Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el
funcionamiento del programa, tras lo cual la codificación debería resultar inmediata.
• Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes
que pueda necesitar (bases de datos, redes de comunicaciones, etc.)
• La Ingeniería del Software se centra en los pasos de planificación y diseño del programa, mientras que
antiguamente (programación artesanal) la realización de un programa consistía únicamente en escribir el
código.
Objetivos de la programación
• La programación de ordenadores debe perseguir tres objetivos fundamentales:
• Corrección: un programa es correcto si hace lo que debe hacer. Para determinar si
un programa hace lo que debe es muy importante especificar claramente qué
debe hacer el programa antes de desarrollarlo y una vez acabado compararlo con
lo que realmente hace.
• Claridad: es muy importante que el programa sea lo más claro y legible posible
para mejorar el mantenimiento del software. Cuando se acaba de escribir el
código del programa, se deben buscar errores y corregirlos. Más concretamente,
cuando el programa está concluido, es necesario hacerle ampliaciones o
modificaciones, según la demanda de los usuarios, esta labor puede ser llevada
acabo por el mismo programador que implementó el programa o por otros.
• Eficiencia: debe consumir la menor cantidad de recursos posible. Normalmente al
hablar de eficiencia se suele hacer referencia al consumo de tiempo y/o memoria.
• La eficiencia y la claridad de un programa pueden ser objetivos contrapuestos: se
puede conseguir mayor claridad sacrificando parte de la eficiencia o viceversa.
Pero hay que tener en cuenta que el tiempo del programador es caro, y que hoy
en día el precio de los ordenadores es razonable y cada vez son más baratos

También podría gustarte