Você está na página 1de 64

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  Informática (Del fr. informatique). 1. f. Conjunto de


conocimientos científicos y técnicas que hacen posible el
Introducción a
lenguajes de

tratamiento automático de la información por medio de


programación

Definición de
Algoritmos ordenadores.
Estructura de
(Extraído del Diccionario de la RAE, 2016)
un programa

 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  Hardware (Voz ingl.).1. m.  Software (Voz ingl.).1. m.
Definición de
Inform. Conjunto de los Conjunto de programas,
Algoritmos
componentes que integran la instrucciones y reglas
Estructura de parte material de una informáticas para ejecutar
un programa
computadora. ciertas tareas en una
computadora.

Fundamentos de computadores Introducción a la programación

Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.8
Qué es un Sistema Informático

Tema 1
SOFTWARE
Introducción a
lenguajes de
programación

ALGORITMOS
Definición de
Algoritmos SISTEMA ORDENADOR
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  Es el conjunto que resulta de la integración de cuatro


Introducción a
lenguajes de elementos: Hardware, Software, Datos y Personas.
programación

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  Datos.- Representación de algún hecho, concepto o entidad


Algoritmos
real (los datos pueden tomar diferentes formas; por ejemplo,
Estructura de
un programa
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 La computadora manipula únicamente información digital:
Definición de
Algoritmos
Datos e instrucciones se codifican como
Estructura de
un programa 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
 Lenguaje es el empleo de notaciones, señales y vocales
lenguajes de
programación
(voz, palabras) para expresar ideas, comunicarse, y
Definición de
establecer relaciones entre los seres humanos.
Algoritmos
 Un lenguaje no sólo consta de “palabras”, sino también de su
Estructura de pronunciación y los métodos para combinar las palabras en
un programa
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 a = (b + c)/(d + e)
x y
Introducción a
lenguajes de
programación
 Pasos
Definición de  sumar b y c, y guardar el resultado en una dirección de memoria
Algoritmos
temporal X
Estructura de  sumar d y e, y guardar el resultado en una dirección de memoria
un programa 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  Inconvenientes
Introducción a
lenguajes de
programación
 Grandes posibilidades de error
 Portabilidad: máquina-dependiente
Definición de
Algoritmos  No se puede llevar el programa a otra máquina porque,
Estructura de entre otras cosas, el repertorio de instrucciones es distinto
un programa
 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

 Lenguaje simbólico con una mínima capacidad de abstracción


Tema 1
Introducción a  Nombres nemotécnicos para los códigos de operación
 Nombres simbólicos para las direcciones de memoria
lenguajes de
programación

Definición de
Algoritmos
 Ejemplo de instrucción de código ensamblador
Estructura de
un programa
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  Cuestiones
Introducción a
lenguajes de
programación
 ¿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?
Definición de
Algoritmos

Estructura de
un programa

Código fuente Programa ensamblador Código objeto


(lenguaje ensamblador) (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
 Lenguaje que permite representar el mecanismo de
Introducción a
lenguajes de
resolución de los problemas usando instrucciones
programación
independientemente de la computadora
Definición de  Cercanía conceptual al programador
Algoritmos
 Pascal, C, Java, etc. son lenguajes de alto nivel
Estructura de

 Capacidad de abstracción
un programa

 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
 Abstracción de datos
Introducción a
lenguajes de  Tipos de datos
programación
 Elementales (HW)
Definición de

• Enteros
Algoritmos

Estructura de
un programa • 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
 Abstracción de datos
Introducción a
lenguajes de  Tipos de datos
programación
 Estructurados (LP)
Definición de
Algoritmos
• Arreglos
Estructura de
un programa • 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
 Abstracción de control
Introducción a
lenguajes de
programación
 Lógica del código
Definición de
Algoritmos
 Sentencias: Constructores de código que facilitan la programación
Estructura de estructurada
un programa

• 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  Lenguaje Compilado


Introducción a
lenguajes de
programación
 Un lenguaje compilado es término un tanto impreciso para
referirse a un lenguaje de programación que típicamente se
Definición de
Algoritmos implementa mediante un compilador. Esto implica que una vez
Estructura de escrito el programa, éste se traduce a partir de su código fuente
por medio de un compilador en un archivo ejecutable para una
un programa

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  Lenguaje Interpretado


Introducción a
lenguajes de
programación
 Un lenguaje interpretado es aquel en el que las instrucciones se
traducen o interpretan una a una en tiempo de ejecución a un
Definición de
Algoritmos lenguaje intermedio o lenguaje máquina o a través de una
Estructura de máquina virtual, siendo típicamente unas 10 veces más lentos
que los programas compilados.(Adaptación de la definición en
un programa

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

 Según los datos del Índice Comunitario de Programación TIOBE,


Tema 1
Introducción a
ofrecemos el ranking con los lenguajes de programación más usados por los
lenguajes de desarrolladores.
programación

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?

Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite


Tema 1
Introducción a
hallar la solución de un problema.
lenguajes de
programación (Extraído del Diccionario de la RAE, 22ª edición)

Definición de  Un algoritmo es un conjunto finito de instrucciones o pasos que


Algoritmos
sirven para ejecutar una tarea y resolver un problema. De un modo
Estructura de
más formal, un algoritmo es una secuencia finita de operaciones
un programa 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
El científico de computación Donald Knuth ofreció una lista de
Introducción a
lenguajes de
cinco propiedades, que son ampliamente aceptadas como
programación
requisitos para un algoritmo:
Definición de
Algoritmos  Carácter finito. "Un algoritmo siempre debe terminar después de
un número finito de pasos".
Estructura de
un programa
 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 Existen dos tipos y son llamados así por su naturaleza:


Introducción a
lenguajes de
programación  Cualitativos: Son aquellos en los que se describen los
Definición de pasos utilizando palabras.
Algoritmos

Estructura de  Cuantitativos: Son aquellos en los que se utilizan cálculos


un programa
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
 Las técnicas para la formulación de algoritmos más populares son:
Introducción a
lenguajes de
 Diagramas de flujo
programación  Pseudocódigo
Definición de
 Diagrama estructurado (N-S)
Algoritmos
 Diagramas de Flujo
Estructura de
un programa  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
 Pseudocódigo
Introducción a
lenguajes de
programación
 Un pseudocódigo (falso lenguaje), es una serie de normas léxicas
y gramaticales parecidas a la mayoría de los lenguajes de
Definición de
Algoritmos
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
 Diagrama estructurado (Nassi - Schneiderman)
Introducción a
lenguajes de
 El diagrama estructurado N-S es una técnica hibrida (una mezcla) entre
programación Diagramas de Flujo y Pseudocódigo.
Definición de  Esta técnica, también conocida como Diagrama de Chapín, utiliza una
Algoritmos
serie de cajas, similar a los diagramas de flujos, pero no requiere la
Estructura de utilización de flechas, debido a que su flujo siempre es descendente.
un programa

Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.35
Resolución de Problemas con Computadoras

Tema 1  Utilizamos los lenguajes de programación para expresar los


algoritmos de forma que el ordenador los entienda
Introducción a
lenguajes de
programación
 De igual forma, que utilizamos la lengua castellana para
Definición de
Algoritmos expresar nuestras ideas a otras personas

 Recuerda: Programar BIEN no es sólo conocer la


Estructura de
un programa

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  Las fases en la construcción de un programa para resolver un


problema mediante la computadora son, en orden, las
Introducción a
lenguajes de

siguientes:
programación

Análisis del problema


Definición de
Algoritmos 
Estructura de  Diseño del algoritmo
un programa
 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
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
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
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
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)..

ENTRADA PROCESO SALIDA


Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.39
Etapas en la solución de problemas

Tema 1
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
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.

ENTRADA Lenguaje de Programación


P R O CESO SALIDA
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.40
Etapas en la solución de problemas

Tema 1
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
Ejecución y pruebas.
Estructura de
un programa
 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
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
Ejecución y pruebas.
Estructura de  Una vez que el diagrama de flujo o el algoritmo de resolución del
un programa
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.

PROGRAMACION ANALISIS ALGORITM


O CODIFICACION EDICION TRADUCCION
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.42
Etapas en la solución de problemas

Tema 1
Análisis del problema
Introducción a
lenguajes de Diseño del algoritmo
programación
Programación
Definición de
Algoritmos
Ejecución y pruebas.
Estructura de  El hecho de haber diseñado un buen algoritmo y luego haberlo
un programa
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
se encuentren errores de ningún tipo.
Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017 1.43
¿Qué significa todo esto?

Casa Software
¿Qué tiene que hacer
“Quiero 3 habitaciones, Análisis exactamente nuestro
2 baños, garaje...” programa?
¿Cómo vamos a organizar
Planos, diseño circuito
eléctrico y de agua...
Diseño el programa? ¿Qué partes
tendrá y cómo funcionará?

Se construye la casa Se construye el software


Implementación

Se comprueba la solidez de la Ponemos a prueba nuestro


estructura, el funcionamiento de programa, incluso en
las instalaciones, el acabado...
Pruebas situaciones límite

Algunas reparaciones, se cierra Pequeñas modificaciones o


la terraza, se instala aire Mantenimiento correcciones (parches),
acondicionado... actualizaciones, etc...

1.44
Estructura general de un programa

Tema 1  Un programa puede considerarse como una secuencia


Introducción a
lenguajes de lógica de acciones (instrucciones) que manipulan un conjunto
programación
de objetos (datos) para obtener unos resultados que serán la
Definición de
Algoritmos solución al problema que resuelve dicho programa.
Estructura de
un 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  Las partes principales de un programa están relacionadas


Introducción a
lenguajes de con sus dos bloques ya mencionados. Dentro del bloque de
programación
instrucciones podemos diferenciar tres partes fundamentales,
Definición de
Algoritmos 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  Escribir el programa fuente y
Definición de
almacenarlo en un dispositivo de
Algoritmos almacenamiento.
 Introducir el programa fuente en
Estructura de
un programa

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
Antecedentes y Problemas y retos
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.48
La tortuga y la liebre: Desarrollo de software

Modelos de Desarrollo del Ciclo de Vida y Procesos


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.49
La tortuga y la liebre: Desarrollo de software

Análisis de Requerimientos y Especificaciones


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.50
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a Diseño de Software y Metodologías
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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a
lenguajes de
Sistemas de Alta Integridad
programación

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 Métodos Formales
programación

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

Administración de Proyectos de Software


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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a
Administración de la Calidad del Software
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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a Ambientes de Desarrollo de Software
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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a Mantenimiento del Software
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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a Cumplimiento Exitoso del Proyecto
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
La tortuga y la liebre: Desarrollo de software

Tema 1
Introducción a
lenguajes de
Depurar
programación
Revisar:
Definición de Hacer una Revisar
Algoritmos
nueva versión
Estructura de Depurar
un programa Depurar:
Encontrar y Revisar
remover errores

Codificar Objetivo
final

Prueba
Pensar,
Razonar, Codificar
reflexionar

Lenguaje de Programación
John Ledgard Trujillo Trejo
27 de septiembre de 2017
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