Sunteți pe pagina 1din 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 Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI
Metodologa de la Programacin

Anlisis del
problema

ANLISIS DEL
PROBLEMA

DATOS DE DEFINICIN DATOS DE


ENTRADA PROBLEMA SALIDA
(Resultados)

Departamento de Sistemas Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI
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).

5
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI
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 DEFINICIN
PROBLEMA DATOS DE
ENTRADA PROBLEMA SALIDA

Problema 1

Dato 1. Dato 2. Salida 1. Salida 2.


Subproblema 1. 1 Subproblema 1.2
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI
Metodologa de la Programacin
Diseo de el/los INICIO

algoritmos
Diagrama de flujo Acumuladores a cero s=0

Contador a cero n=0

Introducir un nmero en a

a=0 NO
SI

Promedio p=s/n Contarlo n=n+1

Imprimir Acumulativo s=s+a


Promedio

Introducir un nmero
Departamento de Sistemas
FIN
Tema 2:Conceptos bsicos de
Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI
Metodologa de la Programacin
Diseo de el/los Diagrama de
algoritmos flujo
TERMINAL

ENTRADA-SALIDA

PROCESO

SI
DECISIN

NO

CONECTOR

COMENTARIOS

8
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 8
Superior de Ingeniera ICAI
Metodologa de la Programacin
Diseo de el/los Diagrama de
algoritmos flujo

SUBRUTINA

PANTALLA

IMPRESORA

9
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 9
Superior de Ingeniera ICAI
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 Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 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 /

La salida dePROLOG
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
Departamentoque indican las operacionesTema
de Sistemas elementales a ejecutar
2: Conceptos bsicos de
1 y la
Informticos Escuela Tcnica programacin
Superior de manera en que se encadenan.
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 Compilador PROGRAMA


FUENTE OBJETO

Departamento e Sistemas
d Informticos Tema 2: Conceptos bsicos de programacin
Escuela Tcnica Superior de 1
Ingeniera ICAI 2
Metodologa de la Programacin
PROGRAMA
FUENTE
Compilaci
n
Analizador
Fases de Morfolgico

un
Analizador
compilad Sintctico
or
Analizador
Semntico
Programa en
lenguaje
intermedio

Optimizador

Generador de
Cdigo

Programa Objeto

Departamento de Sistemas Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 3
Metodologa de la
Programacin
Compilacin y enlace
Archivos
Errores de Compilacin Archivos de Biblioteca
(lxicos, sintcticos y includos
semnticos)

Programa Programa Objeto


Compilador Enlazador
Fuente
(texto)
Otros programas objetos

Programa
Ejecutable

Departamento de Sistemas Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 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 Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 3
Metodologa de la
Programacin
Compilacin y
enlace +
Verificacin y Archivos
Errores de Compilacin Archivos de Biblioteca
depurado
(lxicos, sintcticos y includos
semnticos)

Programa Compilador Programa Objeto


Enlazador
Fuente
(texto)

Errores de ejecucin
Errores lgicos Programa
Ejecutable
Verificacin y
Resultados Depurado
Correctos
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 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:
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,...
...
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 3
Metodologa de la Programacin:
Fases Definicin del Divisin modular
Problema Problema del Problema
Anlisis Diseo (Pseudocdigo,
Datos de Entrada
Diagrama de Flujo)
Datos de Salida
DE, DS

Codificacin
Programa
Fuente
Documentacin Errores de
Programa fuente Compilacin Compilar y
Pseudocdigo Enlazar
Diagrama de Flujo Errores de Ejecucin Programa
Manual de Usuario Errores de Lgica Ejecutable
Especificacin de
los Datos
... Verificar y
Depurar
Departamento de Sistemas Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 1
Superior de Ingeniera ICAI 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
Departamento de Todo
Sistemasalgoritmo puede ser
Tema descrito utilizando
2: Conceptos bsicos de
1
solamente
Informticos Escuela Tcnica programacin
tresICAI
Superior de Ingeniera tipos de estructuras de control: secuencial, 3
alternativa, y repetitiva.
Programacin Estructurada
Secuencia
Todas las acciones se Accin 1
ejecutan sucesivamente,
una a continuacin de otra
sin posibilidad de Accin 2
bifurcaciones.
Una estructura
Sentencias alternativa
Alternativa
bifurca el flujo de un Accin 3
algoritmo segn se cumplan
una o varias condiciones.

Falso Cierto
Falso Cierto
Condicin Condicin

Accin Accin 1 Accin 2

ento de Sistemas Informticos


Departam Tema 2: Conceptos bsicos de
Escuela Tcnica Superior de
programacin
Ingeniera ICAI 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 Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI 1
Programacin Estructurada
PARA

Falsa
ndices

Cierta

Accin

HACER MIENTRAS
MIENTRAS

Falso
Accin
Condicin

Cierta Cierta
Condicin
Accin
Falsa

Departamento de Sistemas Tema 2: Conceptos bsicos de


Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI 1
Ejemplos
Disear un algoritmo que resuelva una ecuacin de
segundo grado:
Datos de entrada:
Coeficientes a,b,c
Datos de salida:
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
(opcin
Informticos Escuela Tcnica 2). programacin 2
Superior de Ingeniera ICAI 1
Ejemplo (opcin 1):
Ecuacin de Segundo Grado
Diagrama de flujo
INICIO
Entrada de
datos: a , b , c

NO
a!= 0
SI

SI DECISIN NO
b*b >4*a*c
No ecuacin
de 2 grado Datos ctos
Incorr
x1=(-b+sqrt(b*b-4*a*c))/2*a
e

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

Salida
FIN
x1, x2

D
epartamento de Sistemas Informticos
FIN Tema 2: Conceptos bsicos de programacin
Es 24
c uela Tcnica Superior de Ingeniera ICAI
Ejemplo (opcin 1):
Ecuacin de Segundo Grado Pseudocdigo
Algoritmo Ecuacin de segundo grado
{Clculo de una ecuacin de segundo grado}
Variables
a, b, c; /*Introducir las constantes con sus signos*/
x1, x2 /*Valores de Salida*/
Inicio
Escribir (Introduzca dato A:); /*Entrada de Datos*/
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 Tema 2: Conceptos bsicos de
Informticos Escuela Tcnica programacin 2
Superior de Ingeniera ICAI 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

S-ar putea să vă placă și