Sie sind auf Seite 1von 26

Tema 2

Conceptos bsicos de
programacin
Fundamentos de
Informtica

ndice

Metodologa de la
programacin

Programacin estructurada

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Metodologa de la Programacin

Pasos a seguir para el desarrollo de un


programa (fases):
Anlisis del problema.
Diseo de el/los algoritmos.
Codificacin del programa.
Compilacin.
Verificacin/depuracin.
Documentacin.

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

Metodologa de la Programacin
Anlisis

del

problema
ANLISIS DEL
PROBLEMA

DATOS DE
ENTRADA

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

DEFINICIN
PROBLEMA

Tema 2: Conceptos bsicos de


programacin

DATOS DE
SALIDA
(Resultados)

Metodologa de la Programacin
Anlisis

del problema

Ejemplo
Leer el radio de un crculo y calcular e imprimir su superficie
y la longitud de la circunferencia.

Anlisis
Entradas: Radio del crculo (variable RADIO).
Salidas: Superficie del crculo (variable AREA),
Circunferencia del crculo (variable CIRCUNFERENCIA).
Variables: RADIO, AREA, CIRCUNFERENCIA (tipo real).

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

5
2

Metodologa de la Programacin

Diseo de el/los algoritmos

Conjunto preescrito de operaciones (reglas o


instrucciones) bien definidas para resolver un
problema en un nmero finito de pasos
Un algoritmo: Finito (Resultado en el tiempo), Definido
(No puede ser ambiguo), Preciso (ejecucin paso a paso).
El diseo del algoritmo es bastante independiente
del lenguaje de programacin (s depende del
enfoque)
Definir paso a paso con detalle
Diseo descendente o modular:
Divisin del problema en subproblemas
DATOS DE
ENTRADA

DATOS DE
SALIDA

DEFINICIN
PROBLEMA
PROBLEMA
Problema 1

Dato 1.

Dato 2.

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Subproblema 1. 1

Salida 1.

Subproblema 1.2

Tema 2: Conceptos bsicos de


programacin

Salida 2.

Metodologa de la Programacin
Diseo de el/los
algoritmos

INICIO

Diagrama de flujo

Acumuladores a cero s=0

Contador a cero n=0

Introducir un nmero en a

a=0

SI

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

NO

Promedio p=s/n

Contarlo n=n+1

Imprimir
Promedio

Acumulativo s=s+a

FIN
Tema 2:

Conceptos bsicos de
programacin

Introducir un nmero
2

Metodologa de la Programacin
Diseo de el/los
algoritmos

Diagrama de
flujo
TERMINAL

ENTRADA-SALIDA

PROCESO

SI

DECISIN

NO

CONECTOR

COMENTARIOS

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

8
8

Metodologa de la Programacin
Diseo de el/los
algoritmos

Diagrama de
flujo

SUBRUTINA

PANTALLA

IMPRESORA

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

9
9

Metodologa de la Programacin
Diseo de el/los algoritmos
Pseudocdigo
Se trata de un lenguaje imitacin del de un ordenador.
No est estandarizado.
Cada programador tiene el propio.
Mezcla de lenguaje natural, smbolos, trminos y
caractersticas de varios lenguajes de programacin.
Ejemplo:
Definicin de variables_componentes.
Inicio
Escribir_texto (entrada de dato);
Leer_Dato(dato);
Proceso
salida = dato * 2;
Escribir_resultado_proceso (salida);
Fin

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

1
0

Metodologa de la Programacin
Codificacin del programa

Escribir el algoritmo en un lenguaje de programacin


Permite ser ledo y ejecutado por el ordenador.
Tipos de lenguajes:
De bajo nivel (dependen de la mquina sobre la
que se ejecuta):

Lenguaje Mquina (escritura en binario)


Ensambladores: (escritura simblica)

De alto nivel (no dependen de la mquina):

Imperativos:
Estructurados
Orientados a
FORTRAN
Objeto
C
i Java
PASCAL
i C++
Declarativos:
i Ada 95
LISP /
PROLOG
La salida de
la fase de codificacin son los programas fuente

(que todava no se pueden ejecutar directamente sobre el


ordenador)
Un programa se compone de un conjunto de instrucciones
Departamento
de Sistemas
2: Conceptos bsicos
de
que
indican las operacionesTema
elementales
a ejecutar
1 y la
Informticos Escuela Tcnica
programacin
en que se encadenan.
Superior de manera
Ingeniera ICAI
1

Metodologa de la Programacin
Compilacin y enlace

Salvo que el programa se escriba directamente


en lenguaje mquina (muy improbable)
siempre debe existir un traductor.
La fase de compilacin y enlace permite leer
el programa escrito en lenguaje de alto nivel
y traducirlo a lenguaje maquina.
Hay tres tipos de traductores:

Compiladores.
Interpretes.
Ensambladores
Traductor

PROGRAMA
FUENTE

Departamento
e Sistemas
d
Informticos
Escuela Tcnica Superior de
Ingeniera ICAI

Compilador

PROGRAMA
OBJETO

Tema 2: Conceptos bsicos de programacin

1
2

Metodologa de la Programacin
PROGRAMA
FUENTE

Compilaci
n

Analizador
Morfolgico

Fases de
un
compilad
or

Analizador
Sintctico
Analizador
Semntico
Programa en
lenguaje
intermedio

Optimizador
Generador de
Cdigo

Programa Objeto
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

1
3

Metodologa de la
Programacin
Compilacin y enlace
Errores de Compilacin
(lxicos, sintcticos y
semnticos)

Programa
Fuente
(texto)

Archivos
de Biblioteca

Archivos
includos

Compilador

Programa Objeto

Enlazador

Otros programas objetos


Programa
Ejecutable
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

1
3

Metodologa de la Programacin
Verificacin/depuracin

Errores en tiempo de ejecucin


divisin por cero, apertura de ficheros
inexistentes,...
Errores lgicos (los ms difciles de
detectar)
Resultados incorrectos
Optimizacin del algoritmo.

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

1
3

Metodologa de la
Compilacin y
Programacin

enlace +
Verificacin y
Errores de Compilacin
Archivos
depurado
(lxicos, sintcticos y

includos

semnticos)

Programa
Fuente
(texto)

Archivos
de Biblioteca

Compilador

Programa Objeto

Enlazador

Errores de ejecucin
Errores lgicos

Resultados
Correctos
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Programa
Ejecutable

Verificacin y
Depurado
Tema 2: Conceptos bsicos de
programacin

1
3

Metodologa de la Programacin
Documentacin

Se genera a lo largo de todas la fases


Debe permitir acceder al programa a una
persona distinta al programador.
Interna:
Cdigo de programa fuente
Comentarios
Externa:

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Especificacin de requisitos
Listado de programa fuente
Explicacin de los algoritmos (CLARO y
CONCISO)
Diagramas de flujo o pseudocdigo.
Especificacin de datos, formatos de
pantalla,...

...
Tema 2: Conceptos bsicos de
programacin

1
3

Metodologa de la Programacin:
Fases
Divisin modular
Definicin del

Problema

Anlisis

Problema
Datos de Entrada
Datos de Salida

Diseo

del Problema
(Pseudocdigo,
Diagrama de Flujo)
DE, DS

Codificacin
Documentacin
Programa fuente
Pseudocdigo
Diagrama de Flujo
Manual de Usuario
Especificacin de
los Datos
...
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Programa
Fuente
Errores de
Compilacin
Errores de Ejecucin
Errores de Lgica

Compilar y
Enlazar
Programa
Ejecutable

Verificar y
Depurar
Tema 2: Conceptos bsicos de
programacin

1
3

Programacin Estructurada

Un programa estructurado se basa en la aplicacin sistemtica de las


siguientes reglas:
Diseo modular: descomponer un mdulo complejo en otros
submdulos ms simples Diseo Descendente
Programar cada mdulo de manera lo ms independiente
posible
Razonamiento de lo general a lo particular.
Ventajas:

Mejora la legibilidad del programa


Facilita el entendimiento del programa
Simplifica el mantenimiento
Minimiza la complejidad
Cada mdulo puede ser programado por personas diferentes
Utilizacin de una metodologa de programacin disciplinada
Favorece el trabajo en equipo

Problema: No existe un mtodo estndar para dividir en


mdulos un programa

Teorema de la Programacin Estructurada


Todo
algoritmo puede ser
utilizando
solamente
Departamento de
Sistemas
Tema descrito
2: Conceptos bsicos
de
1
Informticos Escuela Tcnica
programacin
tresICAI
tipos de estructuras de control: secuencial,
Superior de Ingeniera
3
alternativa, y repetitiva.

Programacin Estructurada

Secuencia

Todas las acciones se


ejecutan sucesivamente,
una a continuacin de otra
sin posibilidad de
bifurcaciones.
Una estructura
alternativa
Sentencias
Alternativa
bifurca el flujo de un
algoritmo segn se cumplan
una o varias condiciones.

Falso

Cierto

Accin 1

Accin 2

Accin 3

Falso

Cierto
Condicin

Condicin
Accin

ento de Sistemas Informticos


Departam
Escuela Tcnica Superior de
programacin
Ingeniera ICAI

Accin 1

Accin 2

Tema 2: Conceptos bsicos de

20

Programacin Estructurada

Sentencias Repetitivas:

Una estructura de control repetitiva permite ejecutar


una o varias acciones un nmero de veces que
puede estar definido a priori o indefinido hasta que
se cumpla una determinada condicin.

Tipos de sentencias de control repetitivas:

PARA: El n de repeticiones se conoce antes de


iniciar el bucle.
MIENTRAS: Repite las acciones mientras la
condicin se cumple.
HACER MIENTRAS: Se realiza siempre una vez la
accin y luego se vuelve a realizar mientras la
condicin se cumpla
REPETIR HASTA: Repite las acciones mientras la
condicin sea falsa (no existe en C)

Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

2
1

Programacin Estructurada
PARA
Falsa

ndices
Cierta

Accin

HACER
MIENTRAS

MIENTRAS

Falso
Accin

Condicin
Cierta

Cierta

Condicin

Accin

Falsa
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

2
1

Ejemplos

Disear un algoritmo que resuelva una ecuacin de


segundo grado:
Datos de entrada:

Datos de salida:

Coeficientes a,b,c
Soluciones de la ecuacin si las hay

Nota:

El algoritmo nicamente resolver la


ecuacin en el caso de existir 2
soluciones diferentes (opcin 1)
En cualquier otro caso mostrara un
mensaje de error.

Disear el algoritmo para hacer una tortilla de


patata
Disear el algoritmo que resuelva la ecuacin de
segundo grado dando todas las posibles soluciones
Departamento de Sistemas
Tema 2: Conceptos bsicos de
2
Informticos Escuela
Tcnica
programacin
(opcin
2).

Superior de Ingeniera ICAI

Ejemplo (opcin 1):


Ecuacin de Segundo Grado
Diagrama de flujo

INICIO
Entrada de
datos: a , b , c
NO

a!= 0
SI
DECISIN

SI

NO

b*b >4*a*c

No ecuacin
de 2 grado
x1=(-b+sqrt(b*b-4*a*c))/2*a

FIN

Datos ctos
Incorr
e

x2=(-b-sqrt(b*b-4*a*c))/2*a

FIN

Salida
x1, x2

FIN

D
epartamento de Sistemas Informticos
Es
c uela Tcnica Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de programacin

24

Ejemplo (opcin 1):


Ecuacin de Segundo Grado Pseudocdigo
Algoritmo Ecuacin de segundo grado
{Clculo de una ecuacin de segundo grado}
Variables
/*Introducir las constantes con sus signos*/
a, b, c;
/*Valores de Salida*/
x1, x2
Inicio
/*Entrada de Datos*/
Escribir (Introduzca dato A:);
Leer (a);
Escribir (Introduzca dato B:);
Leer (b);
Escribir (Introduzca dato C:);
Leer (c);
Si (a != 0) entonces
Si (b2-4*a*c > 0) /*Condicin para evitar la raz cuadrada de
un n negativo*/
x1:=(-b+sqrt((b*b)-(4*a*c)))/(2*a);
x2:=(-b-sqrt((b*b)-(4*a*c)))/(2*a);
Escribir (Valor x1=,x1,y Valor x2=,x2);
sino /* Raz negativa */
Escribir (Datos Incorrectos);
fin_si
sino
Escribir ( No se trata de una ecuacin de 2 grado)
fin_si
Fin
Departamento de Sistemas
Informticos Escuela Tcnica
Superior de Ingeniera ICAI

Tema 2: Conceptos bsicos de


programacin

2
5

Escuela Tcnica Superior de


Ingeniera ICAI
Alberto Aguilera 25
28015 Madrid
Tel +34 91 542 28 00
Fax + 34 91 542 31 76
Iwww.icai.upcomillas.es

www.upcomillas.es

Das könnte Ihnen auch gefallen