Subido por Bryhan

1era. Sesión Lenguajes de ProgramacionI 2017 - II

Anuncio
Lenguaje de Programación
Tema 1:
Introducción
Profesor
John Ledgard Trujillo Trejo
Universidad Nacional Mayor de San Marcos
Ingeniería Eléctrica y Electrónica
Curso 2017-II
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.1
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.2
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.3
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.4
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.5
Introducción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.6
Qué es la Informática
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Informática (Del fr. informatique). 1. f. Conjunto de
conocimientos científicos y técnicas que hacen posible el
tratamiento automático de la información por medio de
ordenadores.
(Extraído del Diccionario de la RAE, 2016)
 Computadora electrónica 1. f. Máquina electrónica digital,
dotada de una memoria de gran capacidad y de métodos de
tratamiento de la información, capaz de resolver problemas
matemáticos y lógicos mediante la utilización automática de
programas informáticos.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.7
Qué es una computadora
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa

Hardware (Voz ingl.).1. m.
Inform. Conjunto de los

componentes que integran la
parte material de una
computadora.
Fundamentos de computadores
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Software (Voz ingl.).1. m.
Conjunto de programas,
instrucciones y reglas
informáticas para ejecutar
ciertas tareas en una
computadora.
Introducción a la programación
1.8
Qué es un Sistema Informático
Tema 1
SOFTWARE
Introducción a
lenguajes de
programación
Definición de
Algoritmos
ALGORITMOS
ORDENADOR
SISTEMA
INFORMATICO
Estructura de
un programa
SOFTWARE
DATOS
INFORMACIÓN
HARDWARE
PROGRAMAS
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.9
Qué es un Sistema Informático
Tema 1
Introducción a
lenguajes de
programación
 Es el conjunto que resulta de la integración de cuatro
elementos: Hardware, Software, Datos y Personas.
Definición de
Algoritmos
Estructura de
un programa
 Estos componentes se relacionan haciendo posible el
procesamiento automático de los datos, a través de
ordenadores, para producir información útil.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Qué es un Sistema Informático
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Qué es un Sistema Informático
Tema 1
 Dato e información son dos términos que suelen confundirse
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Datos.- Representación de algún hecho, concepto o entidad
real (los datos pueden tomar diferentes formas; por ejemplo,
palabras escritas o habladas, números y dibujos).
 Información.- Implica datos procesados y organizados.
 Sistema de procesamiento de información.- Es un sistema
que transforma datos brutos en información organizada,
significativa y útil.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Qué es un Sistema Informático
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Sistema de Banca Electrónica
 Reservas de pasajes
 Sistemas Hospitalarios
 Sistemas Bibliográficos
 Lectura remota de datos
 Procesos industriales en tiempo real
 Control de inventarios en tiempo real
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
¿Qué entiende la computadora?
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
La computadora manipula únicamente información digital:
Datos e instrucciones se codifican como
dígitos binarios (0’s y 1’s)
 ¿Por qué no se usa una representación de otro tipo?
 Problema tecnológico (es más fácil representar ceros y unos)
 ¿A qué nos conduce la solución adoptada para evitar el
problema tecnológico?
 La máquina sólo puede trabajar con cadenas de ceros y unos
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.14
Lenguajes
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Lenguaje es el empleo de notaciones, señales y vocales
(voz, palabras) para expresar ideas, comunicarse, y
establecer relaciones entre los seres humanos.
 Un lenguaje no sólo consta de “palabras”, sino también de su
pronunciación y los métodos para combinar las palabras en
frases y oraciones; los lenguajes se forman mediante
combinaciones de palabras definidas en un diccionario
terminológico previamente establecido. Las combinaciones
posibles deben respetar un conjunto de reglas sintácticas
establecidas, a ello se le conoce con el nombre de Sintaxis.
 Además, las palabras deben tener determinado sentido, deben
ser comprendidas por un grupo humano en un contexto dado,
a ello se le denomina Semántica.
 Aunque existen muchas clasificaciones, en general se puede
distinguir entre dos clases de lenguajes: los lenguajes
naturales (ingles, alemán, español, etc.) y los lenguajes
artificiales o formales (matemático, lógico, computacional,
etc.).
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Lenguaje máquina
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Pasos
a = (b + c)/(d + e)
y
x
 sumar b y c, y guardar el resultado en una dirección de memoria
temporal X
 sumar d y e, y guardar el resultado en una dirección de memoria
temporal Y
 dividir el contenido de X por el de Y y guardar el resultado en la
dirección de memoria de a
 Ejemplo de código máquina
 codigoOp direccOp1 direccOp2 direccRes
Código de la suma
Direcc. Temporal X
0000 00001000 00001100 00001110
0000 00011000 00011100 00011110
0101 00011110 00001110 00000100
Direcc. Temporal Y
Código de la división
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.16
Lenguaje máquina (cont.)
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Inconvenientes
 Grandes posibilidades de error
 Portabilidad: máquina-dependiente
 No se puede llevar el programa a otra máquina porque,
entre otras cosas, el repertorio de instrucciones es distinto
 Tedioso
 Nula capacidad de abstracción
 Es muy complicado formular una solución a problemas del
mundo real con ese lenguaje tan específico
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.17
Lenguaje ensamblador
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Lenguaje simbólico con una mínima capacidad de abstracción
 Nombres nemotécnicos para los códigos de operación
 Nombres simbólicos para las direcciones de memoria
 Ejemplo de instrucción de código ensamblador
codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes
 Códigos simbólicos de las operaciones
 SUM = La suma
 DIV = La división
a = (b + c)/(d + e)
SUM B, C, X
SUM D, E, Y
DIV
X, Y, A
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.18
Lenguaje ensamblador (cont.)
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
 Cuestiones
 ¿Cómo entiende la máquina el lenguaje ensamblador?
 Si las direcciones de memoria son simbólicas ¿en qué
direcciones de memoria se colocan los datos?
Estructura de
un programa
Código fuente
(lenguaje ensamblador)
Programa ensamblador
Código objeto
(lenguaje máquina)
 Programa ensamblador
 Traducción a código binario de códigos simbólicos de operación
 Traducción de las direcciones simbólicas a direcciones reales de
memoria
 Inconveniente: sigue siendo dependiente de la máquina
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.19
Lenguajes de alto nivel
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Lenguaje que permite representar el mecanismo de
resolución de los problemas usando instrucciones
independientemente de la computadora
 Cercanía conceptual al programador
 Pascal, C, Java, etc. son lenguajes de alto nivel
 Capacidad de abstracción
 Abstracción procedimental (poder representar operaciones más
complejas como calcular las raíces de un polinomio)
 Abstracción de datos (poder representar información más
compleja como el estado de una cuenta bancaria)
 ¿Cómo conseguir que la computadora “entienda” los
programas escritos en lenguajes de alto nivel?
 Intérprete
 Analiza el programa fuente y lo ejecuta directamente en la máquina
 Compilador
 Analiza el programa fuente y lo traduce a lenguaje máquina
 Ej. Turbo C++ es un compilador de C++
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.20
Abstracción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Abstracción de datos
 Tipos de datos
 Elementales (HW)
• Enteros
• Reales
• Booleanos
• Caracteres
 Nivel: de la máquina
 Primitivos
 Tipo básico
 Proporcionados por el Hw
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.21
Abstracción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Abstracción de datos
 Tipos de datos
 Estructurados (LP)
• Arreglos
• Registros
 Nivel: Del Lenguaje de Programación
 Proporcionado por los LP
 Con base en tipos elementales
 Se utilizan constructores de tipo que pertenece al LP
 Abstractos (U)
• Stacks
• Colas, etc
 Nivel: Del usuario
 Definidos por el usuario para enriquecer el LP
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.22
Abstracción
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Abstracción de control
 Lógica del código
 Sentencias: Constructores de código que facilitan la programación
estructurada
• Asignación
• Decisión
• Iteración
 Unidades de Programas





Permiten programación modular
Generalizan la noción de operador
Permiten encapsular parte de un algoritmo
Tienen una única definición
Tienen múltiples activaciones
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.23
Clasificación de los Lenguajes de Programación
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.24
Evolución de los Lenguajes de Programación
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.25
Lenguajes interpretados vs Lenguajes Compilados
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Lenguaje Compilado
 Un lenguaje compilado es término un tanto impreciso para
referirse a un lenguaje de programación que típicamente se
implementa mediante un compilador. Esto implica que una vez
escrito el programa, éste se traduce a partir de su código fuente
por medio de un compilador en un archivo ejecutable para una
determinada plataforma (por ejemplo Solaris para Sparc,
Windows NT para Intel, etc.). (Lenguaje Compilado - Wikipedia)
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.26
Lenguajes interpretados vs Lenguajes Compilados
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Lenguaje Interpretado
 Un lenguaje interpretado es aquel en el que las instrucciones se
traducen o interpretan una a una en tiempo de ejecución a un
lenguaje intermedio o lenguaje máquina o a través de una
máquina virtual, siendo típicamente unas 10 veces más lentos
que los programas compilados.(Adaptación de la definición en
Wikipedia)
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.27
Lenguajes de Programación
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.28
Ranking de los lenguajes de programación más utilizados en 2011
Tema 1
Introducción a
lenguajes de
programación
 Según los datos del Índice Comunitario de Programación TIOBE,
ofrecemos el ranking con los lenguajes de programación más usados por los
desarrolladores.
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.29
¿Qué es algoritmo?
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite
hallar la solución de un problema.
(Extraído del Diccionario de la RAE, 22ª edición)
 Un algoritmo es un conjunto finito de instrucciones o pasos que
sirven para ejecutar una tarea y resolver un problema. De un modo
más formal, un algoritmo es una secuencia finita de operaciones
realizables, cuya ejecución da una solución de un problema en un
tiempo finito, usando el procedimiento más adecuado para la
resolución de un problema.
 Los algoritmos son independientes del lenguaje de programación en
que se expresan como así también de la computadora que se
ejecuten.
 Un algoritmo es, por tanto, una sistemática que transforma un
estado inicial en un estado final
 La entrada del Algoritmo: Precondiciones
 Descripción del estado inicial (datos y situación de partida)
 La salida del Algoritmo: Postcondiciones
 Descripción del estado final (datos y situación deseada al acabar)
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.30
Características de los Algoritmos
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
El científico de computación Donald Knuth ofreció una lista de
cinco propiedades, que son ampliamente aceptadas como
requisitos para un algoritmo:
 Carácter finito. "Un algoritmo siempre debe terminar después de
un número finito de pasos".
 Precisión. "Cada paso de un algoritmo debe estar precisamente
definido; las operaciones a llevar a cabo deben ser especificadas de
manera rigurosa y no ambigua para cada caso".
 Entrada. "Un algoritmo tiene cero o más entradas: cantidades que
le son dadas antes de que el algoritmo comience, o dinámicamente
mientras el algoritmo corre. Estas entradas son tomadas de
conjuntos específicos de objetos".
 Salida. "Un algoritmo tiene una o más salidas: cantidades que
tienen una relación específica con las entradas".
 Eficacia. "También se espera que un algoritmo sea eficaz, en el
sentido de que todas las operaciones a realizar en un algoritmo
deben ser suficientemente básicas como para que en principio
puedan ser hechas de manera exacta y en un tiempo finito por un
hombre usando lápiz y papel".
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.31
Tipos de Algoritmos
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Existen dos tipos y son llamados así por su naturaleza:
 Cualitativos: Son aquellos en los que se describen los
pasos utilizando palabras.
 Cuantitativos: Son aquellos en los que se utilizan cálculos
numéricos para definir los pasos del proceso.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.32
Medios de expresión de un algoritmo
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Las técnicas para la formulación de algoritmos más populares son:
 Diagramas de flujo
 Pseudocódigo
 Diagrama estructurado (N-S)
 Diagramas de Flujo
 Ejemplo: Cruzar la calle sin peligro de ser atropellado por un automóvil.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.33
Medios de expresión de un algoritmo
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
 Pseudocódigo
 Un pseudocódigo (falso lenguaje), es una serie de normas léxicas
y gramaticales parecidas a la mayoría de los lenguajes de
programación, pero sin llegar a la rigidez de sintaxis de estos ni a la
fluidez del lenguaje coloquial.
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.34
Medios de expresión de un algoritmo
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Diagrama estructurado (Nassi - Schneiderman)
 El diagrama estructurado N-S es una técnica hibrida (una mezcla) entre
Diagramas de Flujo y Pseudocódigo.
 Esta técnica, también conocida como Diagrama de Chapín, utiliza una
serie de cajas, similar a los diagramas de flujos, pero no requiere la
utilización de flechas, debido a que su flujo siempre es descendente.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.35
Resolución de Problemas con Computadoras
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Utilizamos los lenguajes de programación para expresar los
algoritmos de forma que el ordenador los entienda
 De igual forma, que utilizamos la lengua castellana para
expresar nuestras ideas a otras personas
 Recuerda: Programar BIEN no es sólo conocer la
sintaxis de uno o varios lenguajes de programación
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.36
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Las fases en la construcción de un programa para resolver un
problema mediante la computadora son, en orden, las
siguientes:




Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas
 El paso cero sería Entender el problema, parece banal, pero
no lo es cuando se piensa en la gran cantidad de proyectos
de computación que se desarrollaron sin haber comprendido
bien para que se hacían, o cual era el problema que
supuestamente iban a resolver.
 Comprender la importancia de entender con claridad el
problema antes de abocarnos a encontrar una solución.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.37
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
Estructura de
un programa
 El análisis consiste en una clara definicion del problema,
donde se contemple exactamente lo que debe hacer el
programa y el resultado o solucion deseada.
 Dado que se busca una solución por computadora, se
precisan especificaciones detalladas de entradas y salidas.
 Para resolver un problema con un ordenador hay que
disponer de los datos de entrada, estudiar el tratamiento que
se ha de realizar a dichos datos, la información que se desea
obtener como resultado y de que manera debe presentarse.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.38
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
Estructura de
un programa
 Es decir, después de analizar el problema, se han de
conocer claramente tres cosas.
 Datos de Entrada de que se dispone
 Proceso o Tratamiento que ha de realizarse con estos datos.
 Información de salida deseada.
 Una de las técnicas mas empleadas recibe el nombre de
H.I.P.O. (Hierarchy the plus input process output) que
consiste en esquematizar cada programa, o una parte del
mismo en los tres bloques (los descritos anteriormente)..
E
N
T
R
A
D
A
P
R
O
C
E
S
O
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
S
A
L
ID
A
1.39
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
Estructura de
un programa
Ejemplo
Sin entrar en el campo de la informática, para hacer la nómina
de los mejores alumnos de una carrera, se necesita saber:
ENTRADA: Los datos de cada uno de los alumnos y si
estos datos están en papel o en un fichero donde
está toda la información de los alumnos.
PROCESO: La fórmula matemática para calcular el
promedio de notas es:
(nota 1 + nota 2 + nota 3 + .....+ nota n) / cantidad
de notas
SALIDA: El modelo del informe donde se desean
imprimir el promedio de los alumnos.
E
N
T
R
A
D
A
P
R
O
C
E
S
O
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
S
A
L
ID
A
1.40
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
 Teniendo en cuenta que un algoritmo es un método para resolver
problemas, una vez analizado el mismo se precisa diseñar un
algoritmo que indique claramente los pasos a seguir para resolverlo.
 Para realizar un determinado proceso, se le debe suministrar al
ordenador una fórmula para la resolución de un problema
(algoritmo), cuyo diseño debe ser independiente de la computadora
que resuelve el problema.
 Dada la importancia del algoritmo en la ciencia de la computación,
un aspecto muy importante será el diseño del algoritmo.
 En esta etapa se realizará una representación de la secuencia.
Estas representaciones son las herramientas de: diagramas de
flujo, pseudocódigos y/o tablas de decisión.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.41
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
 Una vez que el diagrama de flujo o el algoritmo de resolución del
problema está definido se pasa a la fase de codificación del
programa en cualquier lenguaje (C, basic, cobol, pascal, etc.) cuyo
resultado será el programa fuente, el cual sigue las reglas de
sintaxis que el lenguaje escogido exija.
 Después de codificado el programa, se introduce en el ordenador
mediante unos programas especiales llamados editores.
 Una vez dentro del ordenador, el programa deber ser traducido al
único lenguaje que éste entiende: Lenguaje de máquina. Dicha
operación se realiza mediante el correspondiente programa
traductor o compilador del lenguaje en el que está escrito el
programa.
PRO
G
RAM
ACIO
N
AN
ALISIS
ALG
O
R
ITM
O
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
CO
DIFICACIO
N
ED
IC
IO
N
TRAD
U
C
C
IO
N
1.42
Etapas en la solución de problemas
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Análisis del problema
Diseño del algoritmo
Programación
Ejecución y pruebas.
 El hecho de haber diseñado un buen algoritmo y luego haberlo
codificado en algún lenguaje de programación no significa que el
programa resuelva correctamente el problema en cuestión.
 Por eso, antes de dar por finalizada cualquier labor de
programación, es fundamental preparar un conjunto de datos lo más
representativo posible del problema, que permitan probar el
programa cuando se ejecute y así verificar los resultados.
 Cuanto más exhaustivas sean las pruebas de un programa, mayor
seguridad se tendrá de que éste funcione correctamente y, por lo
tanto, menor posibilidad de errores.
 El programa se considera terminado cuando se han realizado
pruebas y ensayo de su fiabilidad con el conjunto de datos
seleccionados y otros nuevos, hasta incluso con datos reales, y no
Lenguaje de Programación
se encuentren errores
de ningún tipo.
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.43
¿Qué significa todo esto?
Casa
Software
“Quiero 3 habitaciones,
2 baños, garaje...”
Análisis
Planos, diseño circuito
eléctrico y de agua...
Diseño
Se construye la casa
Se comprueba la solidez de la
estructura, el funcionamiento de
las instalaciones, el acabado...
Algunas reparaciones, se cierra
la terraza, se instala aire
acondicionado...
¿Qué tiene que hacer
exactamente nuestro
programa?
¿Cómo vamos a organizar
el programa? ¿Qué partes
tendrá y cómo funcionará?
Implementación
Se construye el software
Pruebas
Ponemos a prueba nuestro
programa, incluso en
situaciones límite
Mantenimiento
Pequeñas modificaciones o
correcciones (parches),
actualizaciones, etc...
1.44
Estructura general de un programa
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Un programa puede considerarse como una secuencia
lógica de acciones (instrucciones) que manipulan un conjunto
de objetos (datos) para obtener unos resultados que serán la
solución al problema que resuelve dicho programa.
 Todo programa, en general contiene dos bloques bien
diferenciados para la descripción de los dos aspectos
anteriormente citados:
 Bloque de declaraciones. En él se especifican todos los
objetos que utiliza el programa (constantes, variables, tablas,
registros, archivos, etc.) indicando las características de estos.
Este bloque se encuentra localizado siempre por delante del
comienzo de las acciones.
 Bloque de instrucciones. Constituido por el conjunto de
operaciones que se han de realizar para la obtención de los
resultados deseados.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.45
Partes principales de un programa
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
 Las partes principales de un programa están relacionadas
con sus dos bloques ya mencionados. Dentro del bloque de
instrucciones podemos diferenciar tres partes fundamentales,
como se muestra en la siguiente figura:
Estructura de
un programa
 Entrada de Datos: La constituyen todas las instrucciones que toman los
datos de entrada desde un dispositivo externo y los almacena en la
memoria principal para que puedan ser procesados.
 Proceso o algoritmo: Está formado por las instrucciones que modifican
los objetos a partir de su estado inicial (datos de entrada) hasta el
estado final (resultados) dejando los objetos que lo contiene disponibles
en la memoria principal.
 Salida de resultados: Conjunto de instrucciones que toman los datos
finales (resultado) de la memoria principal y los envían a los dispositivos
externos.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.46
Proceso de ejecución de un programa
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
 Escribir el programa fuente y
almacenarlo en un dispositivo de
almacenamiento.
 Introducir el programa fuente en
la memoria del computador
 Compilación del programa.
 Verificar y depurar errores de
compilación.
 Obtención del programa objeto.
 El linkeador enlaza y obtiene el
programa ejecutable.
 Ejecución del programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.47
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Antecedentes y Problemas y retos
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.48
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Modelos de Desarrollo del Ciclo de Vida y Procesos
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.49
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Análisis de Requerimientos y Especificaciones
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.50
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Diseño de Software y Metodologías
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Sistemas de Alta Integridad
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Métodos Formales
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Administración de Proyectos de Software
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Administración de la Calidad del Software
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Ambientes de Desarrollo de Software
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Mantenimiento del Software
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Cumplimiento Exitoso del Proyecto
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
La tortuga y la liebre: Desarrollo de software
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Depurar
Revisar:
Hacer una
nueva versión
Revisar
Depurar
Depurar:
Encontrar y
remover errores
Revisar
Codificar
Objetivo
final
Prueba
Pensar,
Razonar,
reflexionar
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
Codificar
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.60
Discusión, preguntas...
Tema 1
Introducción a
lenguajes de
programación
Definición de
Algoritmos
Estructura de
un programa
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
1.61
Bibliografía
 J OYANES AGUILAR, Luis. 2003. FUNDAMENTOS DE
PROGRAMACIÓN Algoritmos, Estructura de Datos y Objetos.
McGraw-Hill, Madrid.
 DEITEL H., Deitel P. 2008. C++ Como programar. 6a Ed. Pearson.
Prentice-Hall. México. 1112 p.
1.62
¿ Preguntas ?
1.63
Descargar