SlideShare una empresa de Scribd logo
Algorítmica y Programación
Unidad 1:
Algoritmos y
Programas
1.3.-Programación
Profa. Yenny Salazar
Reconocer los conceptos y
características fundamentales de la
programación.
Contenido
• Programación
• Programas de Computadoras
• Lenguaje de Programación
– Lenguaje de Máquina
– Lenguaje de Bajo Nivel (ensamblador)
– Lenguaje de Alto Nivel
• Traductores de Lenguaje
– Interpretes
– Compiladores
– La compilación y sus fases
• Pruebas y Depuración
• Paradigmas de Programación
– Lenguajes Declarativos
– Lenguajes Imperativos (Procedimentales)
• Actividades
Programación
En informática, se refiere a la creación de un programa de
computadora (o simplemente programa), aplicaciones
informáticas o videojuegos; es decir un software.
Es el proceso por el cual una persona (programador)
desarrolla un programa valiéndose de una herramienta que le
permita escribir el código (el cual puede estar en uno o varios
lenguajes, tales como C, C++, Java, Python, etc.), que sea capaz
de traducirse a lenguaje de máquina, el cual puede ser
entendido por un microprocesador. Este último paso se conoce
como compilación y es necesario para que el código pueda ser
ejecutado por la plataforma para la cual haya sido creado, que
bien puede ser un ordenador, una tableta, una consola de video
juego o un teléfono móvil. Existe también una forma de traducir
el código denominada interpretación (intérpretes de
comandos), que consiste en analizar línea a línea, hasta que se
traduzca lo suficiente como para poder realizar una tarea.
Programas de Computadoras
Existen diferentes conceptos; entre ellos:
1.Es un algoritmo desarrollado en un determinado lenguaje de
programación, para ser utilizado por la computadora; es
decir, una serie de pasos o instrucciones ordenadas y finitas
que pueden ser procesadas por una computadora, a fin de
permitirnos resolver un problema o tarea específica.
2.Secuencia de instrucciones mediante las cuales se ejecutan
diferentes acciones de acuerdo con los datos que se desee
procesar en la computadora.
3.Expresión de un algoritmo en un lenguaje preciso que puede
llegar a entender un computador.
Cabe destacar que, no todo algoritmo puede llegar a ser un
programa de computadora, debido a que existen algunos
algoritmos que requieren ser realizados físicamente. Los
programas que puede ejecutar una computadora son de
proceso lógico.
Es la combinación de símbolos y reglas que permiten la
elaboración de programas con los cuales la computadora
puede realizar tareas o resolver problemas de manera
eficiente.
Los lenguajes de programación se clasifican en:
1. Lenguaje máquina.
2. Lenguaje de bajo nivel (ensamblador).
3. Lenguaje de alto nivel.
Lenguaje de Programación
Lenguaje de Alto Nivel
C, Java, Phyton, …
Lenguaje de Bajo Nivel
Ensamblador
Máquina
Ordenador
Programa
ensamblador
Programa traductor
- Compilador
- Intérprete
- Máquina virtual
Lenguaje de Máquina
Es el lenguaje que posee instrucciones que el entiende
directamente el microprocesador, por tanto no se necesita un
traductor para que la UCP (unidad de procesamiento central)
pueda entender y ejecutar el programa.
Este es un lenguaje binario que depende exclusivamente del
hardware, y por lo tanto cada microprocesador tiene un
lenguaje de máquina diferente.
Este código binario, compuesto por 0 y 1 (patrones de bit,
tales como 11110000, 01110011...) los cuales son muy difíciles
de recordar y manipular por las personas. En consecuencia, se
necesitan lenguajes de alto nivel que permitan escribir los
programas, que deben ser traducido por un ensamblador para
que lo entienda el computador.
Lenguaje de Bajo Nivel
(Ensamblador)
Es una representación más entendible para el humano que
los códigos del lenguaje máquina. Cada instrucción en lenguaje
ensamblador representa una instrucción en el lenguaje
máquina.
El lenguaje ensamblador aparece casi a la par con el lenguaje
máquina, esto debido a que los fabricantes de hardware
diseñan sus chips pensando en las instrucciones de un lenguaje
de ensamblado.
Ejemplo:
Aunque es más fácil de entender por las personas sigue
siendo muy complicado y aún necesita ser traducido a código
binario.
Lenguaje Máquina Lenguaje Ensamblador
0010111000000001
0000000000001010
mov ax, 10
Lenguaje de Alto Nivel
Conjunto de instrucciones (acciones u operaciones que
debe realizar la máquina) que la computadora podrá entender
directamente en su código máquina una vez traducidas.
Es semejante al lenguaje humano (en general en inglés), lo que
facilita la elaboración y comprensión del programa. Por
ejemplo Basic, Pascal, Cobol, Fortran, C, JAVA, Python, etc.
Traductores de lenguaje
El proceso de traducción de un programa fuente escrito en
un lenguaje de alto nivel a un lenguaje máquina comprensible
por la computadora, se realiza mediante programas llamados
traductores.
Los traductores de lenguaje son programas que traducen a
su vez los programas fuente escritos en lenguajes de alto nivel
a código máquina.
Los traductores se dividen en:
• Compiladores
• Intérpretes
Intérpretes
Programa Fuente
Intérprete
Traducción y ejecución
línea a línea
Compiladores
Programa Fuente
Compilador
Programa objeto
Intérpretes
Es un programa informático capaz de analizar y ejecutar otros
programas, escritos en un lenguaje de alto nivel.
Es un traductor que toma un programa fuente, lo traduce y a
continuación, lo ejecuta.
El sistema de traducción consiste en: traducir la primera sentencia
del programa a lenguaje máquina, se detiene la traducción, se ejecuta
la sentencia; a continuación, se traduce la siguiente sentencia, se
detiene la traducción, se ejecuta la sentencia y así sucesivamente
hasta terminar el programa.
Los programas interpretados suelen ser más lentos debido a la
necesidad de traducir el programa mientras se
ejecuta, pero a cambio son más flexibles
como entornos de programación y depuración.
Además ofrece un entorno no dependiente
de la máquina donde se ejecuta el intérprete,
sino del propio intérprete (lo que se conoce
comúnmente como máquina virtual).
Programa fuente
Intérpretes
Traducción y ejecución
línea a línea
Compiladores
Es un programa que traduce los códigos fuente escritos en
lenguaje de alto nivel a lenguaje máquina. La traducción del
programa completo se realiza en una sola operación
denominada compilación del programa; es decir, se traducen
todas las instrucciones del programa en un solo bloque. El
programa compilado y depurado (una vez eliminados los
errores del código fuente) se denomina programa
ejecutable, porque ya se puede ejecutar directamente
y cuantas veces se desee; sólo deberá volver a compilarse de
nuevo en el caso de que se modifique alguna instrucción
del programa. De este modo el programa
ejecutable no necesita del compilador para
su ejecución. Los traductores de lenguajes
típicos más utilizados son: C, C++, Java,
C#, Pascal, FORTRAN y COBOL
Programa fuente
Compilador
Programa objeto
La Compilación y sus Fases
Para conseguir el programa máquina real se debe utilizar un
programa llamado montador o enlazador (linker). El proceso de
montaje conduce a un programa en lenguaje máquina
directamente ejecutable. El proceso de
ejecución de un programa escrito en un
lenguaje de programación y mediante un
compilador suele tener los siguientes
pasos:
1. Escritura del programa fuente con
un editor y guardarlo en un disposi-
tivo de almacenamiento.
2. Compilar el programa.
3. Verificar y corregir errores de compilación.
4. Obtención del programa objeto.
5. El enlazador obtiene el programa ejecutable.
6. Se ejecuta el programa y, si no existen
errores, se tendrá la salida del programa.
Programa objeto
Enlazador (linker)
Programa ejecutable
(en lenguaje de máquina)
Programa fuente
Compilador
(traductor)
Editar y
corregir
Error de
sintaxis
Prueba y Depuración
La prueba consiste en capturar datos hasta que el programa
funcione correctamente. La actividad de localizar errores se le
llama depuración. Existen dos tipos de pruebas:
• De Sintaxis: se ejecutan primero, son las más sencillas y las
realiza el compilador del programa cada vez que este se
ejecuta, hasta que el código no presente errores, es decir
que la sintaxis del lenguaje sea la correcta, de lo contrario el
propio compilador va mostrando los errores encontrados
para que se modifiquen y se pueda ejecutar el código; estos
errores pueden ser falta de paréntesis, puntos y comas o
palabras reservadas mal escritas.
• De Lógica: son las más complicadas ya que éstas las realiza
el programador; consisten en la captura de diferentes valores
y revisar que el resultado sea el deseado, es decir el
programador tendría que modificar el código hasta que el
programa funcione correctamente.
Paradigmas de Programación
Son estilos de desarrollo de programas. Es decir, un modelo para
resolver problemas computacionales. Los lenguajes de programación,
necesariamente, se encuadran en uno o varios paradigmas a la vez a
partir del tipo de órdenes que permiten implementar, algo que tiene
una relación directa con su sintaxis.
Representan fundamentalmente enfoques diferentes para la
construcción de soluciones a problemas y por consiguiente afectan al
proceso completo de desarrollo de software.
El paradigma representa un enfoque particular o filosofía para la
construcción de software. Cada uno tendrá sus ventajas e
inconvenientes, será más o menos apropiado, pero no es correcto
decir que exista uno mejor que los demás.
Fundamentalmente se busca con la aplicación de los diferentes
enfoques:
• Reducir la dificultad para el mantenimiento de las aplicaciones,
• Mejorar el rendimiento del programador y, en general,
• Mejorar la productividad y calidad de los programas.
Paradigmas de Programación
Los principales paradigmas de programación son:
Declarativos
Funcional.
Lógica.
Imperativos
Estructurada.
Modular.
Orientado a
Objeto.
Paradigmas de Programación
Lenguajes Declarativos
Solicita al programador que describa el problema en lugar
de encontrar una solución algorítmica al problema; es decir,
un lenguaje declarativo utiliza el principio del razonamiento
lógico para responder a las preguntas o cuestiones
consultadas. Se basa en la lógica formal y en el cálculo de
predicados de primer orden. El razonamiento lógico se basa
en la deducción. El lenguaje declarativo por excelencia es
Prolog.
• Lógico: El problema se modela con enunciados de lógica
de primer orden.
• Funcional: Los programas se componen de funciones, es
decir, implementaciones de comportamiento que reciben
un conjunto de datos de entrada y devuelven un valor de
salida.
Paradigmas de Programación
Lenguajes Imperativos (Procedimentales)
Representa el método tradicional de la programación. Es un
conjunto de instrucciones que se ejecutan una por una, de
principio a fin, de modo secuencial excepto cuando intervienen
instrucciones de salto de secuencia o control.
Este paradigma define el proceso de programación como el
desarrollo de una secuencia de órdenes (comandos) que
manipulan los datos para producir los resultados deseados. Por
consiguiente, señala un enfoque del proceso de programación
mediante la realización de un algoritmo que resuelve de modo
manual el problema y a continuación expresa ese algoritmo
como una secuencia de órdenes.
En un lenguaje procedimental cada instrucción es una orden u
órdenes para que la computadora realice alguna tarea específica.
Por excelencia son: FORTRAN, COBOL, Pascal, BASIC,
ALGOL, C y Ada (aunque sus últimas versiones ya tienen un
carácter completamente orientado a objetos).
Programación Estructurada
Permite utilizar estructuras que facilitan la modificación,
reutilización y lectura del código, así como el uso del concepto
de función (programación modular), que agrupan códigos para
la realización de una determinada tarea. Estas funciones pueden
ser utilizadas en cualquier parte del programa, el número de
veces que se necesiten.
Además permite una representación más clara del
funcionamiento de los programas mediante diagramas, en los
que se representan estructuras condicionales, bucles, etc. Todo
se ve como módulos que pueden colaborar entre ellos. Este
tipo de programación tenía una serie de limitaciones que
provocaron la aparición de otros paradigmas.
Programación Modular
Es la evolución de la programación estructurada, que consiste
en dividir un programa en módulos o subprogramas con el fin
de hacerlo más legible y manejable.
Se basa en la filosofía de resolver un problema dividiéndolo en
problemas más pequeños, llamados subproblemas. De esta
manera, en lugar de resolver una tarea compleja y tediosa,
resolvemos otras más sencillas y a partir de ellas llegar a la
solución. Esta técnica se usa mucho en programación ya que
programar no es más que resolver problemas, y se le suele
llamar diseño descendente, metodología del divide y vencerás o
programación top-down.
Es evidente que si esta metodología nos lleva a tratar con
subproblemas, entonces también tengamos la necesidad de
poder crear y trabajar con subprogramas para resolverlos. A
estos subprogramas se les suele llamar módulos, de ahí viene el
nombre de programación modular.
Programación Orientados a Objetos (OO)
Guarda analogía con la vida real. El desarrollo de software
OO se basa en el diseño y construcción de objetos que se
componen a su vez de datos y operaciones que manipulan esos
datos. El programador define en primer lugar los objetos del
problema y a continuación los datos y operaciones que actuarán
sobre esos datos. Las ventajas de la programación orientada a
objetos se derivan esencialmente de la estructura modular
existente en la vida real y el modo de respuesta de estos
módulos u objetos a mensajes o eventos que se producen en
cualquier instante.
C++ lenguaje orientado a objetos, por excelencia, es una
extensión del lenguaje C y contiene las tres propiedades más
importantes: encapsulamiento, herencia y polimorfismo. El Java
y el C# son herederos directos de C++ y C, y constituyen los
lenguajes orientados a objetos más utilizados.
Actividades
1. Realizar un resumen de los contenidos temáticos
presentados.
2. En función al resumen elaborado, crear un mapa
conceptual.
Algorítmica y Programación
Unidad 1:
Algoritmos y Programas
1.3.- Programas
Profa. Yenny Salazar
Referencias:
Corona, M. y Ancona M. 2011. Diseño de
algoritmos y su codificación en lenguaje C.
McGraw-Hill. México.
Joyanes, L. y Zahonero, I. 2002. Programación en
C. Metodología, algoritmos y estructura de
datos. McGraw-Hill.
Joyanes, L. 2008. Fundamentos de Programación,
Algoritmos, Estructura de Datos y Objetos.
Cuarta edición. McGraw-Hill.
López, J. Algoritmos y Programación. 2009.
Segunda Edición. Eduteka.

Más contenido relacionado

La actualidad más candente

Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
Michael Vreys
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
Katherine Gonzales
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTPcesia_97
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
RickyZhengHu
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorsalvaradomar
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Universidad fermín toro
Universidad fermín toroUniversidad fermín toro
Universidad fermín toro
Slims Colmenarez
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
Fausto Orozco
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionlupitagarcia07
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemasJESSIKADG86
 
Introduccion ala programacion de sistemas
Introduccion ala programacion de sistemasIntroduccion ala programacion de sistemas
Introduccion ala programacion de sistemasMazariego19
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
Kriz Kozlov
 
Leccion1 2
Leccion1 2Leccion1 2
Leccion1 2
Nombre Apellidos
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
tonytenorio2
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
RAFAEL HONORES VERA
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
frezko23
 
Software
SoftwareSoftware
Software
amauri lopez
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
Nat Alia
 

La actualidad más candente (19)

Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTP
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensamblador
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Universidad fermín toro
Universidad fermín toroUniversidad fermín toro
Universidad fermín toro
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Introduccion ala programacion de sistemas
Introduccion ala programacion de sistemasIntroduccion ala programacion de sistemas
Introduccion ala programacion de sistemas
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
Leccion1 2
Leccion1 2Leccion1 2
Leccion1 2
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
 
Software
SoftwareSoftware
Software
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 

Similar a Tema 1.3.- Programación

1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacion
Fausto Orozco
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
juanjokobrax
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
ADOLFOISAIASGARCIASI
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
kinverdar
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
kinverdar
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionAndres Garcia
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
kinverdar
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
leidychavarria
 
tlenguajes unidad I 2016
tlenguajes unidad I 2016tlenguajes unidad I 2016
tlenguajes unidad I 2016
maritqueve
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
KathGon1
 
Diapositivas
DiapositivasDiapositivas
Diapositivaskinverdar
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacionmarcejose
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacionguest7eefa2
 

Similar a Tema 1.3.- Programación (20)

Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacion
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
2
22
2
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De Programacion
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
tlenguajes unidad I 2016
tlenguajes unidad I 2016tlenguajes unidad I 2016
tlenguajes unidad I 2016
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 

Más de Yenny Salazar

Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Yenny Salazar
 
3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones
Yenny Salazar
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
Yenny Salazar
 
3.1.- Tipo de Datos
3.1.- Tipo de Datos3.1.- Tipo de Datos
3.1.- Tipo de Datos
Yenny Salazar
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- Documentación
Yenny Salazar
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de Programación
Yenny Salazar
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
Yenny Salazar
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo
Yenny Salazar
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de Flujo
Yenny Salazar
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación
Yenny Salazar
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisiones
Yenny Salazar
 

Más de Yenny Salazar (11)

Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
 
3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 
3.1.- Tipo de Datos
3.1.- Tipo de Datos3.1.- Tipo de Datos
3.1.- Tipo de Datos
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- Documentación
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de Programación
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de Flujo
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisiones
 

Último

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 

Último (6)

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 

Tema 1.3.- Programación

  • 1. Algorítmica y Programación Unidad 1: Algoritmos y Programas 1.3.-Programación Profa. Yenny Salazar Reconocer los conceptos y características fundamentales de la programación.
  • 2. Contenido • Programación • Programas de Computadoras • Lenguaje de Programación – Lenguaje de Máquina – Lenguaje de Bajo Nivel (ensamblador) – Lenguaje de Alto Nivel • Traductores de Lenguaje – Interpretes – Compiladores – La compilación y sus fases • Pruebas y Depuración • Paradigmas de Programación – Lenguajes Declarativos – Lenguajes Imperativos (Procedimentales) • Actividades
  • 3. Programación En informática, se refiere a la creación de un programa de computadora (o simplemente programa), aplicaciones informáticas o videojuegos; es decir un software. Es el proceso por el cual una persona (programador) desarrolla un programa valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, tales como C, C++, Java, Python, etc.), que sea capaz de traducirse a lenguaje de máquina, el cual puede ser entendido por un microprocesador. Este último paso se conoce como compilación y es necesario para que el código pueda ser ejecutado por la plataforma para la cual haya sido creado, que bien puede ser un ordenador, una tableta, una consola de video juego o un teléfono móvil. Existe también una forma de traducir el código denominada interpretación (intérpretes de comandos), que consiste en analizar línea a línea, hasta que se traduzca lo suficiente como para poder realizar una tarea.
  • 4. Programas de Computadoras Existen diferentes conceptos; entre ellos: 1.Es un algoritmo desarrollado en un determinado lenguaje de programación, para ser utilizado por la computadora; es decir, una serie de pasos o instrucciones ordenadas y finitas que pueden ser procesadas por una computadora, a fin de permitirnos resolver un problema o tarea específica. 2.Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se desee procesar en la computadora. 3.Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender un computador. Cabe destacar que, no todo algoritmo puede llegar a ser un programa de computadora, debido a que existen algunos algoritmos que requieren ser realizados físicamente. Los programas que puede ejecutar una computadora son de proceso lógico.
  • 5. Es la combinación de símbolos y reglas que permiten la elaboración de programas con los cuales la computadora puede realizar tareas o resolver problemas de manera eficiente. Los lenguajes de programación se clasifican en: 1. Lenguaje máquina. 2. Lenguaje de bajo nivel (ensamblador). 3. Lenguaje de alto nivel. Lenguaje de Programación Lenguaje de Alto Nivel C, Java, Phyton, … Lenguaje de Bajo Nivel Ensamblador Máquina Ordenador Programa ensamblador Programa traductor - Compilador - Intérprete - Máquina virtual
  • 6. Lenguaje de Máquina Es el lenguaje que posee instrucciones que el entiende directamente el microprocesador, por tanto no se necesita un traductor para que la UCP (unidad de procesamiento central) pueda entender y ejecutar el programa. Este es un lenguaje binario que depende exclusivamente del hardware, y por lo tanto cada microprocesador tiene un lenguaje de máquina diferente. Este código binario, compuesto por 0 y 1 (patrones de bit, tales como 11110000, 01110011...) los cuales son muy difíciles de recordar y manipular por las personas. En consecuencia, se necesitan lenguajes de alto nivel que permitan escribir los programas, que deben ser traducido por un ensamblador para que lo entienda el computador.
  • 7. Lenguaje de Bajo Nivel (Ensamblador) Es una representación más entendible para el humano que los códigos del lenguaje máquina. Cada instrucción en lenguaje ensamblador representa una instrucción en el lenguaje máquina. El lenguaje ensamblador aparece casi a la par con el lenguaje máquina, esto debido a que los fabricantes de hardware diseñan sus chips pensando en las instrucciones de un lenguaje de ensamblado. Ejemplo: Aunque es más fácil de entender por las personas sigue siendo muy complicado y aún necesita ser traducido a código binario. Lenguaje Máquina Lenguaje Ensamblador 0010111000000001 0000000000001010 mov ax, 10
  • 8. Lenguaje de Alto Nivel Conjunto de instrucciones (acciones u operaciones que debe realizar la máquina) que la computadora podrá entender directamente en su código máquina una vez traducidas. Es semejante al lenguaje humano (en general en inglés), lo que facilita la elaboración y comprensión del programa. Por ejemplo Basic, Pascal, Cobol, Fortran, C, JAVA, Python, etc.
  • 9. Traductores de lenguaje El proceso de traducción de un programa fuente escrito en un lenguaje de alto nivel a un lenguaje máquina comprensible por la computadora, se realiza mediante programas llamados traductores. Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código máquina. Los traductores se dividen en: • Compiladores • Intérpretes Intérpretes Programa Fuente Intérprete Traducción y ejecución línea a línea Compiladores Programa Fuente Compilador Programa objeto
  • 10. Intérpretes Es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Es un traductor que toma un programa fuente, lo traduce y a continuación, lo ejecuta. El sistema de traducción consiste en: traducir la primera sentencia del programa a lenguaje máquina, se detiene la traducción, se ejecuta la sentencia; a continuación, se traduce la siguiente sentencia, se detiene la traducción, se ejecuta la sentencia y así sucesivamente hasta terminar el programa. Los programas interpretados suelen ser más lentos debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración. Además ofrece un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual). Programa fuente Intérpretes Traducción y ejecución línea a línea
  • 11. Compiladores Es un programa que traduce los códigos fuente escritos en lenguaje de alto nivel a lenguaje máquina. La traducción del programa completo se realiza en una sola operación denominada compilación del programa; es decir, se traducen todas las instrucciones del programa en un solo bloque. El programa compilado y depurado (una vez eliminados los errores del código fuente) se denomina programa ejecutable, porque ya se puede ejecutar directamente y cuantas veces se desee; sólo deberá volver a compilarse de nuevo en el caso de que se modifique alguna instrucción del programa. De este modo el programa ejecutable no necesita del compilador para su ejecución. Los traductores de lenguajes típicos más utilizados son: C, C++, Java, C#, Pascal, FORTRAN y COBOL Programa fuente Compilador Programa objeto
  • 12. La Compilación y sus Fases Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable. El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador suele tener los siguientes pasos: 1. Escritura del programa fuente con un editor y guardarlo en un disposi- tivo de almacenamiento. 2. Compilar el programa. 3. Verificar y corregir errores de compilación. 4. Obtención del programa objeto. 5. El enlazador obtiene el programa ejecutable. 6. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa. Programa objeto Enlazador (linker) Programa ejecutable (en lenguaje de máquina) Programa fuente Compilador (traductor) Editar y corregir Error de sintaxis
  • 13. Prueba y Depuración La prueba consiste en capturar datos hasta que el programa funcione correctamente. La actividad de localizar errores se le llama depuración. Existen dos tipos de pruebas: • De Sintaxis: se ejecutan primero, son las más sencillas y las realiza el compilador del programa cada vez que este se ejecuta, hasta que el código no presente errores, es decir que la sintaxis del lenguaje sea la correcta, de lo contrario el propio compilador va mostrando los errores encontrados para que se modifiquen y se pueda ejecutar el código; estos errores pueden ser falta de paréntesis, puntos y comas o palabras reservadas mal escritas. • De Lógica: son las más complicadas ya que éstas las realiza el programador; consisten en la captura de diferentes valores y revisar que el resultado sea el deseado, es decir el programador tendría que modificar el código hasta que el programa funcione correctamente.
  • 14. Paradigmas de Programación Son estilos de desarrollo de programas. Es decir, un modelo para resolver problemas computacionales. Los lenguajes de programación, necesariamente, se encuadran en uno o varios paradigmas a la vez a partir del tipo de órdenes que permiten implementar, algo que tiene una relación directa con su sintaxis. Representan fundamentalmente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. El paradigma representa un enfoque particular o filosofía para la construcción de software. Cada uno tendrá sus ventajas e inconvenientes, será más o menos apropiado, pero no es correcto decir que exista uno mejor que los demás. Fundamentalmente se busca con la aplicación de los diferentes enfoques: • Reducir la dificultad para el mantenimiento de las aplicaciones, • Mejorar el rendimiento del programador y, en general, • Mejorar la productividad y calidad de los programas.
  • 15. Paradigmas de Programación Los principales paradigmas de programación son: Declarativos Funcional. Lógica. Imperativos Estructurada. Modular. Orientado a Objeto.
  • 16. Paradigmas de Programación Lenguajes Declarativos Solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema; es decir, un lenguaje declarativo utiliza el principio del razonamiento lógico para responder a las preguntas o cuestiones consultadas. Se basa en la lógica formal y en el cálculo de predicados de primer orden. El razonamiento lógico se basa en la deducción. El lenguaje declarativo por excelencia es Prolog. • Lógico: El problema se modela con enunciados de lógica de primer orden. • Funcional: Los programas se componen de funciones, es decir, implementaciones de comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida.
  • 17. Paradigmas de Programación Lenguajes Imperativos (Procedimentales) Representa el método tradicional de la programación. Es un conjunto de instrucciones que se ejecutan una por una, de principio a fin, de modo secuencial excepto cuando intervienen instrucciones de salto de secuencia o control. Este paradigma define el proceso de programación como el desarrollo de una secuencia de órdenes (comandos) que manipulan los datos para producir los resultados deseados. Por consiguiente, señala un enfoque del proceso de programación mediante la realización de un algoritmo que resuelve de modo manual el problema y a continuación expresa ese algoritmo como una secuencia de órdenes. En un lenguaje procedimental cada instrucción es una orden u órdenes para que la computadora realice alguna tarea específica. Por excelencia son: FORTRAN, COBOL, Pascal, BASIC, ALGOL, C y Ada (aunque sus últimas versiones ya tienen un carácter completamente orientado a objetos).
  • 18. Programación Estructurada Permite utilizar estructuras que facilitan la modificación, reutilización y lectura del código, así como el uso del concepto de función (programación modular), que agrupan códigos para la realización de una determinada tarea. Estas funciones pueden ser utilizadas en cualquier parte del programa, el número de veces que se necesiten. Además permite una representación más clara del funcionamiento de los programas mediante diagramas, en los que se representan estructuras condicionales, bucles, etc. Todo se ve como módulos que pueden colaborar entre ellos. Este tipo de programación tenía una serie de limitaciones que provocaron la aparición de otros paradigmas.
  • 19. Programación Modular Es la evolución de la programación estructurada, que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se basa en la filosofía de resolver un problema dividiéndolo en problemas más pequeños, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras más sencillas y a partir de ellas llegar a la solución. Esta técnica se usa mucho en programación ya que programar no es más que resolver problemas, y se le suele llamar diseño descendente, metodología del divide y vencerás o programación top-down. Es evidente que si esta metodología nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular.
  • 20. Programación Orientados a Objetos (OO) Guarda analogía con la vida real. El desarrollo de software OO se basa en el diseño y construcción de objetos que se componen a su vez de datos y operaciones que manipulan esos datos. El programador define en primer lugar los objetos del problema y a continuación los datos y operaciones que actuarán sobre esos datos. Las ventajas de la programación orientada a objetos se derivan esencialmente de la estructura modular existente en la vida real y el modo de respuesta de estos módulos u objetos a mensajes o eventos que se producen en cualquier instante. C++ lenguaje orientado a objetos, por excelencia, es una extensión del lenguaje C y contiene las tres propiedades más importantes: encapsulamiento, herencia y polimorfismo. El Java y el C# son herederos directos de C++ y C, y constituyen los lenguajes orientados a objetos más utilizados.
  • 21. Actividades 1. Realizar un resumen de los contenidos temáticos presentados. 2. En función al resumen elaborado, crear un mapa conceptual.
  • 22. Algorítmica y Programación Unidad 1: Algoritmos y Programas 1.3.- Programas Profa. Yenny Salazar Referencias: Corona, M. y Ancona M. 2011. Diseño de algoritmos y su codificación en lenguaje C. McGraw-Hill. México. Joyanes, L. y Zahonero, I. 2002. Programación en C. Metodología, algoritmos y estructura de datos. McGraw-Hill. Joyanes, L. 2008. Fundamentos de Programación, Algoritmos, Estructura de Datos y Objetos. Cuarta edición. McGraw-Hill. López, J. Algoritmos y Programación. 2009. Segunda Edición. Eduteka.