Anda di halaman 1dari 20

UniversidaddeLosAndes EscueladeSistemas ISBPR1

ISBPR1:Programacin1 ISBPR1: Programacin 1 UnidadIII:Desarrollodeprogramas Tema1

EscueladeIngenieradeSistemas DepartamentodeComputacin

DesarrollodeProgramas Pasosenlaresolucindeproblemasenelcomputador
1. Anlisisdelproblema
Objetivo/CaminoLgico HIPO(Entrada Proceso HIPO (Entrada Proceso Salida) DiseodelaEstructuradedatos

2. 3. 4. 5. 6.

Diseodelalgoritmo/DiagramadeFlujo Pruebadeescritorio Codificacin Depuracin Ejecucin

Dr.EladioDapena

UnidadIIITema1

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Anlisisdelproblema
Identificarycomprenderelproblemaquesepretenderesolverydeterminarelolosobjetivos. Notas, diagramas, casos de prueba, solucin manual, algoritmo informal y cualquier herramienta que permita una comprensin correcta del problema. Camino Lgico

Ejemplo
De terminar si un nmero es par.

Herramientas de anlisis
HIPO EntradaProcesoSalida (EPS) Descomposicin funcional

Dr.EladioDapena

UnidadIIITema1

DesarrollodeProgramas Herramientasdeanlisis
EntradaProcesoSalida (EPS)
HIPO Hierarchical Input, Process and Output, es una herramienta clsica para el anlisis de problemas, dividiendo el anlisis en tres etapas. 1. Entrada Identificar que datos se requieren para resolver el problema y su procedencia. El tipo, sus caractersticas, rangos de valores vlidos, etc. 2. Proceso Secuencia de operaciones necesarias para resolver el problema. Algoritmo informal. (Camino Lgico) 3. Salida Dar las respuestas que solucionan el problema, que pueden ir a un dispositivo de salida, ser almacenada o ser enviada.

Dr.EladioDapena

UnidadIIITema1

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Anlisisdelproblema
Ejemplo3.1:RealiceelanlisisdeEntrada Proceso Salida
Supongaqueunrobotrecibeunasecuenciadeordenesdemovimientodelasiguienteforma[d, ] donde: d:Representaunadistanciamedidaenmetros. :unaorientacinmedidaengradosrespectoalsistemadecoordenadas. Suponiendo que el robot se encuentra en la posicin (0,0) de un plano y recibe las ordenes: [10,90 ] [10,0 ] [20,270 ] [10,170] Indiquelaposicinfinaldelrobotluegodeejecutarloscomandos.

Dr.EladioDapena

UnidadIIITema1

DesarrollodeProgramas Anlisisdelproblema
Ejemplo3.1:Entrada Proceso Salida
ENTRADA PROCESO SALIDA

Dr.EladioDapena

UnidadIIITema1

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Un algoritmo es una secuencia de pasos ordenados sin ambigedad escritas es un lenguaje de uso comn (Castellano) que conducen a la resolucin de un problema. Preciso: El algoritmo debe indicar el orden de realizacin de cada paso. Definido: Si se sigue el algoritmo dos veces con los mismos datos deben obtenerse los mismos resultados. Finito: El algoritmo debe finalizar en algn momento. Es decir debe contar con un nmero finito de pasos.

Diagrama de Flujo
Conjunto de smbolos o diagrama que permite seguir la secuencia de ejecucin de un programa.

Dr.EladioDapena

UnidadIIITema1

DesarrollodeProgramas Algoritmo Computacional


Es la representacin textual de un algoritmo de manera que dicho texto se encuentre enmarcado en algunas normas tcnicas que faciliten su posterior transcripcin a un lenguaje de Programacin. Cuando se habla de algunas normas estamos diciendo que existen unos requisitos que si bien pueden ser que, violados, facilitan la posterior transcripcin del algoritmo a un Lenguaje de programacin de ser cumplidos a cabalidad.

Estructura de los Algoritmos


Encabezado
Corresponde a las dos primeras normas referidas a el identificador del algoritmo y declaraciones.

Cuerpo
Son el conjunto de sentencias que contiene el algoritmo enmarcadas en un inicio y un fin fin.

Dr.EladioDapena

UnidadIIITema1

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Primera Norma (Identificador del Algoritmo)
Siempre se le ha de colocar un nombre o identificador al algoritmo de manera que sea lo primero que se lea. lea Es conveniente acostumbrarse a que dicho nombre no supere los ocho caracteres y preferiblemente que sea altamente mnemnico o sea que su nombre haga una referencia aproximada a lo que el algoritmo realiza. Ejemplo:Identificadoronombredelalgoritmo NotacinenAlgoritmo DiagramadeFlujo
IDENTIFICACIN

//Algoritmo<Nombre> //Explicacin // Explicacin

Algoritmo : Nombre Explicacin

Dr.EladioDapena

UnidadIIITema1

DesarrollodeProgramas Algoritmo Computacional


Sengunda Norma (Definiciones y Declaraciones)
En esta norma se definen los nuevos tipos de datos si los hubiere y se realiza la declaracin de todas las variables a utilizar, tanto para los datos de entrada como para los datos generados a lo largo del algoritmo ariables tili ar algoritmo. Todas las variables a ser utilizadas deben ser declaradas. Las constantes deben ser definidas. Los objetivos de la declaracin son: Asociar un tipo de dato y un identificador nico a cada variable. q p p p q p Permite que el compilador sepa cuanto espacio se requiere para almacenar el valor de las variables y asignar las direccione de memoria donde almacenarlas.

Dr.EladioDapena

UnidadIIITema1

10

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Sengunda Norma Definiciones
Notacin en algoritmo //Definiciones Nuevo_Tipo { } Nombre del nuevo tipo;
Nuevo_Tipo

Notacin Diagrama de Flujo

Sengunda Norma Declaraciones


Notacin en algoritmo //Declaraciones Tipo < Lista de Variables>
Declaraciones Tipo<Listadevariables>

Notacin Diagrama de Flujo

Dr.EladioDapena

UnidadIIITema1

11

DesarrollodeProgramas Algoritmo Computacional


Sengunda Norma (Definiciones y Declaraciones)
Ejemplo //Definiciones Nuevo_Tipo estructura { Real x,y,z; }Punto3D;
Nuevo_Tipo { Realx,y,z; }Punto3D;

//Declaraciones Punto3D P1,P2,P3,P4; Real x,y,z; Entero i,j,k;


Punto3DP1,P2,P3,P4; Realx,y,z; Enteroi,j,k;

Dr.EladioDapena

UnidadIIITema1

12

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Sengunda Norma Constantes
Notacin en algoritmo //Constantes Constante <identificador> <valor> Ejemplo
Constante<Indentificador><valor>

Notacin Diagrama de Flujo

//Constantes Constante PI Constante Piezas Constante Mensaje 3.14159 1000 Error

ConstantePI3.14159 ConstantePiezas1000 ConstanteMensajeError

Dr.EladioDapena

UnidadIIITema1

13

DesarrollodeProgramas Algoritmo Computacional


Tercera Norma Cuerpo del algoritmo
Todo el cuerpo del algoritmo deber ir encerrado entre las palabras Inicio y Fin indicando en donde comienza y en d d termina el seudocdigo. i donde i l d di

Notacin en algoritmo

Notacin Diagrama de Flujo Inicio

Inicio

Fin

Fin

Dr.EladioDapena

UnidadIIITema1

14

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Salida )
Salida Cuando queremos que aparezca en pantalla u otro dispositivo de salida alguna informacin utilizamos la sentencia Escribir. Notacin en algoritmo Notacin Diagrama de Flujo

Escribir < Texto > , < Lista de variables >;

1. Salida de un mensaje # Escribir Prueba de salida ;


Prueba de Salida

Dr.EladioDapena

UnidadIIITema1

15

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Salida )
Salida 2. Salida de variables
x,y,z

# Escribir x,y,z;

3.

Salida de Mensaje y variables # Escribir El punto es : , x,y,z;


El punto es: x,y,z;

Dr.EladioDapena

UnidadIIITema1

16

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Entrada )
Entrada Cuando queremos realizar la entrada de un dato desde algn dispositivo de entrada para ser almacenado en una variable utilizamos la sentencia Leer. Notacin en algoritmo Notacin Diagrama de Flujo

# Leer <Lista de Variables> ;

Lista de Variables

Ejemplo # Leer x,y,x;


x,y,z

Dr.EladioDapena

UnidadIIITema1

17

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Entrada )
Entrada Ejemplo # Escribir Indique las coordenadas del punto x,y,z; # Leer x,y,x;
x,y,z
Indique las coordenadas del punto x,y,z

Monitor
Indiquelascoordenadasdelpuntox,y,z

Cursor

Dr.EladioDapena

UnidadIIITema1

18

Dr.EladioDapenaGonzalez

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Asignacin )
Asignacin La operacin de asignacin permite llevar o cargar datos a las variables, es decir modifica el contenido de la memoria. Notacin en algoritmo Notacin Diagrama de Flujo

# Variable = Expresin;
Variable=Expresin

Expresin puede ser: Una variable Unaconstante Unacombinacindeoperadoresyoperandos.

Dr.EladioDapena

UnidadIIITema1

19

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Asignacin )
Asignacin a) b) c) d) e) f) La sentencia de asignacin es una forma de dar valores a una variable. Al lado izquierdo del igual solo puede haber una variable. Al lado derecho del igual puede haber una constante, una variable o una expresin.

El computador siempre resuelve lo de la derecha del igual y su resultado lo almacena en la variable que est a la izquierda del igual. Cada vez que se le entra un nuevo valor a una variable, el valor anterior se pierde. La sentencia de asignacin modifica el contenido de la memoria.

Dr.EladioDapena

UnidadIIITema1

20

Dr.EladioDapenaGonzalez

10

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Cuarta Norma Secuencias ( Asignacin )
Asignacin Ejemplos

HT=40; SPH=20; S=HT*SPH; S=F;

HT=40; SPH=20; S=HT*SPH; S=F;

Dr.EladioDapena

UnidadIIITema1

21

DesarrollodeProgramas Algoritmo Computacional


Ejemplo 3.1
Algoritmo
//AlgoritmoPosicin_del_Robot //Clculodelaposicinfinal //DeclaracionesConstantesyVariables*/ Realxf,yf; 0Inicio 1 xf=10*cos(90)+10*cos(0)+20*cos(270)+10*cos(170); 2 yf=10*sin(90)+10*sin(0)+20*sin(270)+10*sin(170); 3 EscribirPosicinfinal,xf,yf; 4Fin

Notacin Diagrama de Flujo


Algoritmo:Posicin_del_Robot Clculodelaposicinfinal

Realxf,yf

INICIO

xf=10*cos(90)+10*cos(0)+20*cos(270)+10*cos(170) xf=10*cos(90) + 10*cos(0) + 20*cos(270) + 10*cos(170) yf=10*sin(90)+10*sin(0)+20*sin(270)+10*sin(170)

EscribirPosicinfinal,xf,yf

FIN
Dr.EladioDapena UnidadIIITema1 22

Dr.EladioDapenaGonzalez

11

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Ejercicios Normas 1, 2, 3, y 4
Realice anlisis, diseo de la estructura de datos, algoritmo y diagrama de flujo para los problemas: 1. Recibir como dato de entrada una distancia medida en metros y la convierta a: Centmetros y Kilmetros. Convertir una temperatura en grados centgrados a una temperatura en Grados kelvin. Dado un lado de un cuadrado obtenga: el rea, permetro y la longitud de la diagonal. Dada la base y altura de un triangulo calcule su rea. Dados los coeficientes de una ecuacin de segundo grado obtenga sus races reales.

2. 3. 4. 5.

Dr.EladioDapena

UnidadIIITema1

23

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
Muchas acciones dependen de la toma de decisiones. En este caso el lenguaje deber incluir algn mecanismo que permita evaluar condiciones y dependiendo de su resultado se ejecutar o no ciertas instrucciones. 1. Decisin Simple (Notacin Algortmica) Permite ejecutar instrucciones dependiendo del resultado de evaluar una expresin lgica (Verdadera o Falsa). Algoritmo Notacin Diagrama de Flujo # Si <expresin lgica> Entonces [ Instrucciones ] fin_si ( # )

si i
EXPRESIN

Instrucciones

no

Dr.EladioDapena

UnidadIIITema1

24

Dr.EladioDapenaGonzalez

12

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
1. Decisin Compuesta (Notacin Algortmica) Permite d alternativas para ejecutar i i dos l i j instrucciones d i dependiendo d el valor d l expresin l i Si di d de l l de la i lgica. la expresin es verdadera se ejecuta un grupo de instrucciones y si es falsa se ejecutara otro grupo de instrucciones de manera excluyente. Algoritmo # Si <expresin lgica> Entonces [ Instrucciones ] contrario [ Instrucciones ] fin_si ( # ) Notacin Diagrama de Flujo

Instrucciones

no
EXPRESIN

si

Instrucciones

Dr.EladioDapena

UnidadIIITema1

25

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
1. Decisin Anidadas (Notacin Algortmica) El grupo de instrucciones dentro de una estructura de decisin puede ser de cualquiera de los permitidos en el algoritmo, incluyendo otras estructuras de decisin. Algoritmo #Si <expresinlgica> #.1Si<expresinlgica >Entonces [Instrucciones] contrario [Instrucciones] Fin_si (#.1) [Instrucciones] contrario #.2 Si<expresinlgica>Entonces [Instrucciones] Fin_si (#.2) [Instrucciones] Fin_si (#)

Dr.EladioDapena

UnidadIIITema1

26

Dr.EladioDapenaGonzalez

13

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
1. Decisin Anidadas (Notacin Algortmica) Notacin Diagrama de Flujo
#Si <expresinlgica> #.1Si<expresinlgica > Entonces [Instrucciones] contrario [Instrucciones] Fin_si (#.1) Fi i (# 1) [Instrucciones] contrario #.2 Si<expresinlgica> Entonces [Instrucciones] Fin_si (#.2) [Instrucciones] Fin_si (#)

no
EXPRESIN

si

EXPRESIN

si

Instrucciones

Instrucciones

no
EXPRESIN

si

Instrucciones

no

Instrucciones

Instrucciones

Dr.EladioDapena

UnidadIIITema1

27

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
1. Decisin Mltiple (Notacin Algortmica) Algoritmo
si

DiagramadeFlujo

Caso<Expresin>

#Encasode<expresin> caso<valor1>: Instrucciones; salir; caso<valorn>: Instrucciones; salir; otrocaso: t Instrucciones; Fincaso(#)

Caso<Valor1>

Instrucciones

no

si

Caso<Valorn>

Instrucciones

no

OtroCaso O C

Instrucciones

Dr.EladioDapena

UnidadIIITema1

28

Dr.EladioDapenaGonzalez

14

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Quinta Norma (Decisiones)
Ejercicios 1. Dada una hora es notacin Militar en Horas Minutos y Segundos. Indicar la hora militar correspondiente 15 segundos despus. La empresa de autobuses Santa Brbara desea contratarlo a Ud. para que realice un programa que permita calcular el costo de los pasajes. Los boletos tienen un costo segn el kilometraje del recorrido. En funcin de la siguiente tabla:
Kilmetros Km500 500<Km800 Km>800 Costos 3000Bs/Km 2600Bs/Km 2000Bs/Km

2.

La empresa ofrece un descuento para la tercera edad (mayor de 60 aos), del 35% del costo del boleto, adicionalmente si el usuario compra el boleto de ida y vuelta se le descontar un 7,5%.

Dr.EladioDapena

UnidadIIITema1

29

DesarrollodeProgramas Algoritmo Computacional


Sexta Norma (Ciclos)
Cuando se requiere que un grupo de instrucciones se realice en forma repetitiva, es decir una o ms veces. veces 1. Repeticin indexada ( Repita Para ) Permite repetir un nmero de veces conocido un conjunto de instrucciones. Algoritmo # Repita Para <var>= < VI > , < VF>, < I > [ Instrucciones ] f.r.p. (#) Donde VI : Valor Inicial VF : Valor Final I : Incremento VI, VF, I son expresiones.
Var=VI,VF,I

Notacin Diagrama de Flujo

VarVF

SENTECIAS

Var>VF

Dr.EladioDapena

UnidadIIITema1

30

Dr.EladioDapenaGonzalez

15

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Sexta Norma (Ciclos)
2. Repeticin condicionada Repita Mientras Primero evala una expresin lgica y de ser verdadera realiza un conjunto de instrucciones, mientras el resultado de evaluar la expresin lgica sea verdadero continuar ejecutando el bloque de instrucciones. Puede ejecutarse cero ( 0 ) o ms veces. Algoritmo # Repita Mientras < Expresin Lgica > [ Instrucciones ]
Expresin Lgica

Notacin Diagrama de Flujo

si
INSTRUCCIONES

f.r.m. (#)
no

Dr.EladioDapena

UnidadIIITema1

31

DesarrollodeProgramas Algoritmo Computacional


Sexta Norma (Ciclos)
2. Repeticin condicionada Hacer Mientras Primero evala una expresin lgica y de ser verdadera realiza un conjunto de instrucciones, mientras el resultado de evaluar la expresin lgica sea verdadero continuar ejecutando el bloque de instrucciones. Puede ejecutarse cero ( 0 ) o ms veces. Algoritmo # Hacer
Hacer

Notacin Diagrama de Flujo

[ Instrucciones ]
Instrucciones

Mientras < Expresin Lgica >


Expresin Lgica

si

no

Dr.EladioDapena

UnidadIIITema1

32

Dr.EladioDapenaGonzalez

16

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Algoritmo Computacional


Sexta Norma (Ciclos)
Ejercicios 1. Suponga que contamos con un dispositivo de campo que emite una ficha diaria con la temperatura mxima y mnima registrada. Obtener las temperaturas promedio tanto mximo como mnimo para un mes de 30 das. Escriba un programa para que dada una serie de nmeros reales ninguno de ellos negativos, obtenga la sumatoria de los cuadrados de dichos nmeros y sus promedios. Dada una serie de calificaciones de una prueba de (0,20) escriba un programa que permita saber cantidad de aprobados, promedio aprobatorio, promedio general, mxima y mnima nota.

2.

3.

Dr.EladioDapena

UnidadIIITema1

33

DesarrollodeProgramas Pasosenlaresolucindeproblemasenelcomputador
Pruebadeescritorio(CorridaenFrio)
Lapruebadeescritorioconsisteenejecutarelalgoritmotalcomoloharauncomputador,conelobjeto dedeterminarelfuncionamientocorrectodelmismo. d d i lf i i d l i Parapruebasdeescritoriodelalgoritmoseseleccionandatosdedatosdeentradaadecuadoscuyos resultadosesperadossonconocidosy siguiendolospasosdelalgoritmosevalidanlosresultados.

Codificacin
Traducir el algoritmo producido en el paso anterior en un programa escrito en un lenguaje de programacin de alto nivel (programa fuente o cdigo fuente). En nuestro caso Lenguaje C. Los diferentes pasos de un algoritmo se expresan en los programas como instrucciones (trmino usado para los lenguajes de mquina y bajo nivel), sentencias o proposiciones (trminos usados para los lenguajes de alto nivel).

Dr.EladioDapena

UnidadIIITema1

34

Dr.EladioDapenaGonzalez

17

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas Pasosenlaresolucindeproblemasenelcomputador
Depuracin y Pruebas
El proceso de depuracin es realizado simultneamente con la codificacin y consiste en la correccin de los d l errores d sintaxis generados d de i i d durante l codificacin. la difi i Las pruebas de funcionamiento del programa consiste en utilizar como datos de entrada los seleccionados en la prueba de escritorio y verificar los resultados. Pruebas por etapas. La seleccin de los casos de prueba deben permitir explorar todos los pasos del programa. La L puesta en marcha se efecta una vez realizadas y superadas con it l t h f t li d d xito las pruebas b correspondientes.

Dr.EladioDapena

UnidadIIITema1

35

DesarrollodeProgramas Diagrama Anlisis Verificar Algoritmo

Codificacin

Depuracin

Pruebas

Ejecucin

UnidadIII

Dr.EladioDapenaGonzalez

36

Dr.EladioDapenaGonzalez

18

UniversidaddeLosAndes EscueladeSistemas ISBPR1

DesarrollodeProgramas
Funcionesde librera

Diseodel Algoritmo

Algoritmo

Programa FuenteC

Editor

Compilador

Cdigo objeto

Encadenador
Cdigo objeto

Documentodel Anlisis

Si

Erroresde Sintaxis

No

Cargador
Cdigo ejecutable

Anlisis EPS
Si Erroresde lgica Resultados

Ejecucin j

Problema

No

Solucindel problema
UnidadIII Dr.EladioDapenaGonzalez 37

DesarrollodeProgramas
Teorema de C. Bhm y G. Jacopini:
Todo programa propio se puede escribir utilizando nicamente las estructuras de control secuencial, condicional e iterativa. Un programa propio es aquel que: 1. Tiene un nico punto d entrada y d salida. de d de l d 2. Existen caminos que van desde la entrada hasta la salida que pasan por todas las partes del programa. 3. Todas las instrucciones son ejecutables y no existen lazos sin fin.

Programacin Estructurada
Enfoque disciplinado que permite escribir programas estructurados, utilizando las siguientes tres estructuras de control bien definidas: 1. Secuencial (asignacin, lectura, escritura) 2. Decisin o seleccin (simple, doble, mltiple) 3. Repeticin (repitamientras, hacermientras, repitapara) Los programas estructurados son fciles de probar, depurar y modificar. Programacin orientada a acciones donde la unidad bsica es la funcin.
Dr.EladioDapena UnidadIIITema1 38

Dr.EladioDapenaGonzalez

19

UniversidaddeLosAndes EscueladeSistemas ISBPR1

ISBPR1:Programacin1 ISBPR1: Programacin 1 UnidadIII:Desarrollodeprogramas FinalUnidadIII

EscueladeIngenieradeSistemas DepartamentodeComputacin

Dr.EladioDapenaGonzalez

20

Anda mungkin juga menyukai