Professional Documents
Culture Documents
Fundamentos de la Programacin
Montse Ibaez
Germn Gutirrez
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
1
Algoritmo vs Programa
Algoritmo (Definicin):
Conjunto ordenado de pasos o instrucciones que especifican
de precisa y sin ambigedades, la secuencia de operaciones
que se han de realizar para resolver un problema.
Caractersticas imprescindibles:
Preciso: indicando el orden en que ha de ejecutarse los
pasos.
Unvoco (i.e. sin ambigedades)
Finito:
El nmero de pasos necesarios debe ser finito
Para cada paso debe requerir un tiempo finito y unos
recursos finitos
Caractersticas deseada:
Legible y sencillo de modificar-ampliar
Eficiente
Algoritmo vs Programa
Programa: codificacin concreta, en cualquier lenguaje de
programacin de uno o varios algoritmos.
Algoritmo vs Programa:
Algoritmos. Codificaciones independientes del lenguaje
de programacin. Describen el conjunto de
operaciones que deben realizarse para resolver el
problema.
Programas: codificacin en un lenguaje concreto de
uno o varios algoritmos, donde cada uno de ellos
resuelve un parte de un problema global.
2
Algoritmo vs Programa
Ejemplo:
1. Pedir al usuario que entra 2 nmeros enteros
2. Esperar a que el usuario introduzca 2 nmeros enteros
3. Sumar estos dos nmeros
4. Imprimir el resultado a la pantalla y almacenar el
resultado en un archivo
Para el programa es necesario unas estructuras de datos
que junto con el correspondiente algoritmo (codificado
en un lenguaje de programacin) permiten resolver un
problema. As pues, un programa tendr:
DATOS (estructura de datos) e
Datos de entrada, datos de salida y datos auxiliares
o intermedios.
INSTRUCCIONES (que operan con los datos)
problema
Problema: Sumar 34 y 62
Programador PROGRAMACION
Programa: X = 34 + 62
Programa Traduccin de las
instrucciones y los datos
Compilador traductor TRADUCCION a cdigo maquina
Ejecucin del cdigo
Cdigo
maquina maquina cargado en la
3
Elementos fundamentales de un programa
programa
instrucciones datos
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
4
Pseudocdigo, organigrama y lenguaje
de programacin
El pseudocdigo y los organigramas (o diagramas de flujo)
son mtodos para representar algoritmos.
Pseudocdigo:
Permite la descripcin de algoritmos
Prximo al lenguaje natural
Permite la conversin a un programa de forma muy
sencilla
NO es un lenguaje de programacin (no puede ser
traducido a lenguaje mquina).
Permite centrarse en la lgica del programa y
estructuras de datos empleados
Prescinde de detalles concretos de sintaxis
Permite representar la estructuras de control bsicas
(que se estudian en los siguientes temas)
5
Pseudocdigo, organigrama y lenguaje
de programacin
Organigrama: smbolos bsicos
Instruccin
Falso
Pseudocdigo, organigrama y
lenguaje de programacin
Mostrar resultado
Fin
6
Pseudocdigo, organigrama y
lenguaje de programacin
Otros smbolos: BUCLES (se describirn en los siguientes temas)
WHILE (condicion) DO
BEGIN
instruccin 1
instruccin n
END
-------------------------------------------
REPEAT
instruccin 1
instruccin n
UNTIL (condicin)
Pseudocdigo, organigrama y
lenguaje de programacin
EJEMPLO
Problema: sumar todos los nmeros entre 1 y N
Solucin:
Entrada: un numero entero N
Salida: imprimir la suma de todos los nmeros de 1 a N
Proceso:
1. Establecer SUMA a 0
2. Establecer NUMERO a 1
3. Sumar NUMERO a SUMA
4. Incrementar NUMERO en 1 unidad
5. Si NUMERO =< SUMA volver al paso 3
6. En caso contrario, escribir SUMA y terminar el proceso
7
Pseudocdigo, organigrama y
lenguaje de programacin
BEGIN
suma 0
numero 0
WHILE (numero =< suma) DO
suma suma + numero
numero numero + 1
ENDWHILE
escribir suma
END
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada
1. Programacin modular
2. Diseo descendente
8
Lenguaje de programacin
Lenguaje de Programacin: lenguaje que permite
comunicar conceptos entre dos elementos (mquina-
humanos). Y como cualquier lenguaje consta de:
Alfabeto: caracteres alfanumricos (alfabticos +
numricos) y otros especiales como =, +, - , * , ; , : , { , etc.
Lxico: vocabulario
Palabras predefinidas (reservadas)
Resto palabras: reglas lxicas (identificadores vlidos)
Sintaxis: reglas gramaticales que determinan de manera
estricta como formar las instrucciones (sentencias).
Errores sintcticos: el programa no compila y/o no se
puede interpretar
Semntica: Significado tanto del lxico como de las
instrucciones. El programa, al ejecutarlo, produce el
resultado deseado.
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
9
Lenguaje de programacin
Tipos de lenguajes de programacin:
Nivel de abstraccin: lenguajes mquina, lenguaje
ensamblador, lenguajes de alto nivel
Mtodo de traduccin: compilado o interpretado
Paradigma (metodologa) de programacin:
Imperativa, orientada a objetos, programacin
lgica, funcional y concurrente.
Imperativa:
Los programas imperativos son un conjunto de
instrucciones que le indican al computador
cmo realizar una tarea.
Implementacin donde las instrucciones se
ejecutan de forma secuencial.
La implementacin de hardware de la mayora de computadores es
imperativa; prcticamente todo el hardware de los computadores est
diseado para ejecutar cdigo de mquina, que es nativo al
computador, escrito en una forma imperativa.
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
10
Ciclo de vida del SW
ANALSIS
DISEO Documentacin
IMPLEMENTACION
PRUEBA
MANTENIMIENTO
11
Ciclo de vida del SW
Implementacin :Traduccin de los algoritmos del diseo en un
programa escrito en un lenguaje de programacin.
Prueba: Comprobamos" que el software desarrollado trabaja
correctamente y, por tanto, que "est libre de errores.
No podemos asegurar que no tiene errores.
Mantenimiento:
Correccin de los errores descubiertos por los usuarios finales
que pasaron inadvertidos durante la fase de prueba.
Mejora del software aadiendo ms caractersticas o
modificando partes existentes que se adapten mejor a los
usuarios.
Documentacin.
Imprescindible.
No es una etapa independiente sino que est integrada en
todas las etapas del ciclo de vida del software.
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de
Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
Ejemplo de programa
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
12
Ejemplo
Ejercicio pseudocdigo
Calcular la media de un serie de nmeros enteros
positivos o cero.
Especificaciones:
Un nmero indefinido. Los que desee el usuario.
El usuario indicar el fin escribiendo -1
Mostrar en pantalla la media de todos los nmeros
introducidos.
Algoritmo: Secuencia de pasos
Estructura de Datos
Programa: secuencia de instrucciones
Ejemplo
Elementos disponibles:
Expresin (combinacin de datos y operadores)
Dato (entero, real, carcter, booleana)
dato_entero // Comentario: representa un dato de tipo
entero
Matemtica: dato_1 operador expresin
expresin operador dato_1
Operador: +, *, /, -, AND, etc.
dato_1 + dato_2 dato_1 > -1
Instrucciones sentencias
Asignacin: dato_c Expresin
dato_3 dato_2 * dato_1
Condicional:
Si se cumple una condicin (expresin booleana) se ejecuta una secuencia de
instrucciones.
Iterativa:
Se ejecuta de forma repetida y en un mismo orden un serie de K instrucciones si se
cumple una condicin. Cada vez que se ejecutan las K instrucciones se
comprueba si se cumple la condicin.
13
CONDICIONAL
IF (condicin) THEN
BEGIN
instruccin 1
instruccin n
END
ITERATIVA
WHILE (condicin) DO
BEGIN
instruccin 1
instruccin n
END
Ejemplos
Datos
Numero
N
Suma
Media
Leer un nmero
Calcular la media de los nmeros introducidos hasta el
momento.
14
Ejemplo
BEGIN
n 0
suma 0
leer numero
WHILE (numero > -1) DO
n n+1
suma suma + numero
media suma / n
leer numero
ENDWHILE
escribir n
escribir media
END
Fundamentos de la Programacin
1. Algoritmo vs. Programa
2. Pseudocdigo, Organigrama y Lenguaje de
Programacin
3. Lenguajes de programacin:
1. Alfabeto
2. Lxico
3. Sintaxis
4. Semntica
4. Tipos de lenguajes de programacin
5. Ciclo de vida de un producto Software
6. Principios de la programacin estructurada (Tema 5)
1. Programacin modular
2. Diseo descendente
15