Está en la página 1de 30

Tema 2: Metodologa de programacin

TEMA 2:
METODOLOGA DE PROGRAMACIN

Actividades de Introduccin ............................................................................ 2 1. ALGORITMOS ............................................................................................ 3 2. HERRAMIENTAS PARA EL DISEO DE ALGORITMOS ....................................... 4 2.1. DIAGRAMAS DE FLUJO.......................................................................... 4 2.1.1. Organigramas .............................................................................. 5 2.1.2. Ordinogramas .............................................................................. 7 2.2. PSEUDOCDIGO .................................................................................11 2.2. PSEUDOCDIGO .................................................................................12 3. INSTRUCCIONES (ACCIONES) ....................................................................14 3.1. INSTRUCCIONES DE DEFINICIN DE DATOS ..........................................14 3.2. INSTRUCCIONES PRIMITIVAS ...............................................................14 3.2.1. Instruccin de asignacin .............................................................14 3.2.2. Instruccin de entrada .................................................................15 3.2.3. Instruccin de salida....................................................................15 3.3. INSTRUCCIONES DE CONTROL .............................................................15 3.3.1. Instrucciones alternativas.............................................................15 3.3.2. Instrucciones repetitivas ..............................................................18 4. VARIABLES AUXILIARES ............................................................................22 4.1. CONTADORES .....................................................................................22 4.2. ACUMULADORES .................................................................................23 4.3. INTERRUPTORES .................................................................................25 5. DOCUMENTACIN.....................................................................................26 5.1. DOCUMENTACIN INTERNA..................................................................26 EJERCICIOS TEMA 2 .....................................................................................28

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

Actividades de Introduccin

1. Enumera los agentes participantes en la accin de escribir una receta, ya sean personas o cosas.

2. Escribe la receta para elaborar una tortilla francesa.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

1. ALGORITMOS
En trminos informticos, un algoritmo se puede definir como la descripcin abstracta de todas las acciones u operaciones que debe realizar un ordenador de forma clara y detallada, as como el orden en el que estas debern ejecutarse junto con la descripcin de todos aquellos datos que debern ser manipulados por dichas acciones y que nos conducen a la solucin del problema facilitando as su posterior traduccin al lenguaje de programacin correspondiente.

Veamos el siguiente ejemplo, de una secuencia de pasos que indica cmo lavarse el cabello y analicemos si es un algoritmo.

1. Mojar el cabello 2. Echar champ 3. Hacer espuma 4. Enjuagar 5. Repetir

El paso 5 produce ambigedad pues no dice desde dnde repetir, no dice cul es el prximo paso a la instruccin 5. Como conclusin, un algoritmo es un procedimiento para ejecutar una tarea particular, cuyas caractersticas son: identidad del prximo paso, punto de comienzo y puntos finales son claramente definidos, termina en un numero finito de pasos, y compuesto de primitivas (instrucciones) no ambiguas.

Un programa de computadora no es ms que un algoritmo expresado en un lenguaje que una computadora pueda entender.

El diseo de todo algoritmo debe reflejar las 3 partes de un programa: - entrada - proceso - salida (informacin dada al algoritmo) (clculos necesarios para encontrar la solucin del problema) (resultados finales de los clculos)

Es importante tener en cuenta que todo algoritmo debe ser totalmente independiente del lenguaje de programacin que ser utilizado, es decir, que el algoritmo diseado deber permitir su traduccin a cualquier lenguaje de programacin con independencia del ordenador en el que se vaya a ejecutar dicho programa.

La dificultad a la hora de conseguir una solucin a un problema concreto reside en la fase de diseo, no en la traduccin del algoritmo a un lenguaje de programacin determinado. Por ello, se debe dar mayor importancia y prestar ms atencin al desarrollo del algoritmo que a la propia codificacin, pues el conseguir un buen diseo nos facilitar totalmente su traduccin.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

Las 2 herramientas ms utilizadas comnmente para disear algoritmos son los diagramas de flujo y el pseudocdigo.

Ejercicio: Para cada una de las siguientes situaciones de la vida real, decir si puede o no resolverse con un algoritmo, en caso afirmativo, disear el algoritmo: a) Llamar por telfono b) Poner msica en la radio

Ejercicio: El mtodo que Ud. aprendi en la educacin bsica para realizar la divisin es un algoritmo? por qu?

2. HERRAMIENTAS PARA EL DISEO DE ALGORITMOS

2.1. DIAGRAMAS DE FLUJO


Un diagrama de flujo es una representacin grfica de un algoritmo. Se trata de una representacin grfica que, mediante el uso de smbolos estndar conectados mediante lneas de flujo, muestran la secuencia lgica de las acciones que debe realizar un ordenador, as como el flujo de datos en la resolucin de un problema.

Todo diagrama de flujo debe cumplir unas caractersticas de diseo, que son: a) Debe ser independiente del lenguaje de programacin elegido para su posterior codificacin. b) Los smbolos utilizados en los diagrama de flujo han sido normalizados por las organizaciones ANSI (American National Standard Institute) y por la ISO (International documentacin. c) Debe ser intuitivo, es decir, lo ms claro y sencillo posible para facilitar su entendimiento y comprensin por parte del personal informtico. Standard Organization), para facilitar el intercambio de

Sin embargo, los diagramas de flujo tienen una limitacin grande: son difciles de actualizar y complejos de leer si ocupan varias pginas.

Los diagramas de flujo se pueden clasificar en 2 grandes grupos: Organigramas (Anlisis) Ordinogramas (Diseo)

La principal diferencia entre ambos es que pertenecen a distintas fases o etapas de la resolucin de un programa. Mientras que los organigramas corresponden a la fase de anlisis, los ordinogramas corresponden a la fase de diseo.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

2.1.1. Organigramas Tambin denominados diagramas de flujo de sistemas o diagramas de flujo de configuracin. Son representaciones grficas del flujo de informacin (datos) entre los perifricos o soportes fsicos (de E/S) que maneja un programa.

Todo organigrama debe reflejar: a) Los distintos mdulos en los que se divide la solucin del problema, as como el nombre de cada uno de ellos. b) Las entradas y salidas de cada mdulo indicando los soportes que sern utilizados para el almacenamiento tanto de los datos pendientes de elaborar o procesar como de los resultados obtenidos.

Los organigramas deben respetar las siguientes reglas de representacin: a) En la parte central del diseo debe figurar el smbolo de proceso. b) En la parte superior del diseo y siempre por encima del smbolo de proceso deben figurar los soportes de entrada. c) En la parte inferior del diseo y siempre por debajo del smbolo de proceso deben figurar los soportes de salida. d) A la izquierda y derecha del diseo, y por tanto a ambos lados del smbolo de proceso, figurarn los soportes que son tanto de entrada como de salida.

Perifricos de Entrada

Perifricos de E/S

PROCESO

Perifricos de E/S

Perifricos de Salida

La simbologa utilizada en la construccin de organigramas es la siguiente: a) Smbolos de soporte de informacin o dispositivos fsicos:

Smbolo

Denominacin Teclado

Tipo de dispositivo Entrada

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

Impresora

Salida

Pantalla

Salida

Disquette

Entrada/Salida

Disco

Entrada/Salida

b) Smbolos de Proceso:

hjhjhj

Proceso: Se utiliza siempre que los datos son manipulados o procesados

c)

Lneas de flujo de datos:

Flujo de datos o informacin

Ejemplo 1: Dibujar el organigrama de una aplicacin cuyo objetivo es la emisin de facturas a partir de los datos de compra introducidos por teclado y los datos de los clientes almacenados en un fichero soportado en disco. La factura se presenta en pantalla y una vez dada la conformidad se lista a travs de la impresora.

Solucin:
Datos de compra

Datos Cliente

Emisin de facturas

Factura

Facturas conforme

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

2.1.2. Ordinogramas Tambin denominados diagramas de flujo de programas. Son representaciones grficas que muestran la secuencia lgica (el orden) y detallada de las operaciones que se van a realizar en la ejecucin de un programa.

El diseo de todo ordinograma debe reflejar:

a) Un principio que marca el comienzo de ejecucin del programa y que viene determinado por la palabra INICIO. b) La secuencia de operaciones, lo ms detallada posible y siguiendo siempre el ordenen el que se debern ejecutar (de arriba abajo y de izquierda a derecha). c) Un fin que marca la finalizacin de ejecucin del programa y que viene determinado por la palabra FIN.

INICIO

ENTRA DA

PROCESO

SALIDA

FIN

La simbologa utilizada en la construccin de programas es la siguiente:

SMBOLO

FUNCIN
Terminal: marca el INICIO, FIN, o una parada necesaria realizada en la ejecucin del programa Entrada/Salida: utilizada para mostrar la introduccin de datos desde un perifrico a la memoria del ordenador y la salida de resultados del ordenador a un perifrico. Proceso: utilizado para mostrar cualquier tipo de operacin durante el proceso de elaboracin de los datos depositados en la memoria. Decisin: indica operaciones lgicas o de comparacin entre datos normalmente dos- y en funcin del resultado de la misma determina cual de los distintos caminos alternativos del programa se debe seguir.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

Decisin mltiple con n salidas: indica el camino que se puede seguir entre varias posibilidades segn el resultado de la operacin lgica o comparacin establecida. Conector: este smbolo es utilizado para el reagrupamiento de lneas de flujo

Flechas: indicadoras de la direccin del flujo de datos

Lnea conectora: sirve de unin entre 2 smbolos Conector: conexin entre 2 puntos del organigrama situado en pginas diferentes. Llamada a subrutina: subrutina es un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa, al terminar, al programa principal. Comentarios: Se pueden dibujar a cualquier lado del smbolo

Las reglas que hay que seguir para la confeccin de un ordinograma son las siguientes: a) Todos los smbolos utilizados en el diseo deben estar conectados por medio de lneas de conexin o lneas de flujo. b) El diseo debe realizarse con la mxima claridad: de arriba-abajo y de izquierdaderecha. c) Se evitarn los cruces entre las lneas de flujo.

d) El ordinograma debe guardar la mayor simetra posible. e) A un smbolo de proceso pueden llegarle varias lneas de conexin o flujo, pero de l solo puede salir una.

PROCESO

f)

A un smbolo de decisin pueden llegarle varias lneas de flujo de datos, pero de l solo puede salir una de entre las posibilidades existentes.

g) A un smbolo de INICIO no llega ninguna lnea de conexin y de l solo puede partir una.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

INICIO

h) A un smbolo final pueden llegar varias lneas de conexin, pero de l no puede partir ninguna.

FIN

i)

No hacer uso excesivo de comentarios.

Ejemplo 2: Dibujar un ordinograma para expresar un algoritmo que lea el valor correspondiente a una distancia en millas marinas y la escriba expresada en metros (1milla=1852 metros)

Solucin:
INICIO

Escribir Intro distancia en millas:

Leer Dmillas

Dmetros=Dmillas*1852

Escribir El resultado es:, Dmetros

FIN

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

Tema 2: Metodologa de programacin

Ejemplo 3: Dibujar un ordinograma para expresar un algoritmo que lea 2 valores numricos X e Y, y determine cual de ellos es mayor.

Solucin:
INICIO

Escribir Intro 2 numeros:

Leer X, Y

SI X>Y?

NO

SI Escribir El n mayor es: , X X=Y?

NO

Escribir Son iguales

Escribir El n mayor es: , Y

FIN

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

10

Tema 2: Metodologa de programacin

Ejemplo 4: Dibujar un ordinograma para expresar un algoritmo que escriba por pantalla los nmeros de 1 al 100.

Solucin:

INICIO

Num=1

Escribir Num

Num = Num + 1

SI Num<101?

NO

FIN

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

11

Tema 2: Metodologa de programacin

2.2. PSEUDOCDIGO
Ya hemos visto que los diagramas de flujo son una representacin grfica de un algoritmo. El pseudocdigo es la representacin de un algoritmo a travs del lenguaje.

Es una notacin mediante la cual podemos escribir la solucin de un problema en forma de algoritmo utilizando palabras y smbolos del lenguaje natural sujeto a unas determinadas reglas.

Se puede considerar como paso intermedio entre la solucin de un problema y su codificacin en un lenguaje.

El pseudocdigo se concibi para superar las dos principales desventajas del diagrama de flujo, que es lento de crear y difcil de modificar sin un nuevo dibujo.

Se caracteriza por: a) No puede ser ejecutado directamente por un ordenador, por lo que tampoco es considerado como un lenguaje de programacin propiamente dicho. b) Ser una representacin sencilla de aprender y utilizar. c) Permite el diseo y desarrollo de algoritmos totalmente independientes del lenguaje de programacin que se vaya a utilizar en la fase de codificacin. d) Facilita la realizacin de futuras correcciones, gracias a que no es un sistema de representacin rgido.

La escritura de un algoritmo a travs de pseudocdigo exige usar identacin, o lo que es lo mismo, sangrado de texto, lo que facilita una lectura y comprensin rpida del algoritmo.

Toda notacin pseudocodificada debe permitir la descripcin de: Instrucciones primitivas (entrada, salida y asignacin) Instrucciones de control de flujo de informacin. Instrucciones compuestas (subprogramas) Instrucciones para la descripcin de todos aquellos elementos de trabajo y estructuras de datos que se vayan a manipular en el programa: variables, constantes, ficheros,... Comentarios aclaratorios acercan de lo que realizan algunas instrucciones. En pseudocdigo se indican anteponiendo a la frase comentario lo siguiente: **

Todo algoritmo representado en notacin pseudocodificada deber reflejar las siguientes partes: CABECERA: bloque informativo donde quedan reflejados el nombre del programa y el nombre del mdulo que vamos a desarrollar. En el caso de programas sencillos solo vamos a hacer uso de un mdulo: el mdulo principal. Se llegar a la solucin del problema siguiendo una a una las instrucciones de este mdulo principal.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

12

Tema 2: Metodologa de programacin

CUERPO: Se denomina as al resto del diseo, el cual queda dividido en otros 2 bloques: o Bloque de datos: lugar donde debern quedar descritos todos los elementos de trabajo necesarios en la ejecucin del programa,

entendiendo como tal constantes, variables. o Bloque de acciones: zona donde debern describirse con la mxima claridad y detalle todas aquellas acciones que el ordenador deber realizar durante la ejecucin del programa cuando estas sean convertidas en instrucciones ejecutables.

PROGRAMA: Nombre cabecera MODULO: Nombre (si solo hay uno Principal)

INICIO DATOS: CONSTANTES: ............. ............. Bloque de datos VARIABLES: ............. ............. cuerpo ALGORITMO: ......................... ......................... ...... acciones ..... ......................... ......................... FIN

Bloque de acciones

Ejemplo 5: Escribir en pseudocdigo un programa que calcule cuntos euros son una determinada cifra en pesetas. Solucin:
PROGRAMA: Euroconversor MODULO: Principal INICIO CONSTANTES euro=166.39 VARIABLES resultado pesetas ALGORITMO: Escribir (Introduzca una cantidad en pesetas) Leer (pesetas) resultado=pesetas*euro Escribir (El resultado es: , resultado) FIN entero real

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

13

Tema 2: Metodologa de programacin

3. INSTRUCCIONES (ACCIONES)
El proceso de diseo del algoritmo, o posteriormente de codificacin del programa, consiste en definir las acciones o instrucciones que resolver el problema.

3.1. INSTRUCCIONES DE DEFINICIN DE DATOS


Son aquellas instrucciones utilizadas para informar al procesador del espacio que debe reservar en memoria con la finalidad de almacenar un dato.

La definicin consiste en indicar un identificador a travs del cual haremos referencia al dato y un tipo que informe al procesador de las caractersticas y espacio que deber reservar en memoria.

En el ejemplo anterior:

pesetas resultado

entero real

3.2. INSTRUCCIONES PRIMITIVAS


3.2.1. Instruccin de asignacin Se utiliza para asignar valores a variables, lo que es igual, para cambiar el valor almacenado en la posicin de memoria de una variable (previamente definida).

El formato de la instruccin de asignacin es:


Nombre_variable = expresin o valor

Por ejemplo, A=5 significa que a la variable A se le asigna el valor 5

La operacin de asignacin es destructiva ya que al almacenarse un nuevo valor en una variable se borra el que tena antes:

X=5 A=4 X=A+4

** X almacena el valor 5 ** A almacena el valor 4 ** X toma el nuevo valor 4+6 (10)

Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignacin. As X=X+1 tiene sentido. Se determina el valor actual de la variable X, se le suma 1 y a continuacin el resultado se asigna a la variable X.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

14

Tema 2: Metodologa de programacin

El tipo de la variable sobre la que se va a realzar la asignacin deber coincidir con el tipo de dato del valor obtenido por la expresin que aparece a la derecha de la instruccin de asignacin. Ejercicio: Cules son los valores de A, B y C despus de la ejecucin de las siguientes instrucciones correspondientes aun trozo de programa?

A=3 B=4 C=A+2*B C=C+B B=C-A A=B*C

3.2.2. Instruccin de entrada Instruccin encargada de recoger el dato de un perifrico o dispositivo de entrada (teclado, disco) y seguidamente almacenarlo en memoria en una variable previamente definida, para la cual se ha reservado suficiente espacio.

El formato de la instruccin es:


Leer (lista_variables)

3.2.3. Instruccin de salida Instruccin encargada de recoger los datos procedentes de variables y depositarlos en un perifrico o dispositivo de salida. Tambin se pueden escribir mensajes (cadenas de caracteres encerradas entre dobles comillas) en pantalla. Formato:

Escribir (Lista_variables)

Ejercicio: Escribir un algoritmo en pseudocdigo que sume 2 nmeros dados Ejercicio: Escribir un algoritmo en pseudocdigo que lea una temperatura en grados Fahrenheit y escriba su equivalente en centgrados, sabiendo que 1 C = (F 32)*(5/9)

3.3. INSTRUCCIONES DE CONTROL


Son utilizadas para controlar la secuencia de ejecucin de un programa, as como determinados bloques de instrucciones.

3.3.1. Instrucciones alternativas Controlan la ejecucin o la no ejecucin de 1 o ms instrucciones en funcin de que se cumpla o no una condicin previamente establecida.

Alternativa simple:

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

15

Tema 2: Metodologa de programacin

SI (condicion) acciones FIN_SI

Se evala la condicin y si es verdadera ejecuta las acciones que se indican en el cuerpo de la instruccin alternativa. Si es falsa se ejecutar la siguiente instruccin a FIN_SI.

Ejemplo 6: Algoritmo que dado un nmero devuelve su valor absoluto.

PROGRAMA: Absoluto MODULO:Principal INICIO DATOS VARIABLES Num ALGORITMO Escribir (Introduce un numero:) Leer (Num) Num=Num*(-1) FIN_SI Escribir (El valor absoluto del numero introducido es: , Num) FIN SI (Num<0) entero

Alternativa Doble:

SI (condicion) Bloque_Acciones1 SINO Bloque_Acciones2 FIN_SI

El ordenador evala la condicin. Si es verdadera ejecuta el bloque de acciones 1 y en caso de ser falsa el bloque de acciones 2. Una vez ejecutado uno de los 2 bloques se contina por la siguiente instruccin a FIN_SI.

Ejemplo 7: Algoritmo que lee 2 valores numricos y determina cual de ellos es mayor
PROGRAMA: Mayor_de_dos MODULO: Principal INICIO DATOS: VARIABLES X Y ALGORITMO Escribir (Introduzca un numero:) Leer (X) entero entero

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

16

Tema 2: Metodologa de programacin

Escribir(Introduzca otro numero: ) Leer (Y) SI (X > Y) Escribir (el mayor es :, X) SINO SI (X==Y) Escribir (Son iguales) SINO Escribir (El mayor es: , Y) FIN_SI FIN_SI FIN

Alternativa mltiple:
SEGN VALOR (expresin o variable): Valor1: Bloque_acciones1 Valor2: Bloque_Acciones2 ..................................... ValorN: Bloque_accionesN Otro: Bloque_accionesO FIN_SEGUN **opcional

La expresin se evala y en funcin de su valor se realiza el bloque de acciones correspondiente. En el caso en que no sea ninguno de los valores indicados se ejecutar el bloque de acciones que indica la etiqueta Otro, aunque esa parte es opcional.

Ejemplo 8: Algoritmo que dado una letra nos indica la calificacin correspondiente a dicha letra.
PROGRAMA: Calificaciones MODULO: Principal INICIO DATOS: VARIABLES Letra ALGORITMO Escribir (Introduzca una letra: ) Leer (Letra) SEGN VALOR (Letra): I: Escribir (Insuficiente) s: Escribir (suficiente) B: Escribir (Bien) N: Escribir (Notable) S: Escribir (Sobresaliente) Otro: Escribir (No existe calificacin para esa letra) FIN_SEGN FIN carcter

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

17

Tema 2: Metodologa de programacin

3.3.2. Instrucciones repetitivas Hacen posible que un grupo de acciones (instrucciones) se ejecuten ms de 1 vez de forma consecutiva. Este tipo de instrucciones tambin reciben el nombre de bucles o ciclos.

Todo bucle se caracteriza por estar constituido por 3 partes: A. Condicin o expresin condicional B. Cuerpo del bucle: instrucciones que se deben ejecutar en caso de ser verdadera la expresin condicional C. Salda o final del bucle

Mientras:
MIENTRAS (condicion) Acciones FIN_MIENTRAS

Permite repetir un bloque de acciones un nmero de 0 a n veces. Primero se evala la condicin, si es verdadera se ejecutan las acciones del interior del bucle y se vuelve a evaluar la condicin. As se har hasta que la condicin sea falsa, en cuyo caso la ejecucin continuar por la siguiente instruccin a FIN_MIENTRAS.

FALSE condicion

TRUE

Acciones

Siguiente instruccin a FIN_MIENTRAS

Fijaos en que con la instruccin mientras es posible que las acciones del interior del bucle no se realicen ninguna vez, en caso de que la primera vez que se evaluase la condicin fuera falsa.

Ejemplo 9: Algoritmo que suma todos aquellos nmeros ledos de teclado hasta que se introduzca uno negativo.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

18

Tema 2: Metodologa de programacin

PROGRAMA: Suma_numeros MODULO: Principal INICIO DATOS VARIABLES Suma Num ALGORITMO Suma=0 Escribir (Introduce un numero:) Leer (Num) MIENTRAS (Num>=0) Suma=Suma+Num Escribir (Introduce un numero:) Leer (Num) FIN_MIENTRAS Escribir (La suma de todos los numeros introducidos es: , Suma) FIN entero entero

Es muy importante que la variable que aparece en la condicin de un bucle actualice su valor en el interior de dicho bucle, ya que en caso de no ser as nos podra llevar a una situacin de bucle infinito. Pensar que pasara si entro en un bucle porque la condicin la primera vez es verdadera y luego dentro del cuerpo del bucle no se actualiza el valor de la variable. En ese caso siempre que evalusemos la condicin sera verdadera y nunca saldramos de ah.

Repetir....mientras:
REPETIR Acciones MIENTRAS (condicion)

Permite repetir un bloque de acciones de 1 a n veces. En este caso la condicin se encuentra al final del bucle, por tanto el bloque de acciones del interior se ejecuta como mnimo una vez.

Acciones

TRUE condicion

FALSE

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

19

Tema 2: Metodologa de programacin

Ejemplo 10: Algoritmo que, dado un n entero positivo, escriba en asteriscos como indique dicho nmero.

pantalla tantos

PROGRAMA: Asteriscos MODULO: Principal INICIO DATOS: VARIABLES Num Ast=0 ALGORITMO REPETIR Escribir (Introduce un nmero:) Leer (Num) MIENTRAS (Num<=0) REPETIR Escribir (*) Ast=Ast+1 MIENTRAS (Ast<Num) FIN entero entero **n de asteriscos ya dibujados

Ejemplo 11: Algoritmo que escribe la suma de una secuencia de nmeros ledos de teclado, finalizando la entrada de datos al evaluar la respuesta dada a un mensaje que diga Continuar? (S/N).
PROGRAMA: Suma_enteros MODULO: Principal INICIO DATOS: VARIABLES Suma Num Resp ALGORITMO Suma=0 REPETIR Escribir (Introduce un nmero:) Leer (Num) Suma=Suma+Num Escribir (Continuar? (S/N)) Leer (Resp) MIENTRAS (Resp==S) Escribir (La suma de numeros es: , Suma) FIN entero entero caracter

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

20

Tema 2: Metodologa de programacin

Para:

PARA variable_contador de Valorinicial a Valorfinal con <Inc o Dec = n> Acciones FIN_PARA

variable_contador: variable contador del bucle Valorinicial: valor inicial que toma la variable contador Valorfinal: valor final que se toma como referencia para la finalizacin del bucle n: cantidad en que se incrementa o decrementa la variable contador al final de cada vuelta por el bucle. Por defecto su valor suele ser 1.

Esta instruccin se utiliza cuando el nmero de veces que se repetir el bloque de acciones se conoce de antemano.

La instruccin PARA comienza con un valor inicial de la variable contador y las acciones especificadas se ejecutan hasta que la variable contador sobrepase el valor final.

Ejemplo 12: Algoritmo que lee 5 valores numricos y calcula su producto.


PROGRAMA: P^roducto MODULO: Principal INICIO DATOS: VARIABLES Prod Num Cont ALGORITMO Prod=1 PARA Cont de 1 a 5 con Inc=1 Escribir (Introduce un nmero:) Leer (Num) Prod=Prod*Num FIN_PARA Escribir (El producto de los 5 numeros es: , Prod) FIN entero entero entero

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

21

Tema 2: Metodologa de programacin

Ejemplo 13: Algoritmo que escribe la suma de una serie de nmeros ledos por teclado, dado tambin el nmero de valores que hay que leer.

PROGRAMA: Suma_n MODULO: Principal INICIO DATOS: VARIABLES Suma Num Cont Cantidad ALGORITMO Suma=0 Escribir (Introduzca la cantidad de nmeros que va a querer sumar:) Leer (Cantidad) PARA Cont de 1 a Cantidad con Inc=1 Escribir (Introduce un nmero:) Leer (Num) Suma=Suma+Num FIN_PARA Escribir (La suma de los numeros es: , Suma) entero entero entero entero

Tanto las instrucciones alternativas como repetitivas se pueden anidar, es decir, su bloque de acciones puede estar compuesto a su vez por instrucciones repetitivas o alternativas.

4. VARIABLES AUXILIARES

4.1. CONTADORES
Un contador es una variable destinada a contener un valor que se ir incrementando o decrementando en una cantidad fija y constante.

Contador = Contador - Decremento Valor constante Contador = Contador + Incremento

Suelen usarse para el control de procesos repetitivos. El contador va a contar el numero de veces que se ha ejecutado el bloque de acciones de una instruccin repetitiva.

Todo contador debe tomar una valor inicial antes de ser utilizado.

Ejemplo 14: Algoritmo que escriba en orden decreciente los 100 primeros nmeros pares.
PROGRAMA: Numeros_pares MODULO: Principal

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

22

Tema 2: Metodologa de programacin

INICIO DATOS: VARIABLES C ALGORITMO C=200 REPETIR Escribir (C) C=C-2 MIENTRAS (C>0) FIN ** C es el contador **valor inicial entero

Ejemplo 15: Algoritmo que lee M nmeros y determina cuales son pares y positivos
PROGRAMA: Positivo_Par MODULO: Principal INICIO DATOS: VARIABLES M Num Cont ALGORITMO Cont=0 Escribir (Introduzca la cantidad de enteros que va a escribir: ) Leer (M) REPETIR Escribir (Introduce un nmero:) Leer (Num) SI (Num MOD 2 ==0) AND (Num>0) Escribir (Num, sS positivo y par) FIN_SI Cont=Cont+1 MIENTRAS (Cont<M) FIN entero entero entero

4.2. ACUMULADORES
Es una variable destinada a contener cantidades variables provenientes de los resultados obtenidos en operaciones aritmticas (para realizar sumatorios o productos). Nos permite obtener el total acumulado de dichas cantidades.

En este caso, los acumuladores no tienen como objetivo controlar procesos repetitivos.

Acumulador = Acumulador - Decremento Variable Acumulador = Acumulador + Incremento

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

23

Tema 2: Metodologa de programacin

Tambin deben tomar un valor inicial:

en el caso en que se pretenda obtener el total de una suma, se inicializa a 0. En el caso de que se quiera obtener el total de un producto se inicializa a 1.

Ejemplo 16: Algoritmo que suma los 10 primeros nmeros pares (2, 4, 6, ...., 18, 20)
PROGRAMA: Suma_10pares MODULO: Principal INICIO DATOS: VARIABLES Cont Suma ALGORITMO: Suma=0 Cont=0 MIENTRAS (Cont<20) Cont=Cont+2 Suma=Suma+Cont FIN_MIENTRAS Escribir (La suma de los 10 primeros pares es: , Suma) FIN entero entero

Ejemplo 17: Algoritmo que multiplica los 10 primeros nmeros impares


PROGRAMA: Producto_10impares MODULO: Principal INICIO DATOS: VARIABLES Cont Prod ALGORITMO: Prod=1 Cont=-1 MIENTRAS (Cont<20) Cont=Cont+2 Prod=Prod*Cont FIN_MIENTRAS Escribir (El producto de los 10 primeros impares es: , Prod) FIN entero entero

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

24

Tema 2: Metodologa de programacin

4.3. INTERRUPTORES
Tambin llamados conmutadores o indicadores. Son variables que slo pueden tomar 2 nicos valores considerados opuestos. (0 y 1).

Los interruptores tienen gran aplicacin en programacin, utilizndose para: Hacer que 2 acciones diferentes se ejecuten alternativamente en un proceso repetitivo. (Ejemplo 18) Recordar en puntos determinados del programa la ocurrencia o no de un suceso anterior. (Ejemplo 19)

Ejemplo 18: Algoritmo que calcula la suma de los primeros 20 nmeros pares y el producto de los 20 primeros nmeros impares simultneamente.
PROGRAMA: Suma_producto MODULO: Principal INICIO DATOS: VARIABLES Suma Producto Cont Es_par ALGORITMO Suma=0 Producto=1 Cont=0 Es_par=0 REPETIR Cont=Cont+1 SI (Es_par=0) Producto=Producto*Cont Es_par=1 SINO Suma=Suma+Cont Es_par=0 FIN_SI MIENTRAS (Cont<41) Escribir (La suma y el producto de los pares e impares es: , Suma, Producto) FIN entero entero entero lgico

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

25

Tema 2: Metodologa de programacin

Ejemplo 19: Algoritmo que lee 100 nmeros y nos dice si alguno de ellos es mltiplo de 3

PROGRAMA: Mltiplo_3 MODULO: Principal INICIO DATOS: VARIABLES Cont Es_mltiplo Num ALGORITMO Cont=0 Es_mltiplo=0 REPETIR Cont=Cont+1 Escribir (Introduzca un numero: ) Leer (Num) SI (Num MOD 3 == 0) Es_mltiplo=1 FIN_SI MIENTRAS (Cont<100) SI (Es_mltiplo==1) Escribir (Hubo algun mltiplo de 3) SINO Escribir (No hubo mltiplos de 3) FIN_SI FIN entero logico entero

5. DOCUMENTACIN
A la hora de documentar un programa, podemos distinguir entre 2 tipos de documentacin. Por un lado tenemos lo que podemos denominar documentacin interna, que es la que aparece en el cdigo, y por otro lado, lo que podemos denominar documentacin externa, que es la que se adjunta al programa.

5.1. DOCUMENTACIN INTERNA


La documentacin interna del cdigo comienza con la eleccin de los identificadores, contina con la localizacin y la composicin de los comentarios y termina con la organizacin visual del programa.

La eleccin de los identificadores significativos es crucial para la legibilidad y comprensin del programa. A la hora de elegir un identificador para una variable, constante, funcin o procedimiento debemos buscar un nombre que sea lo suficientemente representativo.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

26

Tema 2: Metodologa de programacin

Otra herramienta para la documentacin interna son los comentarios, que permiten al programador comunicarse con otros lectores del cdigo fuente. Los comentarios pueden resultar una clara gua durante la fase de mantenimiento.

Al principio de cada mdulo debe haber un comentario de prlogo. El formato para esos comentarios es: 1. Una sentencia de propsito que indique la funcin del mdulo. 2. Una descripcin de la interfaz, un ejemplo de secuencia de llamada, una descripcin de todos los argumentos y una lista de todos los mdulos subordinados. 3. Una explicacin de los datos pertinentes. 4. Una historia del desarrollo que incluya autor, fecha de ltima modificacin y de descripcin.

Los comentarios descriptivos se incluyen en el cuerpo del cdigo fuente se incluyen en el cuerpo del cdigo y se usan para describir las funciones de procesamiento. Los comentarios deben proporcionar algun extra no solo parafrasear el cdigo. Adems, los comentarios descriptivos deben: 1. Describir los bloques de cdigo en lugar de comentar cada lnea. 2. Usar lneas en blanco o tabulaciones para distinguirlos del cdigo. 3. Ser correctos.

Por ltimo, cada bloque de cdigo ha de estar identado y correctamente tabulado.

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

27

Tema 2: Metodologa de programacin

EJERCICIOS TEMA 2
1. Disear el algoritmo de un programa que escriba en pantalla la tabla de multiplicar de un nmero introducido por teclado.

2. Disear el algoritmo que muestre el resultado de sumar los nmeros pares que hay del 1 al 100. En este caso se harn 3 versiones distintas utilizando para cada versin una instruccin repetitiva distinta: a) instruccin repetir; b) instruccin mientras; c) instruccin para.

3. Disear el algoritmo de un programa que examine el valor de un nmero introducido por teclado y escriba en pantalla uno de los siguientes mensajes dependiendo del valor de dicho nmero:

HIELO, si es menor o igual que 0 AGUA, si es mayor que 0 y menor que 100 VAPOR, si es mayor o igual que 100

4. Disear el algoritmo tal que dados 3 valores numricos enteros determine cual es el mayor.

5. Disear el algoritmo de un programa que lee el valor de un entero introducido por teclado y dependiendo de su valor escriba en pantalla:

CALOR, si es un 1 TEMPLADO, si es un 2 FRIO, si es un 3 FUERA DE RANGO, si es un 4

6. Disear el algoritmo de un programa que lea un carcter por teclado y dependiendo de cual sea escriba:

ROJO, si es un a R o una r VERDE, si es una V o una v AZUL, si es una A o una a NEGRO, si no es ninguno de los caracteres anteriores

7. Disear el algoritmo de un programa que escriba todos los nmeros pares que estn comprendidos entre dos nmeros elegidos por el usuario mediante teclado.

8. Qu mostrara el siguiente programa en pantalla?

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

28

Tema 2: Metodologa de programacin

PROGRAMA: ejercicio9 MODULO: Principal INICIO DATOS: VARIABLES I J ALGORITMO: I=10 MIENTRAS ( I < >0 ) J = I MIENTRAS ( J < > 0 ) Escribir J J = J 1 FINMIENTRAS I = I 1 FINMIENTRAS FIN entero entero

9. Disear el algoritmo que determine la cantidad total a pagar por una llamada telefnica de acuerdo a las siguientes premisas: Toda llamada que dure menos de 3 minutos tiene un coste de 6 cntimos. Cada minuto adicional a partir de los 3 primeros cuesta 3 cntimos.

10. Disear el algoritmo de un programa que calcule la media de una serie de nmeros insertados a travs de teclado por el usuario. Para saber el ordenador cuantos nmeros se van a insertar preguntar en primer lugar dicha cantidad al usuario.

11. Disear el algoritmo de un programa que reciba una cantidad de horas, minutos y segundos y la incremente en 1 segundo, mostrndola despus por pantalla.

1h 54m 59seg pasar a ser

1h 55m 0seg

12. Disear un algoritmo que muestre por pantalla cuales son los mltiplos de 5 comprendidos entre 1 y N, siendo N un nmero preguntado al usuario.

13. Escribir un programa en pseudocdigo que lea repetidas veces 3 nmeros por teclado y finalice cuando el tercero sea mayor que la suma de los 2 valores anteriores. Escribir por pantalla el nmero de intentos realizados hasta finalizar y los valores de las variables que conducen al fin del programa.

14. Escribe la salida por pantalla del siguiente programa:


PROGRAMA: ejercicio9 MODULO: Principal

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

29

Tema 2: Metodologa de programacin

INICIO DATOS: VARIABLES I J ALGORITMO: I=2 MIENTRAS ( I < >5 ) PARA J de I a I+4 Inc=1 Escribir J Escribir I FINPARA I = I +1 FINMIENTRAS FIN entero entero

15. Escribir un programa en pseudocdigo que lea las edades de los empleados de una empresa (terminando cuando la edad introducida sea 0) y calcule cuantos jvenes (menores de 22 aos), maduros(entre 22 y 50) y mayores(con mas de 50 aos) hay, mostrando el resultado por pantalla. En aquellos casos en los que se lea una edad no correcta (negativa o fuera del intervalo de 18 a 65 aos) se escribir un mensaje de error en pantalla y se leer otra edad.

16. Disear el algoritmo de un programa que calcule el factorial de un nmero entero positivo dado por teclado.

5! = 5 * 4 * 3 * 2 * 1

17. Disear el algoritmo de un programa que lea una cantidad de segundos y la pase a horas, minutos y segundos, mostrando un error si hay ms de 24 horas.

18. Disear un algoritmo que permita la insercin de 10 valores enteros y escriba en pantalla un informe en el que se visualice: Los elementos mayor y menor. La cantidad de nmeros impares de la muestra. El porcentaje de ceros (0), unos (1), y cincos (5).

Fundamentos de Programacin 2007-2008 by Arancha Aranaga

30