You are on page 1of 15

Tema 2

Fundamentos de la Programacin

Montse Ibaez
Germn Gutirrez

Tema 2: Fundamentos de la Programacin 1

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

Tema 2: Fundamentos de la Programacin 2

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

Tema 2: Fundamentos de la Programacin 3

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.

Tema 2: Fundamentos de la Programacin 4

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)

Tema 2: Fundamentos de la Programacin 5

Ejecucin de un programa por la computadora

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

Usuario memoria principal


EJECUCION
en CPU
Accin

Tema 2: Fundamentos de la Programacin 6

3
Elementos fundamentales de un programa

programa

instrucciones datos

estructuras subrutinas comandos variables tipos


de control basicos entero
bucles ops aritmeticas caracter
condiciones ops logicas string
asignacion boolean
Lectura/escritura

Tema 2: Fundamentos de la Programacin 7

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

Tema 2: Fundamentos de la Programacin 8

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)

Tema 2: Fundamentos de la Programacin 9

Pseudocdigo, organigrama y lenguaje


de programacin
Organigrama: Representacin grfica de un algoritmo,
independiente del lenguaje de programacin.
No existen reglas sintcticas o gramaticales
Se describe el flujo u orden de las acciones que deben
ser ejecutadas.
Se emplean smbolos estandarizados, que permiten
indicar de forma precisa las operaciones/instrucciones
a realizar en el algoritmo
Empleado en muchos otros campos para mostrar los
procedimientos detallados que se deben seguir al realizar
una tarea.

Tema 2: Fundamentos de la Programacin 10

5
Pseudocdigo, organigrama y lenguaje
de programacin
Organigrama: smbolos bsicos

Terminal: principio o fin de programa

Flujo de control o direccin

Instruccin

Entrada o salida de Datos (leer, escribir)

Verdadero Punto de Decisin


Condicin

Falso

Tema 2: Fundamentos de la Programacin 11

Pseudocdigo, organigrama y
lenguaje de programacin

Problema: Sumar dos Inicio


nmeros (ledos por del
teclado) y mostrarlos (en
Leer dato 1
pantalla) Leer dato 2

Resultado dato 1 + dato 2

Mostrar resultado

Fin

Tema 2: Fundamentos de la Programacin 12

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)

Tema 2: Fundamentos de la Programacin 13

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

Tema 2: Fundamentos de la Programacin 14

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

Tema 2: Fundamentos de la Programacin 15

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

Tema 2: Fundamentos de la Programacin 16

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.

Tema 2: Fundamentos de la Programacin 17

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

Tema 2: Fundamentos de la Programacin 18

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.

Tema 2: Fundamentos de la Programacin 19

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

Tema 2: Fundamentos de la Programacin 20

10
Ciclo de vida del SW

Conjunto de actividades a realizar desde que se concibe la realizacin de un


producto software hasta la retirada de la explotacin del mismo.

ANALSIS

DISEO Documentacin

IMPLEMENTACION

PRUEBA

MANTENIMIENTO

Tema 2: Fundamentos de la Programacin 21

Ciclo de vida del SW

Anlisis: Su principal objetivo es establecer QU debe hacer el


software a desarrollar (y no COMO).
Recoger las ideas expuestas por el cliente, y
transformarlas en especificaciones vlidas para el
diseador.
Validar con el cliente que las especificaciones
conseguidas se ajustan a los deseos del cliente.
Diseo: Partiendo de la informacin recogida en el Anlisis el
diseador se establece CMO se llevan a cabo los objetivos
presentados en el Anlisis
El gasto de tiempo en diseo ser ahorro cuando se
escriba y depura su programa.

Tema 2: Fundamentos de la Programacin 22

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.

Tema 2: Fundamentos de la Programacin 23

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

Tema 2: Fundamentos de la Programacin 24

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

Tema 2: Fundamentos de la Programacin 25

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.

Tema 2: Fundamentos de la Programacin 26

13
CONDICIONAL
IF (condicin) THEN
BEGIN
instruccin 1

instruccin n
END

ITERATIVA
WHILE (condicin) DO
BEGIN
instruccin 1

instruccin n
END

Tema 2: Fundamentos de la Programacin 27

Ejemplos
Datos
Numero
N
Suma
Media
Leer un nmero
Calcular la media de los nmeros introducidos hasta el
momento.

Tema 2: Fundamentos de la Programacin 28

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

Tema 2: Fundamentos de la Programacin 29

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

Tema 2: Fundamentos de la Programacin 30

15

You might also like