Está en la página 1de 132

LOGICA DE PROGRAMACION

MANUAL DE LGICA DE PROGRAMACIN

DISEO DE ALGORITMOS

LIC. EUGENIA MEJIA DE RESTREPO MEDELLIN 2007

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

TABLA DE CONTENIDO
Pag.

Introduccin . .. UNIDAD 1. CONCEPTOS GENERALES UNIDAD 2 ENTRADA y SALIDA DE DATOS DE DATOS. UNIDAD 3 PROGRAMACION MODULAR . UNIDAD 4 INSTRUCCIONES DE DECISIN .. UNIDAD 5 ENUNCIADOS DE REPETICION (ciclos) UNIDAD 6 ARREGLOS .

3 4 31 36 45 57 88

UNIDAD 7 CONCEPTOS BSICOS DE PROGRAMACIN ORIENTADA A OBJETOS. 117 PRODUCTO FINAL GLOSARIO BIBLIOGRAFIA 124 125 132

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

Introduccin
El profesional en sistemas de informacin se enfrenta permanentemente a la solucin de problemas, donde los algoritmos, las estructuras de datos y los lenguajes de alto nivel son el fundamento para la construccin del pensamiento lgico necesario que le permite disear y planificar soluciones lgicas de manera rigurosa y sistemtica. Representacin algortmica de solucin a problemas de informacin siguiendo modelos estandarizados, representacin de los datos y posibles transformaciones y conocimiento y aplicacin de un lenguaje de programacin de alto nivel bsico. Este documento pretende ser soporte para el aprendizaje de la lgica de programacin, encontraran que se trabaja la programacin modular desde el principio con el fin de familiarizar el estudiante con las funciones y procedimientos y de esta manera cuando trabajen los mtodos en los lenguajes de programacin orientados a objetos se le facilite el manejo de estos.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

UNIDAD 1. CONCEPTOS GENERALES


OBJETIVO: Identificar las diferentes estructuras, bsicas de diagramacin, y el manejo de los operadores lgicos y matemticos, su aplicacin y las reglas de prioridad. Objetivos especficos: Entender las diferentes estructuras para la elaboracin de algoritmos Saber manejar los diferentes operadores y sus prioridades Realizar los pasos lgicos para la solucin de un problema CONTENIDO TEMTICO Definiciones bsicas Algoritmos Diagramas y sus tipos Operadores lgicos y matemticos Reglas de prioridad Expresiones Prioridad de los operadores en las expresiones lgica y matemticas Representacin grfica de los algoritmos Pasos para resolver un problema. Competencias acadmicas a desarrollar Entender las diferentes estructuras para la elaboracin de algoritmos Saber manejar los diferentes operadores y sus prioridades Realizar los pasos lgicos para la solucin de un problema Indicadores de logro: Conceptual: Diferencia los tipos de algoritmos, Conocer los conceptos bsicos para el desarrollo de un algoritmo. Proccedimental: Aplica el manejo de los operadores y su prioridad en las expresiones matemticas Actitudinal: Reconoce los diferentes operadores y muestra inters en su aplicacin.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

1. CONCEPTOS GENERALES
1.1 LOGICA Procedimiento razonable y apropiado para buscar la solucin de un problema cualquiera.

1.1.1 Ejemplo 1: Escribir los pasos a seguir para sumar dos nmeros. 1 Leer nmero 1 2 Leer nmero 2 3 Sumar los nmeros 1 y 2.

1.2 EJERCICIOS

1.2.1 Ejemplo 2: Supongamos que usted necesita programar un autmata para que conduzca
un auto en un viaje por la autopista Medelln Bogot. Una condicin que debe considerara es como cambiar una llanta en caso de un pinchazo. Como persona precavida que es usted el auto tiene llanta de repuesto y las herramientas necesarias para estos casos. Describamos los pasos lgicos para realizar dicha tarea. 1 Sacar la llanta de repuesto del bal 2 Quitar la llanta pinchada 3 Poner la llanta nueva 4 Guardar la llanta pinchada y la herramienta 5 Reanudar el viaje. Hagamos el ejercicio en forma ms detallada. INICIO 1Orillar y detener el auto 2 Bajar del auto y colocar las seales 3 Abrir el bal y sacar la llanta de repuesto. 4 Si el repuesto est bueno siga el paso 7 5 Si el repuesto est malo buscar otra solucin 6 Ir al fin 7 Bloquear el carro y poner el gato 8 Aflojar tuercas y subir el carro 9 Quitar las tuercas y la llanta pinchada 10 Poner la llanta de repuesto y poner tuercas 11 Bajar el auto y apretar las tuercas 12 Recoger seales, herramientas y la llanta pinchada 13 Guardar todo y cerrar el bal 14 Reanudar el viaje. FIN

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

Intente escribir en forma resumida y lgica los pasos para realizar las siguientes tareas: Describa los pasos para embetunar los zapatos Describa los pasos para ir desde su casa al cine Describa los pasos para escuchar msica Describa los pasos para hacer una torta Describa los pasos para realizar una prctica deportiva. Describa los pasos para realizar una llamada desde un telfono publico. Describa los pasos para ir a una biblioteca para una consulta. Describa los pasos para hacer un trabajo de investigacin. Describa los pasos para ir a un partido de ftbol

1.3 ALGORITMO La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe Alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. Cuando se tiene un problema para solucionar hay que entender claramente que se pide hacer y cules datos se tienen para buscar su solucin y cuales son las respuestas que se esperan. Qu se pide? Que se tiene?. La respuesta a estas preguntas son la base para plantear una posible solucin y si sta se dar por medio del computador, nuestro primer paso ser realizar un Algoritmo o sea la descripcin de esa posible solucin con palabras. Este debe cubrir la solucin del problema desde su inicio hasta su terminacin.

1.4 TIPOS DE ALGORITMOS Los algoritmos pueden ser cualitativos o cuantitativos; lgicos o matemticos

1.4.1 Algoritmo cualitativo: es la descripcin con palabras sencillas de las caractersticas o cualidades medibles ( que se pueden comprobar) de un elemento. Ejemplo: ancho, largo, corto, azul, etc. Son aquellos en los que se describen los pasos utilizando palabras. NOTA: Cualidades subjetivas de un elemento no se tiene en ejemplo: belleza, fealdad, simpata, etc. cuenta en un algoritmo por

1.4.2 Algoritmo cuantitativo Son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso y hallar respuestas numricas. 1,4.3 Algoritmo matemtico: Conduce a la solucin de respuesta es nica. una expresin matemtica y su

1.4.5 Algoritmo lgico: Es la solucin a una situacin lgica; respuestas.

puede conducir a una o varias

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

1.5 ESTILO DE ESCRITURA DE ALGORITMOS / PROGRAMAS.

Algoritmo identificador //cabecera //seccin de declaracin var tipo_de_datos: lista_de_identificadores const lista_de_identificadores = valor inicio //cuerpo del algoritmo accin 1 accin 2 accin 3 . . . accin n fin

1.6 LENGUAJES ALGORTMICOS

Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso. Tipos de Lenguajes Algortmicos: Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

1.6.1 Grficos : 1.6.1.1 Diagrama de flujo: Es una tcnica de representacin de algoritmos ms antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin del lenguaje estructurado. Son fciles de disear porque el flujo lgico se muestra en un dibujo (smbolos o cajas estndares) en lugar de palabras y que cada paso del algoritmo escrito en estos dibujos estar unido por flechas denominadas lneas de flujo, que indican la secuencia que se debe seguir.

Sin embargo, los diagramas de flujo tienen una limitacin grande: son difciles de actualizar y complejos de leer si ocupan varias pginas; cuando se han de modificar los diagramas de flujo resulta difciles precisamente por su carcter grafico.

Los smbolos principales son: En la siguiente tabla se explican los smbolos mas utilizados en los diagramas de flujo

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

SMBOLO

FUNCION Inicio y fin del algoritmo. (Sirve para indicar el comienzo y fin del diagrama de flujo, dentro de el se escriben las palabras inicio y fin) Proceso. (Dentro de el se escriben todas las actualizaciones, asignaciones y operaciones) Entrada. (Sirve para la captura de datos por medio de una lectura. Dentro de l se escribe la palabra lea precedida de la(s) variable(s), separadas por comas)

Salida. (Sirve para mostrar el contenido de una variable y/o mensajes. Dentro de l se escribe la palabra escriba precedida de la(s) variable(s), separadas por comas) Decisin. (Sirve para hacer comparaciones, es decir, para

si

evaluar un valor y escoger alternativas)

no
Lnea de flujo. (Sirve para indicar el seguimiento lgico del diagrama. Determina el orden de la ejecucin de las instrucciones) Mltiples. (En funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo a dicho resultado)

Repetitivas. (Sirven como smbolos propios de los ciclos ya que para ellos primitivamente se utilizaba los smbolos bsicos (proceso y decisin)

Ejemplo 3 Se desea obtener el salario bsico neto de un trabajador conociendo l numero de horas, el salario hora y la tasa de impuesto que se le debe deducir. Nota: El ejemplo esta realizado en diagrama de flujo ,diagrama estructurado y en pseudo cdigo.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

Diagrama de flujo

INICIO
Lea: horas_trabajadas, salario_hora, tasa

salario_bruto= horas_trabajadas* salario_hora total_impuesto = salario_bruto * tasa salario_neto = salario_bruto - total_impuesto

Escriba:

salario_bruto,

total impuseto, salario neto

FIN

1.6.1.2 Diagrama estructurado o Diagrama de Nassi, N-S o Chapn : Denominada as por su inventor o tambin conocido como diagrama estructurado es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas y, como en el diagrama de flujo, se pueden escribir diferentes acciones en una caja. Los diagramas de N-S comienzan en un primer rectngulo que se va rellenando de arriba-abajo siguiendo la tcnica descendente.

Los procesos de entrada, salidas, operaciones, actualizaciones, inicio, fin y nombre del programa (acciones) se representan en una caja por cada proceso as: Nombre del programa Inicio < accion 1> < accion 2> | |

< accion n> Fin

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

10

Solucin ejemplo 3 en diagrama estructurado

Programa salario Inicio lea nombre, horas, precio salario = horas * precio Impuesto = 0.25 * salario SalarioNeto = salario impuesto Escriba nombre, salario, impuesto,

Salarioneto Fin 1.6.2 No Grficos o Pseudo cdigo: Es la descripcin de los pasos lgicos para la solucionar un problema en forma semejante al lenguaje de computadora utilizado, es decir un lenguaje de seudo programacin, una imitacin del cdigo de computadora. El Pseudo cdigo es una mezcla de lenguajes natural y smbolos, trminos y otras caractersticas comnmente utilizadas en uno o ms lenguajes de alto nivel. 1.6.2.1 Caractersticas del Seudocdigo: Las siguientes son las caractersticas ms importantes: Debe tener un nombre que lo identifique. Ejemplo programa inventario Todo pseudo cdigo debe tener un inicio y un fin. No puede existir un programa con infinitas instrucciones. Debe tener 0 o ms datos de entrada. Pueden existir programas que no le pidan datos de entrada al usuario. Los pseudo cdigos deben tener 1 o ms datos de salida. Un programa que no le muestre al usuario ningn resultado o respuesta, no sirve para nada. Solucin Pseudo cdigo Ejemplo 3 Programa salario_neto Inicio lea horas_trabajadas, salario_hora, tasa salario_bruto = horas_trabajadas * salario_hora total_impuesto = salario_bruto * tasa salario_neto = salario_bruto - total_impuesto escriba salario_bruto, total_impuesto, salario_neto fin

1.7 DATOS

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

11

Los algoritmos y programas de computadoras, con independencia del lenguaje en que estn escritos, estn diseados para manipular informacin o datos. La mayora de las computadoras pueden trabajar con varios tipos de datos. Y los algoritmos y los programas correspondientes operan sobre estos. Las acciones de las instrucciones ejecutables reflejan en los cambios de los valores de los datos de entrada que se transforman despus de varias etapas intermedias, dando como resultado unos datos de salida. Existen dos clases de tipos de datos: simples ( sin estructura) y compuestos (estructurados). Los datos estructurados por ahora solo veremos el tipo cadena de esta clase los dems mas adelante, y de los simples identificaremos los siguientes: Numricos, Lgicos y Carcter 1.7.1 Datos Numricos: Los datos de tipo numrico son los relativos a las diferentes clases de nmeros. enteros

Datos numricos reales

1.7.2 Enteros: Es un subconjunto finito de los numero enteros. Los enteros son nmeros complejos, no contienen componentes fraccionarios o decimales y pueden ser positivos o negativos. Ejemplos de datos numricos: 5 -15 20 1340 6 4 17 26

1.7.3 Reales: Es un subconjunto de los nmeros reales. Los reales son nmeros siempre tiene un punto decimal y pueden ser positivos o negativos. Un real consta de un entero y una parte decimal. Ejemplos de datos reales: 0.08 3.7452 -8.12 3739.41 -52.4.321 3.0

1.7.4 Datos Lgicos: Tambin denominados bolanos, es aquel dato que solo puede tomar uno de dos valores: cierto / falso

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

12

si / no v/f 0/1

1.7.5 Datos Carcter: Es el conjunto finito y ordenado de caracteres que la computadora puede interpretar. Un dato tipo carcter contiene solo uno. Los caracteres que reconoce las diferentes computadoras no son estndar, sin embargo, la mayora reconoce los siguientes caracteres alfabticos, numricos y especiales. Caracteres alfabticos: (A, B, C, D, E,..., Y, Z) (a, b, c, d, e,..., y, z) Caracteres numricos: (1, 2, 3, 4,..., 9,0) Caracteres especiales: (+ ,- ,* ,/ ,^ ,$ ,& ,...)

Los caracteres se pueden organizar en cadenas. Una cadena de caracteres es una secuencia o serie de caracteres validos encerrados entre caracteres especiales llamados delimitadores y que suelen ser las comillas doble, ya que las comillas simples son los delimitadores de caracteres individuales, ejemplos: Paris bien vale una misa 12 de octubre de 1492

TIPO DE DATO Numricos Lgicos Carcter Cadena (string)

CONTENIDO Enteros o Reales Boleanos Todos los caracteres individuales Agrupando varios caracteres

EJEMPLO 10, 3,25, -2.908, 2.35E18 Falso, verdadero A,b.c,d,.$.&,#, @, etc. Hola, Juan Daz, 2h43

1.8 CAMPO rea de trabajo que puede almacenar uno o varios datos. se almacena: "Carlos Alberto Garcia". Ejemplo: En el campo NOMBRE

1.9 REA DE TRABAJO Es un espacio de memoria con la longitud que necesita el programador. trabajo deben tener nombres diferentes y deben ser inicializadas en cero (0). Las reas de

1.10 REGISTRO Es un conjunto de campos relacionados.

1.11 ARCHIVO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

13

Es un conjunto de registros relacionados entre si.

1.12 MEMORIA Capacidad de guardar informacin y tenerla disponible para su uso.

1.13 IDENTIFICADORES Son los nombres que se dan a los programas, constantes, variables, subprogramas y otros objetos o entidades de dgitos. La sintaxis para formar un identificador es la siguiente: Letra/_[letra / digito / _]...

Lo cual indica que un identificador consta de uno o ms caracteres (letras, dgitos y el carcter de subrayado) y que el primer carcter debe ser una letra o el carcter de subrayado.

Las letras pueden ser maysculas o minsculas. Ejemplos: SUMA Calculo_nmeros_primos Ordenar7 a123

Ejemplos de errores en declaracin de identificadores: #suma calculo nmeros primos -ordenar 12ab3 salario$base

1.14 VARIABLES Son todos aquellos valores que pueden o no cambiar en el transcurso de un programa, como existen diferentes tipos de datos las variables pueden ser numricas y alfanumricas. Las variables deben tener las siguientes caractersticas: Tienen Nombre ste debe ser nico ya que en un programa no pueden existir dos variables con el mismo nombre. Este debe empezar siempre por una letra Toda variable tiene tipo y ste no puede cambiar en el curso del programa; s! el

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

14

programador la define como entera

solamente puede recibir nmeros enteros.

Los nombres de las variables elegidas para el algoritmo o programa deben ser significativas y tener relacin con el objeto que representa. TEMP = para representar valores de temperatura NOV_ESTUD = almacenara el nombre del estudiante Nombres vlidos de variables Peso X27A SALA_BASICO Apellido P23A PLACA TELEFONO

1.14.1 Variable Numrica: Su nombre puede ser una letra o agrupacin de letras o combinacin de letras y nmeros; debiendo empezar siempre por una letra sin caracteres especiales ni espacios en blanco. El valor almacenado en ella debe ser totalmente numrico; y puede ser de tipo real o entero.

NOMBRE VARIABLE
A1 = Alberto = X12BASE =

VALOR ALMACENADO
500 200 33.12455

TIPO
Entero Entero Real

1.14.2 Alfabtica o alfanumrica: Su nombre puede constar de una letra o agrupacin de letras o combinacin de letras y nmeros empezando siempre con una letra, no puede tener caracteres especiales, ni espacios en blanco. El valor almacenado en sta puede ser numrico, alfabtico o alfa-numrico y siempre debe estar colocado entre comillas. Este tipo de valor almacenado se denomina constante, literal, cadena o ttulo.

NOMBRE VARIABLE X12 Nombre A Y

VALOR ALMACENADO " Pedro " " Juan " " 200 " " W112 "

TIPO Carcter Carcter Carcter Carcter

NOTA: Los nombres de las variables deben ser nemotcnicos, es decir, que con solo leer el nombre de la variable se puede entender o determinar lo que contiene; estos no deben comenzar por nmeros, ni contener espacios en blanco, ni caracteres especiales ( % $ & + / * etc.). 1.14.3 Boleana o lgicas: verdadero. son aquellas que slo almacenan datos cuyo valor es: falso o

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

15

1.15 CONSTANTES

Son todos aquellos valores que no cambian en el transcurso de antes de utilizarse.

un programa y son definidos

Ejemplo 4: Se desea saber el valor de un artculo al cual se le har un descuento del 7% VAL-DESCU = Valor-artculo * 0.07

variable

variable

constante almacenar en sta el valor de la

Cada vez que se invoque la variable VAL-DESCU se operacin indicada.

Nota: Los nombres deben tener las caractersticas de los nombres de las variables.

1.16 EXPRESIONES Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales; una expresin consta de operandos y operadores. Los parntesis indican el orden de clculo. Segn el tipo de dato que manipulan se clasifican en: Aritmticas Lgicas Carcter Ejemplo 5: A + (b-c) * 3d X + (2)^2

1.16.1 Expresiones aritmticas. Las expresiones aritmticas son anlogas a las formulas matemticas. Las variables y constantes son numricas (real enteras) y las operaciones son las aritmticas. Ejemplo 6: 5 * 18 = 90 resultado de la expresin operando operador operando

1.17 OPERADORES ARITMTICOS:

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

16

OPERADOR Exponenciacin Suma Menos Multiplicacin Divisin normal Divisin entera Modulo o resto

NOTACIN ^ , ** + * / (Slash) div mod

TIPO DE OPERANDO Entero o real Entero o real Entero o real Entero o real Real Entero Entero

TIPO DE RESULTADO Entero o real Entero o real Entero o real Entero o real Real Entero Entero

NOTA 1: Operadores mod y div. El smbolo / se utiliza para la divisin real y el operador div para la divisin entera. NOTA 2: La expresin 19 div A solo se puede utilizar si A es entera, ejemplo 3, esta nos da un resultado entero de 6. Ejemplo 7: 15 3 6 2 cociente (div) residuo (mod) 15 div 6

El mod nos muestra el resto por lo tanto si la divisin anterior la expresamos 15 mod 6 el resultado ser 3 El mod y el div siempre dan un resultado entero 1.17.1 Reglas de prioridad. Las expresiones que tienen 2 ms operando requieren unas reglas matemticas que permitan determinar el orden de las operaciones, lo que se denomina reglas de prioridad o precedencia. Las operaciones que se encuentren encerradas entre parntesis se evalan primero. Si existen diferentes parntesis anidados (interiores unos a otros) se realizan primero las expresiones ms internas. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad: Operador exponencial (^ **) Operadores *, / Operadores div y mod Operadores + , En caso de que se encuentren varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el orden de prioridad en dicho caso es de izquierda a derecha. Nota: Cuando se est diseando operaciones o expresiones matemticas se debe tener en cuenta las tablas de prioridad de los operadores. Los operadores div y mod si se est utilizando el lenguaje Pascal y Modula2 son de mayor rango que el + y ; en lenguaje Basic y Fortran son de menor prioridad del + y -; en el lenguaje C no existe el div y el mod (resto) se expresa con el operador % y tiene el mismo nivel del /, *.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

17

OPERADOR ^ + * / Div Mod

SE UTILIZA PARA: Elevar un nmero a cualquier potencia Sumar Restar Multiplicar Dividir Cociente de la divisin Residuo de la divisin

EJEMPLO 5^3 = 125 4 + 3 + 8 = 15 8 3 = 5 7 * 3 * 2 = 42 5/3 = 1.6666 7 div 3 = 2 7 mod 3 = 1

1.18 EJERCICIOS Ejemplo 8 A=5 B=3 2*3+5 = 6 + 5 = 11

A * (B+3) = 3+3 * 5 = 30 8/2 * 3/6 = 4 * 3 /6 = 2 (A*B) + 3 = 15 + 3 = 18

2 + 12 ^ 2 * 3

= 2+ 144* 3 = 434

1.19 OPERADORES DE RELACION:

OPERADOR
Mayor que Menor que Mayor o igual que Menor o igual que Igual Diferente

NOTACION
> < >= <= = <> no encontrarse en el teclado del

NOTA: No se utilizan los siguientes operadores por computador: . > =

OPERADOR > < = >= <= <>

SIGNIFICADO Mayor que Menor que Igual Mayor o igual que Menor o igual que Diferente a

EJEMPLO 56 > 65 falso 36< 78 verdadero 34 = 26 falso 34 >= 32 verdadero 17 <= 37 falso 8 <> 6 verdadero

TIPO Comparacin Comparacin Comparacin Comparacin Comparacin Comparacin

Ejemplos 9 : Si la variable X = 37

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

18

X < 80 el resultado ser verdadero X + 12 < 20 el resultado ser falso Si A = 8 y B = 5 A<B falso A=B falso A>B verdadero B>A falso C = B > A La variable C toma el valor de falso.

1.20 PROCESO

Es el conjunto de operaciones o clculos que transforman los datos en informacin, siguiendo una serie de instrucciones, escogiendo alternativas, dando resultados parciales cuando se manejan archivos etc.. Datos Procesados que le sirven al usuario para el anlisis o tomar decisiones.

1.21 ETAPAS EN LA SOLUCION DE UN PROBLEMA

Cuando se tiene un problema para solucionar hay que entender claramente qu se pide hacer y cules son los datos que se tienen para buscar la solucin y cules son los resultados esperados.

1.21.1 Definicin del problema. Qu nos pide el usuario? De qu disponemos para resolverlo? Las respuestas a stas preguntas son la base para plantear una posible solucin y si esta amerita realmente resolverla por medio del computador. El primer paso ser realizar un algoritmo en seudo-lenguaje que describa los pasos lgicos del problema 1.21.2 Anlisis: Estudiado el problema es preciso analizarlo: Todos los pasos que a continuacin se enuncian tienen por objeto la solucin a un problema cualquiera mediante un buen anlisis de este. Cada paso es de igual importancia al otro para obtener un buen resultado.

Leer el enunciado del problema hasta que se tenga claro qu se pide hacer. Aclarar cualquier duda que se tenga de alguna pregunta o condicin. Determinar los datos de entrada con que se cuenta para la solucin del problema. durante el desarrollo del

Definir qu comparaciones y/o clculos se necesitan realizar problema y para obtener el resultado final. Determinar que resultados se necesitan tanto intermedios Tener en cuenta toda clase de restricciones y condiciones solucin.

como finales. que tenga el problema para su

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

19

1.21.3 Seleccin de la mejor alternativa. Analizado el problema, posiblemente tengamos varias formas de resolverlo; lo importante es determinar cul es la mejor alternativa, que produzca los resultados esperados en el menor tiempo y al menor costo. 1.21.4 Diagramacin o Seudo-cdigo. Una vez que sabemos cmo resolver el problema, pasamos a disear grficamente la lgica de la alternativa seleccionada. Lo que llamamos un diagrama de flujo donde representamos los pasos lgicos a cumplir por el computador en la solucin del problema y obtener los resultados esperados. Resulta muy til pasar esos pasos lgicos planteados en el diagrama a frases que indiquen lo mismo; es decir hacer una codificacin del problema utilizando instrucciones en espaol, como si le estuviramos hablando al computador. Esto es lo que llamamos un seudo-cdigo. 1.21.5 Diagrama: Es una representacin grfica para la definicin, anlisis " solucin de un problema en el cual los smbolos son usados para representar una operacin, flujo de datos y equipo. Existen fundamentalmente dos tcnicas de diagramacin: libre y estructurada. Dentro de la diagramacin estructurada se distinguen: la grfica rectangular y el seudo-cdigo. Todo algoritmo se puede representar en tres estructuras condicional, Repeticin. Secuencia. Indica una operacin incondicional. bsicas: Secuencia, Bifurcacin o

Titulo del algoritmo Inicio Instruccin 1 instruccin 2 Instruccin 3 : : Fin Diagrama de N-S (Nassi-Shmeiderman) Favorecen la programacin estructurada, se trabajan de arriba abajo siguiendo la tcnica de Top dawn Tcnica de seudo-cdigo es una imitacin de las instrucciones de un lenguaje de programacin en espaol. Titulo del algoritmo Inicio Instruccin 1 Instruccin 2 Instruccin 3 Fin Bifurcacin condicional. Indica que se debe cumplir una condicin, consta de una pregunta y dos alternativas falso o verdadero. Se da un condicional simple cuando slo se ejecutan acciones por la alternativa de verdadero o (SI)

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

20

Condicin SI Acciones si se Cumple la Condicin NO No hacer nada

Seudo-cdigo Condicional simple Si condicin entonces Acciones cumple la condicin Fin si Se da un condicional compuesto cuando se ejecutan acciones por verdadero y por la de falso. la alternativa de

Condicin SI Acciones SI se Cumple la Condicin NO Acciones no NO cumple la condicin

Seudo-cdigo Condicional compuesto Si condicin entonces Acciones SI cumple la condicin Sino Acciones NO se cumple la condicin Fin si

Repeticin o ciclo. Indica la iteracin o repeticin de una o varias dependiendo de una condicin verdadera. CICLO MIENTRAS

instrucciones

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

21

Mientras Condicin
Acciones Repite tantas veces mientras no se cumpla la condicin

En seudo-cdigo seria : Haga mientras no se cumpla la condicin Acciones Fin ciclo 1.21.6 Prueba de escritorio. Para cerciorarse de que el diagrama y/o seudo-cdigo est bien y que el programa que codifiquemos en el lenguaje de programacin funcione correctamente debemos someterlo a una prueba de escritorio. Esta prueba consiste en que le damos diferentes datos de entrada al programa y le seguimos la secuencia indicada en el diagrama o seudo-cdigo , hasta obtener los resultados. Al analizar los resultados obtenidos se podr ver si el diagrama o seudo-cdigo est correcto o hay que realizar correcciones o ajustes. 1.21.7 Codificacin. Una vez hayamos verificado el diagrama mediante las pruebas de escritorio, codificamos el programa en el lenguaje de computador seleccionado. Esto es: cada paso del diagrama se convierte en una instruccin con la sintaxis propia del lenguaje seleccionado para que el computador la reconozca. 1.21.8 Compilacin. Utilizamos ahora el programa de computador llamado compilador o traductor, el cual analiza todo el programa codificado y detecta los errores de sintaxis ocasionados por los errores en la codificacin. Ningn compilador detecta los errores de lgica. 1.21-9 Prueba de computador. Una vez el programa termine de ser compilado y no existan errores de sintaxis, le ordenamos al computador que lo ejecute; para ello le suministramos algunos datos de prueba tal como se realizo en la prueba de escritorio. 1.21.10 Documentacin externa. Una vez est el programa listo para su ejecucin, es conveniente documentarlo, siguiendo las normas establecidas por la empresa. Una buena documentacin incluye siempre : Enunciado del problema. Diagrama o seudo-cdigo Descripcin de la solucin Relacin de variables o campos utilizados en el programa, cada uno con su respectiva funcin. Listado de la ltima compilacin Resultados de la prueba de ejecucin Si observas claramente estos pasos tienen una secuencia lgica para la solucin de un problema, no tiene ambigedades y entregan un resultado. Con ello podemos disear un seudo-cdigo que seria:

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

22

INICIO Definicin del problema Anlisis del problema Seleccin de la mejor alternativa Diagrama o seudo-cdigo Prueba de escritorio Codificacin en el lenguaje deseado. Compilacin Si hay errores vaya al paso 6 Pruebas Si hay errores vaya al paso 4 Documentacin externa FIN

1.22 ELEMENTOS BSICOS DE UN PROGRAMA Hay que separar lo que es el diseo del algoritmo y su implementacin en un lenguaje de programacin especifico. Por eso es importante la diferenciacin de los conceptos de programacin y el medio en que se implementan en un lenguaje especifico. Todos los lenguajes de programacin al igual que cualquier lenguaje tienen sus elementos bsicos y las reglas para utilizarlos. Estas reglas son la sintaxis propias de cada lenguaje. Solamente las instrucciones que estn correctamente escritas sern procesadas por el computador. Los elementos bsicos de un algoritmo o programa son: Palabras reservadas identificadores Caracteres especiales Constantes y variables Expresiones e instrucciones Adems existen otros elementos que forman parte de los programas cuya comprensin ser vital `para el correcto diseo de los algoritmos Bucles o ciclos Contadores y acumuladores Interruptores Estructuras: Secuenciales Selectivas Repetitivas. Todo programa est compuesto por una entrada de datos, un proceso de estos y una(s) respuesta(s) que constituye la salida.

1-23 ASIGNACIN DE INFORMACIN

Accin de sustitucin de la informacin contenida en una variable de memoria o un campo de un

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

23

archivo . Se puede simbolizar por los signos = y su funcin es asignar el valor que est a la derecha del smbolo igual la flecha a la variable que est a la izquierda de la misma.

Ejemplos: Variable Pago rea = nota_final = Variable total resultado promedio

Variable
Retencin IVA Resultado Descuento =

Constante
125000 16% = Aprob = 0.08

Variable
Salario_neto = Promedio Nota-final = Valoreps =

Expresin
salario deducciones ( Nota1 + nota2 +nota3) /3 suma/5 salariobruto * 0.08

NOTA: Observe que siempre en la expresin el miembro de la izquierda es una variable. La operacin de asignar es destructiva ya que el valor que tuviere la variable antes de la asignacin se pierde, para tomar el nuevo valor. Ejemplo 10: A A N N 2 5 + 7 El valor de A ser 12 4 3 + N el valor de N ser 7

Asignacin aritmtica: las expresiones de asignacin son aritmticas.

Ejemplo 11:
Suma 14 + 16 + 7 El valor que toma suma ser 37 Radio 1.5 Pi 3.1416 Areacirculo Radio * Pi / 2 El valor de la variable Areacirculo ser el resultado de la operacin indicada Asignacin lgica. La expresin que se evala es de tipo lgico.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

24

Ejemplo 12
P

8 <4

el valor de M ser falso

45 < 25 el valor de P ser verdadero.

Asignacin de cadena de caracteres. La expresin que se evala es de tipo cadena de caracteres.

Ejemplo 13: Fecha noviembre de 1809

11 de noviembre de 1809 El valor de Fecha ser: 11 de

Nota: a una variable no se le puede asignar un valor de tipo diferente al suyo. Hay un error cuando a una variable de tipo numrico se le asigna una cadena de caracteres, y a una variable de tipo carcter se le asigna un valor numrico.

1.23 INICIALIZAR CAMPOS O VARIABLES


Consiste en dar un primer valor a una variable de memoria. Al inicio de todo programa se deben definir los tipos de variables que se utilizaran, con la siguiente notacin Variable Variable si la variable es de tipo carcter 0 si la variable es de tipo numrico.

Nota: las variables donde se guardan los resultados de clculos u operaciones matemticas son llamadas variables de trabajo, se deben siempre dar un valor inicial de 0.

1. 24 ACTIVIDADES TRABAJO INDEPENDIENTE Consulte acerca de los siguientes trminos, interiorice su significado y averige como se calculan : Promedio Inters Porcentaje Subsidio Deduccin Impuesto

Comisin Recargo
Elabore el taller de lgica 1, que hace parte de tu trabajo independiente. Identifique Que es algoritmo?; Conceptos sobre Seudo cdigo, diagrama de flujo. Diferencie conceptos sobre: Expresiones, operadores, identificadores Elabore el taller 2 de manejo de los operadores, es tu trabajo independiente. Consulta la pagina http//espanol.geocities.com/evmejia_36

1.25 TALLER LOGICA 1

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

25

Razonamiento Lgico Soy cuatro veces mayor que mi hija. Dentro de 20 aos ser dos veces mayor que ella. Cuantos aos tenemos ahora? Completa la cuadricula con los nmeros que faltan del 1 al 16 para formar un cuadrado mgico, en el que cada lnea horizontal, vertical y diagonal de esquina a esquina sume 34. 15

10

Dos hombres corren en una carrera de 100 Mts y el hombre A gana por 10 metros. Entonces decide hacer las cosas mas justas en una segunda carrera, dando 10 metros de ventaja al hombre B. Realizan la carrera a la misma velocidad que la anterior. Cual seria el resultado? Que vendra despus en esta secuencia? 155,210,225,240 . En un saco de naranjas, 4 de 52 estn malas. Qu probabilidades hay de sacar dos malas? Qu numero esta en discordancia con los dems 491322 891726 191029 831114 751217 391221 Qu nmero seguira esta secuencia? 2,13,89,610,4181,28657,? Qu nmero sera el prximo en esta serie? 4,8,15,30,37,74..? Qu nmero sera el prximo en sta serie? 147,144,12,9,3..? Cual es el prximo numero? 74169,183,74,65,61,37,58,89,145..? A partir de la informacin que te damos, aade los nmeros que faltan.

2713

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

26

1936

7413

84

Qu nmero completa esta secuencia? 763592,468,32, ? Un reloj da las seis en 5 segundos. En cuanto tiempo da las doce? Qu tienen estos nmeros en comn? 8228 92126 6889 210012 15269251 Qu nmero continuara en la serie? 2736,9108,17127,89298,? Encuentre una palabra de seis letras que tenga alguna en comn con las siguientes palabras: 0 l etras en comn con CRECER letra en comn con CAF letras en comn con DIENTE letras en comn con PERDN letras en comn con ALIENTO El diagrama indica la ubicacin de los 35 barrios de una ciudad, Los crculos Son barrios y las lneas carreteras. La distancia entre barrios es de 5 km. El intendente decide que ningn barrio debe estar a ms de 5 km de un cuartel de bomberos. Cul es la mnima cantidad de cuarteles necesarios? Indique sus ubicaciones.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

27

Dos amigos. lex y David, salen de sus casas corriendo con intencin de encontrarse. Sus relojes marcan las doce del medioda. lex corre el doble que David, Cuando se encuentran, el reloj de lex marca las 12,30 y el de David, que se adelanta, seala un minuto ms. Al da siguiente, Repiten la experiencia, David pone en hora su reloj. lex retrasa su salida diez mintos y corre a la mitad de velocidad que su amigo, Qu hora marcar el reloj de David cuando se junten ?

Tres estudiantes, Antonio, Berta y Carlos, participan en una serie de exmenes. Encada prueba, el que queda primero recibe x puntos; el segundo recibe y puntos y, el tercero z puntos. x, y, z son nmeros enteros mayores que cero, de tal manera que x > y > z. No hay empates. En total, Antonio acumul 20 puntos, Berta 10 puntos y Carlos 9 puntos. Antonio qued el segundo en el examen de lgebra. Quin qued segundo en el examen de geometra?

1.26 TALLER LOGICA 2 MANEJO DE LOS OPERADORES


Resolver los siguientes ejercicios aplicando las reglas de prioridad de los operadores ( 5 * (75mod12) + 4 * 4 (4-1)+ 2 * (7*4)) 3 + 2 * (18 div4) + 7^2 16+3^3-15mod4*(6+14)/8 46 4^ 2 + 7*10div3+15/5-18/3 16+5^3 +(10mod 3 ) +15/(7-5) -18div7-5 *8

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

28

24 - 5^2* 16mod3+14*(8/2+5) + 87

Qu valor toma X en las siguientes expresiones? Si A = 5 B = 25 C = 10

X= A+B*C X= ABC X =B/A*C X = A + B mod C X = A^3 / 25 * C X = A + A * B/C Evaluar las siguientes expresiones 3+ 6 * 14 12 + 3 * 7 + 5 * 4 7 * 8 mod 3 * 7 + 9 7 * ((10 5 ) mod 3) * 5 + 7 12 * 4/2 + (15-3) * 5 + 7 -16+3*6+14*8 4+7*10+15/5-18 18div 6 * 9 + 16 6 25 / 5 * 12 + 4^2 16 (7^2 + 12) * (48 (12 * 3)) * 2

A = 4 B = 3 ENTONCES : A<B (A 2 ) < (B + 5) A*(12-5) > B * 3 A + B > B^2 X = 3 ENTONCES ( X < 6.5) Y 3 = 3

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

29

X>=8

Decir cual es el valor final de A,B,C en las siguientes expresiones: 1) A 3 B 4 C A +B /2 B B+C C C *A A C-B 3) A B C B C A 3 4 A+B B + C +A C *A+3 C *5 - B 2) A B C A B A 7 A+2 A*B+5 B^2 + 8/3 17 (A 17) * C 8

4) A 7 B A+2 C A*B+18 A B^2 + 13/3 B 19 A (A 7) * (C 8)

Cuales son los valores de P; Q; R despus de las siguientes operaciones 5) P Q R P Q R 3 6 P +Q /3 P+R+2 Q *P P-Q 6) P 7 Q P+2 R P*Q+7 P Q^2 + 8/3 Q 17 R (Q 7) * P 8

1. Deducir los resultados que se obtienen del siguiente algoritmo: Variables X, Y, Z: enteras Inicio X = 15 div 4 Y = 30 mod 7 Z = Y ** X Imprima (X, Y) Imprima (Z) Fin 2. Encontrar el valor de la variable VALOR despus de la ejecucin de las siguientes operaciones. VALOR 4.0 * 5 X 3.0 y 2.0 VALOR X + Y- Y VALOR 5 X 3 VALOR VALOR * X

Determinar los valores de A, B,C y D despus de la ejecucin de las siguientes instrucciones. Variables A, B, C, D: enteras INICIO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

30

A1:B 4 C:A+ B D:A-B A:C+2 *8 B:C+B C:A*B D:B +D A:D+C Si C = D Entonces C= A - D sino C= B - D Fin si Fin

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

31

UNIDAD 2 ENTRADA y SALIDA DE DATOS DE DATOS


OBJETIVO: Conocer los diferentes tipos de datos y las entradas y salidas de los mismos. Los conceptos de las reas de almacenamiento de datos. Identificar la diferencia entre variables y constantes. Objetivos especficos:

Saber el manejo de los diferentes tipos de datos en la entrada, proceso y salida de informacin. Hacer ejercicios donde identifica los diferencias entre variables y constantes Realizar ejercicios donde utiliza instrucciones de asignacin.

CONTENIDO TEMTICO Definicin de dato y sus tipos. Definicin de variables y constantes. Entradas y salidas de informacin. Instrucciones de asignacin. El concepto de variable y constante

Competencias acadmicas a desarrollar


Saber el manejo de los diferentes tipos de datos en la entrada, proceso y salida de informacin. Hacer ejercicios donde identifica los diferencias entre variables y constantes Realizar ejercicios donde utiliza instrucciones de asignacin.

Indicadores de logro: Conceptual: Conoce los diferentes tipos de datos, y elementos bsicos para realizar un algoritmo. Procedimental: Realiza solucin de problemas sencillos que le permiten entrar datos, procesarlos y dar respuestas. Actitudinal: Demuestra inters por conseguir una respuesta correcta.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

32

2. ENTRADA Y SALIDA DE DATOS DE DATOS

2.1 LECTURA O ENTRADA DE DATOS

La entrada de datos generalmente se realiza por teclado, mediante instrucciones que permiten capturar datos. Para la entrada de informacin se usar la orden LEER

FORMATO O SINTAXIS LEER mensaje variable1. LEER mensaje variable2. LEER mensaje variablen. LEER : mensaje variable1, mensaje variable2,.... mensaje variableN. Ejemplo de cada formato: LEER: Nombre NOMB LEER: Cdigo COD LEER: Salario bsico hora SBH LEER: Numero de horas trabajadas NHT LEER: Retencin en la fuente RTF LEER: Nombre NOMB ; Cdigo COD; Salario bsico hora SBH; Numero de horas trabajadas NHT; Retencin en la fuente RTF

INSTRUCCIN Lea(A) Lea: A, B Lea (sueldo) Lea: Nombre, sueldo

EFECTO La variable A recibe el valor entrado por teclado. Lee dos valores por teclado, el primero lo asigna a la variable A y el segundo a la variable B La variable sueldo recibe el valor introducido por teclado. Las variables Nombre y sueldo toman los valores introducidos por teclado.

2.2 SALIDA DE INFORMACION

Se utilizar la palabra IMP (Imprima) para indicar la salida palabra MOSTRAR para la salida por pantalla.

de informacin por impresora y la

FORMATO O SINTAXIS:

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

33

IMP mensaje ; variable IMP mensaje ; variable de trabajo IMP mensaje ; variable, mensaje ; variable de trabajo Mostrar mensaje ; variable Mostrar mensaje ; variable de trabajo Mostrar:: mensaje variable1, mensaje variable2, mensaje variable de trabajo , mensaje variable de trabajoN.

INSTRUCCIN IMP(A) MOSTRAR: A, B

EFECTO El contenido de la variable A es impreso. Los valores de las variables A y B son mostrados por pantalla IMP Sueldo La palabra sueldo es impresa. MOSTRAR: El Nombre es: Muestra : la frase El Nombre es: seguido del Nomb contenido de la variable Nomb.

Ejemplo 14: Se lee un valor de temperatura en grados Fahrenheit, Centgrados.

convertirla en grados

Qu pide realizar el enunciado del problema? Convertir en grados centgrados una cantidad de grados Fahrenheit Qu datos tengo? El valor de la temperatura en grados Fahrenheit Qu clculos debo realizar? Para poder hacer los clculos debo conocer la formula de la conversin de temperaturas de grados Fahrenheit a grados centgrados. La formula es : C = 5/9 * ( GF 32) Conocidos los datos de entrada y la formula que se aplicar, estamos en condiciones de realizar el algoritmo. PROGRAMA GRADOS FAHRENHEIT ANALISIS DATOS DE ENTRADA Temp_gf = temperatura en grados Fahrenheit DATO DE SALIDA Temp_gc = temperatura en grados centgrados C = 5/9 * (Temp_gf 32) Inicio Asignar tipo a las variables ENT: Temp_gf ; Temp_gc Inicializar las variables de trabajo Temp_gc = 0 Leer los datos de entrada Leer Temperatura grados Fahrenheit Temp_gf Realizar los clculos Temp_gc 5/9 * (Temp_gf 32) Mostrar los resultados

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

34

IMP : La Temperatura en grados centgrados es Temp_gc Fin Prueba de escritorio Temp_gf Temp_gc 350 0 177 75 24

clculos 5/9 * (350 32) 5/9 * (75 32)

2.3 MODELO GENERAL DE UN DIAGRAMA ENTRADA Y SALIDA DE DATOS INICIO ( Nombre del programa) ( 1) ASIGNAR TIPO A VARIABLES Y CONSTANTES ( todas las variables y constantes que se definieron en la lista de variables) ( 2) INICIAR VARIABLES DE TRABAJO Y CONSTANTES (3)LEER DATOS DE ENTRADA PROCESAR DATOS LEIDOS Clculos necesarios para solucionar el problema Los clculos pueden ser una(s) funcin(es) o un(os) procedimiento(s)(5) MOSTRAR RESULTADOS OBTENIDOS FIN DEL INICIO

2.4 ACTIVIDADES TRABAJO INDEPENDIENTE


Consulte acerca de los siguientes trminos, interiorice su significado Variable Constante Variable de trabajo Dato Registro Archivo Diferencia qu es una entrada y una salida de datos?; Identifica los conceptos sobre; Variable de trabajo, un registro, un dato de entrada. Analiza que hace parte del proceso de datos? Los pasos lgicos para procesar los datos Elabore el taller de lgica 3, Entradas y salidas de datos, que hace parte de tu trabajo independiente. Consulta la pagina http//espanol.geocities.com/evmejia_36

2.5 TALLER UNIDAD 2 ENTRADA Y SALIDA DE DATOS

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

35

1. Escriba Un algoritmo que imprima el siguiente mensaje Buenos Dias. 2. Escriba un algoritmo que imprima el mensaje Mi nombre es : y a continuacin mi nombre. 3. Escriba un algoritmo que imprima la fecha del da. 4. Escriba un algoritmo que imprima el nmero 4135.801. 5. Escriba un algoritmo que muestre su nombre completo, direccin, fecha de nacimiento y
nmero de telfono. Cada uno de estos datos precdalo de un titulo, ejemplo: Telfono : 4424444 Ext. 181.

6. Desarrolle un algoritmo que lea un nmero negativo e imprima un numero y el positivo del
mismo.

7. Desarrolle un algoritmo que para leer de un mismo registro el nombre de un empleado, su


salario bsico por hora y el numero de horas trabajadas en el mes. Calcular su salario mensual y obtener tanto el nombre como su salario mensual,

8. Realizar un algoritmo que permita intercambiar entre si los valores de dos variables A y B. 9. Lea un nmero NRO e imprima el nmero y el resultado de restarle 2387. 10. Lea un nmero y calcular el 5% del nmero ledo. Imprima tanto el nmero como el
porcentaje calculado.

11. Lea el nombre de un empleado, su salario bsico por hora, el nmero de horas trabajadas en
el perodo y el porcentaje de retencin en la fuente. Calcular el salario bruto, el valor de la retencin y su salario neto.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

36

UNIDAD 3 PROGRAMACION MODULAR


OBJETIVO: Solucionar los problemas, aplicando la tcnica de dividir en subprogramas o mdulos, que le facilitan el trabajo y la identificacin de errores.

CONTENIDO TEMTICO
Definicin de programacin modular Funciones y procedimientos Funcin recursiva

Competencias acadmicas a desarrollar Aprender a dividir problemas en subproblemas Conocer la diferencia entre funcin y procedimiento, variables globales y locales.

Indicadores de logro: Conceptual: Identificar la diferencia entre procedimiento y funcin. Procedimental: Soluciona los problemas planteados, por medio de algoritmos que utilicen subprogramas. Actitudinal: Muestra inters en aplicar la tcnica modular y habilidad para aplicar las diferentes estructuras.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

37

3. PROGRAMACION MODULAR
3.1 PROGRAMACIN MODULAR

La programacin modular es un mtodo flexible para mejorar la productividad de los programas. En esta los programas se dividen en mdulos independientes que ejecutan las diferentes tareas del programa. Hay un modulo principal que controla todo lo que sucede, y transfiere el control a los diferentes mdulos. Cada modulo es independiente de los otros en el sentido que ninguno puede acceder directamente a otro. La programacin modular permite resolver un problema mediante su descomposicin en varios problemas mas simples llamados mdulos, que se codifican y procesan independientemente. Un problema complejo se puede dividir en pequeos subproblemas ms sencillos. Estos subproblemas se conocen como Mdulos y su complementacin en un lenguaje se llama subprograma (procedimientos y funciones). Un subprograma realiza las mismas acciones que un programa, sin embargo, un subprograma lo utiliza solamente un programa para un propsito especifico. Un subprograma recibe datos de un programa y le devuelve resultados (el programa llama o invoca al subprograma, este ejecuta una tarea especifica y devuelve el control al programa que lo llamo). Funciones Tipos de Mdulos Procedimientos Un programa modular se compone de un programa principal y subprogramas. El programa principal debe contener operaciones fundamentales y las llamadas a los subprogramas. La mayora de los lenguajes de programacin permiten la lenguaje reciben diferentes nombres: programacin modular y segn el

NOMBRE PROCEDIMIENTOS SUBRUTINAS SECCIONES MODULOS PAQUETES

LENGUAJE DE PROGRAMACION PASCAL FORTRAN BASIC COBOL MODULA-2 ADA

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

38

3.2 SUBALGORITMOS O SUBPROGRAMAS

Un mtodo de solucionar un problema complejo como ya lo hemos dicho es subproblemas (mas sencillos) , y estos a su vez en otros mas simples.

dividirlo en

Un subprograma es programa independiente que resuelve una funcin definida por los mdulos. Estos pueden representar tareas que se ejecutan una sola vez o tareas repetitivas; utiliza datos provenientes del programa principal o de otro subprograma y produce resultados para el programa principal o el otro subalgoritmo que lo utiliza o invoca.

Cuando el programa principal o un subprograma invoca o llama un subprograma este comienza ejecutarse hasta llegar a la ltima instruccin. Cuando se termina de ejecutar el subalgoritmo este debe regresar al punto del programa desde donde fue llamado.

La comunicacin entre los mdulos se realiza por medio de datos que se desean pasar al mdulo llamado.

parmetros que contendrn los

La utilizacin de los algoritmos consta de dos etapas: Declaracin: Proceso en el cual se escribe el subalgoritmo. Activacin: es proceso en el cual se utiliza un subalgoritmo dentro de un algoritmo.

3.3 EJEMPLO GENERAL PARA UN ALGORITMO EN SUBPROGRAMAS


Programa principal Inicio Prueba <Acciones> Llamar a subprograma 1 <Acciones> Llamar a subprograma2 <Acciones> fin. Subprograma 1 Inicio <Acciones> Retorna a prueba y realiza acciones Subprograma2 Inicio <Acciones> Retorna prueba y realiza acciones

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

39

3.4 FUNCIONES Es un subprograma que proporciona un valor o entrada. resultado segn sean sus parmetros de

Funcin: Una funcin en matemticas, es una operacin que toma un o mas valores (argumentos) y devuelve un resultado (valor de la funcin para los argumentos dados). Por ejemplo: F(X) = X / (1+X2) Donde: F .. X .

Nombre de la funcin Es el argumento (tambin conocido como parmetro formal)

Definicin de funciones: Una definicin de funcin se presenta de la siguiente manera: Funcin nombre_funcion (p1, p2, , pn) Inicio Bloque de instrucciones Fin Donde: Funcin Es la palabra clave que nos indica una definicin de funcin. Nombre_funcion .. Es el identificador con el cual se reconoce a la funcin en el cuerpo del algoritmo principal. P1,p2,,pn ... Es el grupo de parmetros que define a la funcin.

Llamado a una funcin: Cuando definimos una funcin solo indicamos al algoritmo que esta funcin existe, pero una definicin de funcin no implica la realizacin de las instrucciones que la constituyen. Para hacer uso de una funcin, el algoritmo principal la debe llamar. Por ejemplo: Funcin F(X) Inicio F = X /(1 + X^2) Fin Inicio Imprimir Este es el algoritmo principal Leer N R = F(N) llamado de la funcin Imprimir El resultado de la funcin es:,R Fin

Resumen. Una funcin se f Nombre de la funcin p son los parmetros.

representa: f (p1, p2......,pn) donde:

Una funcin se invoca cuando se le hace referencia mediante su nombre y la lista de los parmetros actuales en cualquier instruccin donde se pueda usar una constante o variable.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

40

Las funciones pueden ser internas o externas.

3.4.1 Funciones internas: Conjunto de operaciones predefinidas por la mayora de los lenguajes de programacin. Ejemplo: Funcin Abs(x) Cos(x)

generalmente incorporadas

Descripcin Tipo de argumento Tipo de resultado valor absoluto de x entero o real igual argumento coseno de x (radianes) entero o real real

3.4.2 Funciones externas: Son aquellas definidas por el usuario. Las funciones deben ser declaradas dentro del los programas con un subprograma o subalgoritmo que en general se define con una serie de instrucciones similares a un programa. FORMATO O SINTAXIS: Funcin nombre (lista de parmetros): resultado VARIABLES LOCALES A LA FUNCION IFUNCacciones> " nombre < expresin fin funcin.

Ejemplo 15: Funcin Tangente de X (generalmente las funciones trigonomtricas son funciones internas) Real Funcin tan (real: X) x es el `parmetro de entrada funcin tan es igual a sen (x) / cos(x), ngulo x en radianes Inicio Devolver (sen(x) / cos(x)) Fin-funcin

3.5 PROCEDIMIENTOS Un subprograma que necesita cero, uno definidos en su formato. o varios valores en funcin de los parmetros

Un procedimiento se llama con una instruccin llamar- a con el nombre del procedimiento. Al ejecutarse la llamada la rutina que la efecta se detiene momentneamente y el control pasa al procedimiento llamado. Despus de que se termina de ejecutar el procedimiento el control se devuelve a la rutina que lo llamo y continua con la instruccin siguiente a llamar. Los valores que devuelve el procedimiento se envan a travs de una lista de parmetros. Los parmetros de entrada reciben valores del programa llamador y los de salida devuelven valores al programa llamador. NOTA: Parmetros son los datos mediante los cuales un procedimiento se comunica con la unidad del programa que llama. Pueden ser de entrada comunican valores al

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

41

procedimiento; de salida envan valores desde el procedimiento entrada / salida que sirve para ambos propsitos. Formato: Procedimiento nombre (lista de parmetros): resultado VARIABLES LOCALES AL PROCEDIMIENTO IPROC Instrucciones para realizar el procedimiento resultados FIN PROC.

al programa que llama; de

3.6 DIFERENCIAS ENTRE LOS PROCEDIMIENTOS Y LAS FUNCIONES.

Un procedimiento es llamado desde el programa principal mediante su nombre y una lista de parmetros, o bien con la instruccin llamar a. Al ser llamado el procedimiento el programa principal se detiene momentneamente y el control pasa al procedimiento llamado, una vez se ejecuta el procedimiento, se regresa a la instruccin siguiente a la que llam al procedimiento. Las funciones devuelven un valor, los procedimientos pueden devolver 0, 1 varios valores y en forma de lista de parmetros. El procedimiento se declara igual que la funcin por un nombre pero este no est asociado al resultado y en la funcin si.

3.7 VARIABLES

Las variables que se utilizan en programas y subprogramas se

definen como globales y locales.

3.7.1 Variables globales: son las que se utilizan en todo el programa y tienen actuacin tanto en el programa principal como en los subprogramas. Su definicin se realiza en el programa principal. 3.7.2 Variables locales; son las que se utilizan en la definicin de un subprograma (incluyendo parmetros). Solo tiene actuacin o significado dentro del subprograma donde se definen y no son conocidas fuera de el. Su definicin debe ser dentro del subprograma. A las variables locales slo se accede desde el programa donde se declaran y a las globales se tiene acceso desde cualquier parte del programa ( sea programa principal, subprograma, etc.). Ejemplo 16; Realice una funcin para sumar 2 nmeros enteros FUNSUMAR (VALOR a,b : entero) : resulta entero VAR SUM: ENTERO INICIO FUNC SUM = a + b SUMAR = SUM

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

42

RETORNE (SUMA) FIN-FUNC Ejemplo 17: Se tiene el nombre del artculo, nmero de artculos vendidos, el valor de cada artculo. Calcule el valor de la venta. Mostrar el nombre, el total de la venta. Realice una funcin ANALISIS DATOS DE ENTRADA NOMART= nombre del artculo NOARTV = nmero de artculos vendidos VRART = valor de cada articulo DATOS DE SALIDA V_VRVTA = valor de la venta V_VRVTA = NOARTV *VRART INICIO P_PPAL CARAC = NOMART ENT = NOARTV REAL = VRART, V_VRVTA LEER : Nombre del artculo NOMART, nmero de artculos vendidos NOARTV valor de cada articulo VRART MOSTRAR : Nombre del artculo NOMART Total de la venta REAL V_VRVTA (ENT:NOARTV ,REALVRART) FIN P_PPAL FUNC REAL: V_VRVTA(ENT:NOARTV ,REALVRART) V_VRVTA = NOARTV *VRART RETORNE (V_VRVTA) FIN FUNC. PRUEBA DE ESCRITORIO NOARTV 15 40 VRART 20 25 V_VRVTA 0 300 0 1000 Calculos 15 * 20 40 * 25

3.8 RECURSIVIDAD
Trmino recursividad es un concepto amplio, difcil de precisar. Ejemplo una fotografa de otra fotografa, en un noticiero de TV un periodista transfiere el control a otro que est en otra ciudad y este a su vez puede transferirlo a otro. En programacin podemos decir que es un programa que se llama a si mismo y puede ser directa e indirecta. Directa: cuando un programa se llama a si mismo Indirecta: cuando el programa llama a otro programa y este a su vez llama al primero.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

43

En general, cuando se escriben algoritmos usando recursividad, lo usual es que sea muy obvia cul es la modificacin que hay que hacerles a los argumentos que recibe el procedimiento antes de hacer el llamado recursivo. De esta forma se evita que haya ciclos recursivos infinitos. En resumen, la recursividad se basa en el hecho de que cuando un procedimiento es invocado, obtiene una copia nueva de todas sus variables locales, que generalmente estn en la pila de ejecucin del programa; ah es donde queda tambin registrado el lugar de retorno para la rutina. Cuando el procedimiento recursivo trabaja sobre sus variables, est usando las que estn en el nuevo registro de activacin, por lo que, cuando termina su trabajo, regresa al punto de invocacin que le corresponde. En realidad la recursividad existe porque el llamado entre procedimientos se implementa usando registros de activacin organizados en una pila de ejecucin para el programa.

Ejemplo 18: Realice una funcin que calcule el termino n de la serie Fibonaci. NOTA : La serie Fibonaci es 0 1 1 2 3 5 8 13............n Funcin Fibonaci (entero::n) { Funcin general}l Ent. I, Ultimo, Penltimo, Suma Inicio Func Suma 1 Penltimo 1 Ultimo 1 Para I = 2, n haga Penltimo Ultimo Ultimo Suma Suma Penltimo + Ultimo Fin para Devolver : Suma Finfunc. Ejemplo 19: Ahora realizamos un algoritmo recursivo. Por definicin : Fib(0) = 0 Fib(1) = 1 Fib(2) = Fib(1) + Fib(0) 1+0=1 Fib(3) = Fib(2) + Fib(1) 1+1=2 Fib(4) = Fib(3) + Fib(2) 2+1=3 Fib(5) = Fib(4) + Fib(3) 3+2=5 La funcin recursiva dado que Fib(n) = Fib (n-1) + Fib(n-2) seria: Funcin fib entero Inicio Si n = 0 o n = 1 entonces Devolver 1 Sino Devolver Fib (n-1) + Fib(n-2) Finsi Fin funcin .

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

44

3.9 ACTIVIDADES TRABAJO INDEPENDIENTE


Frmese una opinin acerca de qu programacin modular?; Haga la diferencia entre los conceptos: funcin, procedimiento, parmetros. Elabore el taller de unidad 3, funciones y procedimientos, que hace parte de tu trabajo independiente y los ejercicios del taller de la unidad 2, realcelo en programacin modular Consulta la pagina http//espanol.geocities.com/evmejia_36

3.10 TALLER UNIDAD 3 FUNCIONES y PROCEDIMIENTOS

1. Realice un procedimiento que permita intercambiar el valor de dos variables 2. Realizar una funcin que permita obtener el trmino n de la serie de Fibonacci. 3. Realizar una funcin que permita obtener el valor absoluto de un nmero 4. Realice un procedimiento que permita convertir coordenadas polares (ngulo, radio) en
cartesianas( (x,y). X = radio * cos(ngulo) Y = radio * Sen(ngulo)

5. Realice un procedimiento que permita obtener la divisin entera y el resto de la misma


utilizando nicamente operadores de suma y resta.

6. Realizar una funcin que permita obtener el mayor valor de tres parmetros de entrada A, B, y
C; los tres valores son diferentes.

7. Realice un procedimiento que permita verificar si una fecha es vlida o no. 8. Realice un procedimiento que permita calcular el valor de Pi. 9. Realizar una funcin que permita obtener mximo comn divisor de dos nmeros mediante el
algoritmo de Eucldes.

10. Realice un procedimiento que permita verificar si un nmero ledo es primo o no.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

45

UNIDAD 4 INSTRUCCIONES DE DECISIN

OBJETIVO: Reconocer, diferenciar y manejar apropiadamente los tipos de datos, los operadores lgicos y matemticos, los conceptos de variables y constantes; las instrucciones de entrada y salida de datos y manejo de seleccin doble, anidada y mltiple. Aplicar las diferentes estructuras de decisin de acuerdo a los requerimientos del problema Objetivos especficos: Aprender el manejo de las instrucciones de decisin Adquirir destreza en el anlisis del problema planteado y utilizando mltiples decisiones. Hacer algoritmos con el manejo de los datos realizando las operaciones con una secuencia lgica. CONTENIDO TEMTICO Alternativas: Simples Dobles En bloque Anidadas Mltiples Competencias acadmicas a desarrollar Aprender el manejo de las instrucciones de decisin Adquirir destreza en el anlisis del problema planteado y utilizando mltiples decisiones. Hacer algoritmos con el manejo de los datos realizando las operaciones con una secuencia lgica.

Indicadores de logro: Conceptual: Identifica las instrucciones de entrada y salida de informacin, el proceso de los datos. Procedimental: Implementacin eficaz de soluciones utilizando las estructuras ms adecuadas de acuerdo al caso. Escogiendo la alternativa que la solucin del problema requiera. Actitudinal: Reconoce cual es la estructura mas adecuada.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

46

4. ENUNCIADOS DE DECISIN O ALTERNATIVOS


4.1 CONDICIONAL En el desarrollo de un algoritmo la mayora de las veces se ver abocado a tomar una decisin o realizar comparaciones o agrupacin, para que ste sea general y flexible se deben tener en cuenta las alternativas que se puedan presentar en un momento dado. Se utilizarn para hacer preguntas, comparaciones y tomar decisiones. Por medio de preguntas de exclusin, excepcin, y comparacin se puede tomar una decisin o conocer alguna situacin.

FORMATO O SINTAXIS
Decisin Compuesta SI Condicin o condiciones unidas por operadores lgicos ENTONCES Bloque de instrucciones que deben ejecutarse cuando si se cumple la condicin. SINO (De lo contrario o de otro modo) Bloque de instrucciones que deben ejecutarse cuando no se cumple la condicin. FINSI (Fin de las preguntas).

Decisin con operadores lgicos SI Condicin o condiciones (unidas por operadores lgicos) ENTONCES

Bloque de instrucciones cuando se cumple la(s) condicin(es) FINSI (Fin de las preguntas).

Ejemplo 20: Elaborar programa en seudo cdigo (EPES) que lea o entre cdigo, nombre, salario bsico horas, nmero de horas trabajadas, retencin y aos en la empresa de un empleado. S, el empleado lleva ms de 10 aos en la empresa adicionarle salario neto. una bonificacin de $100.000 al

Si el empleado lleva ms de 5 aos en la empresa y menos de 10 aos y su salario neto es menor de $60.000 entonces imprimir Tendr aumento de sueldo. S el empleado lleva menos de un ao en la empresa imprimir Bienvenido. Adems imprimir cdigo, nombre y Salario Neto del empleado. ANALISIS DATOS ENTRADA

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

47

CODEMP : Cdigo del empleado NOMEMP : Nombre del empleado SALBH : Salario Bsico Hora NHT : Nmero de Horas Trabajadas RET : Retencin AEMP: Aos en la empresa DATOS DE SALIDA ? SALBR : Salario Bruto SALN : Salario Neto.

PROGRAMA SALARIOS INICIO PROG.PPAL. PASO 1 ASIGNACION DE TIPO A LAS VARIABLES CARAC: CODEMP ; NOM EMP REAL: SALBH ; RET; SALBR ; SALN ENT :AEMP ; NHT Se agruparon varias variables en una sola lnea separadas por punto y coma. Tambin se colocan las variables y constantes con su tipo en cada lnea. PASO 2 INICIALIZACION DE LAS VARIABLES DE TRABAJO SALBR ; SALN 0 PASO 3 ENTRADA DE DATOS Mostrar entre cdigo Lea CODEMP Mostrar entre Nombre Lea NOMEMP Mostrar entre Salario Bsico Hora Lea SALBH Mostrar entre Horas Trabajadas Lea NHT mostrar entre Retencin Lea RET mostrar Entre aos en la Empresa Lea AEMP Los ttulos Mostrar entre Cdigo, etc. se utilizan para que informacin acerca del dato que debe digitar. el usuario tenga

PASO 4 CALCULOS Y COMPARACIONES CON IMPRESIONES INTERMEDIAS CALCULOS (REAL:SBR:SBH:SN; ENT: NHT:AEMP) PASO 5 SALIDA DE INFORMACIN MOSTRAR Cdigo=;COD,Nombre: NOM,Salario Neto= SN La salida de informacin se hizo en una sola lnea combinando separadas por comas y punto y coma. FIN PROG.PPAL INPROC CALCULOS (REAL:SBR:SBH:SN; ENT: NHT:AEMP) ttulos y variables

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

48

SBR = SBH * NHT (Calcula el salario bruto) SN = SBR RT (conocido el salario bruto puede calcular el salario neto) SI AEMP > 10 ENTONCES SN = SN + 100.000 ( le suma la bonificacin a los empleados con mas de 10 aos) FINSI SI (AEMP > 5) ^ ( AEMP < 10 ) ^ (SN < 60000) ENTONCES MOSTRAR Tendr aumento de sueldo FINSI SI AEMP < 1 ENTONCES MOSTRAR Bienvenido FINSI RETORNE FIN PROC.. Ntese que no se utiliza la sentencia SINO (de lo contrario o de otro modo) porque ninguna de las condiciones expuestas especificaba que hacer en caso de que no se cumpliera la condicin. PRUEBA DE ESCRITORIO CODEMP 1234 NOMEMP Luis SALBH 7000 NHT 40 AEMP RET 6 28.400 SALBR 280.000 SALN 257.600

4.2 ESTRUCTURA SEGUN/ CASO

Con frecuencia, es necesario que existan mas de dos elecciones posibles. Este problema como s vera mas adelante, se podra resolver por estructuras alternativas, anidadas o en cascada; Sin embargo, este mtodo si l nmero de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente la legibilidad. La estructura caso es una alternativa mltiple.

La estructura de decisin mltiple evaluar una expresin que podra tomar n valores distintos, 1, 2, 3,..., n. Segn que elija uno de los de estos valores en la condicin, se realizara una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles.

FORMATO O SINTAXIS Segn opcin hacer V1 : accin 1 V2 : accin 2 V3 : accin 3 : Vn : accin n Sino Accin no se cumple Fin segn. En caso de V1 : accin 1 V2 : accin 2 V3 : accin 3 : Vn : accin n Sino Accin no se cumple Fin caso

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

49

FORMATO O SINTAXIS Caso_de expresin hacer e1 : {conjunto de instrucciones} e2 : {conjunto de instrucciones} otro_caso: {conjunto de instrucciones} fin_caso

Ejemplo 21 : Se desea disear un algoritmo que escriba los nombres de los das de la semana en funcin del valor de una variable DIA introducida por teclado, que representa su posicin dentro de la semana. Los das de la semana son 7; por consiguiente el rango de valores de DIA ser 1... 7, y caso de que da tome un valor fuera de este rango se deber producir un mensaje de error advirtiendo la situacin anmala. Programa nombre_dia INICIO lea DIA . . . . . . . . . . . fin Caso_de DIA hacer 1: 2: 3: 4: 5: 6: 7: escriba LUNES escriba MARTES escriba MIRCOLES escriba JUEVES escriba VIERNES escriba SABADO escriba DOMINGO escriba "ERROR

otro_caso: fin_caso

4.3 CONDICIONALES ANIDADOS


Las estructuras de condicin no solo implican la seleccin de una de las dos alternativas. Es posible tambin utilizar la instruccin si para que contengan mas de dos alternativas. Una

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

50

estructura si - entonces puede contener otra si entonces y esta a su vez puede contener otra, dndose lo que llaman condicionales anidados.

Caso 1. Se tienen tres posibles valores para una variable. SI Condicin1 (Entonces) Bloque de instrucciones que deben ejecutarse cuando cumple la condicin1. SINO (De lo contrario o de otro modo) SI Condicin2 (Entonces) Bloque de instrucciones si la condicin2 SINO (De lo contrario o de otro modo) Bloque de instrucciones que deben ejecutarse cuando no se cumplen la condicin1 y la condicin 2 FINSI (fin condicin 2) FINSI (Fin de la condicin 1).

Ejemplo 22: Se tiene el nombre de un vendedor, el valor de la venta y el cdigo del producto. La comisin de este vendedor se le liquida de acuerdo al cdigo del producto que vende: si el cdigo del producto es 1 la comisin es del 5% sobre el valor de sus ventas; si el cdigo del producto es 2 la comisin es del 7.5% sobre el valor de sus ventas; si el cdigo del producto es 3 la comisin es del 6% sobre el valor de sus ventas. Imprima el nombre del vendedor y su comisin. SOLUCION ANALISIS DATOS DE ENTRADA Nom_vend = nombre del vendedor Cod_prod = Cdigo del producto que vende el vendedor Val-vta = valor de la venta del vendedor DATOS DE SALIDA Com_ven = Comisin que recibe el vendedor
Com_vend = Val-vta * % ( formula para calcular la comisin . el % toma el valor de acuerdo al codigo del producto)

( PROGRAMA COMISIONES) INICIO PROG. PPAL. Asignar tipo de valores que tendrn las variables CARAC: Nom_vend; Cod_prod REAL: Val-vta ; Com_ven Inicializar variables en que se almacenan los clculos Com_ven = 0 Lectura de los datos de entrada LEER; Nombre del vendedor Nom_vend;Codigo del producto; cod_prod;

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

51

Valor de la venta Val-vta MOSTRAR Nombre del vendedor Nom_vend MOSTRAR: La comisin del vendedor Com_ven (REAL:Val-vta, CARAC:cod_prod) Se invoca una funcin que realiza los clculos para hallar la comisin de acuerdo al l cdigo del producto FIN PROG- PPAL. INFUNC REAL Com_ven (REAL: Val-vta; CARAC:cod_prod) SI Cod_prod = 1 (Entonces) Com_vend = Val-vta * 0.05 SINO (De lo contrario o de otro modo) SI Cod_prod = 2 (Entonces) Com_vend = Val-vta * 0.075 SINO (De lo contrario o de otro modo) Com_vend = Val-vta * 0.06 FINSI FINSI RETORNE Com_vend FIN FUNC.

PRUEBA DE ESCRITORIO Nom_vend Juan Vlez Ana Medina Cod_prod 2 3 Val-vta 10000.000 8000.000 Com_ven 750.000 480.000

Caso 2. Se tienen VARIAS CONDICIONES para unas variables. SI Condicin1 (Entonces) Bloque de instrucciones que deben ejecutarse cuando si cumple condicin1. SINO (De lo contrario o de otro modo) SI Condicin2 (Entonces) Bloque de instrucciones si cumple la condicin2 y niega la condicin 1 SINO (De lo contrario o de otro modo) SI Condicin 3 (Entonces) Bloque de instrucciones si cumple la condicin3 y niega las condiciones 1 y 2 SINO (De lo contrario o de otro modo) Bloque de instrucciones que deben ejecutarse cuando no se cumplen las Condiciones 1, 2 y 3 FINSI (fin condicin 3)

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

52

FINSI (fin condicin 2) FINSI (DE LA CONDICIN 1). NOTA: Observe que el ltimo condicional que se abre es el primero que se cierra. Ejemplo 23 Se tiene el nombre, la nota parcial 1 y parcial 2, el seguimiento y el examen final, calcular la nota definitiva ( seguimiento 40%) , mostrarla con su nombre y decir si gan, perdi o habilita definitiva. ANALISIS DATOS DE ENTRADA NOMEST = nombre del estudiante CODEST = cdigo de estudiante NPAR1 = Nota del parcial 1 NPAR2 = Nota del parcial 2 NSGTO = Nota del Seguimiento NEXFIN = Nota del examen final DATO DE SALIDA NDEF = nota definitiva.( de acuerdo al enunciado la formula es: NDEF = NPAR1*0.20+ NPAR2* 0.20+ NSGTO * 0.40+ NEXFIN* 0.20) PROGRAMA NOTAS INICIO PROG- PPAL. ASIGNAR TIPO A LOS IDENTIFICADORES CARAC: CODEST, NOMEST REAL_ NDEF, NPAR1, NPAR2, NSGTO, NEXFIN INICIAR VARIABLE DE TRABAJO NDEF = 0 LEER: Cdigo del estudiante CODEST, Nombre del estudiante NOMEST, Nota del parcial 1 NPAR1, Nota del parcial 2 NPAR2, Nota del seguimiento NSGTO, Nota del examen final NEXFIN CALCULARNOTA( REAL: NDEF: NPAR1: NPAR2:: NSGTO:NEXFIN) MOSTRAR NOMBRE ESTUDIANTE NOMEST CODIGO ESTUDIANTE CODEST SU NOTA DEFINITIVA NDEF FIN PROG.PPAL. IN PROC. CALCULARNOTA( REAL: NDEF: NPAR1: NPAR2:: NSGTO:NEXFIN) NDEF = NPAR1*.20+ NPAR2*. 20+ NSGTO * .40+ NEXFIN* .20 SI NDEF >= 3.0 ENTONCES MOSTRAR GANO SINO SI NDEF >= 2.0 ENTONCES MOSTRAR: HABILITA SINO MOSTRAR PERDIO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

53

FINSI FINSI RETORNE (NDEF) FINPROC. PRUEBA DE ESCRITORIO NOMEST Juan Diaz CODEST 2345 NPAR1 3.0 NPAR2 2.5 NSGTO 3.0 NEXFIN 2,0 NDEF 0 2.7

HABILITA

Juan Daz 3567

2345

2.7 4.0 3.0 5.0 3.6 0 4.1

Luisa Jaramillo

GANO Luisa Jaramillo

3567

4.1

4.4 MODELO GENERAL DE UN DIAGRAMA USANDO CONDICIONALES

INICIO ( Nombre del programa) ( 1) ASIGNAR TIPO A VARIABLES Y CONSTANTES ( todas las variables y constantes que se definieron en la lista de variables) ( 2) INICIAR VARIABLES DE TRABAJO Y (3)LEER DATOS DE ENTRADA (4) PROCESAR DATOS LEIDOS Clculos necesarios para solucionar el problema Los clculos pueden ser una(s) funcin(es) o un(os) procedimiento(s)(ver nota) Evaluar condiciones Realizar los clculos necesarios para solucionar el problema (5) MOSTRAR RESULTADOS OBTENIDOS FIN DEL INICIO CONSTANTES

Nota: El orden de los clculos y el proceso se realizan segn sea el enunciado. Los clculos pueden ser antes, dentro o despus del condicional.

4.5 ACTIVIDADES TRABAJO INDEPENDIENTE


Identifique claramente los conceptos de; qu es un condicional?; Que es una instruccin de control. ? Frmese una opinin acerca de; qu es un condicional anidado? Cul es la verntaja de utilizar una estructura caso cuando una variable puede tomar varios valores ? Practique los condicionales anidados y condicionales mltiples

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

54

Elabora el taller de la unidad 4, condicionales simples, compuestos y mltiples: prctica el anidamiento de los condicionales compuestos- Todo esto hace parte de tu trabajo independiente. Consulta la pagina http//espanol.geocities.com/evmejia_36

4.6

TALLER UNIDAD 4 CONDICIONALES

Practicar alternativas compuestas y condicionales anidados. Realice los algoritmos utilizando funciones y procedimientos

1. Leer 2 nmeros para realizar una divisin. Si el segundo nmero es Cero (0) imprima
"divisin no posible"

2. Leer un nmero e imprimir su raz cuadrada. Si el nmero es


un mensaje "Raz imaginaria"

menor que Cero(0) imprimir

3. De 3 nmeros cualquiera. Imprimirlos en orden ascendente de menor a mayor.


4) Leer 4 nmeros e imprimir el mayor de ellos.

4. Leer x, y, z compararlos y si al menos dos son iguales imprima un mensaje que diga: 'Hacen
pareja".

5. Leer a, b, c imprimir el que sea mltiplo de 7 de lo contrario


divisible por 7".

Imprima un mensaje "No es

6. Leer un nmero si este es > 0 sumarle 10 y poner el resultado en una variable SUM, de
lo contrario si el nmero es < 0 multiplquelo por su positivo.

7. Imprima el nombre y la edad de una persona, si esta es mayor de edad, mujer y casada. Si
es hombre y soltero imprima slo su nombre, si no cumple alguno de los requisitos, imprimir un mensaje "No cumple con lo pedido ".

8. Se desea seleccionar un atleta para una maratn internacional, para seleccionarlo este
debe haber terminado el maratn anterior, en un tiempo determinado. Los tiempos son 150 minutos para hombres menores de 40 aos; 175 minutos para hombres con una edad mayor o igual a 40 aos y 180 minutos para mujeres. Los datos a introducir (leer) son: Sexo, Edad y tiempo efectuado en su maratn anterior.

9. Leer un nmero si es par imprimir su cubo, si es impar imprimir su cuarta. 10. Deducir si un nmero ledo desde el teclado es positivo, negativo o igual a Cero (0). 11. Realice un seudo cdigo para saber si un ao ledo es bisiesto o no. Es bisiesto si el ao/4 y
el residuo es = 0 y adems que sea mltiplo de 100 y de 400 mayor de 1000.

12. Comparar 3 nmeros entre s y determinar cual es menor.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

55

13. Imprimir el mayor entre tres nmeros. 14. Leer tres nmeros imprimirlos en orden descendente. 15. Leer dos Nmeros e imprimirlos solo si son los dos positivos. 16. Se tiene la siguiente informacin:
1 Suma 2 Resta 3 Producto 4 Divisin 5 Exponenciacin Escoger una opcin y realizar la operacin indicada con 2 nmeros que sern ledos luego de escoger la opcin.

17. Hacer un programa el cual indique si un nmero es negativo y convertirlo a positivo; si es


positivo a negativo.

18. Hacer un programa que imprima el nmero medio de tres nmeros.


es aquel que no es ni el menor ni el mayor.

El nmero medio

19. Leer A, B, C Imprimir un mensaje diciendo si forman Tringulo, Escaleno, Equiltero o


Issceles. N ota : A, B, C son los lados del tringulo Un tringulo es equiltero, si todos sus lados son iguales. Issceles, si al menos dos de sus lados son iguales. Escaleno, cuando todos sus lados sean desiguales.

20. Una agencia de alquiler de autos cobra la hora de uso del vehculo a un valor determinado
de acuerdo a la temporada, si el cliente usa el carro por ms de 10 horas le hacen un descuento del 20% por cada hora de ms. Haga un programa que lea horas de uso, valor hora, y determine el total a pagar.

21. Una empresa requiere de un celador que cumpla los siguientes requisitos: Hombre casado,
mayor de 30 aos y menor de 45.

22. Se tienen los datos de una persona (Nombre, Edad, Sexo, Estado Civil). Imprimir un mensaje
de "Aceptado" siempre y cuando cumpla con los requisitos. Sexo = M Masculino Estado Civil =1 Casado(a)

23. Leer de un registro el nombre, el valor de la hora y el nmero de horas trabajadas en la


semana. Calcule el salario semanal teniendo en cuenta que si trabaja mas de 48 Horas le debe pagar un 35% de recargo en la hora.

24. Segn las teoras de Sigmound Freud, el hombre se desarrolla en las siguientes etapas de
acuerdo a su edad nio 13-17 adolescente 18-25 joven 26-55 adulto y mayor de 55 anciano.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

56

Si tenemos la lectura de una edad de persona imprimir en cual etapa se encuentra esta persona.

25. Una tienda de libros vende sus libros de acuerdo a las siguientes especificaciones:
Valor del IVA 16% Precio base 1.000 Si nmero de pginas es mayor de 201 el precio del libro se incrementa en 10%. Se leen los siguientes datos: nombre del libro, nmero de pginas.

26. Una tienda de libros vende sus libros de acuerdo a las siguientes especificaciones: Precio
base de $ 5000, si el si el nmero de hojas es mas 100 y menos de 200 $7 por cada hoja, entre 200 y 300 hojas $8 de recargo; $9 de recargo por cada hoja si el nmero de hojas es mayor de 300. Realizar un algoritmo que calcule el precio del libro y lo imprima con su nombre. Se lee el nombre del libro y el nmero de pginas.

27. Escribir un programa que pregunte si Ud fuma. Si fuma siguiente:


1 Malboro 2 Royal 3 Derby 4 Pielroja 5 Kool Permita adems de escoger la opcin imprimir la marca de

muestre lo

cigarrillos que fuma.

28. Leer un nmero de mes y decir cuntos das tiene este. Si es mes dos verificar si el ao es
bisiesto y decir que este mes tiene 29 das , de lo contrario tiene 28. Nota: Meses 4, 6, 9, 11 tienen 30 das. Meses 1, 3, 5, 7, 8, 10, 12 tienen 31 das. Mes 2 tiene 28 o 29 das.

29. Un cliente que tiene en inversin en el banco. El decidir reinvertir con los intereses siempre y
cuando estos excedan a $100.000 sino solo dejara el capital . Desea saber cuanto dinero tendr finalmente en su cuenta. Se lee el valor invertido y la tasa de inters.

30. Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera:
Si trabaja 40 horas o menos se le paga $ 5000 por hora Si trabaja mas de 40 horas se le paga $ 5000 por cada una de las primeras 40 horas y $6000 por cada hora extra.

31. Se tienen el rea y el valor del metro cuadrado de una propiedad y la forma de pago de la
cuota inicial.. Se pide calcular el precio de venta, el valor de la cuota inicial que es el 45% del valor del terreno.. Si la forma de pago es = 1 el recibe un descuento del 10% sobre la cuota inicial y si forma de pago es = 2 se le recarga un 8% sobre su valor. Mostrar el valor de la propiedad y el valor a pagar de la cuota inicial. (solo hay 2 formas de pago) NOTA : Recuerde que la prueba de escritorio es una herramienta muy til para saber si el algoritmo que diseo si funciona o no funciona.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

57

UNIDAD 5 ENUNCIADOS DE REPETICION (ciclos)


OBJETIVO: Aplicar y manejar eficazmente las estructuras tipo ciclo para la formulacin de instrucciones repetitivas en el manejo de varios registros ubicando adecuadamente los elementos que van incluidos dentro de la estructura. Recurrir al manejo de los ciclos aplicando las diferentes modalidades de acuerdo al tipo de registro. Objetivos especficos: Utilizar contadores y acumuladores en la solucin de un problema con varios registros. Reconocer los diferentes ciclos y saber aplicarlos de acuerdo a la situacin. Utilizar datos centinelas en el manejo de los ciclos. Desarrollar algoritmos con suiches y variables de rompimiento. Asimilar el concepto de los ciclos anidados, variables de grupo y variables generales

CONTENIDO TEMTICO
Definicin de contadores y acumuladores Definicin de suiches o banderas Definicin de registro centinela Definicin de registro identificador Instrucciones repetitivas: Ciclo Mientras Ciclo Haga Para o Desde Ciclo Repita Hasta Ciclos anidados Rompimiento de control

Competencias acadmicas a desarrollar Utilizar contadores y acumuladores en la solucin de un problema con varios registros. Reconocer los diferentes ciclos y saber aplicarlos de acuerdo a la situacin. Utilizar datos centinelas en el manejo de los ciclos. Desarrollar algoritmos con suiches y variables de rompimiento. Asimilar el concepto de los ciclos anidados, variables de grupo y variables generales Indicadores de logro: Conceptual: Diferencia los conceptos de: acumulador y contador; registro centinela y registro identificador. Procedimental: Soluciona problemas, con mas de un registro, aplicando las estructuras de ciclos y las seales de fin de archivo Implementa soluciones para datos organizados, por grupos. Actitudinal: Demuestra inters en resolucin de problemas simples mediante algoritmos basados en estructuras de control alternativas e iterativas.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

58

5. ENUNCIADOS DE REPETICION 5.1 CONTADOR


rea de trabajo cuyo incremento o decremento es definido. El trmino contador est asociado con la accin de contar. Ejemplo: la registradora de un bus cuenta el nmero de pasajeros que suben a ste durante un determinado tiempo o recorrido.

5.2 ACUMULADOR
rea de trabajo donde se almacena un valor que puede ser variable. El trmino acumulador iene de acumular (sumar cantidades). Por ejemplo: la caja registradora de un almacn suma cantidades diferentes de pagos, al final de la jornada muestra un acumulado o suma de los valores registrados.

5.3 PROMEDIO
Resultado de la divisin de la suma de unas variables (acumulador) dividida por el nmero de variables sumadas (contador). ( PROMEDIO = ACUMULADOR/CONTADOR). Cuando el ejercicio pide un promedio se debe inicializar un Acumulador y un Contador. Generalmente la operacin del promedio se realiza por fuera del ciclo.

5.4 REGISTRO CENTINELA


Es el ltimo registro que contiene una seal de fin de archivo, no se procesa. Cuando se utiliza el registro centinela se debe leer antes del ciclo el primer registro; una vez se procese ste se realiza la lectura del siguiente (antes del fin del ciclo). No hay que utilizar contador para controlar el final del ciclo.

5.5 REGISTRO IDENTIFICADOR


Indica el nmero de iteraciones que deben realizarse en un ciclo. Se lee antes del ciclo, necesita de un contador para controlar cuando se terminan de procesar todos los registros indicados en el registro identificador.

5.6 CICLOS

Los computadores estn diseados para que las operaciones o el conjunto de ellas se puedan repetir muchas veces.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

59

Para poder implementar acciones que deben ejecutarse repetidamente se utilizan los ciclos o bucles y se llama iteracin el hecho de repetir la ejecucin de unas determinadas acciones. Estos se utilizan en un programa cuando se necesita repetir varias veces una serie de acciones o instrucciones.

Las dos principales preguntas que se deben hacer al disear un bucle son: Que contiene el bucle? Cuntas veces hay que repetir.

Generalmente por medio de contadores se controla el nmero de Las tres estructuras repetitivas o iterativas son: Haga mientras Repetir hasta Desde o Para

repeticiones.

La decisin de detener un proceso repetitivo tiene que estar al principio o al final del ciclo, como sucede en el ciclo mientras y el repita hasta; en el ciclo desde o para se realizan un nmero fijo de veces.

5.7 CICLO HACER MIENTRAS


Se utiliza para ejecutar repetitivamente un conjunto o bloque cumple una condicin especfica. de instrucciones mientras se

Permite ejecutar repetitivamente el conjunto de instrucciones llegue a su valor lmite.

hasta que una variable, contador

FORMATO O SINTAXIS Variable = Valor inicial HAGA MIENTRAS condicin Bloque de instrucciones Variable = Variable + i FIN - MIENTRAS Ejemplo 24: Generar e imprimir los nmeros de 0 al 500 Lista de variables X = Contador generador de los nmeros INICIO (PROGRAMA GENERAR NUMEROS) ENT: X

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

60

Solucin: X 0 HAGA MIENTRAS X < 500 IMPRIMA: Numero X X=X+1 FIN - MIENTRAS FIN

PRUEBA DE ESCRITORIO ( Se realiza con 5 nmeros si funciona para estos funciona para 500) X 0 0+1=1 1+ 1 =2 2+ 1 =3 3+1=4 4 +1 = 5

Ejemplo 25 : Leer o entrar 10 nmeros e imprimir slo los nmeros

pares.

ANALISIS : Datos entrada NUM = nmero Datos salida CONT = contador de nmeros CONT = CONT +1 RES = residuo RES = NUM mod 2 (utiliza el operador mod ) INICIO (PROGRAMA NUMEROS PARES) Asignar tipo a las variables ENT: NUM, RES, CONT Inicializar variables de trabajo CONT, RES = 0 HAGA MIENTRAS CONT < 10 MOSTRAR "Entre nmero" LEA Valor del numero NUM RES = NUM mod 2 SI RES = 0 ENTONCES MOSTRAR :Numer par NUM FIN - SI CONT = CONT +1 FIN MIENTRAS FIN DEL PROGRMA PRUEBA DE ESCRITORIO ( Se realiza con 5 nmeros ) CONT NUM 3 6 14 17 9

Ejemplo 26: Un ciclo mientras controlado con un registro identificador Se tiene un archivo con los

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

61

datos de los N trabajadores de la empresa XY cada registro tiene: el nombre, horas trabajadas y valor hora. Calcular el salario neto e imprimirlo con el nombre del trabajador, teniendo en cuenta que si el salario mensual es >= $800.000 la retencin para impuestos es del 4.5% y para seguridad social el 2.5%; si es menor retenerle para seguridad social el 2% y darle un auxilio de 60.000 para transporte. Calcule el total de aportes de los trabajadores para impuestos y para seguridad social, el total de salarios pagados por la empresa. ANALISIS DATOS DE ENTRADA (registro) NOMT= nombre del trabajador SALBH = salario bsico hora pagado al Trabajador NHTRAB = nmero de horas trabajadas por el trabajador DATOS DE SALIDA TAPORS = Total de los aportes para seguridad social TAPORS TAPORS + RETSS TIMPT = Total aportes de los trabajadores para impuestos TIMPT = TIMPT + RETIMP SALNPT = salario neto que recibe el trabajador SALNPT = SALB RETIMP RETSS + AUXTRASP SALB = salario bruto que se le paga al trabajador SALB = SALBH * NHTRAB TSALPE = total de salarios pagados por la empresa TSALPE = TSALPE + SALB RETSS = Retencin para seguridad social RETSS = SALB * % RETIMP = Retencin para impuestos RETIMP = SALB * % AUXTRASP = auxilio para transporte CONT = contador de trabajadores controla el ciclo CONT CONT + 1 Nota: el % toma el valor de acuerdo al monto del salario (PROGRAMA SALARIOS) INICIO PROG-PPAL. ASIGNAR TIPO CARAC: NOMT
REAL: SALNPT,RETSS,RETIMP,AUXTRASP REAL: TSALPE,TIMPT,TAPORS,TSALPE,SALBH,SALB

ENT:NHTRAB ; CONT INICIAR VARIABLES DE TRABAJO TSALPE,TIMPT,TAPORS,; CONT = 0 LEER N ( N : es el nmero de trabajadores de la fbrica) HAGA M. Q CONT < N (controla el ciclo con un contador que debe llegar a N) LEER : Nombre del trabajador NOMT, salario basico horaSALBH, Numero de horas trabajadas NHTRAB (lee los datos de entrada del problema) CAL-SALARIO (REAL:SALBH; ENT: NHTRAB: REAL:SALNPT) Se llama un procedimiento donde se calcula el salario neto de acuerdo al monto del salario bruto TOTALES (REAL: RETSS, RETIMP : REAL TSALPE,TIMPT,TAPORS) Se llama un procedimiento donde se calculan los totales con datos que recibe del procedimiento MOSTRAR: Nombre del trabajador: NOMT Salario neto : SALNPT CONT CONT + 1 ( contador que permite saber cuado se llega a N) FIN MQ. MOSTRAR: El total de Salarios pagados por la empresa TSALPE El total de deducciones para impuestos TIMPT El total de aportes para Seguridad Social: TAPORS FIN PROG-PPAL.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

62

IN-PROC CAL-SALARIO (REAL:SALBH; ENT: NHTRAB: REAL:SALNPT) SALB = SALBH * NHTRAB (se empieza el proceso de los datos ledos ) SI SALB > 800.000 ENTONCES RETIMP = SALB * 0.045 RETSS = SALB * 0.025 AUXTRASP = 0 SINO RETIMP = 0 RETSS = SALB * 0.02 AUXTRASP = 60.000 FIN SI SALNPT = SALB RETIMP RETSS + AUXTRASP RETORNE ( SALNPT, RETIMP. RETSS, SALB) FIN PROC. IN-PROC TOTALES (REAL: RETSS, RETIMP : REAL TSALPE,TIMPT,TAPORS) TIMPT = TIMPT + RETIMP TSALPE = TSALPE + SALB TAPORS = TAPORS + RETSS RETORNE ( TAPORS, TSALPE, TIMPT FIN PROC.

PRUEBA DE ESCRITORIO NOMT Elas Prez Pedro Duran Carmen Gmez TAPORS 0 24.000 29.760 33.600 RETSS 0 24.000 5.760 3.840 TIMPT 0 43.200 NHTRAB 48 48 48 SALBH 20.000 6.000 4.000 SALNPT 0 892.800 342.000 248.160 AUXTRASP 0 0 60.000 60.000 SALBH 0 960.000 288.000 192.000 CONT 0 1 2 3 TSALPE 0 960.000 1248.000 1440.000

RETIMP 0 43.200 0 0

Ejemplo 27 : Un ciclo mientras controlado por un registro centinela: Se tiene un archivo con: valor de las ventas, el nombre y el cdigo de los vendedores de una compaa. A cada vendedor se le liquida la comisin de acuerdo a la siguiente: Si el valor de las ventas: <= 3'000.000 COMISION = 15.000 + 3.5% de esas ventas; si el valor de las ventas: > 3000.000 ^ <= 5`000.000 COMISION = 10.000 + 4.5% de las ventas y si el valor de las ventas es: > 5'000.000 COMISION = 8.000 + 5% de las ventas. Imprima el nombre y la comisin pagada al vendedor; el total de comisiones pagadas por la empresa; el promedio de ventas; el vendedor que realiz la mayor venta y su nombre. El fin de archivo lo controla un cdigo del vendedor 000000

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

63

ANALISIS DATOS DE ENTRADA (registro) CODV = cdigo del vendedor NOMV = nombre del vendedor VRVTAS = valor de las ventas del vendedor DATOS DE SALIDA COMV = comisin del vendedor TCOMPE = total comisiones pagadas por la empresa TVTASVEND = total de las ventas de todos los vendedores PROMVTAS = Promedio de ventas CONTVEND = contador de vendedores NOMVMV = nombre vendedor que realiz la mayor venta MAYVTA = mayor venta (PROGRAMA COMISIONES) INICIO PROG.PPAL. ASIGNAR TIPO CARAC: CODV, NOMV , NOMVMV REAL: MAYVTA, VRVTAS, COMV, TCOMPE, PROMVTAS, TVTASVEND INICIAR VARIABLES DE TRABAJO MAYVTA, TVTASVEND, COMV, TCOMPE, PROMVTAS, CONTVEND LEER: Codigo del vendedor CODV Nombre del vendedor NOMV valor de las ventas VRVTAS (LEER 1er registro) HAGA M.Q (CODV <> 0000000) (Dato centinela cdigo 00000) MOSTRAR: Nombre del vendedor NOMV Comisin del vendedor COMV (REAL:VRVTAS) TOTALES (REAL:VRVTAS, COMV, ENT: CONTVEND : REAL : TVTASVEND, TCOMPE) MAYOR-VTA ( REAL MAYVTA : REAL:VRVTAS: CARAC: NOMVMV, NOMV) LEER: Codigo del vendedor CODV Nombre del vendedor NOMV valor de las ventas VRVTAS (Siguientes registros) FIN M.Q. MOSTRAR: El promedio de ventas es:PROMVTAS(REAL: TVTASVEND ENT: CONTVEND) El total de comisiones pagadas es: TCOMPE La mayor venta la realizo NOMVMV La mayor venta es: MAYVTA FIN PROG.PPAL. IN-FUNC REAL COMV (REAL:VRVTAS) SI VRVTAS > 5`000.000 ENTONCES (empieza el proceso del registro ledo) COMV = VRVTAS * 0.05 + 8.000 SINO SI VRVTAS > 3000.000 ENTONCES COMV = VRVTAS * 0.045 + 10.000 SINO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

64

COMV = VRVTAS * 0.035 + 15.000 FINSI FINSI RETORNE (COMV) FIN FUNC. IN-PROC TOTALES (REAL:VRVTAS, COMV, ENT: CONTVEND : REAL : TVTASVEND, TCOMPE) TVTASVEND TVTASVEND + VRVTAS TCOMPE TCOMPE + COMV CONTVEND CONTVEND + 1 RETORNE (CONTVEND, TVTASVEND, TCOMPE) FIN PROC. IN- PROC MAYOR-VTA ( REAL MAYVTA : REAL:VRVTAS: CARAC: NOMVMV, NOMV) SI VRVTAS > MAYVTA ENTONCES MAYVTA VRVTAS NOMVMV NOMV FINSI RETORNE (MAYVTA. NOMVMV) FIN-PROC. FUNC REAL PROMVTAS(REAL: TVTASVEND ENT: CONTVEND) PROMVTAS = TVTASVEND/ CONTVEND RETORNE(PROMVTAS) FIN-FUNC. PRUEBA DE ESCRITORIO CODV 222333 222433 223569 224678 00000 NOMV Amanda Garca Carlos Cardona Evelio Duran Rubn Jaramillo VRTAS 5000.000 3000.000 7000.000 4000.000

COMV 0 235.000 120.000 358.000 190.0000

TCOMPE 0 235.000 355.000 678.000 868.000

TVTASVEND 0 5000.000 8000.000 15000.000 19000.000

PROMVTAS CONTVEND 0 0 1 2 19000.000/4 3 4750.000 4

NOMVMV Amanda Garca Evelio Duran

MAYVTA 0 5000.000 7000.000

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

65

5.8 CICLO REPITA HASTA

Ejecuta repetitivamente un conjunto o bloque de instrucciones hasta que se cumpla una condicin determinada que puede verificarse al principio o la final del ciclo. Se ejecuta mientras el valor de la condicin es falso, justo lo contrario al ciclo mientras. La estructura repetir se ejecuta al menos una vez, ya que cuando la instruccin repetir se ejecuta solo se evala despus de ejecutar la las instrucciones que hay en el bucle. FORMATO O SINTAXIS: Variable = valor inicial REPITA Bloque de instrucciones HASTA condicin = verdadera ( fin ciclo) Ejemplo 28: Generar los nmeros pares del 2 al 10 e imprimirlos. Lista de identificadores: cn = contador que genera los nmeros pares INICIO ( PROGRAMA GENERAR NUMEROS PARES) Asignar tipo ENT:cn Solucin: Inicializar variables cn = 2 REPETIR MOSTRAR numero par cn cn = cn + 2 HASTA cn = 10 FIN PROGRAMA. PRUEBA DE ESCRITORIO Cn +2 =2 2+ 2 = 4 4+2=6 6+2=8 8 + 2 = 10

5.9 DIFERENCIAS ENTRE EL CICLO MIENTRAS Y EL REPITA HASTA.

La estructura mientras termina cuando la condicin es falsa y la repita hasta cuando la instruccin es verdadera. En la instruccin repetir el cuerpo del bucle se ejecuta siempre una vez, por el contrario en la mientras es mas general y existe la posibilidad de que el bucle no sea ejecutado.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

66

5.10 CICLO DESDE o PARA

Ejecuta repetitivamente un conjunto o bloque de instrucciones que se conoce de antemano y que por lo tanto no requiere de condicin de salida; el contador para contar el nmero de iteraciones se incrementa o decrementa de modo automtico.

FORMATO O SINTAXIS: HAGA PARA vi = vi HASTA vn , con incremento de 1 hacer Bloque de instrucciones FIN PARA

NOTA: El incremento cuando es de 1, no es necesario indicarlo si es mayor se debe indicar; cuando es decremento se indica el valor de ste acompaado del signo (-). Si el valor inicial es mayor que el final se dar un decremento (-) y si el valor inicial es menor que el valor final se dar un incremento (+).

Ejemplo 29: Calcular los cuadrados de los 10 primeros nmeros e ANALISIS: J = contador automtico que controla el ciclo Cuad = cuadrado de los nmeros generados Cuad = J * J INICIO ( PROGRAMA CUADRADOS) Asignar tipo a las variables ENT :J, Cuad Inicializar variables Cuad = 0 HAGA PARA J = 1 HASTA 10, 1 Cuad = J * J MOSTRAR El cuadrado es : Cuad FIN - CICLO FIN PROGRAMA. PRUEBA DE ESCRITORIO J 1 2 3 4 5 6 7 8 9 10 Cuad 1 4 9 16 25 36 49 64 81 100

imprimirlos.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

67

5. 11 MODELO CICLO MIENTRAS CON REGISTRO IDENTIFICADOR Y REGISTRO CENTINELA REGISTRO CENTINELA INICIO (1) ASIGNAR TIPO A VARIABLES Y CONSTANTES (2) INICIAR CONTADORES, ACUMULADORES, VARIABLES DE TRABAJO (3) LEER REGISTRO (DATOS DE ENTRADA) (4) HAGA MIENTRAS NO SE A SEAL DE FIN DE ARCHIVO (5) PROCESAR DATOS LEIDOS (REGISTRO) Clculos necesarios para solucionar el problema Los clculos pueden ser una(s) funcin(es) o un(os) procedimiento(s)-ACUMULAR -CONTAR -EVALUAR CONDICIONES - MOSTRAR RESULTADOS PARTICULARES ( DE CADA SUJETO) 6 LEER REGISTRO (DATOS DE ENTRADA FIN CICLO 7 CALCULOS GENERALES 8 MOSTRAR RESULTADOS GENERALES FIN DEL INICIO REGISTRO IDENTIFICADOR INICIO ( 1) ASIGNAR TIPO A VARIABLES Y CONSTANTES 2) INICIAR CONTADORES, ACUMULADORES, VARIABLES DE TRABAJO (3) LEER No. DE REGISTROS (SUJETOS) (4) HAGA MIENTRAS CONTREG. < No. DE REGISTROS (5)LEER REGISTRO (DATOS DE ENTRADA (6) PROCESAR DATOS LEIDOS REGISTRO Clculos necesarios para solucionar el problema Los clculos pueden ser una(s) funcin(es) o un(os) procedimiento(s) - ACUMULAR -CONTAR -EVALUAR CONDICIONES -MOSTRAR RESULTADOS PARTICULARES ( DE CADA SUJETO) CONTREG = CONTREG + 1 (**) FIN CICLO 7 CALCULOS GENERALES 8 MOSTRAR RESULTADOS GENERALES FIN DEL INICIO

5.11 ANTES DE INICIAR EL CICLO


1) Decir de que tipo son los datos que se guardaran en todas las variables y constantes que se definen en la lista de variables. ( " ") carcter (0) numrica, real o entera. 2) Darle un valor inicial las constantes si las hay y a las variables de trabajo (variables donde se llevan los resultados de clculos). obligatoriamente todos los contadores y acumuladores. 3) REGISTRO IDENTIFICADOR : Se refiere esta lectura al numero de registros (sujetos) que vamos a procesar. En el ciclo. (Si el enunciado nos dice el nmero se omite esta lectura) . 3 REGISTRO CENTINELA: Se leen los datos del primer sujeto (registro) del archivo para poder verificar que no hay seal de fin de archivo. 4) REGISTRO IDENTIFICADOR: Ciclo controlado por un contador de registros que llega hasta el numero de registros (sujetos)

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

68

4 REGISTRO CENTINELA: Ciclo controlado por una condicin de fin de archivo.

5.12 DENTRO DEL CICLO 5 REGISTRO IDENTIFICADOR: Primera instruccin leer los datos de entrada del sujeto (registro) para procesarlos. 6 Se inicia el proceso de los datos ledos (Registro) 5 REGISTRO CENTINELA: Se inicia el proceso de los datos que se traen ledos (registro) PROCESAR DATOS LEIDOS EN REGISTRO IDENTIFICADOR Y CENTINELA : Se realizan los clculos necesarios para la solucin del problema. contar, acumular, evaluar condiciones, mostrar resultados particulares ( de cada sujeto) REGISTRO IDENTIFICADOR: 6 (**) Obligatorio este contador de registros incrementarlo para poder que el ciclo funcione (camine hasta el numero de sujetos). REGISTRO CENTINELA: 6 leer registro (datos de entrada. los registros siguientes del archivo, hasta que aparezca la seal de fin del archivo. Ultima instruccin dentro del ciclo, cuando termina de procesar totalmente el registro que se trae ledo.

5.13 FUERA DEL CICLO 7) CALCULOS GENERALES: promedios, (*acumuladores / contadores) , porcentajes (*contador particular/ contador general), Condiciones: evaluar condiciones con los resultados generales. acumuladores y contadores que fueron incrementados dentro del ciclo. 8) MOSTRAR RESULTADOS GENERALES. ** No se muestran datos de un solo sujeto, pues solo mostrara los datos correspondientes del ltimo sujeto procesado.

5.14 DIFERENCIAS ENTRE LOS DOS REGISTROS

REGISTRO IDENTIFICADOR: Se realizan dos lecturas diferentes. La primera puede hacerse o no de acuerdo a que el enunciado diga el nmero de sujetos en cifras o de una letra. La segunda siempre ser la primera instruccin dentro del ciclo. El ciclo se controla con un contador de registros ( hasta completar el numero de sujetos que hay en el archivo) REGISTRO CENTINELA: Se realizan dos lecturas iguales, una antes de entra al ciclo y la otra dentro del ciclo al final de este. Ser la ltima instruccin que se realiza dentro del ciclo. El ciclo se controla con una seal de fin de archivo.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

69

5.15 MODELO REGISTRO IDENTIFICADOR CON UN CICLO PARA


REGISTRO IDENTIFICADOR INICIO ( 1) ASIGNAR TIPO A VARIABLES Y CONSTANTES 2) INICIAR CONTADORES, ACUMULADORES, VARIABLES DE TRABAJO (3) LEER No. DE REGISTROS (SUJETOS) (4) HAGA PARA CONTREG. = 1, HASTA No. DE REGISTROS, 1 (5)LEER REGISTRO (DATOS DE ENTRADA (6) PROCESAR DATOS LEIDOS REGISTRO Clculos necesarios para solucionar el

problema Los clculos pueden ser una(s) funcin(es) o un(os) procedimiento(s)


- ACUMULAR -CONTAR -EVALUAR CONDICIONES -MOSTRAR RESULTADOS PARTICULARES ( DE CADA SUJETO) FIN CICLO 7 CALCULOS GENERALES 8 MOSTRAR RESULTADOS GENERALES FIN DEL INICIO

Nota: Observe que no necesita el contador de registros dentro del ciclo ya que este su estructura es un contador automtico; los dems pasos son iguales a los que se realizan en el ciclo mientras con registro identificador. .

5.16 CICLOS ANIDADOS

Estructuras anidadas: de la misma manera que se pueden anidar estructuras de condicin se puede hacer con los ciclos, en los dos casos la estructura interna debe de estar totalmente incluida en la externa. Las variables de control de los ciclos toman valores de tal modo que una variable del ciclo externo no cambia de valor, mientras no se ejecute totalmente el ciclo interno. Ejemplo 30: Hallar el factorial de N nmeros ledos. ANALISIS DATO DE ENTRADA NUM = NUMERO LEIDO N = Cantidad de nmeros ledos DATO DE SALIDA ?FACT = FACTORIAL J = Contador ciclo externo L = Contador ciclo interno INICIO (PROGRAMA FACTORIAL) ENT: J,L,N, NUM LEER; N (cantidad de nmeros leidos) J=1 HAGA PARA J = 1, HASTA N, 1 (ciclo externo) LEA valor del numero NUM FACT = 1

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

70

HAGA PARA L = 1, HASTA NUM, 1 ( ciclo interno) FACT = FACT * L FIN PARA( del ciclo interno) IMPRIMA: El numero es: NUM Su factorial es: FACT FIN PARA (del ciclo externo) FIN PROGRAMA.

5.17 SUICHES o INTERRUPTORES

Los suiches o interruptores es un campo de memoria que puede tomar dos valores: falso o verdadero; si o no; 1 o 0, a lo largo de la ejecucin de un programa y permite comunicar informacin de una parte a otra del mismo programa. Estos tienen gran aplicacin en la programacin y son utilizados para: ciclo. no de un suceso

Ejecutar alternativamente acciones diferentes dentro de un

Recordar en determinados puntos del programa la ocurrencia o anterior. Decidir en instrucciones alternativas la accin que se debe seguir.

Ejemplo 31: Se desea un programa que permita reservar unas localidad de un reservada muestre un mensaje explicando que no est disponible. ANALISIS DATO DE ENTRADA NRO_CED = Nmero de cdula VARIABLES DE TRABAJO SW = Suiche NRO-S = nmero de silla INICIO (RESERVA DE LOCALIDADES) BOL: SW ENT : NRO-CED. NRO-S Inicializar variables SW = S NRO-S = 0 HAGA MIENTRAS SW = S LEA ; Numero de silla NRO-S SI NRO-S = 0 ENTONCES DIGITE: El numero de la cedula NRO-CED El nombre es: NOMBRE NRO-S = CED SINO MUESTRE " LA SILLA YA FUE RESERVADA" FIN SI DESEA CONTINUAR: S / N

teatro y si est

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

71

LEA SW FIN MIENTRAS. FIN PRUEBA DE ESCRITORIO SW = S NRO-S = 0 24899,142 77865.432 NRO- CED 24899,142 24899,142 NOMBRE Luis Jaramillo Gloria Angel

SW = N Ejemplo 32: Generar los primeros n nmeros de la sucesin: 17- 15- 18- 16- 19 17- 20- 21 ...... n ANALISIS DATOS DE ENTRADA NT = numero de trminos VARIABLES DE TRABAJO BAN = bandera o suiche CONT = contador CONT = CONT + 1 TER = Trmino de la serie que se genera, INICIO Asignar tipo BAN , CONT, TER, NT = 0 ENTERO Inicializar Variables y constantes BAN = 1 CONT = 1 TER = 17 LEER NT HAGA MIENTRAS ( CONT <= NT ) MOSTRAR Trmino de la serie TER SI BAN = 1 ENTONCES TER = TER 2 BAN = 2 Sino TER = TER + 3 BAN = 1 FINSI CONT = CONT + 1 FIN MIENTRAS FIN PRUEBA DE ESCRITORIO NT = 5 TER 17 15 18 16 19 CONT 1 2 3 4 5 BAN 1 2 1 2 1

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

72

5.18 ROMPIMIENTO DE CONTROL

A menudo es conveniente tener una archivo organizado por uno o sobre l un proceso especial.

mas campos para ejecutar

Rompimiento de control es el que se da cuando necesitamos ejecutar una o varias instrucciones que estn por fuera de un proceso establecido (ciclo); este proceso necesita de una variable de control para ejecutar el rompimiento, se puede dar a varios niveles.

Ejemplo 33: En una Universidad se tiene el archivo de los grupos; cada registro contiene los siguientes datos: - CODIGO DEL GRUPO - NOMBRE DEL ESTUDIANTE - CODIGO DEL ESTUDIANTE - EDAD DEL ESTUDIANTE - ESTATURA DEL ESTUDIANTE - PESO DEL ESTUDIANTE

estudiantes ordenado por

Elaborar un seudo cdigo que imprima los cdigos de los grupos y el promedio de edad de los estudiantes; el nombre del estudiante mas alto, su cdigo, la estatura y el peso. El fin de archivo lo controla una edad -1 . Anlisis: este ejercicio tiene un rompimiento de control de primer nivel; cada que se cambie de grupo se debe hallar el promedio de edad e imprimirlo, debemos trabajar ciclos anidados; como no se conoce el nmero de estudiantes se trabaja con un registro centinela y un ciclo mientras. ANALISIS DATOS DE ENTRADA (Registro) CODG = cdigo del grupo NOME = nombre del estudiante CODE = cdigo del estudiante ED = edad del estudiante EST = estatura del estudiante PE = peso del estudiante DATOS DE SALIDA SUMED = Acumulador que contendr la suma de las edades de los cada grupo. CESTG = Contador de los estudiantes de cada grupo. PROMED = Promedio de edad de los estudiantes de cada grupo. MAYEST = Mayor estatura NEMYEST = Nombre del estudiante de mayor estatura. PEMAYEST = Peso del estudiante de mayor estatura. VARIABLE DE ROMPIMIENTO CODGACT = Contendr el cdigo del grupo que se est evaluando, cuando este sea diferente al

estudiantes de

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

73

ledo se habr cambiado de grupo es decir se da el rompimiento. INICIO PROG PPALTipo de variables CARAC: NEMYEST; NOME, CODGACT; CODE, CODG REAL : PEMAYEST; CESTG; MAYEST; SUMED l Inicializacin de variables
NEMYEST = MAYEST CESTG , SUMED = 0 LEA REGISTRO CODGACT = CODG HAGA MIENTRAS ED <> -1 HAGA MIENTRAS ( CODGACT = CODG) AND ( ED <> -1 ) CAL-MAYOR-EST (REAL: EST. PEMAYEST; MAYEST, PE; CARAC: NEMYEST, NOME) CESTG = CESTG + 1 SUMED = SUMED + ED LEA REGISTRO FIN MIENTRAS (CICLO INTERNO). IMPRIMA: El grupo es:CODGACT El promedio del grupo es: PROMED ( REAL ; SUMED, ENT: CESTG) CAMBIO DE GRUPO (CARAC: CODGACT; CODE, CODG , ENT CESTG) FIN MIENTRAS (CICLO EXTERNO) IMPRIMA: El estudiante de mayor estatura es: NEMYEST La estatura es:MAYEST El peso es: PEMAYEST FIN PROG. PPAL. IN-FUNC. REAL PROMED ( REAL ; SUMED, ENT: CESTG) PROMED = SUMED / CESTG RETORNE ( PROMED FIN FUNC. IN PROC CAL-MAYOR-EST ( REAL: EST. PEMAYEST; MAYEST, PE ; CARAC : NEMYEST, NOME) SI EST > MAYEST ENTONCES MAYEST = EST NEMYEST = NOME PEMAYEST = PE FIN SI

FIN PROC IN PROC CAMBIO DE GRUPO (CARAC: CODGACT; CODE, CODG , ENT CESTG, SUMED, REAL: PROMED)
CODGACT = CODG SUMED, CESTG, PROMED = 0 RETORNE (SUMED, CESTG, PROMED, CODGACT) FIN-PROC.

NOTA: Cuando se presenta rompimientos a ms de un nivel, variables de control de rompimiento como niveles haya.

deben manejarse tantas

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

74

PRUEBA DE ESCRITORIO CODE 123 234 145 246 345 346 456 457 NOME Luisa Ochoa Jaime Sierra Jorge Ortiz Carlos Daz Esteban Garcs Alicia Medina Camilo Osorio Jorge Cano CODEG 11 11 11 22 22 22 33 33 ED 18 17 19 16 17 17 19 20 PE 58 73 70 76 65 68 63 65 EST 1.65 1,76 1,72 1,81 1,71 1,70 1,67 1,69

CESTG 0 1 2 3 0 1 2 3 0 1 2 NEMYEST Luisa Ochoa Jaime Sierra Carlos Daz

SUMED 0 18 35 54 0 16 33 50 0 19 39 MAYEST 0 1,65 1,76 1.81

CODGACT 11

PROMED 0 54/3 18 0 50/3 16,66

22

33 39/2 19.5 PEMAYEST 0 58 73 76

5.19 DIAGRAMA GENERAL PARA UN ROMPIMIENTO DE PRIMER NIVEL SUBPROGRAMAS


Caso 1: Ejercicio con ciclos anidados INICIO PROGRAMA PPAL. ASIGNAR TIPO (A TODAS LAS VARIABLES Y CONSTANTES) INICIAR VARIABLES TODAS LAS VARIABLES DE TRABAJO LEER REGISTRO (primer registro) VARIABLE DE ROMPIMIENTO VARIABLE GRUPO HACER MIENTRAS No Fin Archivo ( SEAL DE FIN DE ARCHIVO) HACER MIENTRAS variable de rompimiento = variable grupo y N.F.A PROCESAR REGISTRO ( VARIABLES ............) ( Contar, acumular, evaluar condiciones, hacer clculos, mostrar resultados particulares etc.) LEER REGISTRO(registros siguientes) FIN MIENTRAS CALCULOS DE GRUPO( promedios, porcentajes)

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

75

CAMBIO DE GRUPO( VAR. DE GRUPO...., VARIABLES) FIN MIENTRAS CALCULOS GENERALES ( promedios, porcentajes) MOSTRAR RESULTADOS GENERALES FIN DEL PROGRAMA PPAL INICIO PROCESAR REGISTRO (VARIABLES......) INICIAR VARIABLES ACCIONES PARA PROCESAR REGISTRO LEIDO ( Contar, acumular, evaluar condiciones, hacer clculos, mostrar resultados particulares etc.) RETORNE (resultados) FIN SUBPROGRAMA INICIO CAMBIO DE GRUPO (VAR. DE GRUPO........VARIABLES...) CALCULOS GRUPO (promedios, porcentajes, evaluacin de variables del grupo) RESULTADOS DE GRUPO ( se muestra los resultados del grupo que se acabo de procesar) VARIABLE DE ROMPIMIENTO = VARIABLE GRUPO INICIAR LAS VARIABLES DEL GRUPO RETORNE (RESULTADOS DE GRUPO) FIN SUBPROGRAMA

Caso 2: Ejercicio con un ciclo con registro centinela y un condicional compuesto INICIO PROGRAMA PPAL. ASIGNAR TIPO (A TODAS LAS VARIABLES Y CONSTANTES) INICIAR VARIABLES TODAS LAS VARIABLES DE TRABAJO LEER REGISTRO (primer registro) VARIABLE DE ROMPIMIENTO VARIABLE GRUPO HACER MIENTRAS No Fin Archivo ( SEAL DE FIN DE ARCHIVO) SI variable de rompimiento = variable grupo ENTONCES PROCESAR REGISTRO ( VARIABLES ............) ( Contar, acumular, evaluar condiciones, hacer clculos, mostrar resultados particulares etc.) LEER REGISTRO(registros siguientes) SINO CAMBIO DE GRUPO(VAR. DE GRUPO...., VARIABLES) CALCULOS GRUPO (promedios, porcentajes, evaluacin de variables del grupo) RESULTADOS DE GRUPO ( se muestra los resultados del grupo que se acabo de procesar) FIN SI FIN MIENTRAS . CAMBIO DE GRUPO( VAR. DE GRUPO...., VARIABLES) CALCULOS GENERALES ( promedios, porcentajes) MOSTRAR RESULTADOS GENERALES FIN DEL PROGRAMA PPAL. INICIO PROCESAR REGISTRO INICIAR VARIABLES ACCIONES PARA PROCESAR REGISTRO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

76

( Contar, acumular, evaluar condiciones, hacer clculos, mostrar resultados particulares etc.) RETORNE (RESULTADOS) FIN SUBPROGRAMA INICIO CAMBIO DE GRUPO (VAR. DE GRUPO........VARIABLES...) CALCULOS GRUPO (promedios, porcentajes, evaluacin de variables del grupo) RESULTADOS DE GRUPO ( se muestra los resultados del grupo que se acabo de procesar) VARIABLE DE ROMPIMIENTO VARIABLE GRUPO INICIAR LAS VARIABLES DEL GRUPO RETORNE RESULTADOS DE GRUPO FIN SUBPROGRAMA

5.20 EJEMPLOS DE ROMPIMIENTO DE CONTROL


Ejemplo 34: Se tiene un archivo con: valor de las ventas, el nombre y el cdigo de los vendedores de una compaa organizado por ciudades . A cada vendedor se le liquida la comisin de acuerdo a la siguiente:
Si el valor de las ventas: <= 3'000.000 se le da 3.5% de sus ventas + una prima de 10.000, si el valor de las ventases : > 3000.000 y <= 5`000.000 se le da 4.5% de sus ventas + una prima de 20.000 y si el valor de las ventas es: > 5'000.000 se le da 5% de sus ventas + una prima de 30.000. El fin de archivo lo

controla un cdigo del vendedor 000000 Imprima el nombre y la comisin pagada al vendedor. Promedio de ventas por ciudad El total de comisiones pagadas por la empresa. El vendedor de la empresa que realiz la mayor venta y su nombre. ANALISIS DATOS DE ENTRADA ( registro de datos) CODV = cdigo del vendedor NOMV = nombre del vendedor VRVTAS = valor de las ventas del vendedor CIUD = ciudad donde vende DATOS DE SALIDA COMV = comisin del vendedor COMV = VRTAS * % + prima % y prima toman el valor de acuerdo al valor de las ventas del vendedor TCOMPE = total comisiones pagadas por la empresa TVTAS-CIUD = total de las ventas los vendedores de cada ciudad TVTAS-CIUD = TVTAS-CIUD + VRVTAS PROMVTAS-CIUD = Promedio de ventas ciudad PROMVTAS-CIUD =TVTAS-CIUD / CVEND-CIUD CVEND-CIUD = contador de vendedores por ciudad NOMVMV = nombre vendedor de la empresa que realiz la mayor venta MAYVTA = mayor venta VARIABLE DE ROMPIMIENTO CIUDACT = ciudad que se est procesando Este ejercicio se soluciona con ciclos anidados y registro centinela

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

77

PROGRAMA COMISIONES INICIO PROG-PPAL. ASIGNAR TIPO CARAC :CODV, NOMV , NOMVMV, CIUDACT, CIUD REAL : MAYVTA, VRVTAS, COMV, TCOMPE, PROMVTAS-CIUD, TVTAS-CIUD ENT: CVEND-CIUD INICIAR VARIABLES ( contadores y acumuladores) MAYVTA, TVTAS-CIUD, COMV, TCOMPE, PROMVTAS-CIUD, CVEND-CIUD = 0 LEER: Cdigo CODV, Nombre del vendedor NOMV Valor de sus ventas, VRVTAS, Ciudad donde vende CIUD ( 1er registro) CIUDACT = CIUD HAGA M.Q (CODV <> 0000000) HAGA M-Q ( CIUDACT = CIUD ) AND (CODV <> 0000000) (empieza el proceso del registro ledo) MOSTRAR La comisin del vendedor COMV ( REAL: VRTAS,COMV) MOSTRAR: Nombre del vendedor NOMV. TOTALES (REAL:TCOMPE, TVTAS-CIUD ENT: CVEND-CIUD) MAYORVENTA ( REAL: MAYVTA, VRTAS ;CARAC; NOMV. NOMVMV) L EER: Cdigo CODV, Nombre del vendedor NOMV Valor de sus ventas, VRVTAS, Ciudad donde vende CIUD ( registros siguientes) FIN M.Q. (ciclo interno) CAMBIO DE CIUDAD( CARAC : CIUDACT, CIUD; REAL PROMVTAS-CIUD, TVTAS-CIUD) FIN MQ. (ciclo externo) MOSTRAR El vendedor que realizo la mayor venta: NOMVMV, La mayor venta es MAYVTA, El total de comisiones pagadas por la empresa TCOMPE FIN PROG-PPAL. IN-FUNC. REAL COMV ( REAL: VRTAS,COMV) SI VRVTAS > 5`000.000 ENTONCES COMV = VRVTAS * 0.05 + 30.000 SINO SI VRVTAS > 3000.000 ENTONCES COMV = VRVTAS * 0.045 + 20.000 SINO COMV = VRVTAS * 0.035 + 10.000 FINSI FINSI RETORNE (COMV) FIN-FUNC. IN PROC TOTALES (REAL:TCOMPE, TVTAS-CIUD REAL :COMV: VRVTAS; ENT: CVEND-CIUD) TVTAS-CIUD = TVTAS-CIUD + VRVTAS TCOMPE = TCOMPE + COMV CVEND-CIUD = CVEND-CIUD + 1 RETORNE (TCOMPE, TVTAS-CIUD. CVEND-CIUD) FIN PROC.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

78

IN PROC MAYORVENTA ( REAL: MAYVTA, VRTAS ;CARAC; NOMV. NOMVMV) SI VRVTAS > MAYVTA ENTONCES MAYVTA VRVTAS NOMVMV NOMV FINSI RETORNE (NOMVMV, MAYVTA) FIN PROC. IN PROC CAMBIO DE CIUDAD( CARAC : CIUDACT, CIUD; REAL PROMVTAS-CIUD, TVTAS- CIUD) PROMVTAS-CIUD =TVTAS-CIUD / CVEND-CIUD MOSTRAR El promedio de ventas por ciudad es: PROMVTAS-CIUD La ciudad es CIUDACT CIUDACT = CIUD PROMVTAS-CIUD, TVTAS-CIUD, CVEND-CIUD =0 RETORNE (CIUDACT = CIUD, PROMVTAS-CIUD, TVTAS-CIUD, CVEND-CIUD) FIN PROC. PRUEBA DE ESCRITORIO COV 235 123 458 345 789 876 965 432 698 000 COMV 0 80.000 330.000 380.000 200.000 280.000 430.000 115.000 200.000 80.000 CIUD Bogot Bogot Bogot Bogot Medelln Medelln Medelln Cali Cali NOMV Juan Valdez Jaime Garca Carmen Londoo Luisa Villada Carlos Gmez Pedro Vlez Samuel Ospina Miguel Restrepo Felipe Varela VRTAS 2000.000 6000.000 7000.000 4`000.000 5000.000 8000.000 3000.000 4`000.000 2`000.000

TCOMPE 0 80,000 410.000 790.000 990.000 1270.000 1700.000 1815.000 2015.000 2095.000

TVTASCIUD 0 2000.000 8000.000 15000.000 19000.000 0 5000.000 13000.000 16000.000 0 4`000.000 6`000.000

CVEND-CIUD PROMVTAS-CIUD 0 0 1 19000.000 / 4 2 4`750.000 3 0 4 0 16000.000 /3 1 5333.333 2 0 3 6`000.000 / 2 0 1 3000.000 2 CIUDACT Bogot Medelln Cali

MAYVTA 0 2,000,000 6000.000 7000.000 8000.000

NOMVMV Juan Valdez Jaime Garca Carmen Londoo Pedro Vlez

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

79

Ejemplo 35: Se tiene un archivo con los datos de los trabajadores de la empresa XY organizado por secciones cada registro tiene: el nombre, el departamento, las horas trabajadas y valor hora. Calcular el salario neto e imprimirlo con el nombre del trabajador, teniendo en cuenta que si el salario mensual es >= $1.200.000 la retencin para impuestos es del 4.5% y para seguridad social el 2.5%; si es menor retenerle para seguridad social el 2% y darle un auxilio de 60.000 para transporte. Calcule el total de aportes de los trabajadores para impuestos y para seguridad social en la empresa y por seccin el total de salarios pagados por la empresa el promedio de salarios por seccin. El fin de archivo lo controla un nombre del trabajador en nnnnnnnn NOTA: Este ejemplo se ejecuto el algoritmos en subprogramas, y utilizando un condicional compuesto en reemplazo del ciclo interno. ANALISIS DATOS DE ENTRADA (registro de datos) NOMT= nombre del trabajador SALBD = salario bsico hora pagado al trabajador NDTRAB = nmero de horas trabajadas por el trabajador SEC = Cdigo seccin DATOS DE SALIDA TAPORSS = Total aportes para seguridad social por seccin TAPORSS = TAPORSS + RETSS TIMPTS = Total aportes para impuestos por seccin TIMPTS = TIMPTS + RETIMP TAPORSE = Total aportes para seguridad social en la empresa TAPORSE TAPORSE + RETSS TIMPTE = Total aportes para impuestos en la empresa TIMPTE= TIMPTE + RETIMP SALNPT = salario neto que recibe el trabajador SALNPT = SALBM RETIMP RETSS + AUXTRASP SALBM = salario bsico mes o bruto mes que se le paga al trabajador SALBM = SALD* NDTRAB TSALPE = total de salarios pagados por la empresa TSALPE = TSALPE + SALBM TSALPS = total de salarios pagados por seccin TSALPS = TSALPS + SALBM POMSS = Promedio salarios por seccin POMSS = TSALPS / CVS CVS = Contador vendedores por seccin CVS = CVS + 1 RETSS = Retencin para seguridad social RETSS = SALBM * % RETIMP = Retencin para impuestos RETIMP = SALBM * % AUXTRASP = auxilio para transporte Tenga en cuenta que el valor de % se da de acuerdo al valor de los salarios brutos. VARIABLE DE ROMPIMIENTO SECACT = Seccin actual INICIO PROG-PPAL. ASIGNAR TIPO A TODOS LOS IDENTIFICADORES CARAC: NOMT, SECACT, SEC REAL : TSALPE,TIMPTE,TAPORSE, TSALPS, SALBD, TIMPTS REAL: TAPORSS,SALBM , SALNPT,RETSS,RETIMP,AUXTRASP, POMSS ENT:NDTRAB INICIAR LAS VARIABLES DE TRABAJO TSALPE, TIMPTS ,TAPORSS,TSALPS, SALBM,SALNPT , TIMPTE,TAPORSE =0 RETSS,RETIMP,AUXTRASP = 0

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

80

LEER : Nombre deel trabajador NOMT, Salario bsico da SALD, Numero de das trabajados NDTRAB, Seccin donde labora SEC (1er registro) SECACT = SEC (asignar a la variable de rompimiento el valor de la variable de grupo) HAGA M. Q (NOMT<> nnnnnnn ) SI SECACT = SEC ENTONCES (se empieza el proceso del registro ledo) SALARIOS ( REAL: SALD, ENT: NDTRAB,REAL: SALBM, SALNPT,RETSS,RETIMP) TOTALES (REAL:RETSS, RETIMP, TSALPE,TIMPTE,TAPORSE, TSALPS REAL_TIMPTS ,TAPORSS,TSALPS, SALBM, ENT:CVS) MOSTRAR: NOMBRE NOMT ; SALARIO NETO SALNPT, LEER : Nombre deel trabajador NOMT, Salario bsico da SALD, Numero de das trabajados NDTRAB, Seccin donde labora SEC ( los registros Siguientes) SINO CAMBIO_SEC (REAL:TIMPTS ,TAPORSS,TSALPS,CARAC:SEC,SECACT;ENT:CVS) FINSI FIN MQ. CAMBIO_SEC (REAL:TIMPTS ,TAPORSS,TSALPS,CARAC:SEC,SECACT;ENT:CVS) MOSTRAR: El total de salarios pagados por la empresa TSALPE, El total impuestos pagados por los trabajadores TIMPTE, El total impuestos pagados por los trabajadores TAPORSE

FIN.
IN-PROC. SALARIOS ( REAL: SALD, ENT: NDTRAB,REAL: SALBM, SALNPT,RETSS,RETIMP)) SALBM = SALD* NDTRAB SI SALBM >1.200.000 ENTONCES RETIMP = SALBM * 0.07 RETSS = SALBM * 0.03 AUXTRASP = 0 SINO RETIMP = 0 RETSS = SALBM * 0.02 AUXTRASP = 60.000 FIN SI SALNPT = SALBM RETIMP RETSS + AUXTRASP RETORNE (SALNPT,SALBM,RETIMP, RETSS) FIN PROC. IN PROC.TOTALES (REAL:RETSS, RETIMP, TSALPE,TIMPTE,TAPORSE, TSALPS REAL_TIMPTS ,TAPORSS,TSALPS, SALBM, ENT:CVS) TIMPTE= TIMPTE + RETIMP TSALPE = TSALPE + SALBM TAPORSE TAPORSE + RETSS TIMPTS = TIMPTS + RETIMP TSALPS = TSALPS + SALBM TAPORSS TAPORSS + RETSS CVS = CVS + 1 RETORNE (TSALPE,TIMPTE,TAPORSE, TSALPS, TIMPTS ,TAPORSS,CVS) FIN PROC.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

81

IN PROC. CAMBIO_SEC (REAL:TIMPTS ,TAPORSS,TSALPS,CARAC:SEC,SECACT;ENT:CVS) POMSS = TSALPS / CVS MOSTRAR : EL PROMEDIO SALAIOS POR SECCION POMSS EL TOTAL DE APORTES PARA SEGURIDAD SOCIAL TPORSS EL TOTAL DE APORTES PARA IMPUESTOS ES: TIMPTS EN LA SECCION SECACT TIMPTDS, TAPORSS, POMSS, TSALPS, CVS = 0 SECACT = SEC RETORNE (TIMPTDS, TAPORSS, POMSS, TSALPS, CVS,SECAT) FIN PROC. PRUEBA DE ESCRITORIO CODV 33333 44444 55555 55667 66666 66554 77777 88888 22233 22245 21156 22345 0000000 SALBM NOMT Elas Prez Pedro Duran Carmen Gmez Carlos Vlez Ana Gallego Luisa Jimnez Ester Ramrez Carlos Medina Amanda Garca Carlos Crdoba Juan Ruiz Evelio Duran nnnnnn SEC Calzado Calzado Calzado Calzado Vestuario Vestuario Vestuario Vestuario Vestuario Tocador Tocador Tocador NDTRAB 30 30 30 30 30 30 30 30 30 30 30 30 0 SALBH 50.000 26.000 34.000 25.000 20.000 40.000 28.000 35.000 45.000 23.000 20.000 27.000 000000

RETIMP RETSS AUXTRASP SALNTP

1.500.000 105.000 45.000 780.000 0 15.600 1.020.000 0 20.400 750.000 600.000 840.000 1.050.000 0 15.000 0 12.000 0 16.800 0 21.000

TIMPTS TAPORSS TSALPS 0 1.350.000 0 0 0 60.000 824.400 105.000 45.000 1.500.000 60.000 1.059.600 60.600 2.280.000 795.000 648.000 0 883.200 100.800 81.000 96.000 0 12.000 55.200 72.000 0 112.500 0 13.800 25.800 42.000 3.300.000 4.050.000 0 600.000 2.040.000 3.390.000 4.440.000 0 690.000 1.290.000 2.100.000

60.000 60.000 60.000

1.440.000 100.800 43.200

0 1.296.000

60.000 1.089.000 195.300 0 1.215.000 60.000 60.000 60.000 736.200 648.000 853.800

1.350.000 94.500 40.500 690.000 600.000 810.000 0 13.800 0 12.000 0 16.200

SECACT Calzado

Vestuario

Tocador

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

82

Nota : recuerde que una prueba de escritorio es una herramienta muy importante para detectar los errores de lgica.

5.21 ACTIVIDADES TRABAJO INDEPENDIENTE


Identifique y diferencie los conceptos de: Contador, acumulador, suiche, registro centinela, registro identificador y variable de rompimiento. Frmese una opinin acerca de Qu es un ciclo ?; Qu es una variable de control ?; Identifique los ciclos: Ciclo haga para, haga mientras y repita hasta y diferencie los casos en los que se pueden aplicar Elabore el taller de la unidad 5, manejo de ciclos para y mientras que, con registro identificador y centinela. Resuelva problemas que necesitan manejar una variable de rompimiento de 1 nivel- Esto hace parte de tu trabajo independiente. Consulta la pagina http//espanol.geocities.com/evmejia_36

5.22 TALLER UNIDAD 5 CICLOS


Permite Al estudiante practicar los ciclos para y mientras, diferenciar entre un registro identificador y un centinela.

1. Escriba un algoritmo que lea 142 nmeros e informe el valor promedio de ellos. 2. Escriba un algoritmo que lea N registros conteniendo cada uno un nmero (NRO) y una
potencia (POT), calcular la sumatoria implementado el operador exponenciacin. de NRO**POT. Debes asumir que no esta

3. Escriba un algoritmo que lea N nmeros e imprima:


Los valores : menor y mayor y el nmero de veces que fueron hallados. El porcentaje de nmeros impares. Un mensaje que indique la existencia de un mltiplo de 7.

4. Escriba un algoritmo que imprima los tres primeros nmeros perfectos :


Nota: Un nmero perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos (excluido el mismo) que son divisores de l. El primer nmero perfecto es 6, ya que los divisores de 6 son 1,2,3 y 1+2+3=6.

5. Calcule la suma de los nmeros del 1 al 1.000


Suma = 1 + 2+3+4+....+999 + 1000. La suma se realiza con totalizador o acumulador Suma que ir realizando las sucesivas sumas parciales K = 1+2,1+2+3,1+2+3+4...etc. Para ello se inicializa la variable del sumador Suma a

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

83

cero y el contador K representar los nmeros sucesivos del 1 al 1.000.

6. Clculo de la media de 50 nmeros a leer, e imprima el resultado. 7. Contar el nmero de letras i de una frase terminada en un punto. Se supone que las letras
pueden leerse independientemente. En este algoritmo el contador de letras slo se incrementa cuando se encuentra las letras i buscadas.

8. Se desea calcular independientemente la suma de los nmeros pares e impares


comprendidos entre 1 y 200.

9.

Lea una serie de nmeros distintos de cero (el ltimo nmero de la serie es el cero 0) y obtener el nmero mayor. Como resultado se debe visualizar el nmero mayor y un mensaje indicando la presencia de un nmero negativo, en caso de que se haya ledo un nmero negativo.

10. Calcular la suma de los cuadrados de los 100 primeros nmeros naturales. 11. Sumar los nmeros pares del 2 al 100 e imprimir su valor. 12. Calcular los mltiplos de los nmeros comprendidos entre 4 y N, donde N es un valor
introducido por teclado.

13. Dados 10 nmeros enteros, mostrar la suma de los nmeros pares de la lista, cuntos
nmeros pares existen y cul es la media aritmtica de los nmeros impares.

14. Se tiene un archivo con 200 registros de empleados de una compaa, cada registro contiene
los siguientes datos: Nmero del empleado Nombre del empleado Salario bsico por hora Horas trabajadas en el mes Deducciones Se requiere leer los registros e imprimir un listado con la siguiente informacin por empleado: Nmero del empleado Nombre del empleado Salario bsico hora Horas trabajadas Deducciones Salario mensual ** Tambin se debe calcular e imprimir al final del listado, el total de salarios pagados a todos los empleados y el promedio salarial por empleado.

**

Salario mensual=(salario bsico hora)x(nmero de horas trabajadas)-deducciones.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

84

15. Calcular la cantidad a pagar de matrcula por cada estudiante de la siguiente

forma:

El total a pagar es igual a los cargos fijos ms los cargos variables. Los cargos fijos son $3000 y los cargos variables se calculan sumando el 10% del patrimonio y el 15% de la renta. Cada registro contiene: El cdigo del estudiante Patrimonio Renta Se debe obtener por estudiante Cdigo Renta Patrimonio Cargo fijo Cargo variable Total matrcula El fin de los datos es un cdigo de estudiante en cero.

16. En un grupo de 100 estudiantes se debe averiguar e imprimir lo siguiente:


Calificacin mas alta en matemtica Calificacin promedio Cuantos ganaron la materia Cuantos la perdieron (< 3.0). A cada estudiante se lee un registro con los siguientes campos : Nombre del estudiante y calificacin de la materia de matemtica. A los que ganaron la materia se les imprimen todos los campos.

17. Se lee un conjunto de 1000 nmeros. Un nmero por registro. Elabore un algoritmo que
imprima la suma de estos nmeros y adems los subtotales que resultan de sumar grupos de a 50.

18. La siguiente es la serie de Fibonaci:


0 1 1 2 3 5 8 13 21 34. Los dos primeros elementos, por definicin son el 0 y el 1, los dems se obtienen sumando los dos nmeros que le anteceden. Se debe hallar e imprimir los 100 primeros elementos de dicha serie.

19. Se tiene un conjunto de 50 registros con los siguientes campos : Nombre, Edad, Sexo (F =
femenino M = masculino) Se debe imprimir cada uno de los siguientes totales: Hombres mayores de edad Hombres menores de edad Mujeres mayores de edad Mujeres menores de edad

20. Se desea leer 10 nmeros e imprimir lo siguiente :

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

85

El total de nmeros positivos El total de nmeros negativos El mayor de los nmeros. Calcule el factorial de n nmeros ledos

21. En una eleccin realizada en Piedra Dura, se presentaron tres candidatos: Juan, Pedro y
Pablo. Por cada votante se elabor un registro as: CED CED : Numero de identificacin del votante VOTO es: Si voto por Pedro 1 Si voto por Pablo 2 Si voto por Juan 3 Si voto en blanco 4 Elabore un algoritmo que muestre el resultado de la votacin, indicando cuantos votantes hubo en total y cuantos votos alcanz cada candidato y quien gano las elecciones. El fin de datos lo indica una cdula en cero 0. VOTO

22. Una librera estima los precios de sus libros de la siguiente forma:

El precio bsico de un libro es de $5.000.oo mas $150 por pagina. Sin embargo si el nmero de paginas excede de 550 el precio se incrementara en otros $2.500.oo. Se tiene un conjunto de registros cada uno de los cuales contiene el cdigo de un libro y el nmero de paginas. Se requiere calcular e imprimir el cdigo y el precio de cada uno de los libros. Fin de datos es un cdigo de libro igual a cero 0.

23. La informacin de los estudiantes de una universidad, se encuentra en un archivo, en el cual


cada registro est formado por los siguientes campos: Cdigo Nombre Nombre de la materia Calificacin definitiva en dicha materia El archivo est clasificado en forma ascendente por el cdigo del estudiante. Un estudiante pudo haber cursado varias materias. El algoritmo debe imprimir a cada estudiante lo siguiente: Cdigo y su nombre Cada materia con la respectiva calificacin. Por todo el estudiantado imprime la calificacin promedio.

24. En un negocio el valor de las compras hechas por sus clientes, las tiene almacenadas en un
archivo, formado por los siguientes campos: Cdula del cliente Nombre del cliente Cdigo del articulo Unidades compradas Valor unitario

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

86

El archivo est clasificado en forma ascendente por la cdula del cliente. Por cada compra del cliente imprima lo siguiente: Cdula Cdigo del artculo Unidades compradas Valor unitario Valor de la compra Por cada cliente se debe informar: Cedula Nombre del cliente Valor total de las compras del cliente De todos los datos procesados se debe informar :El valor total comprado por todos los clientes. La cdula y nombre del cliente que ms compr.

25. En un archivo de vendedores se tiene la siguiente informacin:


Cdigo del vendedor Cdigo del artculo vendido Ventas del mes por ese artculo El archivo est clasificado en forma ascendente por el cdigo del vendedor Se debe elaborar un algoritmo que permita hacer lo siguiente: Imprima el cdigo y el nombre del vendedor. Imprima cada uno de los cdigos de los artculos y el respectivo valor de sus ventas. El valor total vendido por cada vendedor La comisin de cada vendedor, la cual se liquida as: Para ventas superiores a 1 milln el 4% De 400.000 a 1 milln el 2% Ventas inferiores a 400.000 el 1% Adems se imprimen el total vendido en la compaa y la comisin total pagada.

26. En una empresa se quiere generar un informe de cartera, para ello se cuenta con un archivo,
en el cual cada registro contiene: Cdula del cliente Nmero de la factura Valor total de la factura El archivo est clasificado en forma ascendente por la cdula del cliente. En el informe se debe imprimir lo siguiente: Cdula del cliente y su nombre. Una a una sus facturas con el respectivo valor La deuda total del cliente Cliente con la mayor deuda

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

87

27. Al liquidar la nmina de una empresa, se debe leer un archivo que contiene por cada
empleado lo siguiente: Cdigo Concepto de devengado Valor devengado por dicho concepto El archivo est clasificado en forma ascendente por el cdigo del empleado. Se imprime un informe que contenga lo siguiente: El cdigo del empleado y el nombre. Cada uno de los conceptos y el respectivo valor devengado El devengado total por trabajador El nombre del trabajador que ms gan El valor total devengado en la empresa

28. Se tiene el nombre, cdigo del producto, el nombre de la seccin, el total de las ventas del
vendedor. El archivo esta organizado por secciones el fin de archivo es una seccin 0000. Calcule la comisin del vendedor teniendo en cuenta que si el producto es de: Cdigo 1 esta es del 5%, Cdigo 2 esta es del 8%, Cdigo 3 esta es del 7%, cdigo 4 es del 6.5% Imprima el nombre cdigo del producto y la comisin neta de cada vendedor teniendo en cuenta que sobre su comisin le retienen el 2.5% para impuestos y el total comisiones pagadas por cada seccin, y el total pagado por la empresa de acuerdo a cada producto.

29. Se tiene un archivo de los estudiantes de un colegio organizado por grupos, por cada
estudiante se lee; el nombre, el cdigo del estudiante, el nmero del grupo, la nota definitiva, contar los que pierden y los que ganan en cada grupo; imprimir: el promedio del colegio; la mayor nota y la menor nota de cada grupo e imprimirlo con el nombre y cdigo del estudiante. El fin de archivo lo controla un cdigo 000000.

30. Se tiene un archivo de trabajadores organizado por departamentos; cada registro tiene

el nombre, horas trabajadas y valor hora, cdigo de cada departamento, y el cdigo del trabajador. Calcule el salario teniendo en cuenta: la retencin del 8% si salario bsico es > $1.280.000, de lo contrario retencin va a ser del 3%. Calcule el total de salarios de la empresa. y el total de retenciones y el promedio de salario por departamento. El fin de archivo lo controla un cdigo 000000.

31. Realice un algoritmo que genere un reloj digital que


controlar cuando sea ao bisiesto.

muestre la fecha y la hora. Debe

32. Una empresa tiene varios vendedores, en diferentes zonas se

pide realizar un programa que permita: Imprimir el nombre cdigo del vendedor y la comisin del vendedor; el nombre y el cdigo del vendedor que tenga la venta ms alta, el total de ventas de la zona y el total de ventas de la empresa; el total de comisiones que paga la empresa y promedio de ventas de cada zona. La informacin que se lee por cada vendedor es: Nombre, cdigo del vendedor; nmero de la zona, total de comisin del vendedor y total de las ventas del vendedor. El archivo esta organizado por zonas y el fin de archivo lo indica un cdigo de vendedor 000000.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

88

UNIDAD 6 ARREGLOS
OBJETIVO: Recurrir al manejo de estructuras como vectores y matrices en la solucin de los problemas planteados. Implementar soluciones a problemas utilizando estas estructuras, para el manejo de varios registros al nivel de la memoria R.A.M. Objetivos especficos : Ordenar, eliminar, modificar o buscar los datos en arreglos de una dimensin Reconocer las estructuras de los arreglos bidimensionales y las diferentes operaciones que se dan en su recorrido. Hacer ejercicios con el manejo de vectores y matrices, y sus combinaciones. Realizar ordenamiento de vectores aplicando alguno de los diferentes mtodos. CONTENIDO TEMTICO Definicin Arreglos: Unidimensionales Bidimensionales Multidimensionales

Competencias acadmicas a desarrollar Ordenar, eliminar, modificar o buscar los datos en arreglos de una dimensin Reconocer las estructuras de los arreglos bidimensionales y las diferentes operaciones que se dan en su recorrido. Hacer ejercicios con el manejo de vectores y matrices, y sus combinaciones. Realizar ordenamiento de vectores aplicando alguno de los diferentes mtodos.

Indicadores de logro: Conceptual: Conoce e identifica los arreglos con una o ms dimensiones para aplicarlas en problemas planteados. Procedimental: Resuelve problemas mediante algoritmos que requieran operaciones con datos almacenados en vectores y matrices, y el manejo de ciclos anidados. Integra los elementos bsicos de la algoritmia en el tratamiento y solucin de los problemas planteados, e identifica fcilmente los errores. Actitudinal: Reconoce las diferentes estructuras de datos y se interesa por su manejo en la solucin de los problemas.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

89

6. ARREGLOS

6.1 DEFINICION GENERAL ARREGLO


Conjunto de cantidades o valores homogneas, que por su naturaleza se comportan de idntica forma y deben de ser tratados en forma similar. Se les debe de dar un nombre que identifica el conjunto. Cada cantidad que hace parte del arreglo se le llama elemento. unidimensionales y bidimensionales (Vectores y matrices) Hay dos tipos de arreglos

6.2 VECTOR Arreglo unidimensional organizado en forma de lista. Conjunto de datos continuos que tienen el mismo formato y se denominan elementos del vector. Generalmente en un vector se almacenan datos para luego ellos o consultar de una forma rpida. realizar una operacin con

Para referirse a un determinado elemento se coloca el nombre del vector y dentro de un parntesis un subndice que indica a cual de los elementos nos estamos refiriendo. Los vectores se almacenan en la memoria central del computador en un orden adyacente. As un vector de 9 posiciones , llamado EDADES se representa grficamente por nueve posiciones de memoria sucesivas. Cada elemento se puede procesar como si fuese una variable simple. Ejemplo 36 Vector EDADES

23

35 24

12

24

36

27

18

Edades(1) = 23 Edades(2) = 35 Edades(3) = 24 Edades(4) = 12 Edades(5) = 7 Edades(6) = 24 Edades(7) = 36 Edades(8) = 27

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

90

Edades(9) = 18 Los vectores deben ser dimensionados dentro del programa previamente a su uso. Ejemplo: Vector [1...9] de enteros: EDADES

6.3 CARACTERISTICAS DE UN VECTOR


Tiene nombre; todo vector tiene un nombre definido por el programador. Tiene una dimensin o tamao; es decir se divide en una posiciones. cantidad fsica de

Tiene un ndice que indica el nmero de cada posicin del vector. Este debe ser un nmero entero. Tiene tipo numrico o alfanumrico segn sean los datos que almacene. Los datos del vector deben ser homogneos, es decir Cuando se refiere a un elemento del vector: siempre se vector y dentro de parntesis la posicin. del mismo tipo. debe escribir el nombre del

6.3.1 Llenado de un Vector


Hacer para i = 1 a 10 Leer elemento Vec( i ) elemento Fin-para Hacer mientras i <= 10 Leer elemento vec( i ) elemento i=i+1 Fin-mientras Repetir Leer elemento vec( i ) elemento i=i+1 Hasta-que i = 1 0

6.4 OPERACIONES CON ARREGLOS

Se dan dos tipos de operaciones sobre los arreglos: sobre sus elementos o sobre el arreglo completo.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

91

Operaciones sobre los elementos del arreglo son: asignacin, lectura/ escritura. Operaciones sobre el arreglo completo son: Recorrido, bsqueda, insercin / eliminacin, ordenacin.

6.4.1 Asignacin De Datos En Un Vector. Al igual que en las variables, los valores almacenados en un vector pueden ser dados por el programador o por el usuario del programa. Ejemplo: Vec-num(1) Vec-nomb (25) nombre Ana 5 indicamos que en la posicin 1 del vector nmero se le asign el valor 5

Ana , indicamos que en la posicin 25 del vector nombres se le asign el

Si se desea asignar valores a todas las posiciones del vector se debe utilizar un ciclo (Para, mientras o repita).

6.4.2 Lectura y escritura de datos. La entrada o salida (escritura/ lectura) normalmente se realizan con estructuras repetitivas. Ejemplo 36 Usando el vector Edades que tenemos anterior LEER: Edades(6) leer el elemento 6 del vector edades que es 24 ESCRIBIR (IMPRIMIR): Edades(9) nos mostrar el elemento 9 que es 18

6.4.3 Bsqueda En Un Vector: Cuando se necesita hallar uno o varios elementos que cumplan una determinada caracterstica dentro de un vector se emplean dos tipos de bsqueda: secuencial o lineal y binaria. 6.4.3.1 Bsqueda lineal o secuencial Mtodo de localizacin basado en comparaciones a lo largo de todo el vector. Se emplea generalmente cuando se trabaja con vectores desorganizados. Se da bsqueda con barrido completo y la con barrido interrumpido 6.4.3.2 Bsqueda binaria. En este caso podemos hallar la de un vector ordenado. posicin de un elemento dentro

6.4.3.3 Bsqueda con barrido completo: Se realiza desde el primer elemento hasta al ltimo; se utiliza cuando pueden haber varios elementos que contengan la misma caracterstica. Ejemplo 37:

Llenar un vector de 10 posiciones con valores cuntas veces se repite el elemento 75 en dicho vector.

numricos e imprimir

Realice el ejercicio en subprogramas . ANALISIS VEC_NUM = vector nmeros J = contador subndice del vector CONT = contador de elementos iguales a 75

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

92

INICIO PROG-PPAL. ARREGLO VEC_NUM[10] ENT: NUMERO ENT _ J LLENAR (ENT: VEC _NUM ,J) CONTAR (ENT: VEC_NUM,J,CONT) MOSTRAR el elemento 75 se repite: CONT FIN PROG-PPAL IN-PROC LLENAR (ENT: VEC ,J ) HAGA PARA J = 1,HASTA 10510,1 HAGA LEER: valor NUMERO VEC_NUM (J) = NUMERO FIN PARA RETORNE FIN-PROC. IN PROC. CONTAR (ENT:VEC_NUM, J,CONT) CONT = 0 HAGA PARA J = 1,HASTA 10,1 S VEC_NUM(J) = 75 ENTONCES CONT = CONT + 1 FIN SI. FIN PARA RETORNE(CONT) FIN-PROC. PRUEBA DE ESCRITORIO 25 56 75 23 CONT 0 1 2 3

89

75

13

27

75

89

J = 1/ 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10

6.4.3.4. Bsqueda con barrido interrumpido. Esta se realiza hasta que se encuentra el elemento deseado o se recorra completamente el vector sin encontrarlo. Ejemplo 38 Realice un procedimiento que permita buscar en un vector de 100 posiciones con valores numricos diferentes, un valor ledo e imprimir la posicin en que se encuentra.
IDENTIFICADORES VECNUM = vector nmeros SW = suiche K = contador subndice del vector VALOR = Contiene el valor a buscar POS= posicin en la que se encuentra el valor ledo IN-PROC BUSCAR VALOR (ENT VECNUM, K) K=1 SW = NO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

93

LEER: VALOR HAGA MIENTRAS (K < = 100) AND ( SW = NO) SI VECNUM(K) = VALOR ENTONCES SW = SI POS = K FIN SI K=K+1 FIN MIENTRAS SI SW = NO ENTONCES IMPRIMA: VALOR NO ENCONTRADO EN EL VECTOR SINO IMPRIMA: ENCONTRADO VALOR EN LA POSICIN POS FIN SI RETORNE FIN PROC.

6.4.3.5 Bsqueda binaria. En este caso podemos hallar la dentro de un vector ordenado. El Mtodo es el siguiente:
Se halla el elemento central del vector Si coincide con elemento a buscar termine.

posicin de un elemento

Si el elemento buscado es menor que el central se sabe que est en la primera mitad del vector. Si el elemento buscado es mayor que el central se sabe que mitad del vector. est en la segunda

Se selecciona la mitad del vector en la cual se cree se halla el elemento y se repite todo el proceso anterior. Si en la mitad donde se supone que se encuentra el elemento es menor que uno el elemento no se encuentra en el vector y termina la bsqueda.

Ejemplo 39 : Realizar un algoritmo que permita buscar un elemento k en un vector de N elementos, utilizar el mtodo de Bsqueda binaria,
IDENTIFICADORES BAJO = LIMITE INFERIOR ALTO = LIMITE SUPERIOR CENTRAL = LIMITE CENTRAL K = ELEMENTO A BUSCAR VECTOR = ARREGLO A RECORRER N = NUMERO DE ELEMENTOS DEL ARREGLO IN-PROC BUSQUEDABINARIA (ENT: VECTOR, N. K) ARREGLO VECTOR [N] ENTERO :NUMERO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

94

BAJO = 1 ALTO = N CENTRAL = (ALTO + BAJO) div 2 HAGA M.Q ( BAJO <= ALTO) AND (VECTOR (CENTRAL) <> k) SI K < VECTOR (CENTRAL) ENTONCES ALTO = (CENTRAL 1) SINO BAJO = CENTRAL + 1 FIN SI CENTRAL = (ALTO + BAJO) div 2 FIN M.Q SI K = VECTOR (CENTRAL) ENTONCES MOSTRAR VALOR ENCONTRADO EN: CENTRAL SINO MOSTRAR VALOR NO ENCONTRADO FIN SI RETORNE FIN PROC.

6.4.4 Actualizacin De Un Vector. Esto puede ser : Aadir, Insertar, o eliminar un elemento a un vector. Aadir . Para aadir un elemento al vector se hace al final de este, verificando que exista el espacio suficiente en memoria para el nuevo elemento: es decir que no contenga todos los elementos con que fue definido al principio del programa. Insertar. Cuando se inserta un elemento este se introduce en el interior del vector . en este caso se debe hacer un desplazamiento previo hacia abajo para colocar el elemnto nuevo en la posicin relativa. Eliminar. Para borrar un elemento del vector, si ste est en la ltima posicin no es problema. El borrado al interior del vector requiere de un desplazamiento hacia arriba de los elementos inferiores al borrado, para reorganizar el vector.

Insertar ordenado. Ejemplo 40: En un arreglo de 100 posiciones y N elementos, que est ordenado insertar un elemento Y, verificando que el vector quede ordenado.
IDENTIFICADORES N = nmero de elementos que hay en el vector Y = valor a insertar VEC = arreglo POS = posicin en que se encuentra el elemento INICIO INSERTAR ORDENADO ARREGLO VEC_NUM[100] ENT: NUMERO LEER: N, Y SI N < 100 ENTONCES BUSCAR (ENT_VEC,N,Y,POS)

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

95

Si POS > 0 entonces Elemento ya existe Sino N N+1 POS POS * (-1) HAGA PARA K = N , HASTA (POS + 1), -1 VEC(K) = VEC(K-1) FINPARA VEC(POS) = Y Finsi SINO No hay espacio en el vector. FINSI RETORNE FIN PROC. IN-PROC BUSCAR (ENT: VEC,N,Y,POS) Haga M.Q. (K <= 100) AND (VEC(K) < Y) K=K+1 Fin M.Q Si (K > N) OR (VEC(K) > Y) entonces Pos -K sino POS K Finsi RETORNE(POS) FIN PROC.

Insertar desordenado : Ejemplo 41: En un arreglo de 100 posiciones y con elementos sin ordenar, insertar un elemento Y.
INICIO INSERTAR DESORDENADO ARREGLO VEC_NUM[100] ENT: NUMERO LEER: N, Y SI N < 100 ENTONCES POS = N + 1 VEC(POS) = Y SINO NO HAY ESPACIO EN EL VECTOR FIN SI FIN INSERTAR DESORDENADO

Borrar ordenado, Ejemplo 42: elemento X.

En un arreglo de N posiciones ordenado borrar un

IDENTIFICADORES N = Tamao del vector X = valor a borrar VEC = arreglo POS = posicin en que se encuentra el elemento a borrar

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

96

INICIO BORRAR ORDENADO ARREGLO VEC_NUM[N] ENT: NUMERO LEER: N,X SI N > 0 ENTONCES BUSCAR ( ENT: VEC,N,X,POS) Si POS < 0 entonces Elemento no existe en el vector Sino N N-1 HAGA PARA J =POS, HASTA N, 1 VEC(J) = VEC(J + 1) FINPARA Finsi SINO No hay elementos en el vector. FINSI FIN BORRAR ORDENADO IN-PROC BUSCAR (ENT:VEC,N,Y,POS)

J=1 HAGA M.Q. (J <= N) AND (VEC(J) < X)


J=J+1 FIN M.Q Si (J > N) or (VEC(J) > X) entonces POS -J sino POS J Finsi RETORNE (POS) FIN-PROC

Borrar desordenado, Ejemplo 43 elemento X.

En un arreglo de N posiciones sin ordenar borrar un

IDENTIFICADORES N = Tamao del vector X = valor a borrar VEC = arreglo POS = posicin en que se encuentra el elemento a borrar K y J = contadores (subndices) para recorrer el vector

INICIO BORRAR DESORDENADO


ARREGLO VEC_NUM[N] ENT: NUMERO LEER: N,X SI N >=1 ENTONCES J 1 SW 0 HAGA M.Q. (J <= N) AND ( SW = 0 ) SI VEC(J) = X ENTONCES SW 1

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

97

N N -1 HAGA PARA K= J, HASTA N, 1 VEC(K) VEC(K+1) FIN PARA SINO J=J+1 FINSI FIN M.Q. SI SW = 0 ENTONCES MOSTRAR:Elemento no est en el vector. FINSI SINO MOSTRAR No hay elementos en el vector FINSI FIN BORRAR DESORDENADO

Modificar desordenado, Ejemplo 44 En un arreglo de N posiciones si ordenar modificar un elemento Z.


IDENTIFICADORES N = Tamao del vector Z = valor a modificar VEC = arreglo K = subndice del vector POS = posicin en que se encuentra el elemento a borrar X = valor que modifica, INICIO MODIFICAR DESORDENADO ARREGLO VEC_NUM[N] ENT: NUMERO LEER N, X, Z SI N >=1 ENTONCES K 1 SW 0 HAGA M.Q. (K <= N) AND ( SW = 0 ) SI VEC(K) = Z ENTONCES SW 1 VEC(K) = X SINO K=K+1 FINSI FIN M.Q. Si SW = 0 ENTONCES MOSTRAR Elemento Z no existe en el vector finsi SINO MOSTRAR No hay elementos en el vector. FINSI FIN MODIFICAR DESORDENADO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

98

Modificar ordenado, Ejemplo 45 En un arreglo de N posiciones ordenado modificar un elemento Z y dejar el vector nuevamente ordenado.
INICIO MODIFICAR ORDENADO ARREGLO VEC_NUM[N] ENT: NUMERO LEER: N, X, Z SI N >=1 ENTONCES J 1 SW 0 HAGA M.Q. (J <= N) AND ( SW = 0 ) SI VEC(J) = Z ENTONCES SW 1 VEC(J) X POS = J SINO J=J+1 FINSI FIN M.Q. SI SW = 0 ENTONCES MOSTRAR Elemento Z no existe en el vector. SINO SI VEC(POS) > VEC(POS+1) ENTONCES ORDENARSUPERIOR( ENT: VEC,POS,J) SINO SI VEC(POS) < VEC(POS-1) ENTONCES ORDENARINFERIOR(ENT:VEC,POS,J) FINSI FINSI FINSI SINO MOSTRAR No hay elementos en el vector. FINSI FIN

PROC ORDENARINFERIOR(ENT VEC,POS,J) HAGA PARA J = 1, HASTA (POS -1), 1 HAGA PARA K = 1, HASTA (POS ) , 1 SI VEC(J) > VEC(K) ENTONCES AUX = VEC(J) VEC(J) = VEC(K) VEC(K) = AUX FIN-Si FIN-PARA FIN-PARA RETORNE FIN PROC. PROC ORDENAR SUPERIOR(ENT: VEC,POS,J ) HAGA PARA J = POS, HASTA (N -1), 1 HAGA PARA K = (POS + 1) HASTA ( N ), 1 SI VEC(J) > VEC(K) ENTONCES

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

99

AUX = VEC(J) VEC(J) = VEC(K) VEC(K) = AUX FIN-SI FIN-PARA FIN-PARA RETORNE FIN PROC

6.5 ESQUEMA SUBPROGRAMAS

GENERAL

PARA

UN

EJERCICIO

CON

VECTOR

EN

PROGRAMA PRINCIPAL INICIO LEER N ARREGLO VEC[ N] ELEMENTO: TIPO K i= ENTERO LLENAR (TIPO: VEC,ENT: K.N) RECORRER (TIPO:VEC,ENT; K,N TIPO:VARIABLES..........) MOSTRAR (TIPO:VEC,ENT:K.N) FIN PROG-PPAL. IN PROC LLENAR (TIPO: VEC,ENT: K.N) HAGA PARA K = 1, HASTA N, 1 LEA ELEMENTO VEC (K ) = ELEMENTO FIN PARA RETORNE FIN PROCIN- PROC RECORRER (TIPO:VEC,ENT; K,N TIPO:VARIABLES..........) ASIGNAR TIPO A IDENTIFICADORES INICIAR VARIABLES HAGA PARA K = 1 HASTA N, 1 ACCIONES CON EL VEC(K ) Clculos necesarios para solucionar el problema FIN PARA CALCULOS GENERALES Los clculos pueden ser una(s) funcin(es) o un(os) Procedimiento(s) MOSTRAR RESULTADOS DE LAS ACCIONES RETORNE FIN-PROC. IN-PROC MOSTRAR (TIPO:VEC,ENT:K.N) HAGA PARA K = 1, HASTA N,1 MOSTRAR VEC (K ) FIN PARA RETORNE FIN-PROC.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

100

6.6 METODOS DE ORDENAMIENTO


La Ordenacin (clasificacin) es la operacin de organizar un conjunto de datos en algn orden dado, tal como creciente o decreciente en datos numricos, o bien en orden alfabtico. Operaciones tpicas de ordenacin son: lista de nmeros, archivo de clientes de banco, nombres de una agenda telefnica, etc. La bsqueda de informacin, es al igual que la ordenacin otra operacin muy frecuente en el tratamiento de informacin. La bsqueda es una actividad que se realiza diariamente en cualquier aspecto de la vida.

Mtodos de ordenacin. Se dividen en dos categoras: Ordenacin INTERNA de vectores, tablas. Ordenacin EXTERNA de archivos. La ordenacin de vectores o arreglos se denomina tambin ordenacin interna, ya que se almacena en la memoria interna de la computadora de gran velocidad y acceso aleatorio. La ordenacin de archivos se suele hacer con casi siempre sobre soportes de almacenamiento externo, discos, cinta, etc. y por ello se denomina tambin ordenacin externa. Estos dispositivos son ms lentos en las operaciones de entrada/salida, pero, por el contrario, pueden contener mayor cantidad de informacin. Ordenacin interna: Clasificacin de los valores almacenados en un vector, creciente o decreciente y esto se realiza en memoria central y rpida (RAM). segn el orden

Ordenacin externa: Es la clasificacin de los registros de un archivo situado en un soporte externo (cinta, disco duro, diskette, cd-rom, etc.); aunque es menos rpido. Los ms conocidos son: Ordenacin por Intercambio o de burbuja (Mtodo # 1, Mtodo # 2 y Mtodo # 3). Ordenacin por Insercin directa. Ordenacin por Insercin Binaria. Ordenacin por Seleccin Directa. Ordenacin por el mtodo de Shell Ordenacin por el mtodo Quicksort(rpido)

La organizacin de un vector puede ser: Ascendente los valores van de menor a mayor. Descendente los valores van de mayor a menor.

6.6.1 Ordenamiento burbuja 1 El algoritmo ordena los elementos del arreglo utilizando el mtodo de la burbuja. Transporta en cada pasada el elemento mayor hacia la parte derecha del arreglo. VEC es un arreglo de N elementos

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

101

Ejemplo 46: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Burbuja 1 IN PROC BURBUJA1 (ENT: VEC,N, K ) ENT:K, J HAGA PARA K = 1 HASTA (N-1) , 1 HAGA PARA J = ( K + 1) HASTA N., 1 SI VEC( i ) > VEC(J) ENTONCES AUXILIAR = VEC( K) VEC(I ) = VEC(J) VEC(J) = AUXILIAR FIN SI. FIN PARA FIN PARA RETORNE FIN-PROC-

PRUEBA DE ESCRITORIO 1 4 3 2 2 2 2 2 2 K 1 2 3 4 5 2 3 4 4 3 3 3 3 3 J 2 3 4 5 6 3 5 5 5 5 4 4 4 4 J 3 4 5 6 J 4 5 6 4 9 9 9 9 9 6 5 5 J 5 6 J 6 5 6 6 6 6 6 9 9 6 6 2 2 3 4 5 5 6 9 AUX 4 3 4 5 9 6 9

6.6.2 Ordenamiento Por Intercambio Directo O De Burbuja. (Mtodo Nro. 2.) Se puede realizar una mejora en la velocidad de ejecucin del algoritmo. Obsrvese que en el primer recorrido del vector (cuando I =1) el valor mayor del vector se mueve al ltimo elemento X (N), entonces en el siguiente paso no es necesario comparar X (N-1) y X(N). En otras palabras, el limite superior del bucle o ciclo PARA, puede ser N-2. Despus de cada paso se puede decrementar en uno el lmite superior del bucle/ciclo PARA, el algoritmo sera:

Ejemplo 47: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Burbuja 2

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

102

El algoritmo ordena los elementos del arreglo. Transporta en cada pasada el elemento ms grande hacia la parte derecha del arreglo. VEC es un arreglo de N elementos} IN- PROC BURBUJA2(ENT: VEC,N.J) HAGA PARA K = 1,HASTA (N-1), 1 HAGA PARA J = 1 HASTA (N-K), 1 SI VEC(J) > VEC(J+1) ENTONCES AUX = VEC(J) VEC(J) = VEC(J + 1) VEC(J+1) = AUX FIN-Si FIN-PARA FIN-PARA RETORNE FIN-PROC{BURBUJA2}

6.6.3 Ordenamiento Por Intercambio Directo O De Burbuja. (Mtodo Nro. 3. Utilizando una Bandera o Seal) -.Mediante una bandera o centinela, o bien, una variable lgica, se puede detectar la presencia o ausencia de una condicin. En este caso mediante la variable SW se representa la clasificacin terminada con un valor verdadero y clasificacin no terminada por un valor falso.

Ejemplo 48: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Burbuja 3 El algoritmo ordena los elementos del arreglo utilizando el mtodo de la burbuja con seal de clasificado, utilizando un suiche o bendera. IDENTIFICADORES VNUM es un arreglo de n elementos K variablesde tipo entero. AUX es una variable del tipo de dato de los elementos del arreglo SW es una variable de tipo booleano (falso o verdadero) IN PROC BURBUJA3 (VNUM,N,K) SW = F HAGA MIENTRAS QUE clasificado = F SW = V HAGA PARA K = 1 HASTA N-1 ,1 SI VNUM(K) > VNUM,(K+1) AUX = VNUM(k) VNUM(k) = VNUM(k+1) VNUM(k+1) = AUX SW = F FIN-SI FIN-PARA FIN-MIENTRAS QUE RETORNE FIN-PROC{BURBUJA3}

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

103

6.6.4 Ordenamiento Por Insercin directa En este mtodo una vez que se determina la posicin correcta del elemento, se interrumpen las comparaciones. Ejemplo 49: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Insercin directa IN PROC INSERCIONDIRECTA(VECA,N,J) HAGA PARA J = 2, HASTA N ,1 AUX = VECA(J) K = J-1 HAGA MIENTRAS QUE (k >=1) (AUX < VECA(k)) VECA(k+1) = VECA(k) k = k-1 FIN-MIENTRAS VECA(K+1) = AUX FIN-PARA RETORNE FIN-PROC.

6.6.5 Ordenamiento Por Seleccin Directa . El mtodo de ordenacin por seleccin directa es ms eficiente que los mtodos analizados anteriormente, pero slo para vectores pequeos. La idea bsica de este algoritmo consiste en buscar el menor elemento del arreglo y colocarlo en la primera posicin. Luego se busca el segundo elemento ms pequeo del arreglo y se lo coloca en la segunda posicin. El mtodo se basa en los siguientes principios: Seleccionar el menor elemento del arreglo Intercambiar dicho elemento con el primero Repetir los pasos anteriores con los (n-1), (n-2) elementos y as sucesivamente hasta que slo quede el elemento mayor. Ejemplo 50: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Seleccin directa VECA es un arreglo de N elementos} P, MENOR, K y J son variables de tipo entero

IN PROC ORDENASELECCIONDIRECTA (VECA, N, J) HAGA PARA P = 1, HASTA N-1, 1


MENOR = VECA( P ) K=P HAGA PARA J = P + 1, HASTA N, 1 SI VECA(J) < MENOR MENOR = VECA(J) K=J FIN-SI FIN-PARA VECA(K) = VECA(P) VECA(P) = MENOR FIN-PARA RETORNE

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

104

FIN-PROC.

6.6.6 Ordenamiento Por Insercin Binaria: El mtodo de ordenacin por insercin directa puede mejorarse fcilmente. Para ello se recurre a una bsqueda binaria en lugar de una bsqueda secuencial para insertar un elemento en la parte izquierda del arreglo, que ya se encuentra ordenado. El proceso, al igual que en mtodo de insercin directa, se repite desde el segundo hasta el n-simo elemento. Ejemplo 51: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Insercin Binaria.

K, J, IZQ, DER y M son variables de tipo entero

VEC es un arreglo de N elementos}


AUX puede ser una variable de tipo entero, real o carcter IN PROC INSERCIN BINARIA (ENT:VEC, N.J) HAGA PARA J = 2 HASTA N, 1 AUX = VEC(J) IZQ = 1 DER = J - 1 HAGA MIENTRAS QUE (IZQ <= DER) M = PARTE ENTERA ((IZQ + DER)/2) SI AUX < = VEC(M) DER = M - 1 SINO IZQ = M + 1 FIN-SI FIN-MIENTRAS K=J-1 HAGA MIENTRAS QUE K >= IZQ VEC(K + 1) = VEC(K) K=K-1 FIN-MIENTRAS VEC(izq) = AUX FIN-PARA RETORNE FIN-PROC. Observemos que en el mtodo de ordenacin por insercin binaria se advierte la presencia de un caso antinatural. El mtodo efecta el menor nmero de comparaciones cuando el arreglo est totalmente desordenado y el mximo cuando est ordenado.

6.6.7 Ordenamiento Por El Mtodo De Shell. Es una mejora del mtodo de insercin directa que se utiliza cuando el nmero de elementos a ordenar es grande. El mtodo se denomina Shell -en honor a su inventor Donal Shell- y tambin mtodo de insercin sin incrementos decrecientes. Shell modific los saltos contiguos resultantes de las comparaciones por saltos de mayor tamao y con eso se consegua la clasificacin ms rpida. El mtodo se basa en fijar el tamao de los saltos constantes, pero de ms de una posicin. Supongamos un vector A de seis (6) elementos.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

105

12

16

24

36

En el mtodo de insercin, los saltos se hacen de una posicin y se necesitarn 5 comparaciones. En el mtodo de Shell, si los saltos son de dos posiciones, se realiza tres comparaciones. El mtodo se basa en tomar como salto N/2 (siendo N el nmero de elementos) y luego se va reduciendo a la mitad en cada repeticin hasta que el salto o distancia vale 1 Para un vector VECA de N elementos, el primer salto a dar tendr un valor de N/2, por lo que, para redondear, se tomar la parte entera de N div 2 . El seudo cdigo del procedimiento de ordenamiento por el mtodo Shell es el siguiente:

Ejemplo 52: Realizar un procedimiento para ordenar un vector de N elementos con el mtodo de ordenamiento Shell. El algoritmo ordena los elementos del arreglo utilizando el mtodo de Shell. A es un arreglo de N elementos} SALTO, F, K,J, son variables de tipo entero

IN PROC ORDENAMIENTO-SHELL(ENT;VECA,N,K)
SALTO = N div 2 HAGA MIENTRAS QUE (SALTO > 0) HAGA PARA F = (SALTO + 1), HASTA N, 1 J = F - SALTO HAGA MIENTRAS QUE J > 0 K = J + SALTO SI VECA(J) = VECA(K) J=0 SINO AUX = VECA(J) VECA (J) = VECA(K) VECA(K) = AUX FIN-SI J = J - SALTO FIN-MIENTRAS FIN-PARA SALTO = SALTO div 2 FIN-MIENTRAS RETORNE FIN-PROC.

Nota : Realice la prueba de escritorio para cada ejercicio , recuerde que es una herramienta muy importante para detectar los errores de lgica y entender como funciona el algoritmo.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

106

6.7 MATRICES.

Las matrices o Arreglos Bidimensionales. Conjunto de cantidades organizadas en filas y columnas (MATRIZ). Los elementos deben ser de un mismo tipo; para referirse a un determinado elemento debe realizarlo por el nombre de la matriz y dentro de un parntesis 2 subndices separados por comas, donde el primero se refiere a la fila y el segundo se refiere a la columna. MATRIZ (FILA, COLUMNA)

20 58 17 33 MA(1,1)=20 MA(2,1)=58 MA(3,1)=17 MA(4,1)=33

30 35 59 56

40 78 49 87

80 97 69 126 MA(1,3)=40 MA(1,4)=80 MA(2,3)=78 MA(2,4)=97 MA(3,3)=49 MA(3,4)=69 MA(4,3)=87 MA(4,4)=126

MA(1,2)=30 MA(2,2)=35 MA(3,2)=59 MA(4,2)=56

SUMA DE LA DIAGONAL PRINCIPAL MA(1,1) + MA(2,2) + MA(3,3) + MA(4,4) = 230 20 + 35 + 49 + 126 = 230

Es un arreglo de M * N elementos organizados en dos dimensiones donde M es el numero de filas o reglones y N el numero de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz acompaado de dos ndices. Mat [R,C]
Donde R indica el rengln y C indica la columna, donde se encuentra almacenado el dato.

Representacin grfica de una matriz Mat [R,C]

Fila o Rengln [R]

1,1 2,1 3,1 4,1

1,2 2,2 3,2 4,2

1,3 2,3 3,3 4,3

1,4 2.4 3,4 4,4

Columna [C]

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

107

6.7.1 Tipos de matrices : Matriz cuadrada: cuando el nmero de filas es igual al de columnas. Los elementos ubicados en la diagonal principal, cumplen que son iguales el nmero de la fila al de la columna. Matriz identidad: Es una matriz cuadrada donde los elementos de la diagonal principal son 1 y el resto de elementos son 0. Matriz transpuesta: la matriz transpuesta A t de la matriz A, es una matriz donde las filas de una son las columnas de la otra. 6.7.2 Llenado de una matriz Por filas o renglones Hacer para R = 1 a 5 Hacer para C = 1 a 5 Leer Mat [R,C] Fin-para Fin-para Por columnas Hacer para C = 1 a 5 Hacer para R = 1 a 5 Leer Mat [R,C] Fin-para Fin-para Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los ndices y se utilizan 2 ciclos uno para las filas o renglones y otro para las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).

6.8 ESQUEMA GENERAL PARA UN EJERCICIO CON MATRIZ EN SUBPROGRAMAS


PROGRAMA PRINCIPAL INICIO LEER N, M ( N filas y M columnas) ARREGLO MAT[ N*M] TIPO:ELEMENTO C,F = ENTERO LLENAR (TIPO:MAT,ENT: F,C,M,N) RECORRER (TIPO: MAT,ENT:F,C,M,N TIPO:VARIABLES..........) MOSTRAR (TIPO:MAT,ENT: F,C,M,N) FIN IN-PROC LLENAR (TIPO:MAT,ENT: F,C,M,N) HAGA PARA F = 1 HASTA N , 1 HAGA PARA C = 1 HASTA M, 1 LEA ELEMENTO MAT (F,C) = ELEMENTO FIN PARA (columnas) FIN PARA (filas) RETORNE FIN-PROC.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

108

IN-PROC RECORRER (TIPO: MAT,ENT:F,C,M,N TIPO:VARIABLES..........) ASIGNAR TIPO A IDENTIFICADORES INICIAR VARIABLES GENERALES HAGA PARA F = 1 HASTA N, 1 . INICIAR VARIABLES DE GRUPO HAGA PARA C = 1 HASAT M , 1 ACCIONES CON EL MAT(F,C) Clculos necesarios para solucionar el problema FIN PARA CALCULOS DE GRUPO Los clculos pueden ser una(s) funcin(es) o un(os) Procedimiento(s) MOSTRAR RESULTADOS DE GRUPO FIN PARA CALCULOS GENERALES Los clculos pueden ser una(s) funcin(es) o un(os) Procedimiento(s) MOSTRAR RESULTADOS GENERALES REGRESE FIN-PROC. IN-PROC MOSTRAR (TIPO:MAT,ENT: F,C,M,N) HAGA PARA F = 1, HASTA N, 1 HAGA PARA C = 1 HASTA M, 1 MOSTRAR MAT(F,C) FIN PARA FIN PARA RETORNE FIN.PROC.

6.9 EJERCICIOS RESUELTOS DE MATRICES


Ejemplo 53 Realizar un procedimiento que recorra todas las posiciones de una matriz MAT de N*N y sume slo su diagonal principal e imprima la suma. INPROC SUMADIAGONAL-PPAL(ENT:MAT,F,C,N) ENT: SUMA F=1 SUMA = 0 HAGA MIENTRAS QUE (F < = N) C=1 HAGA MIENTRAS QUE (C < = N) SI F = C ENTONCES SUMA = SUMA + MAT(F,C) FIN SI C=C+1 FIN M.Q F=F+1 FIN M.Q IMPRIMA La suma de la diagonal principal es SUMA RETORNE FIN PROC PRUEBA DE ESCRITORIO

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

109

1 6 7 8 F 1 2 3 4 C 1 2 3 4

5 8 2 5 C C 1 1 2 2 3 3 4 4

7 9 3 2 C 1 2 3 4 C 1 2 3 4

9 4 5 4 SUMA 0 1 9 12 16

Ejemplo 54 :Realice un procedimiento que lea un valor, recorra la matriz de N* N, y diga si el valor se encuentra y en que lugar de la matriz est. IDENTIFICADORES MVAL = Matriz valores N* N = tamao de la matriz F, C = Subndices de la matriz POS = Posicin el la que de hallo el valor buscado SW = variable boleana (si o no) que interrumpe el proceso cuando se encuentra el valor buscado. IN-PROC BUSCAR-VALOR (ENT;MVAL,F,C) LEER: Valor a buscar VALOR POS = 0,0 SW = NO HAGA MIENTRAS (F< = N) AND ( SW = NO) HAGA MIENTRAS (C< = N ) AND ( SW = NO) SI MVAL(F,C) = VALOR ENTONCES SW = SI P OS = F,C FIN SI C=C+1 FIN MIENTRAS F=F+1 FIN MIENTRAS SI SW = NO ENTONCES IMPRIMA: Valor no encontrado SINO IMPRIMA: Encontrado valor en: POS FIN SI RETORNE FIN-PROC Ejemplo 55 Un tablero de damas es una matriz de 8 filas por 8 columnas. Un (1) uno representa la ficha roja, un (2) dos representa la ficha negra en el tablero un (0) cero representa la ausencia de fichas. Se pide calcular e imprimir: - Cuntas fichas rojas hay en el tablero. - Cuntas fichas negras hay en el tablero. - Cuntas fichas hay en total en el tablero.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

110

IDENTIFICADORES FR = contador de las fichas rojas FN = contador de las fichas negras TF = contador de todas las fichas TABLERO = matriz I , J = subndices de la matriz INICIO CONTAR FICHAS ARREGLO TABLERO[8*8] ENT: I,J , FR, FN, TF FR = 0, FN = 0, TF = 0 HAGA PARA I = 1 HASTA 8, 1 [ recorre las filas] HAGA PARA J = 1 HASTA 8, 1 [recorre las columnas] SI TABLERO (I,J) = 1 ENTONCES FR = FR + 1 SINO SI TABLERO (I,J) = 2 ENTONCES FN = FN + 1 SINO SI TABLERO (I,J) = 0 ENTONCES Salir del condicional FIN SI FIN SI FIN SI FIN PARA [ ciclo ms interno el de las columnas] FIN PARA [ ciclo ms externo el de las filas]. TF = FR + FN IMPRIMA: Hay fichas rojas FR. Hay fichas negras FN. Total de fichas en el tablero TF. FIN. Ejemplo 56 Multiplicar 2 matrices A, de N * M y B de X * Y posiciones. Nota : El nmero de filas de A debe ser igual al nmero de columnas de B. IDENTIFICADORES MATA = matriz A MATB = matriz B MATC = matriz donde se almacena el resultado de la multiplicacin de las matrices, M*N = tamao de la matriz A X*Y= tamao de la matriz B M*Y = tamao de la matriz C I,j,k = subindices de las matrices SUMATORIA = variable de trabajo guarda la suma de los elementos multiplicados PROGRAMA MULTIPLICACION DE MATRICES INICIO PROG-PPAL. ARREGLO MATA[M*N] NUMEROS: ENTEROS ARREGLO MATB [X*Y] NUMEROS: ENTEROS SI M <> Y ENTONCES

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

111

MOSTRAR: No es valida la multiplicacin IR A FIN SINO PRODUCTO DE LA MATRIZ (ENT: MATA, MATB, N,M,X,Y) FINSI FIN PROG-PPAL IN-PROC PRODUCTO DE LA MATRIZ(ENT: MATA, MATB, N,M,X,Y) ARREGLO MATC [M*Y] ENT: SUMATORIA ENT : I, J , K HAGA PARA I = 1, N , 1 HAGA PARA J = 1 HASTA Y, 1 MATC = 0,0 SUMATORIA = 0 HAGA PARA K = 1, HASTA N , 1 SUMATORIA = SUMATORIA + ( MATA(I,K) * MATB(K,J)) FIN PARA MATC(I,J) = SUMATORIA FIN PARA FIN PARA REGRESE FIN-PROC. 6.10 ACTIVIDADES DE TRABAJO INDEPENDIOENTE Consulte acerca de los siguientes trminos, qu es un arreglo? arreglo Unidimensional. Arreglo bidimensional Identifique diagonal, conceptos tales como: subndice, dimensin, vector, matriz, arreglos paralelos.

Frmese una opinin acerca de qu es una matriz?; Conceptos sobre: columna, fila, diagonal principal, diagonal secundaria Elabore el taller de la unidad 6 sobre vectores y matrices, que hace parte de tu trabajo independiente.

Consulta la pagina http//espanol.geocities.com/evmejia_36

6.11 TALLER UNIDAD 6 ARREGLOS VECTORES

1. Elabore un algoritmo que lea 10 datos numricos en un vector e imprima los datos positivos y
cuntos son.

2. Elabore un algoritmo que lea 10 nmeros enteros en un vector e imprima los nmeros impares
y la cantidad de nmeros pares.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

112

3. Desarrolle un algoritmo que almacene una palabra de N letras en un vector e imprima el


nmero de veces en que se encuentre la letra A (sea mayscula o minscula).

4. Dados 9 nmeros enteros (ledos por teclado), calcular la suma de los nmeros divisibles por
tres, mostrar cuntos son y cul es la media aritmtica de estos nmeros.

5. Elabore un algoritmo que guarde 10 nmeros enteros e informe cul fue el menor nmero ledo
entre todos (supngase que todos los nmeros son diferentes).

6. Desarrolle un algoritmo que lea las notas definitivas de un grupo de 50 alumnos en un vector y
que calcule e imprima: a) b) c) d) El promedio general del grupo. Nmero de alumnos que estn por encima del promedio. Nmero de alumnos aprobados y nmero de alumnos reprobados. Porcentaje de alumnos aprobados y porcentaje de alumnos reprobados.

7. Palabras palndromas son aquellas que pueden leerse tanto al derecho como al revs,
ejemplo: ANILINA. Desarrolle un algoritmo que lea una palabra de mximo 7 letras y determine si dicha palabra es de este tipo o no.

8. Elabore un algoritmo que lea un vector de N elementos. Si el nmero de elementos es par


intercambiar el elemento i-simo por el elemento i-simo+1, tal como lo muestra la siguiente figura: Vector antes del intercambio: Vector despus del intercambio:

3
1

5
2 3

7
4

9
5

11
6

13

5
1

3
2

9
3

7
4 5

13 11
6

9. Desarrolle un algoritmo que lea un vector de N elementos. Intercambiar el elemento i-simo por
el elemento n-simo, tal como lo ilustra la siguiente figura: vector antes del intercambio: Vector despus del intercambio:

3
1

5
2

7
3 4

9
5

11 13 15
6 7

15 13 11
1 2 3 4

9
5

7
6

5
7

Mostrar el vector final.

10. Se tiene un vector de 100 posiciones con valores


ledo e imprimir la posicin en que se encuentra.

numricos diferentes buscar un valor

11. En un vector de 50 posiciones ordenado insertar un elemento X 12. Realizar un algoritmo que permita buscar un elemento k en un vector de N elementos, utilizar
el mtodo de Bsqueda binaria,

13. En un arreglo de N posiciones sin ordenar modificar un elemento Z.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

113

14. Hacer un diagrama que lea dos vectores de N y M posiciones. Crear un vector con la unin
de ambos vectores e imprimirlos. Vector A 12 23 78 15 14

16

57

32

18

Vector C 12 23 78 15 14 16 57 32 18

15. En un vector de 100 elementos ordenado eliminar un elemento Y. 16. En un vector de 100 posiciones ordenado leer un elemento Z buscarlo en el vector para
modificarlo. El vector debe quedar ordenado.

17. Lea un vector de S posiciones e invirtalo. Utilice otro Vector.


. Vector A 13 Vector R 7 5 36 18 25 13 25 18 36 5 7

18. Lea un vector de 15 posiciones e invirtalo sin utilizar otro Vector. 19. Dado un arreglo de N elementos enteros, ordnelo en forma descendente aplicando :
Insercin directa Insercin binaria Seleccin directa

20. Se tienen 3 arreglos paralelos A, B, y C. El primero de ellos almacena las matrculas de N


alumnos; el segundo, las calificaciones de los N alumnos obtenidas en un examen final; y el tercero, el nmero total de materias aprobadas por cada alumno. Los elementos de los arreglos se corresponden ,o sea que el primer elemento de cada arreglo pertenece a un estudiante; el segundo elemento de cada arreglo a otro estudiante, y as sucesivamente. Aplique el mtodo de insercin binaria para ordenar simultneamente los arreglos, de tal manera que queden ordenados ascendentemente por matrcula.

21. Realice un algoritmo en subprogramas que permita:


-Llenar un vector con 70 elementos; - Hallar cuntos elementos son mltiplos de 5 hay en el vector - Hallar el promedio de los elementos almacenados en las posiciones impares;

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

114

- Buscar cuntos elementos del vector son mayores que ese promedio; - leer un valor Y , buscar en que posicin del vector se encuentra -Imprimir los elementos almacenados en las posiciones pares desde la posicin 55 a la 1

22. Realice un algoritmo en subprogramas que permita:


- Llenar un vector con 50 elementos numricos diferentes; - Hallar cuntos elementos pares y cuntos impares hay - Hallar el promedio de los valores almacenados en las posiciones pares del vector; - Buscar cuntos elementos del vector son menores que el promedio; -Imprimir los elementos almacenados en las posiciones impares desde la posicin 50 a la 10 - Organizar el vector en forma descendente burbuja 3

23. Realice un algoritmo que le permita:


- Llenar un vector de 130 posiciones con valores numricos; - Sumar los elementos pares e imprimir la suma; - Hallar cuntos elementos son mltiplos de 5; - Buscar un elemento de valor 18 decir en cual posicin del vector se encuentra; - Imprimir el vector solo las posiciones pares. - Hallar el promedio del vector

24. Modifique en el vector de abajo el elemento 56 cambindolo por 47(prueba de escritorio);


- imprima el vector de manera inversa solo las posiciones pares; - Calcule el valor promedio e imprmalo. 12 23 78 15 14 16 57 56 32 18

25. En el vector de abajo inserte el valor 48 (prueba de escritorio;


busque cuantos elementos son mltiplos de 7; imprima el vector las posiciones pares de manera inversa. 12 25 34 45 54 76 78 89 92

TALLER DE MATRICES

1. Llenar una matriz de 10*10 posiciones, Sume los elementos almacenados en las columnas. 2. Llenar una matriz de 10*10 posiciones, sume e imprima la diagonal principal secundaria. 3. Llenar una matriz de 15 *15 se desea: sumar los elementos almacenados en las filas y
llenar un vector con las sumas; organizarlo en orden ascendente imprima el vector.

4. Llenar una matriz de 10 * 10 con valores diferentes; llenar un vector con la suma de la
diagonal principal y la fila 7; organizar el vector en orden descendente imprima el vector.

5. Llene una matriz de 16*16; sume los elementos almacenados en las filas impares y llena un
vector con ellas; luego secundaria. organizar el vector en orden descendente ; imprima la diagonal

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

115

6. Llenar una matriz de 16*15 posiciones con valores diferentes, sumar los elementos de las filas
3, 7, 15 e imprimirlos.

7. Llenar una matriz de 20 * 20 con valores numricos; hallar el promedio de las columnas y
llevarlo a un vector llamado promedio e imprimirlo

8. Llenar una matriz de 10 *10 posiciones con valores


secundaria.

diferentes, e imprima la diagonal

9. Llene un vector de 60 posiciones, Sume los elementos almacenados en las posiciones


pares; imprima la suma y los nmeros almacenados en las posiciones pares; llene una matriz de m*n con los elementos del vector; imprima la matriz.

10. Llenar un vector de 60 posiciones con valores diferentes, leer luego un valor X e imprimir
cuantos elementos del vector son mayores que el nmero ledo; llenar una matriz con el vector e imprimirla.

11. Dada una matriz cuadrada de NxN elementos, imprimir los elementos de la diagonal
ascendente.

12. Dada una matriz cuadrada de NxN elementos, imprimir los elementos de la diagonal
descendente.

13. Dada una matriz cuadrada de NxN elementos, imprimir los elementos de la triangular superior. 14. Dada una matriz cuadrada de NxN elementos, imprimir los elementos de la triangular inferior. 15. Llenar una matriz de NxM elementos, hallar e imprimir el elemento mayor as como la posicin
que ocupa (columna, fila).

16. Sumar las columnas de una matriz de NxM y el resultado de cada suma llevarlo a un vector
de N posiciones.

17. Escriba un algoritmo que muestre el rea sealada con X


X X X X X X x x x x x x x x X x x x x x x x x X X X X X

18. Elaborar un algoritmo que lea los datos de una matriz de tipo numrico de 3 filas por 3
columnas; luego a partir de sta, llenar otra de 3 columnas por 9 filas (matriz de tripletas), en la cual cada fila contendr en la primera columna el nmero de la fila donde se encuentra el

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

116

elemento en la primera matriz, en la segunda columna, el nmero de la columna en la cual se encuentra el mismo elemento en la primera matriz, y en la tercera, el elemento como tal. Por ejemplo: A partir de esta matriz: 20 10 5 8 3 90 44 2 11 Se debe generar esta matriz de tripletas: 1 1 20 1 2 10 1 3 5 2 1 8 2 2 3 2 3 90 3 1 44 3 2 2 3 3 11 Mostrar el vector final. Si el nmero de elementos es impar no es posible hacer el intercambio, por lo tanto indicarlo con un mensaje de salida.

19. Escriba un algoritmo que muestre el rea sealada con X


X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X

20. Escriba un algoritmo que muestre el rea sealada con X


X X X X X X X X X X X X X X X X X X X X X X X

X X X

X X X X X

X X X X X

X X X

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

117

UNIDAD 7 OBJETOS

CONCEPTOS BSICOS DE PROGRAMACIN ORIENTADA A

Objetivo: Distinguir los elementos conceptuales bsicos de la programacin orientada a objetos y asociarlos de forma significativa. Objetivos especficos: Define la Programacin Orientada a Objetos. Explica los conceptos de: Clase, Subclase, Superclase. Objeto. Distingue los atributos Explica la diferencia entre un Mtodo. y un Mensaje.

CONTENIDO TEMTICO Introduccin a la Programacin Orientada a Objetos. Definiciones Tericas Bsicas Clase, Subclase, Superclase, Objeto Instancia., Mtodo. Mensaje. Herencia. Polimorfismo. Abstraccin de Datos. Encapsulamiento. LOGROS: Conceptual: Conocer los conceptos bsicos para el desarrollo de un algoritmo con la orientacin a objetos. Procedimental: Disea algoritmos diferenciando los atributos y los mtodos. Actitudinal: Reconoce los diferentes paradigmas de programacin

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

118

7. CONCEPTOS BSICOS DE PROGRAMACIN ORIENTADA A OBJETOS

7.1 GENERALIDADES
La POO es un paradigma de la programacin de computadores; esto hace referencia al conjunto de teoras, estndares, modelos y mtodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programacin la solucin a ese problema. La POO se basa en el modelo objeto, donde el elemento principal es le objeto, el cual es una unidad que contiene todas sus caractersticas y comportamientos en s misma, lo cual lo hace como un todo independiente, pero que se interrelaciona con objetos de su misma clase o de otras clase, como sucede en el mundo real. La programacin orientada a objetos ha revolucionado el estilo y enfoque de desarrollo de aplicaciones, quedando as desfasado el tradicional enfoque estructurado. Pero llegando a este punto, nos preguntamos Qu es un objeto? Conceptualmente podramos decir que un objeto es todo aquello que tenga caractersticas y acciones propias que lo identifiquen y que a su vez esta funcionalidad pueda verse reflejada en distintas situaciones e implementaciones.

La programacin orientada a objetos se respalda en la abstraccin, herencia y polimorfismo.


Abstraccin es la capacidad de tomar en consideracin las caractersticas ms resaltantes de un objeto (cuando se es nio se es ms abstracto que adulto. Esta cualidad se va perdiendo a medida que vamos creciendo), es decir, si un nio ve una cesta con naranjas y otra con manzanas dir que son redondas, tienen color, tamao y sabor, porque el nio es abstracto y no est entrando en detalles de la fruta sino en lo relevante y comn. Esto es pues bien, pero si la clase no la pudiese implementar en otra situacin o estado no sera de mucha utilidad, es ah en donde entra en escena la herencia. La herencia es la capacidad de adquirir y conservar caractersticas comunes de una generacin a otra. Similar a como sucede en la vida real con los padres e hijos, sucede con las clases. Otras clases pueden beneficiarse de las caractersticas de las antecesoras de manera que se ahorra tiempo en la hora de desarrollar e implementar. No es lo mismo comenzar un edificio sin bases a cuando se tienen estas, cierto? Otro punto importante es el polimorfismo, que es la capacidad que tiene una clase, mtodo u objeto de ejecutarse distintamente dependiendo de la situacin. No hay que confundir el polimorfismo con la sobrecarga de funciones. Una vez dicho esto, procedamos a verlo a manera de ejemplo. Un carro, siempre tendr ruedas, puertas, motor, transmisin (Propiedades). Adems que podr encender, cambiar de velocidad, acelerar, frenar (Mtodos). Siguiendo un enfoque orientado a objetos podemos decir que esta es la clase Carro. Una empresa que fabrica carros decide comprar nuestra clase, de manera que ella se beneficiar de nuestra plantilla y adems agregar caractersticas extras que satisfagan sus necesidades. Los objetos estn en nuestro alrededor, comprender como funcionan e interactan unos con otros nos permitir ser ms abstractos a la hora de disear y desarrollar nuestras clases.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

119

EL POO es una tcnica para desarrollar soluciones computacionales utilizando componentes de software (objetos de software). Objeto: Componente o cdigo de software, el cual contiene en s mismo tanto sus caractersticas (campos) como sus comportamientos (mtodos), el cual se accede a travs de su interfaz o signatura. Campos: Es una caracterstica de un objeto, que ayuda a definir su estructura y permite diferenciarlo de otros objetos. Se define con un identificador y un tipo, el cual indica los valores que puede almacenar. El conjunto de valores de los campos definen el estado del objeto. Mtodo: Es la implementacin de un algoritmo que representa una operacin o funcin que un objeto realiza. El conjunto de los mtodos de un objeto determinan el comportamiento del objeto. Clase : Es la abstraccin de un grupo de objetos que comparten las mismas caractersticas y el mismo comportamiento Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Clase.abstracta. Clase desde la cual no se pueden instanciar objetos, pero s otras clases. El comportamiento de una clase abstracta tambin es abstracto, en tal sentido, dicho comportamiento lo debe implementar una clase derivada (sea clase comn o clase final). Clase comn. Es una clase que tiene clases ascendientes y descendientes. A partir de una clase comn se pueden instanciar objetos u otras clases. Clase final. Es una clase que no admite instanciar otras clases a partir de ella, es decir, no admite clases descendientes. Desde una clase final slo se pueden instanciar objetos. Constructor. mtodo u operacin con el mismo nombre de la clase, usado para crear un objeto. Un constructor establece el estado inicial de un objeto y puede ser sobrecargado varias veces. Dato. Conjunto de bytes que operan "algo" con significado. Instancia. Valor especfico de una clase, es decir, un objeto en particular. Un objeto se instancia cuando se ejecuta su constructor o cuando se le enva un mensaje que cambie su estado -con un mtodo asignarX(dato). Evento: un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecucin de algn mtodo.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

120

Estado interno: es una propiedad invisible de los objetos, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). En comparacin con un lenguaje imperativo, una "variable" no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto. 1

7.2 MODULARIDAD
Proceso de crear partes de un todo que se integran perfectamente entre s para que funcionen por un objetivo general, y a las cuales se les pueden agregar ms componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un mdulo, no hay necesidad de hacer cambios en otras partes del todo. Un ejemplo clsico es conjunto de mdulos que, al integrarlos conforman un armario, el cual puede agregarle ms funcionalidad si se le agregan ms mdulos, o al contrario. Tambin se puede cambiar su finalidad si se acomodan esos mdulos para darle otro objetivo: volverlo una mesa. Esto ayuda a la descomposicin de problemas en subproblemas, es decir, a la solucin de problemas por composicin de soluciones a subproblemas.

7.3 REUTILIZACIN
Capacidad de usar un mismo cdigo para varias implementaciones o necesidades (desarrollos); para esto se debe tener en cuenta: Polimorfismo: Esta propiedad indica que un elemento puede tomar distintas formas. Podemos definirlo como el uso de varios tipos en un mismo componente o funcin. Por ejemplo, una funcin que sume dos operandos, la cual maneja, o dos nmeros o dos cadenas, para retornar un total de una suma o de una concatenacin. Tambin se denomina subsumption (ms delante de detalla este concepto). Genericidad: Usar algoritmos genricos para resolver varias situaciones, como acceso a varios motores de bases de datos de forma transparente, como el PEAR de PHP. Consiste en parametrizar una funcin con varios tipos de datos donde ella misma en su cuerpo decida como operar, como la ut0110.4gl. Operaciones Relacionadas: Todas las operaciones de un mdulo deben estar dentro de l, como parte de su cuerpo..

7.4 VISION POO


La visin POO se basa en la siguiente analoga:

Programacin orientada a objetos

De Wikipedia, la enciclopedia libre

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

121

1) Construccin de un modelo mecnico de un 2) Construccin de un modelo algortmico de sistema fsico a partir de objetos concretos. un sistema fsico a partir de objetos de software Los objetos aqu seran, en un modelo de una Los objetos aqu seran, rutinas de conexion a pista de carreras: los autos, las carreteras, las DB, shorts, validacin de acceso, despliegue, llegadas, las graderas, espectadores, etc. impresiones, etc. En un modelo de un sistema planetario, tenemos los objetos concretos: los planetas, los orbitas, el sol, energa, etc Este concepto de POO se puede ver como una intuitiva correspondencia entre un software de simulacin de un sistema fsico y el sistema fsico en s (o su modelo mecnico). Modelo algortmico: Anlisis, diseo e implementacin de un software usando objetos de software. Objetos de Software: Componentes que integran o conforman el modelo; pueden ser unidades de cdigo para resolver situaciones especficas, shorts, uso de DB, prints, funciones, vectores, etc. Modelo Mecnico: Anlisis, diseo e implementacin de prototipo a escala de un sistema fsico usando objetos concretos. Objetos Concretos: Partes fsicas del modelo mecnico, ojo del modelo, no del sistema real, o sea, los objetos planeta no son los planetas reales. Modelo: Es una vista de un sistema del mundo real, es decir, una abstraccin de dicho sistema considerando un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propsito del modelo y a un apropiado nivel de detalle. Diagrama: Representacin grfica de un modelo. Abstraccin: Capacidad del ser humano para entender una situacin excluyendo detalles y solo vindola a alto nivel. El hombre ha comprendido el mundo con la abstraccin. Esta propiedad permite distinguir a un objeto de los dems, observando sus caractersticas y comportamientos, pensando en qu es y no cmo se codificara en un lenguaje. Con la abstraccin se destaca lo importante y se ignora lo irrelevante, o sea, hay ocultamiento de informacin. Hay abstraccin de datos la declarar un variable tipo integer, ya que internamente el compilador lo implementa en 2 bytes, lo cual es transparente al programador, o al declarar una variable date, el complilador controla los das de los meses, acepta solo operaciones vlidas entre las fechas, permitiendo al programador abstraerse de esos detalles. Estos tipos de datos abstractos coleccionan valores y operaciones, los cuales se usan transparentemente sin importar su implementacin: otro lo implementa y yo lo uso. La reutilizacin es la principal caracterstica del la POO, la cual se logra con: Encapsulacin de Informacin: Ocultamiento de informacin, datos o funciones especiales a los usuarios. En el caso de la programacin, hace el encapsulamiento es lo que permite que tanto la estructura (campos) como el comportamiento (mtodos) se encuentren dentro del mismo cuerpo de

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

122

cdigo de la clase con la que se crean los objetos. Dentro de la clase se deben agrupar tanto la informacin o datos de los campos como las operaciones o mtodos o funciones que operan sobre esta informacin. Herencia: Propiedad que permite a los objetos se construidos a partir de otros objetos; es recibir de una modulo superior, las caractersticas de l, como atributos o funciones (campos y mtodos o comportamientos), para usarlos en el mdulo actual. Heredar es compartir atributos. Mtodos unidos a los objetos: los mtodos de un objeto son inseparables y siempre harn parte de su cuerpo como un todo.

Ejemplo 57: La famosa ecuacin de Einstein para conversin de una masa m en energa viene
dada por la frmula E = mc2, donde c es la velocidad de la luz, c = 2.997925 x 1010 m/seg. Leer una masa en gramos y obtener la cantidad de energa producida cuando la masa se convierte en energa. 2

Observacin: si la masa se da en gramos, la frmula produce la energa en ergios. Anlisis: Clases: Energa Objetos: una instancia de la clase Energa (en este caso se reemplaza el identificador Proyecto por Energa) Entrada: la masa (en gramos). Salida: la energa (en ergios). Proceso: despus de capturar la entrada, se aplica la ecuacin de Einstein. Solucin: Diseo de la clase en UML:

Energa masa: real

+ asignarMasa (real) + obtenerMasa ( ): real + Energa ( ) + calcularEnerga ( ): real + principal ( )

Seudo cdigo:
2

FUNDAMENTOS DE PROGRAMACION ORIENTADA A OBJETOS COMPENDIO DE EJERCICIOS MODELO GRUPO GIISTA Tecnolgico de Antioquia Institucin Universitaria

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

123

clase Energa privado: real masa pblico: asignarMasa(real m) masa = m fin_mtodo //------------------------------real obtenerMasa ( ) retornar masa fin_mtodo //------------------------------Energa ( ) fin_mtodo //------------------------------real calcularEnerga ( ) real e const real c = 2.997925 * Mat.elevar (10, 10) e = masa * Mat.elevar (c, 2) retornar e fin_mtodo //------------------------------------------------principal ( ) Energa e = nuevo Energa ( ) real ms = Leer.datoReal( ) e.asignarMasa(ms) Imprimir.mensaje (e.calcularEnerga ( )) fin_mtodo fin_clase
7.5 ACTIVIDADES DE TRABAJO INDEPENDIENTE
Consulte acerca de los siguientes trminos, interiorice su significado: Clase, Objeto, Herencia, Poliformismo. Abstraccin, Mtodo, Mensaje, Instancia, Atributos Relacione los conceptos: Superclase, subclase, Encapsulamiento.

Frmese una opinin acerca de qu es una clase y su instancia?; Consulta la pagina http//espanol.geocities.com/evmejia_36

Termine el portafolio, ver en la pagina siguiente las indicaciones

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

124

8. PRODUCTO FINAL
8.1 EL PORTAFOLIO El portafolio es una coleccin estructurada de evidencias de diferentes fuentes y referenciadas a las Unidades de Competencia y Titulaciones. El portafolio es una tcnica que permite a la persona recopilar los trabajos elaborados en un determinado periodo, y abre un espacio para aprender a evaluar su desempeo en trminos de acierto o de errores. Esta recopilacin de documentos tendr vida en la medida que el participante la dinamice para su propio beneficio y constituye un instrumento que archiva las evidencias de su aprendizaje. Un portafolio puede tener cualquier forma o tamao, dependiendo del tipo de evidencia que se requiera presentar en la evaluacin. Sin embargo, es correcto utilizar una pasta de argollas como la A -Z. Este paquete se debe archivar con las evidencias recogidas para las unidades. Los tipos de evidencia que se archivan en el portafolio pueden incluir: - Reportes de evaluadores Productos del trabajo Testimonios Aprendizajes Previos Resultado de cuestionarios aplicados No existen reglas estrictas ni nicas sobre cmo organizar la evidencia, pero es conveniente acordar un sistema de ordenamiento y seguirlo para facilitar su manejo de acuerdo a las unidades de competencia. El evaluador puede orientar sobre cmo organizar el portafolio. Contendr Introduccin Conclusiones Plan de Trabajo semanal Contenido de la asignatura Glosario Bibliografa Talleres resueltos Correccin de Quices y parciales, con su autoevaluacin ( en computador ) Laboratorios con su autoevaluacin ( en computador ) Documentos soporte.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

125

GLOSARIO
ACUMULADOR: rea de trabajo donde se almacena un valor que puede ser variable. El trmino acumulador viene de acumular (sumar cantidades). Por ejemplo: la caja registradora de un almacn suma cantidades diferentes de pagos, al final de la jornada muestra un acumulado o suma de los valores registrados. ALGORITMO: La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe Alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Conjunto finito de pasos o acciones que deben realizarse en una forma ordenada para llegar a un fin determinado para la solucin de cualquier problema. ALGORITMO CUALITATIVO: Es la descripcin con palabras sencillas de las caractersticas o cualidades medibles ( que se pueden comprobar) de un elemento. Ejemplo: ancho, largo, corto, azul, etc. Son aquellos en los que se describen los pasos utilizando palabras. ALGORITMO CUANTITATIVO: Son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso y hallar respuestas numricas. ALGORITMO MATEMTICO: Conduce a la solucin de respuesta es nica. una expresin matemtica y su

ALGORITMO LGICO: Es la solucin a una situacin lgica; puede conducir a una o varias respuestas. ARCHIVO: Es un conjunto de registros relacionados entre si. REA DE TRABAJO: Es un espacio de memoria con la longitud que necesita el programador. Las reas de trabajo deben tener nombres diferentes y deben ser inicializadas en cero o en blanco. ARREGLO : Conjunto de cantidades o valores homogneas, que por su naturaleza se comportan de idntica forma y deben de ser tratados en forma similar. Se les debe de dar un nombre que identifica el conjunto. Cada cantidad que hace parte del arreglo se le llama elemento. unidimensionales; bidimensionales y multidimensionales. Los tipos de arreglos son:

ASIGNACION DE INFORMACIN: Accin de sustitucin de la informacin contenida en una variable de memoria o un campo de un archivo . Se puede simbolizar por los signos = y su funcin es asignar el valor que est a la derecha del smbolo igual la flecha a la variable que est a la izquierda de la misma. BIT: Digito binario o elemento mnimo de informacin BINARIO: Sistema operativo en base 2.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

126

BYTE : Conjunto de bits que se tratan como unidad, generalmente se componen de 8 bits. CARCTER: Es la menor unidad de informacin. CAMPO: rea de trabajo que puede almacenar uno o varios datos. NOMBRE se almacena: "Carlos Alberto Garca". Ejemplo: En el campo

CICLOS: Para poder implementar acciones que deben ejecutarse repetidamente se utilizan los ciclos o bucles. Estos se utilizan en un programa cuando se necesita repetir varias veces una serie de acciones o instrucciones. CICLOS ANIDADOS: De la misma manera que se pueden anidar estructuras de condicin se puede hacer con los ciclos, en los dos casos la estructura interna debe de estar totalmente incluida en la externa. CICLO DESDE o PARA: Ejecuta repetitivamente un conjunto o bloque de instrucciones que se conoce de antemano y que por lo tanto no requiere de condicin de salida; el contador para contar el nmero de iteraciones se incrementa o decrementa de modo automtico. CICLO HACER MIENTRAS: Se utiliza para ejecutar repetitivamente un conjunto o bloque de instrucciones mientras se cumple una condicin especfica. Permite ejecutar repetitivamente el conjunto de instrucciones hasta que una variable, contador llegue a su valor lmite. CICLO REPITA HASTA: Ejecuta repetitivamente un conjunto o bloque de instrucciones hasta que se cumpla una condicin determinada que puede verificarse al principio o la final del ciclo. Se ejecuta mientras el valor de la condicin es falso, justo lo contrario al ciclo MIENTRAS. CLASE: Una clase se define como la descripcin de los atributos (campos y mtodos) de los objetos COMPILADOR : Es un programa encargado de corregir todos los errores de sintaxis que tenga el programa del usuario. Este corrige los errores de sintaxis ms no de lgica, puesto que esta depende nicamente del programador. Adems traduce el lenguaje del usuario a lenguaje de mquina. CONTADOR : rea de trabajo cuyo incremento o decremento es definido. El trmino contador est asociado con la accin de contar. Ejemplo: la registradora de un bus cuenta el nmero de pasajeros que suben a ste durante un determinado tiempo o recorrido. CONSTANTES : Son todos aquellos valores que no cambian en el transcurso de son definidos antes de utilizarse. un programa y

DATO: Conjunto de caracteres que hay en un campo. Ejemplo: "Carlos" parte del campo nombre.

es un dato, este hace

DATOS NUMRICOS: Los datos de tipo numrico son los relativos a las diferentes clases de nmeros. DATOS LGICOS: Tambin denominados bolanos, es aquel dato que solo puede tomar uno de dos valores: cierto / falso o si / no 0 v / f o 0 / 1

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

127

DATOS CARCTER: Es el conjunto finito y ordenado de caracteres que la computadora puede interpretar. Un dato tipo carcter contiene solo uno. DIAGRAMA DE FLUJO: es una tcnica de representacin de algoritmos ms antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin del lenguaje estructurado. Son fciles de disear porque el flujo lgico se muestra en un dibujo (smbolos o cajas estndares) en lugar de palabras y que cada paso del algoritmo escrito en estos dibujos estar unido por flechas denominadas lneas de flujo, que indican la secuencia que se debe seguir. DIAGRAMA ESTRUCTURADO o Diagrama de Nassi, N-S o Chapin : Denominada as por su inventor o tambin conocido como diagrama estructurado es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. ENUNCIADOS DE ASIGNACIN: Se utilizan para indicar una accin o proceso (generalmente la asignacin de un valor o un resultado de una operacin a una variable). ENUNCIADOS DE DECISIN O ALTERNATIVOS: En el desarrollo de un algoritmo la mayora de las veces se ver abocado a tomar una decisin o realizar comparaciones o agrupacin, para que ste sea general y flexible se deben tener en cuenta las alternativas que se puedan presentar en un momento dado. Se utilizarn para hacer preguntas, comparaciones y tomar decisiones. Por medio de preguntas de exclusin, excepcin, y comparacin se puede tomar una decisin o conocer alguna situacin. EXPRESIONES: Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales; una expresin consta de operandos y operadores. Los parntesis indican el orden de clculo. Segn el tipo de dato que manipulan se clasifican en: Aritmticas, Lgicas, Carcter. FUNCIONES: Es un subprograma que proporciona un valor o resultado segn sean sus parmetros de entrada. Las funciones pueden ser internas o externas.Una funcin se representa: f (p1, p2......,pn) f Nombre de la funcin

p son los parmetros .


FUNCIONES EXTERNAS: son aquellas definidas por el usuario. Las funciones deben ser declaradas dentro del los programas con un subprograma o subalgoritmo que en general se define con una serie de instrucciones similares a un programa. FUNCIONES INTERNAS: Es un conjunto de operaciones predefinidas, incorporadas por la mayora de los lenguajes de programacin. generalmente

HERENCIA: Propiedad que permite a los objetos se construidos a partir de otros objetos; es recibir de una modulo superior, las caractersticas de l, como atributos o funciones (campos y mtodos o comportamientos), para usarlos en el mdulo actual. Heredar es compartir atributos.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

128

IDENTIFICADORES : Son los nombres que se dan a los programas, constantes, variables, subprogramas y otros objetos o entidades de dgitos. Su nombre puede constar de una letra o agrupacin de letras o combinacin de letras y nmeros empezando siempre con una letra, no puede tener caracteres especiales, ni espacios en blanco. LENGUAJE DE MAQUINA: Es un lenguaje de manejo exclusivo de la mquina, es un sistema binario (unos y ceros) basado en dos estados de prendido ON (1) y apagado OFF (0). LENGUAJE DE ALTO NIVEL: Son las instrucciones que generalmente se usan en ingls y de una forma sencilla para que el usuario entienda fcilmente . Ej. Cobol, Basic, Pascal etc.. LENGUAJE DE BAJO NIVEL: Es un lenguaje mas al nivel de la mquina, procesan estos lenguajes mas rpidamente que los de alto nivel. los compiladores

LOGICA: Procedimiento razonable y apropiado para buscar la solucin de cualquiera.

un problema

MATRICES: Arreglos bidimensionales. Conjunto de cantidades organizadas en filas y columnas (MATRIZ). Los elementos deben ser de un mismo tipo; para referirse a un determinado elemento debe realizarlo por el nombre de la matriz y dentro de un parntesis 2 subndices separados por comas, donde el primero se refiere a la fila y el segundo se refiere a la columna. MEMORIA : Capacidad de guardar informacin y tenerla disponible para su uso.

MEMORIA ROM (read only memory), memoria de slo lectura, en la cual se almacena ciertos programas e informacin que necesita la computadora las cuales estn grabadas permanentemente y no pueden ser modificadas por el programador. Las instrucciones bsicas para arrancar una computadora estn grabadas aqu MEMORIA RAM (Random access memory), memoria de acceso aleatorio, la utiliza el usuario mediante sus programas, y es voltil. La memoria del equipo permite almacenar datos de entrada, instrucciones de los programas que se estn ejecutando en ese momento, los dato s resultados del procesamiento y los datos que se preparan para la salida. MTODO: Es la implementacin de un algoritmo que representa una operacin o funcin que un objeto realiza. El conjunto de los mtodos de un objeto determinan el comportamiento del objeto MODELO: Es una vista de un sistema del mundo real, es decir, una abstraccin de dicho sistema considerando un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propsito del modelo y a un apropiado nivel de detalle. MODULARIDAD: Proceso de crear partes de un todo que se integran perfectamente entre s para que funcionen por un objetivo general, y a las cuales se les pueden agregar ms componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un mdulo, no hay necesidad de hacer cambios en otras partes del todo. Un ejemplo clsico es conjunto de mdulos que, al integrarlos conforman un armario, el cual puede agregarle ms funcionalidad si se le agregan ms mdulos, o al contrario. OBJETO: Componente o cdigo de software, el cual contiene en s mismo tanto sus caractersticas (campos) como sus comportamientos (mtodos), el cual se accede a travs de su interfaz o

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

129

signatura. OBJETOS CONCRETOS: Partes fsicas del modelo mecnico, ojo del modelo, no del sistema real, o sea, los objetos planeta no son los planetas reales. PARMETROS: Son los datos mediante los cuales un procedimiento se comunica con la unidad del programa que llama. Pueden ser de entrada comunican valores al procedimiento; de salida envan valores desde el procedimiento al programa que llama; de entrada/salida que sirve para ambos propsitos. POLIFORMISMO: Esta propiedad indica que un elemento puede tomar distintas formas. Podemos definirlo como el uso de varios tipos en un mismo componente o funcin. Por ejemplo, una funcin que sume dos operandos, la cual maneja, o dos nmeros o dos cadenas, para retornar un total de una suma o de una concatenacin PROCESO : Es el conjunto de operaciones o clculos que transforman los datos en informacin, siguiendo una serie de instrucciones, escogiendo alternativas, dando resultados parciales cuando se manejan archivos etc.. PROCEDIMIENTO: Un subprograma que necesita cero, uno o varios valores en funcin de los parmetros definidos en su formato; se llama con una instruccin llamar- a o con el nombre del procedimiento PROGRAMAS DEL USUARIO: Son aplicaciones especficas que cada persona disea para la solucin de diferentes problemas de procesamiento de la informacin, los programas son escritos en un lenguaje de programacin, de acuerdo a las normas y sintaxis de dicho lenguaje. El programa consta de un nmero especfico de instrucciones, las cuales respetando una secuencia lgica cumplirn el objetivo de tomar unos datos de entrada, procesarlos y entregar una informacin como salida. PROGRAMA FUENTE: Es el programa escrito por el alto nivel. programador usando un lenguaje de

PROGRAMA OBJETO: Es el programa que resulta de la compilador del programa fuente en lenguaje de mquina.

traduccin que hace el

PROGRAMACIN ORIENTADA A OBJETOS: al conjunto de teoras, estndares, modelos y mtodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programacin la solucin a ese problema. La POO se basa en el modelo objeto, donde el elemento principal es le objeto, el cual es una unidad que contiene todas sus caractersticas y comportamientos en s misma, lo cual lo hace como un todo independiente, pero que se interrelaciona con objetos de su misma clase o de otras clase, como sucede en el mundo real. La POO tiene como marco de referencia conceptual el objeto, el cual pertenece a una clase que agrupa a todos compaeros con las mismas caractersticas y un comportamiento similar. Una ventaja de la POO es la facilidad que brinda a travs de sus herramientas, de concebir,

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

130

analizar, modelar, disear e implementar el mundo real de manera fiel a como se presenta en la realidad; el paso que hay desde la concepcin y asimilacin del problema hasta la implementacin del mismo es un proceso que se hace de manera casi natural. Esto porque el mundo est lleno de objetos La POO es un paradigma de la programacin de computadores; esto hace referencia reales, los cuales se pueden representar como tales en una solucin computarizada PROMEDIO : Resultado de la divisin de un acumulador por un ( PROMEDIO = ACUMULADOR/CONTADOR). contador.

PSEUDO CDIGO: Es la descripcin de los pasos lgicos para la solucionar un problema en forma semejante al lenguaje de computadora utilizado, es decir un lenguaje de seudo programacin, una imitacin del cdigo de computadora. El Pseudo cdigo es una mezcla de lenguajes natural y smbolos, trminos y otras caractersticas comnmente utilizadas en uno o ms lenguajes de alto nivel.

REGISTRO: Es un conjunto de campos relacionados. REGISTRO CENTINELA: Es el ltimo registro que contiene una seal de fin de archivo, no se procesa. Cuando se utiliza el registro centinela se debe leer antes del ciclo el primer registro; una vez se procese ste se realiza la lectura del siguiente (antes del fin del ciclo). No hay que utilizar contador para controlar el final del ciclo. REGISTRO IDENTIFICADOR: Indica el nmero de iteraciones que deben realizarse en un ciclo. Se lee antes del ciclo, necesita de un contador para controlar cuando se terminan de procesar todos los registros indicados en el registro identificador. SISTEMA BINARIO: Sistema de numeracin que utilizan los circuitos digitales de las computadoras. Su base numrica es 2. SISTEMA HEXADECIMAL: Sistema numrico que tiene base 16 SISTEMAS OPERATIVOS : El sistema operativo es el gestor y organizador de todas las actividades que realiza la computadora. Marca las pautas segn las cuales se intercambia informacin entre la memoria central y la externa, y determina las operaciones elementales que puede realizar el procesador. SOFTWARE: Es el conjunto de instrucciones que las computadoras emplean para manipular datos. Sin el software, la computadora sera un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la mquina actuar como si recibiera una educacin instantnea; de pronto "sabe" cmo pensar y cmo operar. SOFTWARE DE USO GENERAL : El software para uso general ofrece la estructura para un gran nmero de aplicaciones empresariales, cientficas y personales. El software de hoja de clculo, de diseo asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categora. La mayora de software para uso general se vende como paquete; es decir, con software y documentacin orientada al usuario ( manuales de referencia, plantillas de teclado y dems ). SOFTWARE DE APLICACIONES : El software de aplicacin esta diseado y escrito para realizar

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

131

tareas especficas personales,,empresariales o cientficas como el procesamiento de nminas, la administracin de los recursos SUBALGORITMOS o SUBPROGRAMAS: Es un programa independiente que resuelve una funcin definida por los mdulos. Estos pueden representar tareas que se ejecutan una sola vez o tareas repetitivas; utiliza datos provenientes del programa principal o de otro subprograma y produce resultados para el programa principal o el otro subalgoritmo que lo utiliza o invoca. SUBNDICE: o ndice, indica el nmero de cada posicin del arreglo. Este debe ser un nmero entero. SUICHES: Los suiches o interruptores es un campo de memoria que puede falso o verdadero; si o no; 1 o 0. tomar dos valores:

Estos tienen gran aplicacin en la programacin y son utilizados para: Ejecutar alternativamente acciones diferentes dentro de un ciclo. Recordar en determinados puntos del programa la ocurrencia o no de un suceso anterior. Decidir en instrucciones alternativas la accin que se debe seguir. VARIABLES: Son todos aquellos valores que pueden o no cambiar en el transcurso de un programa, como existen diferentes tipos de datos las variables pueden ser numricas y alfanumricas. VARIABLE ALFABTICA O ALFANUMRICA: El valor almacenado en sta puede ser numrico, alfabtico o alfa-numrico y siempre debe estar colocado entre comillas. Este tipo de valor almacenado se denomina constante, literal, cadena o ttulo. VARIABLES DE TRABAJO: Son las variables donde se guardan los resultados de clculos u operaciones matemticas y se les debe dar siempre un valor inicial de 0. VARIABLES GLOBALES: Son las que se utilizan en todo el programa y tienen actuacin tanto en el programa principal como en los subprogramas. Su definicin se realiza en el programa principal. VARIABLES LOCALES: Son las que se utilizan en la definicin de un subprograma (incluyendo parmetros). Solo tiene actuacin o significado dentro del subprograma donde se definen y no son conocidas fuera de el. Su definicin debe ser dentro del subprograma. VARIABLE NUMRICA: Su nombre puede ser una letra o agrupacin de letras o combinacin de letras y nmeros; debiendo empezar siempre por una letra sin caracteres especiales ni espacios en blanco. El valor almacenado en ella debe ser totalmente numrico; y puede ser de tipo real o entero. VECTOR : Arreglo unidimensional organizado en forma de lista. Conjunto de datos continuos que tienen el mismo formato y se denominan elementos del vector. Generalmente en un vector se almacenan datos para luego realizar una operacin con ellos o consultar de una forma rpida.

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

LOGICA DE PROGRAMACION

132

BIBLIOGRAFIA
Bsica: BECERRA SANTAMARA, Cesar . Algoritmos, Conceptos Bsicos.Ed Santafe de Bogot Kimpres, 1995. 300 p. + disquete . CAIR BATTISTUTTI, Osvaldo. Estructuras de datos, 2a ed, . ed. Mexico : McGraw-Hill, 2002. 458 p. CORREA URIBE, Guillermo. Desarrollo De Algoritmos Y Sus Aplicaciones., Ed. Santaf de Bogot, Mc Graw Hill, 250 p. HERNNDEZ, Roberto; LZARO, Juan Carlos; DORMIDO, Raquel; ROS, Salvador. Estructura de datos y algoritmos. Madrid : s.n., 2001. 283 p. + CD-ROM. JOYANES AGUILAR, Luis. Fundamentos de programacin : algoritmos y estructuras de datos. 2. ed. Madrid : McGraw-Hill, 1996. 714 p. JOYANES AGUILAR, Luis; RODRGUEZ BAENA, Luis; FERNNDEZ AZUELA, Matilde. Fundamentos de programacin : libro de problemas. Madrid : McGraw-Hill, 1996. 392 p. JOYANES AGUILAR, Luis. Problemas De La Metodologa De Programacin. Madrid: Ed. Mc Graw Hill, 1990, 500 p. ORREGO VILLA, Gildardo Antonio. Fundamentos De Lgica De Programacin. Diseo de algoritmos. ed. Medelln : s.n., 2000. 110 p. OVIEDO R, Efran. Algoritmos estructurados. 2. ed. Medelln : s.n., 1995. 283 p. VSQUEZ L., Gabriel. Lgica para programacin de computadores fundamentos y aplicaciones. 2. ed. Medelln : Ediciones Grficas, 1985. 163 p. VSQUEZ L., Gabriel. Lgica para programacin de computadores fundamentos y aplicaciones. 2. ed. Medelln : Ediciones Grficas, 1985. 163 p. VILLALOBOS S, Jorge A. Diseo y manejo de estructuras en datos en C. Bogot : McGraw-Hill, 1996. 392 p. + disquete

Complemetaria :
Manual soporte elaborado por la docente

CIBERGRAFIA
http://www.algoritmia.net http://informatica.uv.es/iiguia/2000/AED/2002_03/Teoria/

http://www.solocursos.net/algoritmos_desarrollados-slccurso1056443.htm http://www.solocursos.net/manual_basico_de_algoritmos-slccurso343432.htm http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml http://www.emagister.com/cursos-algoritmos-pclave-algoritmos.htm

Esp. Eugenia Meja de Restrepo

E-mail eugeniamejia@une. net.co

También podría gustarte