manual de logica de programacion

132
LOGICA DE PROGRAMACION 1 MANUAL DE LÓGICA DE PROGRAMACIÓN DISEÑO DE ALGORITMOS LIC. EUGENIA MEJIA DE RESTREPO MEDELLIN 2007 Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Upload: bryan-llivicura-vargas

Post on 06-Aug-2015

274 views

Category:

Documents


40 download

DESCRIPTION

Trata sobre todo lo que corresponde a la programacion

TRANSCRIPT

Page 1: Manual de logica de programacion

LOGICA DE PROGRAMACION 1

MANUAL DE LÓGICA DE PROGRAMACIÓN

DISEÑO DE ALGORITMOS

LIC. EUGENIA MEJIA DE RESTREPO MEDELLIN

2007

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 2: Manual de logica de programacion

LOGICA DE PROGRAMACION 2

TABLA DE CONTENIDO

Pag. Introducción …………………………………………………….……… .. 3 UNIDAD 1. CONCEPTOS GENERALES……………………………… 4 UNIDAD 2 ENTRADA y SALIDA DE DATOS DE DATOS…………. 31 UNIDAD 3 PROGRAMACION MODULAR …………………. 36 UNIDAD 4 INSTRUCCIONES DE DECISIÓN …………………….. 45 UNIDAD 5 ENUNCIADOS DE REPETICION (ciclos)……… 57 UNIDAD 6 ARREGLOS ………………………………………… . 88 UNIDAD 7 CONCEPTOS BÁSICOS DE PROGRAMACIÓN ORIENTADA A OBJETOS…………………………………………. 117 PRODUCTO FINAL ……………………………………………… 124 GLOSARIO……………………………………………………… 125 BIBLIOGRAFIA ……………………………………………… 132

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 3: Manual de logica de programacion

LOGICA DE PROGRAMACION 3

Introducción

El profesional en sistemas de información se enfrenta permanentemente a la solución de problemas, donde los algoritmos, las estructuras de datos y los lenguajes de alto nivel son el fundamento para la construcción del pensamiento lógico necesario que le permite diseñar y planificar soluciones lógicas de manera rigurosa y sistemática. Representación algorítmica de solución a problemas de información siguiendo modelos estandarizados, representación de los datos y posibles transformaciones y conocimiento y aplicación de un lenguaje de programación de alto nivel básico. Este documento pretende ser soporte para el aprendizaje de la lógica de programación, encontraran que se trabaja la programación modular desde el principio con el fin de familiarizar el estudiante con las funciones y procedimientos y de esta manera cuando trabajen los métodos en los lenguajes de programación orientados a objetos se le facilite el manejo de estos.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 4: Manual de logica de programacion

LOGICA DE PROGRAMACION 4

UNIDAD 1. CONCEPTOS GENERALES OBJETIVO: Identificar las diferentes estructuras, básicas de diagramación, y el manejo de los operadores lógicos y matemáticos, su aplicación y las reglas de prioridad. Objetivos específicos: Entender las diferentes estructuras para la elaboración de algoritmos Saber manejar los diferentes operadores y sus prioridades Realizar los pasos lógicos para la solución de un problema

CONTENIDO TEMÁTICO

Definiciones básicas Algoritmos Diagramas y sus tipos Operadores lógicos y matemáticos Reglas de prioridad Expresiones Prioridad de los operadores en las expresiones lógica y matemáticas Representación gráfica de los algoritmos

Pasos para resolver un problema. Competencias académicas a desarrollar Entender las diferentes estructuras para la elaboración de algoritmos Saber manejar los diferentes operadores y sus prioridades Realizar los pasos lógicos para la solución de un problema Indicadores de logro: Conceptual: Diferencia los tipos de algoritmos, Conocerá los conceptos básicos para el desarrollo de un algoritmo. Proccedimental: Aplica el manejo de los operadores y su prioridad en las expresiones matemáticas Actitudinal: Reconoce los diferentes operadores y muestra interés en su aplicación.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 5: Manual de logica de programacion

LOGICA DE PROGRAMACION 5

1. CONCEPTOS GENERALES

1.1 LOGICA Procedimiento razonable y apropiado para buscar la solución de un problema cualquiera. 1.1.1 Ejemplo 1: Escribir los pasos a seguir para sumar dos números.

1 Leer número 1 2 Leer número 2 3 Sumar los números 1 y 2.

1.2 EJERCICIOS

1.2.1 Ejemplo 2: Supongamos que usted necesita programar un autómata para que conduzca un auto en un viaje por la autopista Medellín Bogotá. Una condición 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 lógicos para realizar dicha tarea.

1 Sacar la llanta de repuesto del baúl 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 más detallada.

INICIO 1Orillar y detener el auto 2 Bajar del auto y colocar las señales 3 Abrir el baúl y sacar la llanta de repuesto. 4 Si el repuesto está bueno siga el paso 7 5 Si el repuesto está malo buscar otra solución 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 señales, herramientas y la llanta pinchada 13 Guardar todo y cerrar el baúl 14 Reanudar el viaje. FIN

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 6: Manual de logica de programacion

LOGICA DE PROGRAMACION 6

Intente escribir en forma resumida y lógica 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 música Describa los pasos para hacer una torta Describa los pasos para realizar una práctica deportiva. Describa los pasos para realizar una llamada desde un teléfono publico. Describa los pasos para ir a una biblioteca para una consulta. Describa los pasos para hacer un trabajo de investigación. Describa los pasos para ir a un partido de fútbol

1.3 ALGORITMO La palabra algoritmo se deriva de la traducción al latín de la palabra árabe Alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. Cuando se tiene un problema para solucionar hay que entender claramente que se pide hacer y cuáles datos se tienen para buscar su solución 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 solución y si ésta se dar por medio del computador, nuestro primer paso ser realizar un Algoritmo o sea la descripción de esa posible solución con palabras. Este debe cubrir la solución del problema desde su inicio hasta su terminación.

1.4 TIPOS DE ALGORITMOS Los algoritmos pueden ser cualitativos o cuantitativos; lógicos o matemáticos 1.4.1 Algoritmo cualitativo: es la descripción con palabras sencillas de las características 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 cuenta en un algoritmo por ejemplo: belleza, fealdad, simpatía, etc.

1.4.2 Algoritmo cuantitativo Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso y hallar respuestas numéricas. 1,4.3 Algoritmo matemático: Conduce a la solución de una expresión matemática y su respuesta es única. 1.4.5 Algoritmo lógico: Es la solución a una situación lógica; puede conducir a una o varias respuestas.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 7: Manual de logica de programacion

LOGICA DE PROGRAMACION 7

1.5 ESTILO DE ESCRITURA DE ALGORITMOS / PROGRAMAS.

Algoritmo identificador //cabecera //sección de declaración var tipo_de_datos: lista_de_identificadores const lista_de_identificadores = valor inicio //cuerpo del algoritmo acción 1 acción 2 acción 3 . . . acción n fin

1.6 LENGUAJES ALGORÍTMICOS Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso. Tipos de Lenguajes Algorítmicos: Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

1.6.1 Gráficos : 1.6.1.1 Diagrama de flujo: Es una técnica de representación de algoritmos más antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición del lenguaje estructurado. Son fáciles de diseñar porque el flujo lógico se muestra en un dibujo (símbolos o cajas estándares) en lugar de palabras y que cada paso del algoritmo escrito en estos dibujos estará unido por flechas denominadas líneas de flujo, que indican la secuencia que se debe seguir.

Sin embargo, los diagramas de flujo tienen una limitación grande: son difíciles de actualizar y complejos de leer si ocupan varias páginas; cuando se han de modificar los diagramas de flujo resulta difíciles precisamente por su carácter grafico. Los símbolos principales son: En la siguiente tabla se explican los símbolos mas utilizados en

los diagramas de flujo

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 8: Manual de logica de programacion

LOGICA DE PROGRAMACION 8

SÍMBOLO 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)

Decisión. (Sirve para hacer comparaciones, es decir, para

evaluar un valor y escoger alternativas)

Línea de flujo. (Sirve para indicar el seguimiento lógico del

diagrama. Determina el orden de la ejecución de las

instrucciones)

Múltiples. (En función del resultado de la comparación se seguirá

uno de los diferentes caminos de acuerdo a dicho resultado)

Repetitivas. (Sirven como símbolos propios de los ciclos ya que

para ellos primitivamente se utilizaba los símbolos básicos

(proceso y decisión)

si

no

Ejemplo 3 Se desea obtener el salario básico 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 código.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 9: Manual de logica de programacion

LOGICA DE PROGRAMACION 9

Diagrama de flujo

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

INICIO

Lea: horas_trabajadas, salario_hora, tasa

1.6.1.2 Diagrama estructurado o Diagrama de Nassi, N-S o Chapín : Denominada así por su inventor – o también conocido como diagrama estructurado – es como un diagrama de flujo en el que se omiten las flechas de unión 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 rectángulo que se va rellenando de arriba-abajo siguiendo la técnica 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 10: Manual de logica de programacion

LOGICA DE PROGRAMACION 10

Solución 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 Gráficos o Pseudo código: Es la descripción de los pasos lógicos para la solucionar un problema en forma semejante al lenguaje de computadora utilizado, es decir un lenguaje de seudo programación, una imitación del código de computadora. El Pseudo código es una mezcla de lenguajes natural y símbolos, términos y otras características comúnmente utilizadas en uno o más lenguajes de alto nivel. 1.6.2.1 Características del Seudocódigo: Las siguientes son las características más importantes:

Debe tener un nombre que lo identifique. Ejemplo programa inventario Todo pseudo código debe tener un inicio y un fin. No puede existir un programa con

infinitas instrucciones. Debe tener 0 o más datos de entrada. Pueden existir programas que no le pidan datos

de entrada al usuario. Los pseudo códigos deben tener 1 o más datos de salida. Un programa que no le

muestre al usuario ningún resultado o respuesta, no sirve para nada. Solución Pseudo código 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 11: Manual de logica de programacion

LOGICA DE PROGRAMACION 11

Los algoritmos y programas de computadoras, con independencia del lenguaje en que están escritos, están diseñados para manipular información o datos. La mayoría 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 después 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 demás mas adelante, y de los simples identificaremos los siguientes: Numéricos, Lógicos y Carácter 1.7.1 Datos Numéricos: Los datos de tipo numérico son los relativos a las diferentes clases de números. enteros

Datos numéricos

reales

1.7.2 Enteros: Es un subconjunto finito de los numero enteros. Los enteros son números complejos, no contienen componentes fraccionarios o decimales y pueden ser positivos o negativos. Ejemplos de datos numéricos:

5 6

-15 4

20 17

1340 26

1.7.3 Reales: Es un subconjunto de los números reales. Los reales son números 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 3739.41

3.7452 -52.4.321

-8.12 3.0

1.7.4 Datos Lógicos: También denominados boléanos, es aquel dato que solo puede tomar uno de dos valores:

cierto / falso

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 12: Manual de logica de programacion

LOGICA DE PROGRAMACION 12

si / no v / f 0 / 1

1.7.5 Datos Carácter: Es el conjunto finito y ordenado de caracteres que la computadora puede interpretar. Un dato tipo carácter contiene solo uno.

Los caracteres que reconoce las diferentes computadoras no son estándar, sin embargo, la mayoría reconoce los siguientes caracteres alfabéticos, numéricos y especiales.

Caracteres alfabéticos: (A, B, C, D, E,..., Y, Z) (a, b, c, d, e,..., y, z) Caracteres numéricos: (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 CONTENIDO EJEMPLO Numéricos Enteros o Reales 10, 3,25, -2.908, 2.35E18Lógicos Boleanos Falso, verdadero Carácter Todos los caracteres individuales A,b.c,d,·.$.&,#, @, etc. Cadena (string) Agrupando varios caracteres Hola, Juan Díaz, 2h43”

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

1.9 Á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 (0).

1.10 REGISTRO Es un conjunto de campos relacionados.

1.11 ARCHIVO

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 13: Manual de logica de programacion

LOGICA DE PROGRAMACION 13

Es un conjunto de registros relacionados entre si.

1.12 MEMORIA Capacidad de guardar información 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 dígitos. La sintaxis para formar un identificador es la siguiente:

Letra/_[letra / digito / _]...

Lo cual indica que un identificador consta de uno o más caracteres (letras, dígitos y el carácter de

subrayado) y que el primer carácter debe ser una letra o el carácter de subrayado.

Las letras pueden ser mayúsculas o minúsculas. Ejemplos:

SUMA

Calculo_números_primos

Ordenar7

a123

Ejemplos de errores en declaración de identificadores:

#suma

calculo números 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 numéricas y alfanuméricas. Las variables deben tener las siguientes características:

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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 14: Manual de logica de programacion

LOGICA DE PROGRAMACION 14

programador la define como entera solamente puede recibir números enteros.

Los nombres de las variables elegidas para el algoritmo o programa deben ser significativas y tener relación con el objeto que representa.

TEMP = para representar valores de temperatura NOV_ESTUD = almacenara el nombre del estudiante Nombres válidos de variables Peso X27A Apellido PLACA TELEFONO SALA_BASICO P23A 1.14.1 Variable Numérica: Su nombre puede ser una letra o agrupación de letras o combinación de letras y números; debiendo empezar siempre por una letra sin caracteres especiales ni espacios en blanco. El valor almacenado en ella debe ser totalmente numérico; y puede ser de tipo real o entero.

NOMBRE VARIABLE VALOR ALMACENADO TIPO A1 = 500 Entero Alberto = 200 Entero

X12BASE = 33.12455 Real

1.14.2 Alfabética o alfanumérica: Su nombre puede constar de una letra o agrupación de letras o combinación de letras y números empezando siempre con una letra, no puede tener caracteres especiales, ni espacios en blanco. El valor almacenado en ésta puede ser numérico, alfabético o alfa-numérico y siempre debe estar colocado entre comillas. Este tipo de valor almacenado se denomina constante, literal, cadena o título. NOMBRE VARIABLE VALOR ALMACENADO TIPO

X12 " Pedro " Carácter Nombre " Juan " Carácter A " 200 " Carácter

Y " W112 " Carácter NOTA: Los nombres de las variables deben ser nemotécnicos, es decir, que con solo leer el nombre de la variable se puede entender o determinar lo que contiene; estos no deben comenzar por números, ni contener espacios en blanco, ni caracteres especiales ( % · $ & + / * - etc.). 1.14.3 Boleana o lógicas: son aquellas que sólo almacenan datos cuyo valor es: falso o verdadero.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 15: Manual de logica de programacion

LOGICA DE PROGRAMACION 15

1.15 CONSTANTES Son todos aquellos valores que no cambian en el transcurso de un programa y son definidos antes de utilizarse. Ejemplo 4: Se desea saber el valor de un artículo al cual se le hará un descuento del 7% VAL-DESCU = Valor-artículo * 0.07 variable variable constante Cada vez que se invoque la variable VAL-DESCU se almacenar en ésta el valor de la operación indicada. Nota: Los nombres deben tener las características de los nombres de las variables.

1.16 EXPRESIONES Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales; una expresión consta de operandos y operadores. Los paréntesis indican el orden de cálculo. Según el tipo de dato que manipulan se clasifican en:

Aritméticas Lógicas Carácter

Ejemplo 5: A + (b-c) * 3d X + (2ª)^2 1.16.1 Expresiones aritméticas. Las expresiones aritméticas son análogas a las formulas matemáticas. Las variables y constantes son numéricas (real ó enteras) y las operaciones son las aritméticas. Ejemplo 6:

5 * 18 = 90

resultado de la expresión

operando operador operando

1.17 OPERADORES ARITMÉTICOS:

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 16: Manual de logica de programacion

LOGICA DE PROGRAMACION 16

OPERADOR NOTACIÓN TIPO DE OPERANDO TIPO DE RESULTADO Exponenciación ^ , ** Entero o real Entero o real Suma + Entero o real Entero o real Menos - Entero o real Entero o real Multiplicación * Entero o real Entero o real División normal / (Slash) Real Real División entera div Entero Entero Modulo o resto mod Entero Entero NOTA 1: Operadores mod y div. El símbolo / se utiliza para la división real y el operador div para la división entera. NOTA 2: La expresión 19 div A solo se puede utilizar si A es entera, ejemplo 3, esta nos da un resultado entero de 6. Ejemplo 7: 15 div 6 15 6 3 2 cociente (div) residuo (mod) El mod nos muestra el resto por lo tanto si la división 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 ó más operando requieren unas reglas matemáticas que permitan determinar el orden de las operaciones, lo que se denomina reglas de prioridad o precedencia.

Las operaciones que se encuentren encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados (interiores unos a otros) se realizan primero las

expresiones más internas. Las operaciones aritméticas dentro de una expresión 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 expresión o sub-expresión encerrada entre paréntesis, el orden de prioridad en dicho caso es de izquierda a derecha. Nota: Cuando se está diseñando operaciones o expresiones matemáticas 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 17: Manual de logica de programacion

LOGICA DE PROGRAMACION 17

OPERADOR SE UTILIZA PARA: EJEMPLO ^ Elevar un número a cualquier potencia 5^3 = 125 + Sumar 4 + 3 + 8 = 15 - Restar 8 –3 = 5 * Multiplicar 7 * 3 * 2 = 42 / Dividir 5/3 = 1.6666 Div Cociente de la división 7 div 3 = 2 Mod Residuo de la división 7 mod 3 = 1

1.18 EJERCICIOS Ejemplo 8 A = 5 B = 3

A * (B+3) = 3+3 * 5 = 30 2*3+5 = 6 + 5 = 11 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 NOTACION Mayor que > Menor que < Mayor o igual que >= Menor o igual que <= Igual = Diferente <>

NOTA: No se utilizan los siguientes operadores por no encontrarse en el teclado del computador: ⊇ . > =

OPERADOR SIGNIFICADO EJEMPLO TIPO > Mayor que 56 > 65 falso Comparación < Menor que 36< 78 verdadero Comparación = Igual 34 = 26 falso Comparación

>= Mayor o igual que 34 >= 32 verdadero Comparación <= Menor o igual que 17 <= 37 falso Comparación <> Diferente a 8 <> 6 verdadero Comparación

Ejemplos 9 : Si la variable X = 37

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 18: Manual de logica de programacion

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 cálculos que transforman los datos en información, siguiendo una serie de instrucciones, escogiendo alternativas, dando resultados parciales cuando se manejan archivos etc.. Datos Procesados que le sirven al usuario para el análisis 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 cuáles son los datos que se tienen para buscar la solución y cuáles son los resultados esperados. 1.21.1 Definición del problema. Qué nos pide el usuario? De qué disponemos para resolverlo? Las respuestas a éstas preguntas son la base para plantear una posible solución y si esta amerita realmente resolverla por medio del computador. El primer paso será realizar un algoritmo en seudo-lenguaje que describa los pasos lógicos del problema 1.21.2 Análisis: Estudiado el problema es preciso analizarlo: Todos los pasos que a continuación se enuncian tienen por objeto la solución a un problema cualquiera mediante un buen análisis 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 condición.

Determinar los datos de entrada con que se cuenta para la solución del problema.

Definir qué comparaciones y/o cálculos se necesitan realizar durante el desarrollo del

problema y para obtener el resultado final.

Determinar que resultados se necesitan tanto intermedios como finales.

Tener en cuenta toda clase de restricciones y condiciones que tenga el problema para su solución.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 19: Manual de logica de programacion

LOGICA DE PROGRAMACION 19

1.21.3 Selección de la mejor alternativa. Analizado el problema, posiblemente tengamos varias formas de resolverlo; lo importante es determinar cuál es la mejor alternativa, que produzca los resultados esperados en el menor tiempo y al menor costo. 1.21.4 Diagramación o Seudo-código. Una vez que sabemos cómo resolver el problema, pasamos a diseñar gráficamente la lógica de la alternativa seleccionada. Lo que llamamos un diagrama de flujo donde representamos los pasos lógicos a cumplir por el computador en la solución del problema y obtener los resultados esperados.

Resulta muy útil pasar esos pasos lógicos planteados en el diagrama a frases que indiquen lo mismo; es decir hacer una codificación del problema utilizando instrucciones en español, como si le estuviéramos hablando al computador. Esto es lo que llamamos un seudo-código. 1.21.5 Diagrama: Es una representación gráfica para la definición, análisis " solución de un problema en el cual los símbolos son usados para representar una operación, flujo de datos y equipo.

Existen fundamentalmente dos técnicas de diagramación: libre y estructurada. Dentro de la diagramación estructurada se distinguen: la gráfica rectangular y el seudo-código. Todo algoritmo se puede representar en tres estructuras básicas: Secuencia, Bifurcación o condicional, Repetición.

Secuencia. Indica una operación incondicional.

Titulo del algoritmo Inicio Instrucción 1 instrucción 2 Instrucción 3 : : Fin

Diagrama de N-S (Nassi-Shmeiderman) Favorecen la programación estructurada, se trabajan de arriba abajo siguiendo la técnica de Top dawn Técnica de seudo-código es una imitación de las instrucciones de un lenguaje de programación en español.

Titulo del algoritmo

Inicio Instrucción 1 Instrucción 2 Instrucción 3

Fin Bifurcación condicional. Indica que se debe cumplir una condición, consta de una pregunta y dos alternativas falso o verdadero.

Se da un condicional simple cuando sólo se ejecutan acciones por la alternativa de verdadero o (SI)

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 20: Manual de logica de programacion

LOGICA DE PROGRAMACION 20

Condición SI NO Acciones si se No hacer nada Cumple la Condición

Seudo-código Condicional simple Si condición entonces Acciones cumple la condición Fin si

Se da un condicional compuesto cuando se ejecutan acciones por la alternativa de verdadero y por la de falso.

Condición SI NO Acciones SI se Acciones no Cumple la NO cumple Condición la condición

Seudo-código Condicional compuesto Si condición entonces Acciones SI cumple la condición Sino Acciones NO se cumple la condición Fin si

Repetición o ciclo. Indica la iteración o repetición de una o varias instrucciones dependiendo de una condición verdadera.

CICLO MIENTRAS

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 21: Manual de logica de programacion

LOGICA DE PROGRAMACION 21

Mientras Condición

Acciones Repite tantas veces mientras no se cumpla la condición

En seudo-código seria : Haga mientras no se cumpla la condición Acciones Fin ciclo

1.21.6 Prueba de escritorio. Para cerciorarse de que el diagrama y/o seudo-código está bien y que el programa que codifiquemos en el lenguaje de programación 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-código , hasta obtener los resultados. Al analizar los resultados obtenidos se podrá ver si el diagrama o seudo-código está correcto o hay que realizar correcciones o ajustes. 1.21.7 Codificación. 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 instrucción con la sintaxis propia del lenguaje seleccionado para que el computador la reconozca. 1.21.8 Compilación. 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 codificación. Ningún compilador detecta los errores de lógica. 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 Documentación externa. Una vez esté el programa listo para su ejecución, es conveniente documentarlo, siguiendo las normas establecidas por la empresa. Una buena documentación incluye siempre :

Enunciado del problema. Diagrama o seudo-código Descripción de la solución Relación de variables o campos utilizados en el programa, cada uno con su respectiva

función. Listado de la última compilación Resultados de la prueba de ejecución

Si observas claramente estos pasos tienen una secuencia lógica para la solución de un problema, no tiene ambigüedades y entregan un resultado. Con ello podemos diseñar un seudo-código que seria:

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 22: Manual de logica de programacion

LOGICA DE PROGRAMACION 22

INICIO

Definición del problema Análisis del problema Selección de la mejor alternativa Diagrama o seudo-código Prueba de escritorio Codificación en el lenguaje deseado. Compilación Si hay errores vaya al paso 6 Pruebas Si hay errores vaya al paso 4 Documentación externa

FIN

1.22 ELEMENTOS BÁSICOS DE UN PROGRAMA Hay que separar lo que es el diseño del algoritmo y su implementación en un lenguaje de programación especifico. Por eso es importante la diferenciación de los conceptos de programación y el medio en que se implementan en un lenguaje especifico. Todos los lenguajes de programación al igual que cualquier lenguaje tienen sus elementos básicos y las reglas para utilizarlos. Estas reglas son la sintaxis propias de cada lenguaje. Solamente las instrucciones que estén correctamente escritas serán procesadas por el computador. Los elementos básicos de un algoritmo o programa son:

Palabras reservadas identificadores Caracteres especiales Constantes y variables Expresiones e instrucciones

Además existen otros elementos que forman parte de los programas cuya comprensión será vital `para el correcto diseño 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 ASIGNACIÓN DE INFORMACIÓN Acción de sustitución de la información contenida en una variable de memoria o un campo de un

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 23: Manual de logica de programacion

LOGICA DE PROGRAMACION 23

archivo . Se puede simbolizar por los signos = ó y su función es asignar el valor que está a la derecha del símbolo igual ó la flecha a la variable que esté a la izquierda de la misma. Ejemplos: Variable Variable Pago total área = resultado nota_final = promedio

Variable Constante Retención = 125000 IVA 16% Resultado = Aprobó Descuento = 0.08

Variable Expresión Salario_neto = salario – deducciones Promedio ( Nota1 + nota2 +nota3) /3 Nota-final = suma/5 Valoreps = salariobruto * 0.08 NOTA: Observe que siempre en la expresión el miembro de la izquierda es una variable. La operación de asignar es destructiva ya que el valor que tuviere la variable antes de la asignación se pierde, para tomar el nuevo valor. Ejemplo 10: A 2 A 5 + 7 El valor de A será 12 N 4 N 3 + N el valor de N será 7 Asignación aritmética: las expresiones de asignación son aritméticas. 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 operación indicada

Asignación lógica. La expresión que se evalúa es de tipo lógico.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 24: Manual de logica de programacion

LOGICA DE PROGRAMACION 24

Ejemplo 12 M 8 < 4 el valor de M será falso P 45 < 25 el valor de P será verdadero.

Asignación de cadena de caracteres. La expresión que se evalúa es de tipo cadena de caracteres. Ejemplo 13: Fecha “ 11 de noviembre de 1809” El valor de Fecha será: 11 de noviembre de 1809

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 numérico se le asigna una cadena de caracteres, y a una variable de tipo carácter se le asigna un valor numérico.

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 notación Variable “ “ si la variable es de tipo carácter Variable 0 si la variable es de tipo numérico. Nota: las variables donde se guardan los resultados de cálculos u operaciones matemáticas son llamadas variables de trabajo, se deben siempre dar un valor inicial de 0.

1. 24 ACTIVIDADES TRABAJO INDEPENDIENTE Consulte acerca de los siguientes términos, interiorice su significado y averigüe como se calculan :

Promedio Interés Porcentaje Subsidio Deducción Impuesto Comisión Recargo

Elabore el taller de lógica 1, que hace parte de tu trabajo independiente.

Identifique Que es ¿ algoritmo?; Conceptos sobre Seudo código, 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 25: Manual de logica de programacion

LOGICA DE PROGRAMACION 25

Razonamiento Lógico Soy cuatro veces mayor que mi hija. Dentro de 20 años seré dos veces mayor que ella. ¿ Cuantos

años tenemos ahora?

Completa la cuadricula con los números que faltan del 1 al 16 para formar un cuadrado mágico, en

el que cada línea horizontal, vertical y diagonal de esquina a esquina sume 34.

15

5 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 vendría después en esta secuencia?

155,210,225,240 ….

En un saco de naranjas, 4 de 52 están malas. ¿ Qué probabilidades hay de sacar dos malas?

¿Qué numero esta en discordancia con los demás

491322

891726

191029

831114

751217

391221

¿Qué número seguiría esta secuencia?

2,13,89,610,4181,28657,…?

¿Qué número sería el próximo en esta serie?

4,8,15,30,37,74…..?

¿Qué número sería el próximo en sta serie?

147,144,12,9,3…..?

¿Cual es el próximo numero?

74169,183,74,65,61,37,58,89,145…..?

A partir de la información que te damos, añade los números que faltan.

2713 8

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 26: Manual de logica de programacion

LOGICA DE PROGRAMACION 26

1936

7413 84

¿Qué número completa esta secuencia?

763592,468,32, …?

Un reloj da las seis en 5 segundos. ¿ En cuanto tiempo da las doce?

Qué tienen estos números en común?

8228

92126

6889

210012

15269251

¿Qué número continuaría en la serie?

2736,9108,17127,89298,?

Encuentre una palabra de seis letras que tenga alguna en común con las siguientes palabras:

0 l etras en común con CRECER letra en común con CAFÉ letras en común con DIENTE letras en común con PERDÓN letras en común con ALIENTO El diagrama indica la ubicación de los 35 barrios de una ciudad, Los círculos Son barrios y las

líneas carreteras. La distancia entre barrios es de 5 km. El intendente decide que ningún barrio

debe estar a más de 5 km de un cuartel de bomberos. ¿Cuál es la mínima cantidad de cuarteles

necesarios? Indique sus ubicaciones.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 27: Manual de logica de programacion

LOGICA DE PROGRAMACION 27

Dos amigos. Álex y David, salen de sus casas corriendo con intención de encontrarse. Sus relojes

marcan las doce del mediodía. Álex corre el doble que David, Cuando se encuentran, el reloj de

Álex marca las 12,30 y el de David, que se adelanta, señala un minuto más. Al día siguiente,

Repiten la experiencia, David pone en hora su reloj. Álex retrasa su salida diez minútos 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 exámenes. Encada prueba, el

que queda primero recibe x puntos; el segundo recibe y puntos y, el tercero z puntos. x, y, z son

números 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. ¿Quién quedó segundo en el examen de geometría?

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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 28: Manual de logica de programacion

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 = A – B – C 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 29: Manual de logica de programacion

LOGICA DE PROGRAMACION 29

X > = 8 Decir cual es el valor final de A,B,C en las siguientes expresiones: 1) A 3 2) A 7 B 4 B A+2 C A +B /2 C A*B+5 B B + C A B^2 + 8/3 C C * A B 17 A C - B A (A – 17) * C – 8 3) A 3 4) A 7 B 4 B A+2 C A + B C A*B+18 B B + C +A A B^2 + 13/3 C C * A + 3 B 19 A C *5 - B A (A – 7) * (C – 8) Cuales son los valores de P; Q; R después de las siguientes operaciones 5) P 3 6) P 7 Q 6 Q P+2 R P +Q /3 R P*Q+7 P P + R + 2 P Q^2 + 8/3 Q Q * P Q 17 R P - Q 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 después de la ejecución 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 después de la ejecución de las siguientes instrucciones. Variables A, B, C, D: enteras INICIO

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 30: Manual de logica de programacion

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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 31: Manual de logica de programacion

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 específicos:

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

CONTENIDO TEMÁTICO

Definición de dato y sus tipos. Definición de variables y constantes. Entradas y salidas de información. Instrucciones de asignación. El concepto de variable y constante

Competencias académicas a desarrollar Saber el manejo de los diferentes tipos de datos en la entrada, proceso y salida de información. Hacer ejercicios donde identifica los diferencias entre variables y constantes Realizar ejercicios donde utiliza instrucciones de asignación. Indicadores de logro: Conceptual: Conoce los diferentes tipos de datos, y elementos básicos para realizar un algoritmo. Procedimental: Realiza solución de problemas sencillos que le permiten entrar datos, procesarlos y dar respuestas. Actitudinal: Demuestra interés por conseguir una respuesta correcta.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 32: Manual de logica de programacion

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 información 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: “Código” COD LEER: “Salario básico hora” SBH LEER: “Numero de horas trabajadas” NHT LEER: “Retención en la fuente” RTF LEER: “Nombre” NOMB ; “Código” COD; “Salario básico hora” SBH; “Numero de horas trabajadas” NHT; “Retención en la fuente” RTF

INSTRUCCIÓN EFECTO Lea(A) La variable A recibe el valor entrado por teclado. Lea: A, B Lee dos valores por teclado, el primero lo asigna a la

variable A y el segundo a la variable B Lea (sueldo) La variable sueldo recibe el valor introducido por teclado. Lea: Nombre, sueldo 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 de información por impresora y la palabra MOSTRAR para la salida por pantalla.

FORMATO O SINTAXIS:

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 33: Manual de logica de programacion

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.

INSTRUCCIÓN EFECTO IMP(A) El contenido de la variable A es impreso. MOSTRAR: A, B Los valores de las variables A y B son mostrados

por pantalla IMP “Sueldo” La palabra sueldo es impresa. MOSTRAR: “ El Nombre es:” Nomb

Muestra : la frase “ El Nombre es: ” seguido del contenido de la variable Nomb.

Ejemplo 14: Se lee un valor de temperatura en grados Fahrenheit, convertirla en grados Centígrados.

Qué pide realizar el enunciado del problema? Convertir en grados centígrados una cantidad de grados Fahrenheit

Qué datos tengo? El valor de la temperatura en grados Fahrenheit

Qué cálculos debo realizar? Para poder hacer los cálculos debo conocer la formula de la conversión de temperaturas de grados Fahrenheit a grados centígrados. 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 centígrados 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 cálculos Temp_gc 5/9 * (Temp_gf – 32) Mostrar los resultados

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 34: Manual de logica de programacion

LOGICA DE PROGRAMACION 34

IMP : “La Temperatura en grados centígrados es ”Temp_gc Fin

Prueba de escritorio Temp_gf Temp_gc cálculos 350 0 5/9 * (350 – 32) 177 75 24 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 Cálculos necesarios para solucionar el problema Los cálculos pueden ser una(s) función(es) o un(os) procedimiento(s)-

(5) MOSTRAR RESULTADOS OBTENIDOS

FIN DEL INICIO

2.4 ACTIVIDADES TRABAJO INDEPENDIENTE Consulte acerca de los siguientes términos, 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 lógicos para procesar los datos

Elabore el taller de lógica 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 35: Manual de logica de programacion

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 continuación mi nombre. 3. Escriba un algoritmo que imprima la fecha del día. 4. Escriba un algoritmo que imprima el número 4´135.801. 5. Escriba un algoritmo que muestre su nombre completo, dirección, fecha de nacimiento y

número de teléfono. Cada uno de estos datos precédalo de un titulo, ejemplo: Teléfono : 4424444 Ext. 181.

6. Desarrolle un algoritmo que lea un número 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 básico 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 número NRO e imprima el número y el resultado de restarle 2387. 10. Lea un número y calcular el 5% del número leído. Imprima tanto el número como el

porcentaje calculado. 11. Lea el nombre de un empleado, su salario básico por hora, el número de horas trabajadas en

el período y el porcentaje de retención en la fuente. Calcular el salario bruto, el valor de la retención y su salario neto.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 36: Manual de logica de programacion

LOGICA DE PROGRAMACION 36

UNIDAD 3 PROGRAMACION MODULAR

OBJETIVO: Solucionar los problemas, aplicando la técnica de dividir en subprogramas o módulos, que le facilitan el trabajo y la identificación de errores.

CONTENIDO TEMÁTICO Definición de programación modular Funciones y procedimientos Función recursiva Competencias académicas a desarrollar

Aprender a dividir problemas en subproblemas Conocer la diferencia entre función y procedimiento, variables globales y locales. Indicadores de logro: Conceptual: Identificará la diferencia entre procedimiento y función. Procedimental: Soluciona los problemas planteados, por medio de algoritmos que utilicen subprogramas. Actitudinal: Muestra interés en aplicar la técnica modular y habilidad para aplicar las diferentes estructuras.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 37: Manual de logica de programacion

LOGICA DE PROGRAMACION 37

3. PROGRAMACION MODULAR

3.1 PROGRAMACIÓN MODULAR La programación modular es un método flexible para mejorar la productividad de los programas. En esta los programas se dividen en módulos 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 módulos. Cada modulo es independiente de los otros en el sentido que ninguno puede acceder directamente a otro. La programación modular permite resolver un problema mediante su descomposición en varios problemas mas simples llamados módulos, que se codifican y procesan independientemente. Un problema complejo se puede dividir en pequeños subproblemas más sencillos. Estos subproblemas se conocen como “Módulos” y su complementación 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 propósito 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 Módulos 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 mayoría de los lenguajes de programación permiten la programación modular y según el lenguaje reciben diferentes nombres: NOMBRE LENGUAJE DE PROGRAMACION PROCEDIMIENTOS PASCAL SUBRUTINAS FORTRAN BASIC SECCIONES COBOL MODULOS MODULA-2 PAQUETES ADA

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 38: Manual de logica de programacion

LOGICA DE PROGRAMACION 38

3.2 SUBALGORITMOS O SUBPROGRAMAS Un método de solucionar un problema complejo como ya lo hemos dicho es dividirlo en subproblemas (mas sencillos) , y estos a su vez en otros mas simples. Un subprograma es programa independiente que resuelve una función definida por los módulos. 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 instrucción. Cuando se termina de ejecutar el subalgoritmo este debe regresar al punto del programa desde donde fue llamado. La comunicación entre los módulos se realiza por medio de parámetros que contendrán los datos que se desean pasar al módulo llamado. La utilización de los algoritmos consta de dos etapas:

Declaración: Proceso en el cual se escribe el subalgoritmo.

Activación: 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 39: Manual de logica de programacion

LOGICA DE PROGRAMACION 39

3.4 FUNCIONES Es un subprograma que proporciona un valor o resultado según sean sus parámetros de entrada. Función: Una función en matemáticas, es una operación que toma un o mas valores (argumentos) y devuelve un resultado (valor de la función para los argumentos dados). Por ejemplo: F(X) = X / (1+X2) Donde: F ………….. Nombre de la función X …………. Es el argumento (también conocido como parámetro formal) Definición de funciones: Una definición de función se presenta de la siguiente manera: Función nombre_funcion (p1, p2, …, pn) Inicio Bloque de instrucciones Fin Donde: Función ………… Es la palabra clave que nos indica una definición de función. Nombre_funcion ….. Es el identificador con el cual se reconoce a la función en el cuerpo del algoritmo principal. P1,p2,…,pn ……... Es el grupo de parámetros que define a la función. Llamado a una función: Cuando definimos una función solo indicamos al algoritmo que esta función existe, pero una definición de función no implica la realización de las instrucciones que la constituyen. Para hacer uso de una función, el algoritmo principal la debe llamar. Por ejemplo: Función F(X) Inicio F = X /(1 + X^2) Fin Inicio Imprimir “Este es el algoritmo principal” Leer N R = F(N) llamado de la función Imprimir “El resultado de la función es:”,R Fin Resumen. Una función se representa: f (p1, p2......,pn) donde: f Nombre de la función p son los parámetros. Una función se invoca cuando se le hace referencia mediante su nombre y la lista de los parámetros actuales en cualquier instrucción donde se pueda usar una constante o variable.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 40: Manual de logica de programacion

LOGICA DE PROGRAMACION 40

Las funciones pueden ser internas o externas. 3.4.1 Funciones internas: Conjunto de operaciones predefinidas generalmente incorporadas por la mayoría de los lenguajes de programación.

Ejemplo: Función Descripción Tipo de argumento Tipo de resultado Abs(x) valor absoluto de x entero o real igual argumento Cos(x) 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: Función nombre (lista de parámetros): resultado VARIABLES LOCALES A LA FUNCION

IFUNC- acciones> " nombre < expresión fin función.

Ejemplo 15: Función Tangente de X (generalmente las funciones trigonométricas son funciones internas) Real Función tan (real: X) “ x es el `parámetro de entrada” “función tan es igual a sen (x) / cos(x), ángulo x en radianes” Inicio Devolver (sen(x) / cos(x)) Fin-función 3.5 PROCEDIMIENTOS Un subprograma que necesita cero, uno o varios valores en función de los parámetros definidos en su formato. Un procedimiento se llama con una instrucción llamar- a ó con el nombre del procedimiento. Al ejecutarse la llamada la rutina que la efectúa se detiene momentáneamente y el control pasa al procedimiento llamado. Después de que se termina de ejecutar el procedimiento el control se devuelve a la rutina que lo llamo y continua con la instrucción siguiente a llamar. Los valores que devuelve el procedimiento se envían a través de una lista de parámetros. Los parámetros de entrada reciben valores del programa llamador y los de salida devuelven valores al programa llamador. NOTA: Parámetros 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 41: Manual de logica de programacion

LOGICA DE PROGRAMACION 41

procedimiento; de salida envían valores desde el procedimiento al programa que llama; de entrada / salida que sirve para ambos propósitos. Formato: Procedimiento nombre (lista de parámetros): resultado VARIABLES LOCALES AL PROCEDIMIENTO IPROC Instrucciones para realizar el procedimiento resultados FIN PROC.

3.6 DIFERENCIAS ENTRE LOS PROCEDIMIENTOS Y LAS FUNCIONES.

Un procedimiento es llamado desde el programa principal mediante su nombre y una lista de parámetros, o bien con la instrucción llamar a. Al ser llamado el procedimiento el programa principal se detiene momentáneamente y el control pasa al procedimiento llamado, una vez se ejecuta el procedimiento, se regresa a la instrucción 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 parámetros.

El procedimiento se declara igual que la función por un nombre pero este no está asociado al resultado y en la función 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 actuación tanto en el programa principal como en los subprogramas. Su definición se realiza en el programa principal.

3.7.2 Variables locales; son las que se utilizan en la definición de un subprograma (incluyendo parámetros). Solo tiene actuación o significado dentro del subprograma donde se definen y no son conocidas fuera de el. Su definición debe ser dentro del subprograma.

A las variables locales sólo 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 función para sumar 2 números enteros

FUNSUMAR (VALOR a,b : entero) : resulta entero VAR SUM: ENTERO INICIO FUNC SUM = a + b SUMAR = SUM

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 42: Manual de logica de programacion

LOGICA DE PROGRAMACION 42

RETORNE (SUMA) FIN-FUNC

Ejemplo 17: Se tiene el nombre del artículo, número de artículos vendidos, el valor de cada artículo. Calcule el valor de la venta. Mostrar el nombre, el total de la venta. Realice una función ANALISIS DATOS DE ENTRADA NOMART= nombre del artículo NOARTV = número de artículos 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 artículo” NOMART, “número de artículos vendidos” NOARTV “valor de cada articulo” VRART MOSTRAR : “Nombre del artículo” 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 VRART V_VRVTA Calculos 15 20 0 15 * 20 300 40 25 0 40 * 25 1000 3.8 RECURSIVIDAD Término recursividad es un concepto amplio, difícil de precisar. Ejemplo una fotografía de otra fotografía, 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 programación 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 43: Manual de logica de programacion

LOGICA DE PROGRAMACION 43

En general, cuando se escriben algoritmos usando recursividad, lo usual es que sea muy obvia cuál es la modificación 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 están en la pila de ejecución del programa; ahí es donde queda también registrado el lugar de retorno para la rutina. Cuando el procedimiento recursivo trabaja sobre sus variables, está usando las que están en el nuevo registro de activación, por lo que, cuando termina su trabajo, regresa al punto de invocación que le corresponde. En realidad la recursividad existe porque el llamado entre procedimientos se implementa usando registros de activación organizados en una pila de ejecución para el programa. Ejemplo 18: Realice una función que calcule el termino n de la serie Fibonaci. NOTA : La serie Fibonaci es 0 1 1 2 3 5 8 13............n Función Fibonaci (entero::n) { Función general}l Ent. I, Ultimo, Penúltimo, Suma Inicio Func Suma 1 Penúltimo 1 Ultimo 1 Para I = 2, n haga Penúltimo Ultimo Ultimo Suma Suma Penúltimo + Ultimo Fin para Devolver : Suma Finfunc. Ejemplo 19: Ahora realizamos un algoritmo recursivo. Por definición : 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 función recursiva dado que Fib(n) = Fib (n-1) + Fib(n-2) seria: Función fib entero Inicio Si n = 0 o n = 1 entonces Devolver 1 Sino Devolver Fib (n-1) + Fib(n-2) Finsi Fin función .

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 44: Manual de logica de programacion

LOGICA DE PROGRAMACION 44

3.9 ACTIVIDADES TRABAJO INDEPENDIENTE

Fórmese una opinión acerca de ¿qué programación modular?;

Haga la diferencia entre los conceptos: función, procedimiento, parámetros.

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, realícelo en programación 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 función que permita obtener el término n de la serie de Fibonacci. 3. Realizar una función que permita obtener el valor absoluto de un número 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 división entera y el resto de la misma

utilizando únicamente operadores de suma y resta. 6. Realizar una función que permita obtener el mayor valor de tres parámetros de entrada A, B, y

C; los tres valores son diferentes. 7. Realice un procedimiento que permita verificar si una fecha es válida o no. 8. Realice un procedimiento que permita calcular el valor de Pi. 9. Realizar una función que permita obtener máximo común divisor de dos números mediante el

algoritmo de Euclídes. 10. Realice un procedimiento que permita verificar si un número leído es primo o no.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 45: Manual de logica de programacion

LOGICA DE PROGRAMACION 45

UNIDAD 4 INSTRUCCIONES DE DECISIÓN OBJETIVO: Reconocer, diferenciar y manejar apropiadamente los tipos de datos, los operadores lógicos y matemáticos, los conceptos de variables y constantes; las instrucciones de entrada y salida de datos y manejo de selección doble, anidada y múltiple. Aplicar las diferentes estructuras de decisión de acuerdo a los requerimientos del problema Objetivos específicos:

Aprender el manejo de las instrucciones de decisión Adquirir destreza en el análisis del problema planteado y utilizando múltiples decisiones. Hacer algoritmos con el manejo de los datos realizando las operaciones con una secuencia lógica.

CONTENIDO TEMÁTICO

Alternativas: Simples Dobles En bloque Anidadas Múltiples

Competencias académicas a desarrollar Aprender el manejo de las instrucciones de decisión Adquirir destreza en el análisis del problema planteado y utilizando múltiples decisiones. Hacer algoritmos con el manejo de los datos realizando las operaciones con una secuencia lógica. Indicadores de logro: Conceptual: Identifica las instrucciones de entrada y salida de información, el proceso de los datos. Procedimental: Implementación eficaz de soluciones utilizando las estructuras más adecuadas de acuerdo al caso. Escogiendo la alternativa que la solución del problema requiera. Actitudinal: Reconoce cual es la estructura mas adecuada.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 46: Manual de logica de programacion

LOGICA DE PROGRAMACION 46

4. ENUNCIADOS DE DECISIÓN O ALTERNATIVOS

4.1 CONDICIONAL En el desarrollo de un algoritmo la mayoría de las veces se ver abocado a tomar una decisión o realizar comparaciones o agrupación, para que éste sea general y flexible se deben tener en cuenta las alternativas que se puedan presentar en un momento dado.

Se utilizarán para hacer preguntas, comparaciones y tomar decisiones. Por medio de preguntas de exclusión, excepción, y comparación se puede tomar una decisión o conocer alguna situación.

FORMATO O SINTAXIS

Decisión Compuesta

SI Condición o condiciones unidas por operadores lógicos ENTONCES Bloque de instrucciones que deben ejecutarse cuando si se cumple la condición.

SINO (De lo contrario o de otro modo)

Bloque de instrucciones que deben ejecutarse cuando no se cumple la condición.

FINSI (Fin de las preguntas).

Decisión con operadores lógicos

SI Condición o condiciones (unidas por operadores lógicos) ENTONCES

Bloque de instrucciones cuando se cumple la(s) condición(es)

FINSI (Fin de las preguntas).

Ejemplo 20: Elaborar programa en seudo código (EPES) que lea o entre código, nombre, salario básico horas, número de horas trabajadas, retención y años en la empresa de un empleado.

Sí, el empleado lleva más de 10 años en la empresa adicionarle una bonificación de $100.000 al salario neto. Si el empleado lleva más de 5 años en la empresa y menos de 10 años y su salario neto es menor de $60.000 entonces imprimir “Tendrá aumento de sueldo”. Sí el empleado lleva menos de un año en la empresa imprimir “Bienvenido”. Además imprimir código, nombre y Salario Neto del empleado. ANALISIS DATOS ENTRADA

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 47: Manual de logica de programacion

LOGICA DE PROGRAMACION 47

CODEMP : Código del empleado NOMEMP : Nombre del empleado SALBH : Salario Básico Hora NHT : Número de Horas Trabajadas RET : Retención AEMP: Años 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 línea separadas por punto y coma. También se colocan las variables y constantes con su tipo en cada línea.

PASO 2 INICIALIZACION DE LAS VARIABLES DE TRABAJO SALBR ; SALN 0

PASO 3 ENTRADA DE DATOS Mostrar “entre código” Lea CODEMP Mostrar “entre Nombre” Lea NOMEMP Mostrar “entre Salario Básico Hora” Lea SALBH Mostrar “entre Horas Trabajadas” Lea NHT mostrar “entre Retención” Lea RET mostrar “Entre años en la Empresa” Lea AEMP Los títulos Mostrar “entre Código”, etc. se utilizan para que el usuario tenga información acerca del dato que debe digitar.

PASO 4 CALCULOS Y COMPARACIONES CON IMPRESIONES INTERMEDIAS

CALCULOS (REAL:SBR:SBH:SN; ENT: NHT:AEMP) PASO 5 SALIDA DE INFORMACIÓN

MOSTRAR “Código=”;COD,”Nombre:” NOM,”Salario Neto=” SN La salida de información se hizo en una sola línea combinando títulos y variables separadas por comas y punto y coma.

FIN PROG.PPAL INPROC CALCULOS (REAL:SBR:SBH:SN; ENT: NHT:AEMP)

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 48: Manual de logica de programacion

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 bonificación a los empleados con mas de 10 años) 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..

Nótese 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 condición. PRUEBA DE ESCRITORIO CODEMP NOMEMP SALBH NHT AEMP RET SALBR SALN 1234 Luis 7000 40 6 28.400 280.000 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 podría resolver por estructuras alternativas, anidadas o en cascada; Sin embargo, este método si él número de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente la legibilidad. La estructura caso es una alternativa múltiple.

La estructura de decisión múltiple evaluará una expresión que podría tomar n valores distintos, 1,

2, 3,..., n. Según que elija uno de los de estos valores en la condición, 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

Según opción hacer En caso de V1 : acción 1 V1 : acción 1 V2 : acción 2 V2 : acción 2 V3 : acción 3 V3 : acción 3 : : Vn : acción n Vn : acción n Sino Sino Acción no se cumple Acción no se cumple Fin según. Fin caso

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 49: Manual de logica de programacion

LOGICA DE PROGRAMACION 49

FORMATO O SINTAXIS Caso_de expresión hacer

e1 :

{conjunto de instrucciones}

e2 :

{conjunto de instrucciones}

otro_caso:

{conjunto de instrucciones}

fin_caso

Ejemplo 21 : Se desea diseñar un algoritmo que escriba los nombres de los días de la semana en función del valor de una variable DIA introducida por teclado, que representa su posición dentro de la semana. Los días de la semana son 7; por consiguiente el rango de valores de DIA será 1... 7, y caso de que día tome un valor fuera de este rango se deberá producir un mensaje de error advirtiendo la situación anómala. Programa nombre_dia

INICIO

lea DIA

. Caso_de DIA hacer

. 1 : escriba “LUNES”

. 2 : escriba “MARTES”

. 3 : escriba “MIÉRCOLES”

. 4: escriba “JUEVES”

. 5: escriba “VIERNES”

. 6: escriba “SABADO”

. 7: escriba “DOMINGO”

. otro_caso: escriba "ERROR”

. fin_caso

. fin

4.3 CONDICIONALES ANIDADOS

Las estructuras de condición no solo implican la selección de una de las dos alternativas. Es posible también utilizar la instrucción si para que contengan mas de dos alternativas. Una

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 50: Manual de logica de programacion

LOGICA DE PROGRAMACION 50

estructura si - entonces puede contener otra si – entonces y esta a su vez puede contener otra, dándose lo que llaman condicionales anidados.

Caso 1. Se tienen tres posibles valores para una variable.

SI Condición1 (Entonces) Bloque de instrucciones que deben ejecutarse cuando cumple la condición1.

SINO (De lo contrario o de otro modo)

SI Condición2 (Entonces) Bloque de instrucciones si la condición2

SINO (De lo contrario o de otro modo)

Bloque de instrucciones que deben ejecutarse cuando no se cumplen la condición1 y la condición 2

FINSI (fin condición 2)

FINSI (Fin de la condición 1).

Ejemplo 22: Se tiene el nombre de un vendedor, el valor de la venta y el código del producto. La comisión de este vendedor se le liquida de acuerdo al código del producto que vende: si el código del producto es 1 la comisión es del 5% sobre el valor de sus ventas; si el código del producto es 2 la comisión es del 7.5% sobre el valor de sus ventas; si el código del producto es 3 la comisión es del 6% sobre el valor de sus ventas. Imprima el nombre del vendedor y su comisión.

SOLUCION

ANALISIS

DATOS DE ENTRADA

Nom_vend = nombre del vendedor

Cod_prod = Código del producto que vende el vendedor

Val-vta = valor de la venta del vendedor

DATOS DE SALIDA

Com_ven = Comisión que recibe el vendedor Com_vend = Val-vta * % ( formula para calcular la comisión . el % toma el valor de acuerdo al codigo del producto) ( PROGRAMA COMISIONES)

INICIO PROG. PPAL.

Asignar tipo de valores que tendrán las variables

CARAC: Nom_vend; Cod_prod

REAL: Val-vta ; Com_ven

Inicializar variables en que se almacenan los cálculos

Com_ven = 0

Lectura de los datos de entrada

LEER; ‘Nombre del vendedor” Nom_vend;”Codigo del producto”; cod_prod;

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 51: Manual de logica de programacion

LOGICA DE PROGRAMACION 51

“Valor de la venta” Val-vta

MOSTRAR “Nombre del vendedor” Nom_vend

MOSTRAR: “La comisión del vendedor” Com_ven (REAL:Val-vta, CARAC:cod_prod) Se invoca una función que realiza los cálculos para hallar la comisión de acuerdo al l código 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 Cod_prod Val-vta Com_ven

Juan Vélez 2 10´000.000 750.000

Ana Medina 3 8´000.000 480.000

Caso 2. Se tienen VARIAS CONDICIONES para unas variables.

SI Condición1 (Entonces) Bloque de instrucciones que deben ejecutarse cuando si cumple condición1.

SINO (De lo contrario o de otro modo)

SI Condición2 (Entonces) Bloque de instrucciones si cumple la condición2 y niega la condición 1

SINO (De lo contrario o de otro modo)

SI Condición 3 (Entonces) Bloque de instrucciones si cumple la condición3 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 condición 3)

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 52: Manual de logica de programacion

LOGICA DE PROGRAMACION 52

FINSI (fin condición 2)

FINSI (DE LA CONDICIÓN 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 = código 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: “Código 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 53: Manual de logica de programacion

LOGICA DE PROGRAMACION 53

FINSI FINSI RETORNE (NDEF) FINPROC. PRUEBA DE ESCRITORIO NOMEST CODEST NPAR1 NPAR2 NSGTO NEXFIN NDEF Juan Diaz 2345 3.0 2.5 3.0 2,0 0 2.7 HABILITA Juan Díaz 2345 2.7 Luisa Jaramillo 3567 4.0 3.0 5.0 3.6 0 4.1 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 CONSTANTES (3)LEER DATOS DE ENTRADA

(4) PROCESAR DATOS LEIDOS Cálculos necesarios para solucionar el problema Los cálculos pueden ser una(s) función(es) o un(os) procedimiento(s)- (ver nota)

Evaluar condiciones Realizar los cálculos necesarios para solucionar el problema

(5) MOSTRAR RESULTADOS OBTENIDOS

FIN DEL INICIO

Nota: El orden de los cálculos y el proceso se realizan según sea el enunciado. Los cálculos pueden ser antes, dentro o después del condicional.

4.5 ACTIVIDADES TRABAJO INDEPENDIENTE

Identifique claramente los conceptos de; ¿qué es un condicional?; Que es una instrucción de control. ?

Fórmese una opinión acerca de; ¿qué es un condicional anidado? ¿Cuál es la verntaja de utilizar una estructura caso cuando una variable puede tomar varios valores ? Practique los condicionales anidados y condicionales múltiples

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 54: Manual de logica de programacion

LOGICA DE PROGRAMACION 54

Elabora el taller de la unidad 4, condicionales simples, compuestos y múltiples: práctica 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 números para realizar una división. Si el segundo número es Cero (0) imprima

"división no posible" 2. Leer un número e imprimir su raíz cuadrada. Si el número es menor que Cero(0) imprimir

un mensaje "Raíz imaginaria" 3. De 3 números cualquiera. Imprimirlos en orden ascendente de menor a mayor.

4) Leer 4 números 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 múltiplo de 7 de lo contrario Imprima un mensaje "No es

divisible por 7". 6. Leer un número si este es > 0 sumarle 10 y poner el resultado en una variable SUM, de

lo contrario si el número es < 0 multiplíquelo 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 sólo 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 maratón internacional, para seleccionarlo este

debe haber terminado el maratón anterior, en un tiempo determinado. Los tiempos son 150 minutos para hombres menores de 40 años; 175 minutos para hombres con una edad mayor o igual a 40 años y 180 minutos para mujeres. Los datos a introducir (leer) son: Sexo, Edad y tiempo efectuado en su maratón anterior.

9. Leer un número si es par imprimir su cubo, si es impar imprimir su cuarta. 10. Deducir si un número leído desde el teclado es positivo, negativo o igual a Cero (0). 11. Realice un seudo código para saber si un año leído es bisiesto o no. Es bisiesto si el año/4 y

el residuo es = 0 y además que sea múltiplo de 100 y de 400 mayor de 1000. 12. Comparar 3 números entre sí y determinar cual es menor.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 55: Manual de logica de programacion

LOGICA DE PROGRAMACION 55

13. Imprimir el mayor entre tres números. 14. Leer tres números imprimirlos en orden descendente. 15. Leer dos Números e imprimirlos solo si son los dos positivos. 16. Se tiene la siguiente información: 1 Suma 2 Resta 3 Producto 4 División 5 Exponenciación Escoger una opción y realizar la operación indicada con 2 números que serán leídos luego de escoger la opción. 17. Hacer un programa el cual indique si un número es negativo y convertirlo a positivo; si es

positivo a negativo. 18. Hacer un programa que imprima el número medio de tres números. El número medio

es aquel que no es ni el menor ni el mayor. 19. Leer A, B, C Imprimir un mensaje diciendo si forman Triángulo, Escaleno, Equilátero o

Isósceles. N ota : A, B, C son los lados del triángulo Un triángulo es equilátero, si todos sus lados son iguales. Isósceles, 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 vehículo a un valor determinado

de acuerdo a la temporada, si el cliente usa el carro por más de 10 horas le hacen un descuento del 20% por cada hora de más. 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 años 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 número 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. Según las teorías de Sigmound Freud, el hombre se desarrolla en las siguientes etapas de

acuerdo a su edad niño

13-17 adolescente 18-25 joven 26-55 adulto y mayor de 55 anciano.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 56: Manual de logica de programacion

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 número de páginas es mayor de 201 el precio del libro se incrementa en 10%. Se leen los siguientes datos: nombre del libro, número de páginas.

26. Una tienda de libros vende sus libros de acuerdo a las siguientes especificaciones: Precio base de $ 5000, si el si el número 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 número 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 número de páginas. 27. Escribir un programa que pregunte si Ud fuma. Si fuma muestre lo

siguiente: 1 Malboro 2 Royal 3 Derby 4 Pielroja 5 Kool

Permita además de escoger la opción imprimir la marca de cigarrillos que fuma.

28. Leer un número de mes y decir cuántos días tiene este. Si es mes dos verificar si el año es

bisiesto y decir que este mes tiene 29 días , de lo contrario tiene 28. Nota: Meses 4, 6, 9, 11 tienen 30 días. Meses 1, 3, 5, 7, 8, 10, 12 tienen 31 días. Mes 2 tiene 28 o 29 días.

29. Un cliente que tiene en inversión 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 interés.

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 diseño si funciona o no funciona.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 57: Manual de logica de programacion

LOGICA DE PROGRAMACION 57

UNIDAD 5 ENUNCIADOS DE REPETICION (ciclos) OBJETIVO: Aplicar y manejar eficazmente las estructuras tipo ciclo para la formulación 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 específicos: Utilizar contadores y acumuladores en la solución de un problema con varios registros. Reconocer los diferentes ciclos y saber aplicarlos de acuerdo a la situación. 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 TEMÁTICO

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

Competencias académicas a desarrollar Utilizar contadores y acumuladores en la solución de un problema con varios registros. Reconocer los diferentes ciclos y saber aplicarlos de acuerdo a la situación. 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 señales de fin de archivo Implementa soluciones para datos organizados, por grupos. Actitudinal: Demuestra interés en resolución de problemas simples mediante algoritmos basados en estructuras de control alternativas e iterativas.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 58: Manual de logica de programacion

LOGICA DE PROGRAMACION 58

5. ENUNCIADOS DE REPETICION

5.1 CONTADOR

Área de trabajo cuyo incremento o decremento es definido. El término contador está asociado con la acción de contar. Ejemplo: la registradora de un bus cuenta el número 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 término acumulador iene de acumular (sumar cantidades). Por ejemplo: la caja registradora de un almacén 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 división de la suma de unas variables (acumulador) dividida por el número de variables sumadas (contador). ( PROMEDIO = ACUMULADOR/CONTADOR). Cuando el ejercicio pide un promedio se debe inicializar un Acumulador y un Contador. Generalmente la operación del promedio se realiza por fuera del ciclo.

5.4 REGISTRO CENTINELA Es el último registro que contiene una señal 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 número 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 están diseñados para que las operaciones o el conjunto de ellas se puedan repetir muchas veces.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 59: Manual de logica de programacion

LOGICA DE PROGRAMACION 59

Para poder implementar acciones que deben ejecutarse repetidamente se utilizan los ciclos o bucles y se llama iteración el hecho de repetir la ejecución 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 diseñar un bucle son: Que contiene el bucle? Cuántas veces hay que repetir.

Generalmente por medio de contadores se controla el número de repeticiones. Las tres estructuras repetitivas o iterativas son:

Haga mientras Repetir hasta Desde o Para

La decisión 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 número fijo de veces.

5.7 CICLO HACER MIENTRAS Se utiliza para ejecutar repetitivamente un conjunto o bloque de instrucciones mientras se cumple una condición específica. Permite ejecutar repetitivamente el conjunto de instrucciones hasta que una variable, contador llegue a su valor límite. FORMATO O SINTAXIS Variable = Valor inicial HAGA MIENTRAS condición Bloque de instrucciones Variable = Variable + i FIN - MIENTRAS Ejemplo 24: Generar e imprimir los números de 0 al 500 Lista de variables X = Contador generador de los números INICIO (PROGRAMA GENERAR NUMEROS) ENT: X

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 60: Manual de logica de programacion

LOGICA DE PROGRAMACION 60

Solución: X 0 HAGA MIENTRAS X < 500 IMPRIMA: “Numero” X X = X + 1 FIN - MIENTRAS FIN PRUEBA DE ESCRITORIO ( Se realiza con 5 números 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 números e imprimir sólo los números pares. ANALISIS : Datos entrada NUM = número Datos salida CONT = contador de números 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 número" 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 números ) 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 61: Manual de logica de programacion

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 retención 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 básico hora pagado al Trabajador NHTRAB = número 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 = Retención para seguridad social RETSS = SALB * % ¿RETIMP = Retención 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 número de trabajadores de la fábrica) HAGA M. Q CONT < N (controla el ciclo con un contador que debe llegar a N) LEER : “Nombre del trabajador” NOMT, “salario basico hora”SALBH, “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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 62: Manual de logica de programacion

LOGICA DE PROGRAMACION 62

IN-PROC CAL-SALARIO (REAL:SALBH; ENT: NHTRAB: REAL:SALNPT) SALB = SALBH * NHTRAB (se empieza el proceso de los datos leídos ) 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 NHTRAB SALBH Elías Pérez 48 20.000 Pedro Duran 48 6.000 Carmen Gómez 48 4.000 TAPORS TIMPT SALNPT SALBH TSALPE 0 0 0 0 0 24.000 43.200 892.800 960.000 960.000 29.760 342.000 288.000 1´248.000 33.600 248.160 192.000 1´440.000 RETSS RETIMP AUXTRASP CONT 0 0 0 0 24.000 43.200 0 1 5.760 0 60.000 2 3.840 0 60.000 3 Ejemplo 27 : Un ciclo mientras controlado por un registro centinela: Se tiene un archivo con: valor de las ventas, el nombre y el código de los vendedores de una compañía. A cada vendedor se le liquida la comisión 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: > 3’000.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 comisión 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 código del vendedor 000000

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 63: Manual de logica de programacion

LOGICA DE PROGRAMACION 63

ANALISIS DATOS DE ENTRADA (registro) CODV = código del vendedor NOMV = nombre del vendedor VRVTAS = valor de las ventas del vendedor DATOS DE SALIDA COMV = comisión 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 0 LEER: “Codigo del vendedor CODV “Nombre del vendedor” NOMV “valor de las ventas” VRVTAS (LEER 1er registro) HAGA M.Q (CODV <> 0000000) (Dato centinela código 00000) MOSTRAR:” Nombre del vendedor” NOMV “ Comisión 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 leído) COMV = VRVTAS * 0.05 + 8.000 SINO SI VRVTAS > 3’000.000 ENTONCES COMV = VRVTAS * 0.045 + 10.000 SINO

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 64: Manual de logica de programacion

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 NOMV VRTAS 222333 Amanda García 5´000.000 222433 Carlos Cardona 3´000.000 223569 Evelio Duran 7´000.000 224678 Rubén Jaramillo 4´000.000 00000

COMV TCOMPE TVTASVEND PROMVTAS CONTVEND 0 0 0 0 0 235.000 235.000 5´000.000 1 120.000 355.000 8´000.000 2 358.000 678.000 15´000.000 19´000.000/4 3 190.0000 868.000 19´000.000 4´750.000 4 NOMVMV MAYVTA “ “ 0 Amanda García 5´000.000 Evelio Duran 7´000.000

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 65: Manual de logica de programacion

LOGICA DE PROGRAMACION 65

5.8 CICLO REPITA HASTA

Ejecuta repetitivamente un conjunto o bloque de instrucciones hasta que se cumpla una condición determinada que puede verificarse al principio o la final del ciclo. Se ejecuta mientras el valor de la condición es falso, justo lo contrario al ciclo mientras.

La estructura repetir se ejecuta al menos una vez, ya que cuando la instrucción repetir se ejecuta solo se evalúa después de ejecutar la las instrucciones que hay en el bucle.

FORMATO O SINTAXIS:

Variable = valor inicial REPITA Bloque de instrucciones HASTA condición = verdadera ( fin ciclo)

Ejemplo 28: Generar los números pares del 2 al 10 e imprimirlos. Lista de identificadores: cn = contador que genera los números pares INICIO ( PROGRAMA GENERAR NUMEROS PARES) Asignar tipo ENT:cn Solución: 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 condición es falsa y la repita hasta cuando la instrucción es verdadera.

En la instrucción 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 66: Manual de logica de programacion

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 condición de salida; el contador para contar el número de iteraciones se incrementa o decrementa de modo automático.

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 acompañado 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 números e imprimirlos. ANALISIS: J = contador automático que controla el ciclo ¿Cuad = cuadrado de los números 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 Cuad

1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 67: Manual de logica de programacion

LOGICA DE PROGRAMACION 67

5. 11 MODELO CICLO MIENTRAS CON REGISTRO IDENTIFICADOR Y REGISTRO CENTINELA REGISTRO CENTINELA REGISTRO IDENTIFICADOR INICIO INICIO (1) ASIGNAR TIPO A VARIABLES Y CONSTANTES

( 1) ASIGNAR TIPO A VARIABLES Y CONSTANTES

(2) INICIAR CONTADORES, ACUMULADORES, VARIABLES DE TRABAJO

2) INICIAR CONTADORES, ACUMULADORES, VARIABLES DE TRABAJO

(3) LEER REGISTRO (DATOS DE ENTRADA)

(3) LEER No. DE REGISTROS (SUJETOS)

(4) HAGA MIENTRAS NO SE A SEÑAL DE FIN DE ARCHIVO

(4) HAGA MIENTRAS CONTREG. < No. DE REGISTROS

(5)LEER REGISTRO (DATOS DE ENTRADA (5) PROCESAR DATOS LEIDOS (REGISTRO) Cálculos necesarios para solucionar el problema Los cálculos pueden ser una(s) función(es) o un(os) procedimiento(s)-

-ACUMULAR -CONTAR -EVALUAR CONDICIONES - MOSTRAR RESULTADOS PARTICULARES ( DE CADA SUJETO)

6 LEER REGISTRO (DATOS DE ENTRADA FIN CICLO

(6ª) PROCESAR DATOS LEIDOS REGISTRO Cálculos necesarios para solucionar el problema Los cálculos pueden ser una(s) función(es) o un(os) procedimiento(s)

- ACUMULAR -CONTAR -EVALUAR CONDICIONES -MOSTRAR RESULTADOS PARTICULARES ( DE CADA SUJETO)

CONTREG = CONTREG + 1 (**) FIN CICLO

7 CALCULOS GENERALES 7 CALCULOS GENERALES 8 MOSTRAR RESULTADOS GENERALES 8 MOSTRAR RESULTADOS GENERALES FIN DEL INICIO 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. ( " ") carácter (0) numérica, 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 cálculos). 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 número se omite esta lectura) . 3 REGISTRO CENTINELA: Se leen los datos del primer sujeto (registro) del archivo para poder verificar que no hay señal de fin de archivo. 4) REGISTRO IDENTIFICADOR: Ciclo controlado por un contador de registros que llega hasta el numero de registros (sujetos)

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 68: Manual de logica de programacion

LOGICA DE PROGRAMACION 68

4 REGISTRO CENTINELA: Ciclo controlado por una condición de fin de archivo. 5.12 DENTRO DEL CICLO 5 REGISTRO IDENTIFICADOR: Primera instrucción leer los datos de entrada del sujeto (registro) para procesarlos. 6 Se inicia el proceso de los datos leídos (Registro) 5 REGISTRO CENTINELA: Se inicia el proceso de los datos que se traen leídos (registro) PROCESAR DATOS LEIDOS EN REGISTRO IDENTIFICADOR Y CENTINELA : Se realizan los cálculos necesarios para la solución 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 señal de fin del archivo. Ultima instrucción dentro del ciclo, cuando termina de procesar totalmente el registro que se trae leído. 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 mostraría 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 número de sujetos en cifras o de una letra. La segunda siempre será la primera instrucción 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 instrucción que se realiza dentro del ciclo. El ciclo se controla con una señal de fin de archivo.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 69: Manual de logica de programacion

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 Cálculos necesarios para solucionar el problema Los cálculos pueden ser una(s) función(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 automático; los demás 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 condición 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 números leídos.

ANALISIS DATO DE ENTRADA NUM = NUMERO LEIDO N = Cantidad de números leídos 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 números leidos) J = 1 HAGA PARA J = 1, HASTA N, 1 (ciclo externo) LEA “valor del numero” NUM FACT = 1

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 70: Manual de logica de programacion

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 ejecución de un programa y permite comunicar información de una parte a otra del mismo programa.

Estos tienen gran aplicación en la programación 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 acción que se debe seguir.

Ejemplo 31: Se desea un programa que permita reservar unas localidad de un teatro y si está reservada muestre un mensaje explicando que no está disponible. ANALISIS DATO DE ENTRADA NRO_CED = Número de cédula VARIABLES DE TRABAJO SW = Suiche NRO-S = número 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

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 71: Manual de logica de programacion

LOGICA DE PROGRAMACION 71

LEA SW FIN MIENTRAS.

FIN PRUEBA DE ESCRITORIO SW = S NRO-S = 0 NRO- CED NOMBRE 24´899,142 24´899,142 Luis Jaramillo 77´865.432 24´899,142 Gloria Angel SW = N Ejemplo 32: Generar los primeros n números de la sucesión: 17- 15- 18- 16- 19 –17- 20- 21 ...... n ANALISIS DATOS DE ENTRADA NT = numero de términos VARIABLES DE TRABAJO BAN = bandera o suiche CONT = contador CONT = CONT + 1 TER = Tèrmino 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 “Término 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 CONT BAN 17 1 1 15 2 2 18 3 1 16 4 2 19 5 1

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 72: Manual de logica de programacion

LOGICA DE PROGRAMACION 72

5.18 ROMPIMIENTO DE CONTROL A menudo es conveniente tener una archivo organizado por uno o mas campos para ejecutar sobre él un proceso especial.

Rompimiento de control es el que se da cuando necesitamos ejecutar una o varias instrucciones que están 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 estudiantes ordenado por 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

Elaborar un seudo código que imprima los códigos de los grupos y el promedio de edad de los estudiantes; el nombre del estudiante mas alto, su código, la estatura y el peso. El fin de archivo lo controla una edad -1 . Análisis: 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 número de estudiantes se trabaja con un registro centinela y un ciclo mientras. ANALISIS DATOS DE ENTRADA (Registro) CODG = código del grupo NOME = nombre del estudiante CODE = código 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 estudiantes de 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 código del grupo que se está evaluando, cuando este sea diferente al

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 73: Manual de logica de programacion

LOGICA DE PROGRAMACION 73

leído se habrá cambiado de grupo es decir se da el rompimiento. INICIO PROG PPAL- Tipo de variables CARAC: NEMYEST; NOME, CODGACT; CODE, CODG REAL : PEMAYEST; CESTG; MAYEST; SUMED l Inicialización 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 más de un nivel, deben manejarse tantas variables de control de rompimiento como niveles haya.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 74: Manual de logica de programacion

LOGICA DE PROGRAMACION 74

PRUEBA DE ESCRITORIO CODE NOME CODEG ED PE EST 123 Luisa Ochoa 11 18 58 1.65 234 Jaime Sierra 11 17 73 1,76 145 Jorge Ortiz 11 19 70 1,72 246 Carlos Díaz 22 16 76 1,81 345 Esteban Garcés 22 17 65 1,71 346 Alicia Medina 22 17 68 1,70 456 Camilo Osorio 33 19 63 1,67 457 Jorge Cano 33 20 65 1,69 CESTG SUMED CODGACT PROMED 0 0 11 0 1 18 2 35 54/3 3 54 18 0 0 22 0 1 16 2 33 50/3 3 50 16,66 0 0 33 1 19 39/2 2 39 19.5 NEMYEST MAYEST PEMAYEST “ “ 0 0 Luisa Ochoa 1,65 58 Jaime Sierra 1,76 73 Carlos Díaz 1.81 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 ( SEÑAL DE FIN DE ARCHIVO) HACER MIENTRAS variable de rompimiento = variable grupo y N.F.A PROCESAR REGISTRO ( VARIABLES ............) ( Contar, acumular, evaluar condiciones, hacer cálculos, mostrar resultados particulares etc.) LEER REGISTRO(registros siguientes) FIN MIENTRAS CALCULOS DE GRUPO( promedios, porcentajes)

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 75: Manual de logica de programacion

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 cálculos, mostrar resultados particulares etc.)

RETORNE (resultados) FIN SUBPROGRAMA INICIO CAMBIO DE GRUPO (VAR. DE GRUPO........VARIABLES...)

CALCULOS GRUPO (promedios, porcentajes, evaluación 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 ( SEÑAL DE FIN DE ARCHIVO) SI variable de rompimiento = variable grupo ENTONCES PROCESAR REGISTRO ( VARIABLES ............) ( Contar, acumular, evaluar condiciones, hacer cálculos, mostrar resultados particulares etc.) LEER REGISTRO(registros siguientes) SINO CAMBIO DE GRUPO(VAR. DE GRUPO...., VARIABLES)

CALCULOS GRUPO (promedios, porcentajes, evaluación 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 76: Manual de logica de programacion

LOGICA DE PROGRAMACION 76

( Contar, acumular, evaluar condiciones, hacer cálculos, mostrar resultados particulares etc.)

RETORNE (RESULTADOS) FIN SUBPROGRAMA INICIO CAMBIO DE GRUPO (VAR. DE GRUPO........VARIABLES...)

CALCULOS GRUPO (promedios, porcentajes, evaluación 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 código de los vendedores de una compañía organizado por ciudades . A cada vendedor se le liquida la comisión 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 : > 3’000.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 código del vendedor 000000

Imprima el nombre y la comisión 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 = código del vendedor NOMV = nombre del vendedor VRVTAS = valor de las ventas del vendedor CIUD = ciudad donde vende DATOS DE SALIDA ¿COMV = comisión 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 77: Manual de logica de programacion

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: “Código” 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 leído) MOSTRAR “ La comisión 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: “Código” 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 > 3’000.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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 78: Manual de logica de programacion

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 CIUD NOMV VRTAS 235 Bogotá Juan Valdez 2´000.000 123 Bogotá Jaime García 6´000.000 458 Bogotá Carmen Londoño 7´000.000 345 Bogotá Luisa Villada 4`000.000 789 Medellín Carlos Gómez 5´000.000 876 Medellín Pedro Vélez 8´000.000 965 Medellín Samuel Ospina 3´000.000 432 Cali Miguel Restrepo 4`000.000 698 Cali Felipe Varela 2`000.000 000

COMV TCOMPE TVTASCIUD CVEND-CIUD PROMVTAS-CIUD 0 0 0 0 0 80.000 80,000 2´000.000 1 19´000.000 / 4 330.000 410.000 8´000.000 2 4`750.000 380.000 790.000 15´000.000 3 0 200.000 990.000 19´000.000 4 280.000 1´270.000 0 0 16´000.000 /3 430.000 1´700.000 5´000.000 1 5´333.333 115.000 1´815.000 13´000.000 2 0 200.000 2´015.000 16´000.000 3 6`000.000 / 2 80.000 2´095.000 0 0 4`000.000 1 3´000.000 6`000.000 2 MAYVTA NOMVMV CIUDACT 0 “ “ 2,000,000 Juan Valdez Bogotá 6´000.000 Jaime García Medellín 7´000.000 Carmen Londoño Cali 8´000.000 Pedro Vélez

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 79: Manual de logica de programacion

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 retención 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 sección el total de salarios pagados por la empresa el promedio de salarios por sección. 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 básico hora pagado al trabajador NDTRAB = número de horas trabajadas por el trabajador SEC = Código sección DATOS DE SALIDA ¿TAPORSS = Total aportes para seguridad social por sección TAPORSS = TAPORSS + RETSS ¿TIMPTS = Total aportes para impuestos por sección 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 básico 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 sección TSALPS = TSALPS + SALBM ¿POMSS = Promedio salarios por sección POMSS = TSALPS / CVS ¿CVS = Contador vendedores por sección CVS = CVS + 1 ¿ RETSS = Retención para seguridad social RETSS = SALBM * % ¿ RETIMP = Retención 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 = Sección 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 80: Manual de logica de programacion

LOGICA DE PROGRAMACION 80

LEER : “Nombre deel trabajador” NOMT, “Salario básico día” SALD, “ Numero de días trabajados” NDTRAB, “Sección 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 leído) 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 básico día” SALD, “ Numero de días trabajados” NDTRAB, “Sección 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 81: Manual de logica de programacion

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 NOMT SEC NDTRAB SALBH 33333 Elías Pérez Calzado 30 50.000 44444 Pedro Duran Calzado 30 26.000 55555 Carmen Gómez Calzado 30 34.000 55667 Carlos Vélez Calzado 30 25.000 66666 Ana Gallego Vestuario 30 20.000 66554 Luisa Jiménez Vestuario 30 40.000 77777 Ester Ramírez Vestuario 30 28.000 88888 Carlos Medina Vestuario 30 35.000 22233 Amanda García Vestuario 30 45.000 22245 Carlos Córdoba Tocador 30 23.000 21156 Juan Ruiz Tocador 30 20.000 22345 Evelio Duran Tocador 30 27.000 0000000 nnnnnn 0 000000 SALBM RETIMP RETSS AUXTRASP SALNTP TIMPTS TAPORSS TSALPS 1.500.000 105.000 45.000 0 1.350.000 0 0 0

780.000 0 15.600 60.000 824.400 105.000 45.000 1.500.000 1.020.000 0 20.400 60.000 1.059.600 60.600 2.280.000

750.000 0 15.000 60.000 795.000 81.000 3.300.000 600.000 0 12.000 60.000 648.000 96.000 4.050.000

1.440.000 100.800 43.200 0 1.296.000 0 0 0

840.000 0 16.800 60.000 883.200 100.800 12.000 600.000 1.050.000 0 21.000 60.000 1.089.000 195.300 55.200 2.040.000

1.350.000 94.500 40.500 0 1.215.000 72.000 3.390.000

690.000 0 13.800 60.000 736.200 112.500 4.440.000 600.000 0 12.000 60.000 648.000 0 0 0 810.000 0 16.200 60.000 853.800 13.800 690.000

25.800 1.290.000 42.000 2.100.000

SECACT Calzado Vestuario Tocador

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 82: Manual de logica de programacion

LOGICA DE PROGRAMACION 82

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

5.21 ACTIVIDADES TRABAJO INDEPENDIENTE

Identifique y diferencie los conceptos de: Contador, acumulador, suiche, registro centinela, registro identificador y variable de rompimiento.

Fórmese una opinión 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 números e informe el valor promedio de ellos. 2. Escriba un algoritmo que lea N registros conteniendo cada uno un número (NRO) y una

potencia (POT), calcular la sumatoria de NRO**POT. Debes asumir que no esta implementado el operador exponenciación.

3. Escriba un algoritmo que lea N números e imprima:

Los valores : menor y mayor y el número de veces que fueron hallados. El porcentaje de números impares. Un mensaje que indique la existencia de un múltiplo de 7.

4. Escriba un algoritmo que imprima los tres primeros números perfectos : Nota: Un número 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 número perfecto es 6, ya que los divisores de 6 son 1,2,3 y 1+2+3=6. 5. Calcule la suma de los números 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 83: Manual de logica de programacion

LOGICA DE PROGRAMACION 83

cero y el contador K representará los números sucesivos del 1 al 1.000. 6. Cálculo de la media de 50 números a leer, e imprima el resultado. 7. Contar el número 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 sólo se incrementa cuando se encuentra las letras “i” buscadas.

8. Se desea calcular independientemente la suma de los números pares e impares

comprendidos entre 1 y 200. 9. Lea una serie de números distintos de cero (el último número de la serie es el cero 0) y

obtener el número mayor. Como resultado se debe visualizar el número mayor y un mensaje indicando la presencia de un número negativo, en caso de que se haya leído un número negativo.

10. Calcular la suma de los cuadrados de los 100 primeros números naturales. 11. Sumar los números pares del 2 al 100 e imprimir su valor. 12. Calcular los múltiplos de los números comprendidos entre 4 y N, donde N es un valor

introducido por teclado. 13. Dados 10 números enteros, mostrar la suma de los números pares de la lista, cuántos

números pares existen y cuál es la media aritmética de los números impares. 14. Se tiene un archivo con 200 registros de empleados de una compañía, cada registro contiene

los siguientes datos: Número del empleado Nombre del empleado Salario básico por hora Horas trabajadas en el mes Deducciones

Se requiere leer los registros e imprimir un listado con la siguiente información por empleado: Número del empleado Nombre del empleado Salario básico hora Horas trabajadas Deducciones Salario mensual**

También 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 básico hora)x(número de horas trabajadas)-deducciones.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 84: Manual de logica de programacion

LOGICA DE PROGRAMACION 84

15. Calcular la cantidad a pagar de matrícula por cada estudiante de la siguiente forma:

El total a pagar es igual a los cargos fijos más 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 código del estudiante Patrimonio Renta Se debe obtener por estudiante

Código Renta Patrimonio Cargo fijo Cargo variable Total matrícula El fin de los datos es un código de estudiante en cero.

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

Calificación mas alta en matemática Calificación 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 calificación de la materia de matemática. A los que ganaron la materia se les imprimen todos los campos.

17. Se lee un conjunto de 1000 números. Un número por registro. Elabore un algoritmo que

imprima la suma de estos números y además 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 definición son el 0 y el 1, los demás se obtienen sumando los dos números 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 números e imprimir lo siguiente :

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 85: Manual de logica de programacion

LOGICA DE PROGRAMACION 85

El total de números positivos El total de números negativos El mayor de los números.

Calcule el factorial de n números leídos 21. En una elección realizada en Piedra Dura, se presentaron tres candidatos: Juan, Pedro y

Pablo. Por cada votante se elaboró un registro así: CED VOTO CED : Numero de identificación 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 votación, indicando cuantos votantes hubo en total y cuantos votos alcanzó cada candidato y quien gano las elecciones. El fin de datos lo indica una cédula en cero 0.

22. Una librería estima los precios de sus libros de la siguiente forma: El precio básico de un libro es de $5.000.oo mas $150 por pagina. Sin embargo si el número 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 código de un libro y el número de paginas. Se requiere calcular e imprimir el código y el precio de cada uno de los libros. Fin de datos es un código de libro igual a cero 0.

23. La información de los estudiantes de una universidad, se encuentra en un archivo, en el cual cada registro está formado por los siguientes campos:

Código Nombre Nombre de la materia Calificación definitiva en dicha materia

El archivo está clasificado en forma ascendente por el código del estudiante. Un estudiante pudo haber cursado varias materias. El algoritmo debe imprimir a cada estudiante lo siguiente:

Código y su nombre Cada materia con la respectiva calificación. Por todo el estudiantado imprime la calificación 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: Cédula del cliente Nombre del cliente Código del articulo Unidades compradas Valor unitario

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 86: Manual de logica de programacion

LOGICA DE PROGRAMACION 86

El archivo está clasificado en forma ascendente por la cédula del cliente. Por cada compra del cliente imprima lo siguiente:

Cédula Código del artículo 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 cédula y nombre del cliente que más compró. 25. En un archivo de vendedores se tiene la siguiente información:

Código del vendedor Código del artículo vendido Ventas del mes por ese artículo El archivo está clasificado en forma ascendente por el código del vendedor

Se debe elaborar un algoritmo que permita hacer lo siguiente:

Imprima el código y el nombre del vendedor. Imprima cada uno de los códigos de los artículos y el respectivo valor de sus ventas. El valor total vendido por cada vendedor La comisión de cada vendedor, la cual se liquida así:

Para ventas superiores a 1 millón el 4% De 400.000 a 1 millón el 2% Ventas inferiores a 400.000 el 1%

Además se imprimen el total vendido en la compañía y la comisión 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:

Cédula del cliente Número de la factura Valor total de la factura

El archivo está clasificado en forma ascendente por la cédula del cliente. En el informe se debe imprimir lo siguiente:

Cédula 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 87: Manual de logica de programacion

LOGICA DE PROGRAMACION 87

27. Al liquidar la nómina de una empresa, se debe leer un archivo que contiene por cada empleado lo siguiente:

Código Concepto de devengado Valor devengado por dicho concepto

El archivo está clasificado en forma ascendente por el código del empleado. Se imprime un informe que contenga lo siguiente:

El código 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 más ganó El valor total devengado en la empresa

28. Se tiene el nombre, código del producto, el nombre de la sección, el total de las ventas del

vendedor. El archivo esta organizado por secciones el fin de archivo es una sección 0000. Calcule la comisión del vendedor teniendo en cuenta que si el producto es de: Código 1 esta es del 5%, Código 2 esta es del 8%, Código 3 esta es del 7%, código 4 es del 6.5% Imprima el nombre código del producto y la comisión neta de cada vendedor teniendo en cuenta que sobre su comisión le retienen el 2.5% para impuestos y el total comisiones pagadas por cada sección, 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 código del estudiante, el número 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 código del estudiante. El fin de archivo lo controla un código 000000.

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

nombre, horas trabajadas y valor hora, código de cada departamento, y el código del trabajador. Calcule el salario teniendo en cuenta: la retención del 8% si salario básico es > $1.280.000, de lo contrario retención 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 código 000000. 31. Realice un algoritmo que genere un reloj digital que muestre la fecha y la hora. Debe

controlar cuando sea año bisiesto. 32. Una empresa tiene varios vendedores, en diferentes zonas se pide realizar un programa

que permita: Imprimir el nombre código del vendedor y la comisión del vendedor; el nombre y el código del vendedor que tenga la venta más 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 información que se lee por cada vendedor es: Nombre, código del vendedor; número de la zona, total de comisión del vendedor y total de las ventas del vendedor. El archivo esta organizado por zonas y el fin de archivo lo indica un código de vendedor 000000.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 88: Manual de logica de programacion

LOGICA DE PROGRAMACION 88

UNIDAD 6 ARREGLOS OBJETIVO: Recurrir al manejo de estructuras como vectores y matrices en la solución 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 específicos :

Ordenar, eliminar, modificar o buscar los datos en arreglos de una dimensión 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 métodos.

CONTENIDO TEMÁTICO Definición Arreglos: Unidimensionales Bidimensionales Multidimensionales

Competencias académicas a desarrollar

Ordenar, eliminar, modificar o buscar los datos en arreglos de una dimensión 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 métodos.

Indicadores de logro: Conceptual: Conoce e identifica los arreglos con una o más 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 básicos de la algoritmia en el tratamiento y solución de los problemas planteados, e identifica fácilmente los errores. Actitudinal: Reconoce las diferentes estructuras de datos y se interesa por su manejo en la solución de los problemas.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 89: Manual de logica de programacion

LOGICA DE PROGRAMACION 89

6. ARREGLOS

6.1 DEFINICION GENERAL ARREGLO Conjunto de cantidades o valores homogéneas, que por su naturaleza se comportan de idéntica 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. Hay dos tipos de arreglos unidimensionales y bidimensionales (Vectores y matrices)

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 realizar una operación con ellos o consultar de una forma rápida.

Para referirse a un determinado elemento se coloca el nombre del vector y dentro de un paréntesis un subíndice 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 gráficamente 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 7 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 90: Manual de logica de programacion

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 dimensión o tamaño; es decir se divide en una cantidad física de posiciones.

Tiene un índice que indica el número de cada posición del vector. Este debe ser un

número entero. Tiene tipo numérico o alfanumérico según sean los datos que almacene.

Los datos del vector deben ser homogéneos, es decir del mismo tipo.

Cuando se refiere a un elemento del vector: siempre se debe escribir el nombre del

vector y dentro de paréntesis la posición.

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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 91: Manual de logica de programacion

LOGICA DE PROGRAMACION 91

Operaciones sobre los elementos del arreglo son: asignación, lectura/ escritura.

Operaciones sobre el arreglo completo son: Recorrido, búsqueda, inserción / eliminación, ordenación.

6.4.1 Asignación 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) 5 indicamos que en la posición 1 del vector número se le asignó el valor 5

Vec-nomb (25) Ana , indicamos que en la posición 25 del vector nombres se le asignó el nombre Ana

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 Búsqueda En Un Vector: Cuando se necesita hallar uno o varios elementos que cumplan una determinada característica dentro de un vector se emplean dos tipos de búsqueda: secuencial o lineal y binaria.

6.4.3.1 Búsqueda lineal o secuencial Método de localización basado en comparaciones a lo largo de todo el vector. Se emplea generalmente cuando se trabaja con vectores desorganizados. Se da búsqueda con barrido completo y la con barrido interrumpido

6.4.3.2 Búsqueda binaria. En este caso podemos hallar la posición de un elemento dentro de un vector ordenado. 6.4.3.3 Búsqueda con barrido completo: Se realiza desde el primer elemento hasta al último; se utiliza cuando pueden haber varios elementos que contengan la misma característica.

Ejemplo 37: Llenar un vector de 10 posiciones con valores numéricos e imprimir cuántas veces se repite el elemento 75 en dicho vector. Realice el ejercicio en subprogramas . ANALISIS VEC_NUM = vector números J = contador subíndice del vector CONT = contador de elementos iguales a 75

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 92: Manual de logica de programacion

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 89 75 13 27 75 89

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

6.4.3.4. Búsqueda 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 numéricos diferentes, un valor leído e imprimir la posición en que se encuentra.

IDENTIFICADORES VECNUM = vector números SW = suiche K = contador subíndice del vector VALOR = Contiene el valor a buscar POS= posición en la que se encuentra el valor leído

IN-PROC BUSCAR VALOR (ENT VECNUM, K) K = 1 SW = NO

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 93: Manual de logica de programacion

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 POSICIÓN “ POS FIN SI RETORNE

FIN PROC.

6.4.3.5 Búsqueda binaria. En este caso podemos hallar la posición de un elemento dentro de un vector ordenado. El Método es el siguiente:

Se halla el elemento central del vector

Si coincide con elemento a buscar termine.

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 est en la segunda

mitad del vector.

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 búsqueda. Ejemplo 39 : Realizar un algoritmo que permita buscar un elemento k en un vector de N elementos, utilizar el método de Búsqueda 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 94: Manual de logica de programacion

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 Actualización De Un Vector. Esto puede ser : Añadir, Insertar, o eliminar un elemento a un vector.

Añadir . Para añadir 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 posición relativa.

Eliminar. Para borrar un elemento del vector, si éste está en la última posición 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 = número de elementos que hay en el vector Y = valor a insertar VEC = arreglo POS = posición 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 95: Manual de logica de programacion

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 N 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: En un arreglo de N posiciones ordenado borrar un elemento X.

IDENTIFICADORES N = Tamaño del vector X = valor a borrar VEC = arreglo POS = posición en que se encuentra el elemento a borrar

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 96: Manual de logica de programacion

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 En un arreglo de N posiciones sin ordenar borrar un elemento X. IDENTIFICADORES

N = Tamaño del vector X = valor a borrar VEC = arreglo POS = posición en que se encuentra el elemento a borrar K y J = contadores (subíndices) 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 97: Manual de logica de programacion

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 = Tamaño del vector Z = valor a modificar VEC = arreglo K = subíndice del vector POS = posición 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 98: Manual de logica de programacion

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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 99: Manual de logica de programacion

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 GENERAL PARA UN EJERCICIO CON VECTOR EN SUBPROGRAMAS

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 PROC-

IN- 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 ) Cálculos necesarios para solucionar el problema FIN PARA CALCULOS GENERALES Los cálculos pueden ser una(s) función(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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 100: Manual de logica de programacion

LOGICA DE PROGRAMACION 100

6.6 METODOS DE ORDENAMIENTO

La Ordenación (clasificación) es la operación de organizar un conjunto de datos en algún orden dado, tal como creciente o decreciente en datos numéricos, o bien en orden alfabético. Operaciones típicas de ordenación son: lista de números, archivo de clientes de banco, nombres de una agenda telefónica, etc.

La búsqueda de información, es al igual que la ordenación otra operación muy frecuente en el tratamiento de información. La búsqueda es una actividad que se realiza diariamente en cualquier aspecto de la vida.

Métodos de ordenación. Se dividen en dos categorías:

Ordenación INTERNA de vectores, tablas. Ordenación EXTERNA de archivos.

La ordenación de vectores o arreglos se denomina también ordenación interna, ya que se almacena en la memoria interna de la computadora de gran velocidad y acceso aleatorio.

La ordenación de archivos se suele hacer con casi siempre sobre soportes de almacenamiento externo, discos, cinta, etc. y por ello se denomina también ordenación externa. Estos dispositivos son más lentos en las operaciones de entrada/salida, pero, por el contrario, pueden contener mayor cantidad de información.

Ordenación interna: Clasificación de los valores almacenados en un vector, según el orden creciente o decreciente y esto se realiza en memoria central y rápida (RAM).

Ordenación externa: Es la clasificación de los registros de un archivo situado en un soporte externo (cinta, disco duro, diskette, cd-rom, etc.); aunque es menos rápido.

Los más conocidos son:

Ordenación por Intercambio o de burbuja (Método # 1, Método # 2 y Método # 3). Ordenación por Inserción directa. Ordenación por Inserción Binaria. Ordenación por Selección Directa. Ordenación por el método de Shell Ordenación por el método Quicksort(rápido)

La organización 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 método 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 101: Manual de logica de programacion

LOGICA DE PROGRAMACION 101

Ejemplo 46: Realizar un procedimiento para ordenar un vector de N elementos con el método 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 2 3 4 5 6 4 3 5 9 6 2 3 4 5 9 6 2 2 4 5 9 6 3 2 3 5 9 6 4 2 3 4 9 6 5 2 3 4 6 9 5 2 3 4 5 9 6 2 3 4 5 6 9

K J J J J J AUX 1 2 3 4 5 6 4 2 3 4 5 6 3 3 4 5 6 4 4 5 6 5 5 6 9 6

9

6.6.2 Ordenamiento Por Intercambio Directo O De Burbuja. (Método Nro. 2.)

Se puede realizar una mejora en la velocidad de ejecución del algoritmo. Obsérvese 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. Después de cada paso se puede decrementar en uno el límite superior del bucle/ciclo PARA, el algoritmo sería:

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

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 102: Manual de logica de programacion

LOGICA DE PROGRAMACION 102

El algoritmo ordena los elementos del arreglo. Transporta en cada pasada el elemento más 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. (Método Nro. 3. Utilizando una Bandera o Señal) -.Mediante una bandera o centinela, o bien, una variable lógica, se puede detectar la presencia o ausencia de una condición. En este caso mediante la variable SW se representa la clasificación terminada con un valor verdadero y clasificación no terminada por un valor falso.

Ejemplo 48: Realizar un procedimiento para ordenar un vector de N elementos con el método de ordenamiento Burbuja 3 El algoritmo ordena los elementos del arreglo utilizando el método de la burbuja con señal 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 103: Manual de logica de programacion

LOGICA DE PROGRAMACION 103

6.6.4 Ordenamiento Por Inserción directa En este método una vez que se determina la posición correcta del elemento, se interrumpen las comparaciones.

Ejemplo 49: Realizar un procedimiento para ordenar un vector de N elementos con el método de ordenamiento Inserción 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 Selección Directa . El método de ordenación por selección directa es más eficiente que los métodos analizados anteriormente, pero sólo para vectores pequeños. La idea básica de este algoritmo consiste en buscar el menor elemento del arreglo y colocarlo en la primera posición. Luego se busca el segundo elemento más pequeño del arreglo y se lo coloca en la segunda posición. El método 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 sólo

quede el elemento mayor.

Ejemplo 50: Realizar un procedimiento para ordenar un vector de N elementos con el método de ordenamiento Selección 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 104: Manual de logica de programacion

LOGICA DE PROGRAMACION 104

FIN-PROC.

6.6.6 Ordenamiento Por Inserción Binaria: El método de ordenación por inserción directa puede mejorarse fácilmente. Para ello se recurre a una búsqueda binaria en lugar de una búsqueda secuencial para insertar un elemento en la parte izquierda del arreglo, que ya se encuentra ordenado. El proceso, al igual que en método de inserción 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 método de ordenamiento Inserción 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 carácter IN PROC INSERCIÓN 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 método de ordenación por inserción binaria se advierte la presencia de un caso antinatural. El método efectúa el menor número de comparaciones cuando el arreglo está totalmente desordenado y el máximo cuando está ordenado.

6.6.7 Ordenamiento Por El Método De Shell. Es una mejora del método de inserción directa que se utiliza cuando el número de elementos a ordenar es grande. El método se denomina “Shell” -en honor a su inventor Donal Shell- y también método de inserción sin incrementos decrecientes. Shell modificó los saltos contiguos resultantes de las comparaciones por saltos de mayor tamaño y con eso se conseguía la clasificación más rápida. El método se basa en fijar el tamaño de los saltos constantes, pero de más de una posición.

Supongamos un vector A de seis (6) elementos.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 105: Manual de logica de programacion

LOGICA DE PROGRAMACION 105

4 12 16 24 36 3

En el método de inserción, los saltos se hacen de una posición y se necesitarán 5 comparaciones.

En el método de Shell, si los saltos son de dos posiciones, se realiza tres comparaciones. El método se basa en tomar como salto N/2 (siendo N el número de elementos) y luego se va

reduciendo a la mitad en cada repetición 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 código del procedimiento de ordenamiento por el método Shell es el siguiente:

Ejemplo 52: Realizar un procedimiento para ordenar un vector de N elementos con el método de ordenamiento Shell.

El algoritmo ordena los elementos del arreglo utilizando el método 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 lógica y entender como funciona el algoritmo.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 106: Manual de logica de programacion

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 paréntesis 2 subíndices separados por comas, donde el primero se refiere a la fila y el segundo se refiere a la columna.

MATRIZ (FILA, COLUMNA)

20 30 40 80 58 35 78 97 17 59 49 69 33 56 87 126

MA(1,1)=20 MA(1,2)=30 MA(1,3)=40 MA(1,4)=80 MA(2,1)=58 MA(2,2)=35 MA(2,3)=78 MA(2,4)=97 MA(3,1)=17 MA(3,2)=59 MA(3,3)=49 MA(3,4)=69 MA(4,1)=33 MA(4,2)=56 MA(4,3)=87 MA(4,4)=126 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 acompañado de dos índices. Mat [R,C] Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato. Representación gráfica de una matriz Mat [R,C]

Fila o Renglón

[R]

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

Columna [C]

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 107: Manual de logica de programacion

LOGICA DE PROGRAMACION 107

6.7.1 Tipos de matrices :

Matriz cuadrada: cuando el número de filas es igual al de columnas. Los elementos ubicados en la diagonal principal, cumplen que son iguales el número 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 108: Manual de logica de programacion

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) Cálculos necesarios para solucionar el problema FIN PARA CALCULOS DE GRUPO Los cálculos pueden ser una(s) función(es) o un(os) Procedimiento(s) MOSTRAR RESULTADOS DE GRUPO FIN PARA CALCULOS GENERALES Los cálculos pueden ser una(s) función(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 sólo 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 109: Manual de logica de programacion

LOGICA DE PROGRAMACION 109

1 5 7 9 6 8 9 4 7 2 3 5 8 5 2 4

F C C C C C SUMA 1 1 1 1 1 1 0 2 2 2 2 2 2 1 3 3 3 3 3 3 9 4 4 4 4 4 4 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 = tamaño de la matriz F, C = Subíndices de la matriz POS = Posición 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: - Cuántas fichas rojas hay en el tablero. - Cuántas fichas negras hay en el tablero. - Cuántas fichas hay en total en el tablero.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 110: Manual de logica de programacion

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 = subíndices 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 más interno el de las columnas]

FIN PARA [ ciclo más 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 número de filas de A debe ser igual al número de columnas de B. IDENTIFICADORES MATA = matriz A MATB = matriz B MATC = matriz donde se almacena el resultado de la multiplicación de las matrices, M*N = tamaño de la matriz A X*Y= tamaño de la matriz B M*Y = tamaño 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 111: Manual de logica de programacion

LOGICA DE PROGRAMACION 111

MOSTRAR: “ No es valida la multiplicación” 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 términos, ¿qué es un arreglo? arreglo Unidimensional. Arreglo bidimensional Identifique conceptos tales como: subíndice, dimensión, vector, matriz, arreglos paralelos. diagonal, Fórmese una opinión 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 numéricos en un vector e imprima los datos positivos y

cuántos son. 2. Elabore un algoritmo que lea 10 números enteros en un vector e imprima los números impares

y la cantidad de números pares.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 112: Manual de logica de programacion

LOGICA DE PROGRAMACION 112

3. Desarrolle un algoritmo que almacene una palabra de N letras en un vector e imprima el número de veces en que se encuentre la letra ‘A’ (sea mayúscula o minúscula).

4. Dados 9 números enteros (leídos por teclado), calcular la suma de los números divisibles por

tres, mostrar cuántos son y cuál es la media aritmética de estos números. 5. Elabore un algoritmo que guarde 10 números enteros e informe cuál fue el menor número leído

entre todos (supóngase que todos los números 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) El promedio general del grupo. b) Número de alumnos que estén por encima del promedio. c) Número de alumnos aprobados y número de alumnos reprobados. d) Porcentaje de alumnos aprobados y porcentaje de alumnos reprobados.

7. Palabras palíndromas son aquellas que pueden leerse tanto al derecho como al revés, ejemplo: “ANILINA”. Desarrolle un algoritmo que lea una palabra de máximo 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 número 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 después del intercambio: 1 2 3 4 5 6 1 2 3 4 5 6

3 5 7 9 11 13 5 3 9 7 13 11

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 después del intercambio:

1 2 3 4 5 6 7 1 2 3 4 5 6 7

3 5 7 9 11 13 15 15 13 11 9 7 5 3

Mostrar el vector final. 10. Se tiene un vector de 100 posiciones con valores numéricos diferentes buscar un valor

leído e imprimir la posición en que se encuentra.

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 método de Búsqueda binaria, 13. En un arreglo de N posiciones sin ordenar modificar un elemento Z.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 113: Manual de logica de programacion

LOGICA DE PROGRAMACION 113

14. Hacer un diagrama que lea dos vectores de N y M posiciones. Crear un vector con la unión

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 inviértalo. Utilice otro Vector. . Vector A

13 25 18 36 5 7

Vector R 7 5 36 18 25 13

18. Lea un vector de 15 posiciones e inviértalo sin utilizar otro Vector. 19. Dado un arreglo de N elementos enteros, ordénelo en forma descendente aplicando : Inserción directa Inserción binaria Selección directa 20. Se tienen 3 arreglos paralelos A, B, y C. El primero de ellos almacena las matrículas de N

alumnos; el segundo, las calificaciones de los N alumnos obtenidas en un examen final; y el tercero, el número 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 método de inserción binaria para ordenar simultáneamente los arreglos, de tal manera

que queden ordenados ascendentemente por matrícula. 21. Realice un algoritmo en subprogramas que permita:

-Llenar un vector con 70 elementos; - Hallar cuántos elementos son múltiplos de 5 hay en el vector - Hallar el promedio de los elementos almacenados en las posiciones impares;

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 114: Manual de logica de programacion

LOGICA DE PROGRAMACION 114

- Buscar cuántos elementos del vector son mayores que ese promedio; - leer un valor Y , buscar en que posición del vector se encuentra -Imprimir los elementos almacenados en las posiciones pares desde la posición 55 a la 1

22. Realice un algoritmo en subprogramas que permita:

- Llenar un vector con 50 elementos numéricos diferentes; - Hallar cuántos elementos pares y cuántos impares hay - Hallar el promedio de los valores almacenados en las posiciones pares del vector; - Buscar cuántos elementos del vector son menores que el promedio; -Imprimir los elementos almacenados en las posiciones impares desde la posición 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 numéricos; - Sumar los elementos pares e imprimir la suma; - Hallar cuántos elementos son múltiplos de 5; - Buscar un elemento de valor 18 decir en cual posición 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 cambiándolo por 47(prueba de escritorio);

- imprima el vector de manera inversa solo las posiciones pares; - Calcule el valor promedio e imprímalo.

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 múltiplos 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 organizar el vector en orden descendente ; imprima la diagonal secundaria.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 115: Manual de logica de programacion

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 numéricos; 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 diferentes, e imprima la diagonal

secundaria.

9. Llene un vector de 60 posiciones, Sume los elementos almacenados en las posiciones pares; imprima la suma y los números 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 número leído; 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 posición

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 señalada 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 numérico 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 número de la fila donde se encuentra el

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 116: Manual de logica de programacion

LOGICA DE PROGRAMACION 116

elemento en la primera matriz, en la segunda columna, el número 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 número 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 señalada 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 señalada 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

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 117: Manual de logica de programacion

LOGICA DE PROGRAMACION 117

UNIDAD 7 CONCEPTOS BÁSICOS DE PROGRAMACIÓN ORIENTADA A OBJETOS Objetivo: Distinguir los elementos conceptuales básicos de la programación orientada a objetos y asociarlos de forma significativa. Objetivos específicos:

Define la Programación Orientada a Objetos.

Explica los conceptos de: Clase, Subclase, Superclase. Objeto.

Distingue los atributos

Explica la diferencia entre un Método. y un Mensaje.

CONTENIDO TEMÁTICO Introducción a la Programación Orientada a Objetos. Definiciones Teóricas Básicas Clase, Subclase, Superclase, Objeto Instancia., Método. Mensaje. Herencia. Polimorfismo. Abstracción de Datos. Encapsulamiento. LOGROS: Conceptual: Conocerá los conceptos básicos para el desarrollo de un algoritmo con la orientación a objetos. Procedimental: Diseña algoritmos diferenciando los atributos y los métodos. Actitudinal: Reconoce los diferentes paradigmas de programación

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 118: Manual de logica de programacion

LOGICA DE PROGRAMACION 118

7. CONCEPTOS BÁSICOS DE PROGRAMACIÓN ORIENTADA A OBJETOS

7.1 GENERALIDADES

La POO es un paradigma de la programación de computadores; esto hace referencia al conjunto de teorías, estándares, modelos y métodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programación la solución 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 características 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 programación 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 podríamos decir que un objeto es todo aquello que tenga características y acciones propias que lo identifiquen y que a su vez esta funcionalidad pueda verse reflejada en distintas situaciones e implementaciones.

La programación orientada a objetos se respalda en la abstracción, herencia y polimorfismo. Abstracción es la capacidad de tomar en consideración las características más resaltantes de un objeto (cuando se es niño se es más abstracto que adulto.

Esta cualidad se va perdiendo a medida que vamos creciendo), es decir, si un niño ve una cesta con naranjas y otra con manzanas dirá que “son redondas, tienen color, tamaño y sabor”, porque el niño es “abstracto” y no está entrando en detalles de la “fruta” sino en lo relevante y común. Esto es pues bien, pero si la clase no la pudiese implementar en otra situación o estado no sería de mucha utilidad, es ahí en donde entra en escena la herencia. La herencia es la capacidad de adquirir y conservar características “comunes” de una generación 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 características 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, método u objeto de ejecutarse distintamente dependiendo de la situación. 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, transmisión (Propiedades). Además que podrá encender, cambiar de velocidad, acelerar, frenar (Métodos). 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 además agregar características extras que satisfagan sus necesidades.

Los objetos están en nuestro alrededor, comprender como funcionan e interactúan unos con otros nos permitirá ser más abstractos a la hora de diseñar y desarrollar nuestras clases.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 119: Manual de logica de programacion

LOGICA DE PROGRAMACION 119

EL POO es una técnica para desarrollar soluciones computacionales utilizando componentes de software (objetos de software).

Objeto: Componente o código de software, el cual contiene en sí mismo tanto sus características (campos) como sus comportamientos (métodos), el cual se accede a través de su interfaz o signatura.

Campos: Es una característica 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.

Método: Es la implementación de un algoritmo que representa una operación o función que un objeto realiza. El conjunto de los métodos de un objeto determinan el comportamiento del objeto.

Clase : Es la abstracción de un grupo de objetos que comparten las mismas características y el mismo comportamiento

Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación 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 también es abstracto, en tal sentido, dicho comportamiento lo debe implementar una clase derivada (sea clase común o clase final). Clase común. Es una clase que tiene clases ascendientes y descendientes. A partir de una clase común 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 sólo se pueden instanciar objetos. Constructor. método u operación 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 específico de una clase, es decir, un objeto en particular. Un objeto se instancia cuando se ejecuta su constructor o cuando se le envía un mensaje que cambie su estado -con un método asignarX(dato).

Evento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.

Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros 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 ejecución de algún método.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 120: Manual de logica de programacion

LOGICA DE PROGRAMACION 120

Estado interno: es una propiedad invisible de los objetos, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).

En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método 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 más componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un módulo, no hay necesidad de hacer cambios en otras partes del todo. Un ejemplo clásico es conjunto de módulos que, al integrarlos conforman un armario, el cual puede agregarle más funcionalidad si se le agregan más módulos, o al contrario. También se puede cambiar su finalidad si se acomodan esos módulos para darle otro objetivo: volverlo una mesa.

Esto ayuda a la descomposición de problemas en subproblemas, es decir, a la solución de problemas por composición de soluciones a subproblemas.

7.3 REUTILIZACIÓN

Capacidad de usar un mismo código 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 función. Por ejemplo, una función que sume dos operandos, la cual maneja, o dos números o dos cadenas, para retornar un total de una suma o de una concatenación. También se denomina subsumption (más delante de detalla este concepto).

Genericidad: Usar algoritmos genéricos 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 función 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 módulo deben estar dentro de él, como parte de su cuerpo..

7.4 VISION POO

La visión POO se basa en la siguiente analogía:

1 Programación orientada a objetos

De Wikipedia, la enciclopedia libre

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 121: Manual de logica de programacion

LOGICA DE PROGRAMACION 121

1) Construcción de un modelo mecánico de un sistema físico a partir de objetos concretos.

2) Construcción de un modelo algorítmico de un sistema físico a partir de objetos de software

Los objetos aquí serían, en un modelo de una pista de carreras: los autos, las carreteras, las llegadas, las graderías, espectadores, etc.

En un modelo de un sistema planetario, tenemos los objetos concretos: los planetas, los orbitas, el sol, energía, etc

Los objetos aquí serían, rutinas de conexion a DB, shorts, validación de acceso, despliegue, impresiones, etc.

Este concepto de POO se puede ver como una intuitiva correspondencia entre un software de simulación de un sistema físico y el sistema físico en sí (o su modelo mecánico).

Modelo algorítmico: Análisis, diseño e implementación de un software usando objetos de “software”.

Objetos de Software: Componentes que integran o conforman el modelo; pueden ser unidades de código para resolver situaciones específicas, shorts, uso de DB, prints, funciones, vectores, etc.

Modelo Mecánico: Análisis, diseño e implementación de prototipo a escala de un sistema físico usando objetos concretos.

Objetos Concretos: Partes físicas del modelo mecánico, 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 abstracción de dicho sistema considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo y a un apropiado nivel de detalle.

Diagrama: Representación gráfica de un modelo.

Abstracción: Capacidad del ser humano para entender una situación excluyendo detalles y solo viéndola a alto nivel. El hombre ha comprendido el mundo con la abstracción. Esta propiedad permite distinguir a un objeto de los demás, observando sus características y comportamientos, pensando en qué es y no cómo se codificaría en un lenguaje.

Con la abstracción se destaca lo importante y se ignora lo irrelevante, o sea, hay ocultamiento de información. Hay abstracción 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 días de los meses, acepta solo operaciones válidas 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 implementación: otro lo implementa y yo lo uso.

La reutilización es la principal característica del la POO, la cual se logra con:

Encapsulación de Información: Ocultamiento de información, datos o funciones especiales a los usuarios. En el caso de la programación, hace el encapsulamiento es lo que permite que tanto la estructura (campos) como el comportamiento (métodos) se encuentren dentro del mismo cuerpo de

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 122: Manual de logica de programacion

LOGICA DE PROGRAMACION 122

código de la clase con la que se crean los objetos. Dentro de la clase se deben agrupar tanto la información o datos de los campos como las operaciones o métodos o funciones que operan sobre esta información.

Herencia: Propiedad que permite a los objetos se construidos a partir de otros objetos; es recibir de una modulo superior, las características de él, como atributos o funciones (campos y métodos o comportamientos), para usarlos en el módulo actual. Heredar es compartir atributos.

Métodos unidos a los objetos: los métodos de un objeto son inseparables y siempre harán parte de su cuerpo como un todo.

Ejemplo 57: La famosa ecuación de Einstein para conversión de una masa m en energía viene dada por la fórmula 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 energía producida cuando la masa se convierte en energía. 2

Observación: si la masa se da en gramos, la fórmula produce la energía en ergios. Análisis: Clases: Energía Objetos: una instancia de la clase Energía (en este caso se reemplaza el identificador Proyecto por Energía) Entrada: la masa (en gramos). Salida: la energía (en ergios). Proceso: después de capturar la entrada, se aplica la ecuación de Einstein. Solución: Diseño de la clase en UML: Energía

- masa: real + asignarMasa (real) + obtenerMasa ( ): real + Energía ( ) + calcularEnergía ( ): real + principal ( )

Seudo código: 2 FUNDAMENTOS DE PROGRAMACION ORIENTADA A OBJETOS COMPENDIO DE EJERCICIOS MODELO GRUPO GIISTA Tecnológico de Antioquia Institución Universitaria

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 123: Manual de logica de programacion

LOGICA DE PROGRAMACION 123

clase Energía privado: real masa público: asignarMasa(real m) masa = m fin_método //------------------------------- real obtenerMasa ( ) retornar masa fin_método //------------------------------- Energía ( ) fin_método //------------------------------- real calcularEnergía ( ) real e const real c = 2.997925 * Mat.elevar (10, 10) e = masa * Mat.elevar (c, 2) retornar e fin_método //------------------------------------------------- principal ( ) Energía e = nuevo Energía ( ) real ms = Leer.datoReal( ) e.asignarMasa(ms) Imprimir.mensaje (e.calcularEnergía ( )) fin_método fin_clase 7.5 ACTIVIDADES DE TRABAJO INDEPENDIENTE Consulte acerca de los siguientes términos, interiorice su significado: Clase, Objeto, Herencia, Poliformismo. Abstracción, Método, Mensaje, Instancia, Atributos

Relacione los conceptos: Superclase, subclase, Encapsulamiento.

Fórmese una opinión 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 Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 124: Manual de logica de programacion

LOGICA DE PROGRAMACION 124

8. PRODUCTO FINAL 8.1 EL PORTAFOLIO

El portafolio es una colección estructurada de evidencias de diferentes fuentes y referenciadas a las Unidades de Competencia y Titulaciones. El portafolio es una técnica que permite a la persona recopilar los trabajos elaborados en un determinado periodo, y abre un espacio para aprender a evaluar su desempeño en términos de acierto o de errores. Esta recopilación 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 tamaño, dependiendo del tipo de evidencia que se requiera presentar en la evaluación. 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 cómo 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 cómo organizar el portafolio. Contendrá

Introducción Conclusiones Plan de Trabajo semanal Contenido de la asignatura Glosario Bibliografía Talleres resueltos Corrección de Quices y parciales, con su autoevaluación ( en computador ) Laboratorios con su autoevaluación ( en computador ) Documentos soporte.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 125: Manual de logica de programacion

LOGICA DE PROGRAMACION 125

GLOSARIO ACUMULADOR: Área de trabajo donde se almacena un valor que puede ser variable. El término acumulador viene de acumular (sumar cantidades). Por ejemplo: la caja registradora de un almacén 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 traducción al latín de la palabra árabe Alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números 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 solución de cualquier problema.

ALGORITMO CUALITATIVO: Es la descripción con palabras sencillas de las características 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 cálculos numéricos para definir los pasos del proceso y hallar respuestas numéricas.

ALGORITMO MATEMÁTICO: Conduce a la solución de una expresión matemática y su respuesta es única.

ALGORITMO LÓGICO: Es la solución a una situación lógica; 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 homogéneas, que por su naturaleza se comportan de idéntica 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. Los tipos de arreglos son: unidimensionales; bidimensionales y multidimensionales. ASIGNACION DE INFORMACIÓN: Acción de sustitución de la información contenida en una variable de memoria o un campo de un archivo . Se puede simbolizar por los signos = ó y su función es asignar el valor que está a la derecha del símbolo igual ó la flecha a la variable que esté a la izquierda de la misma. BIT: Digito binario o elemento mínimo de información BINARIO: Sistema operativo en base 2.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 126: Manual de logica de programacion

LOGICA DE PROGRAMACION 126

BYTE : Conjunto de bits que se tratan como unidad, generalmente se componen de 8 bits. CARÁCTER: Es la menor unidad de información.

CAMPO: Área de trabajo que puede almacenar uno o varios datos. Ejemplo: En el campo NOMBRE se almacena: "Carlos Alberto García". 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 condición 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 condición de salida; el contador para contar el número de iteraciones se incrementa o decrementa de modo automático. CICLO HACER MIENTRAS: Se utiliza para ejecutar repetitivamente un conjunto o bloque de instrucciones mientras se cumple una condición específica. Permite ejecutar repetitivamente el conjunto de instrucciones hasta que una variable, contador llegue a su valor límite. CICLO REPITA HASTA: Ejecuta repetitivamente un conjunto o bloque de instrucciones hasta que se cumpla una condición determinada que puede verificarse al principio o la final del ciclo. Se ejecuta mientras el valor de la condición es falso, justo lo contrario al ciclo MIENTRAS.

CLASE: Una clase se define como la descripción de los atributos (campos y métodos) 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 más no de lógica, puesto que esta depende únicamente del programador. Además traduce el lenguaje del usuario a lenguaje de máquina.

CONTADOR : Área de trabajo cuyo incremento o decremento es definido. El término contador está asociado con la acción de contar. Ejemplo: la registradora de un bus cuenta el número de pasajeros que suben a éste durante un determinado tiempo o recorrido.

CONSTANTES : Son todos aquellos valores que no cambian en el transcurso de un programa y son definidos antes de utilizarse. DATO: Conjunto de caracteres que hay en un campo. Ejemplo: "Carlos" es un dato, este hace parte del campo nombre. DATOS NUMÉRICOS: Los datos de tipo numérico son los relativos a las diferentes clases de números.

DATOS LÓGICOS: También denominados boléanos, es aquel dato que solo puede tomar uno de dos valores: cierto / falso o si / no 0 v / f o 0 / 1

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 127: Manual de logica de programacion

LOGICA DE PROGRAMACION 127

DATOS CARÁCTER: Es el conjunto finito y ordenado de caracteres que la computadora puede interpretar. Un dato tipo carácter contiene solo uno. DIAGRAMA DE FLUJO: es una técnica de representación de algoritmos más antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición del lenguaje estructurado. Son fáciles de diseñar porque el flujo lógico se muestra en un dibujo (símbolos o cajas estándares) en lugar de palabras y que cada paso del algoritmo escrito en estos dibujos estará unido por flechas denominadas líneas 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 también conocido como diagrama estructurado – es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas.

ENUNCIADOS DE ASIGNACIÓN: Se utilizan para indicar una acción o proceso (generalmente la asignación de un valor o un resultado de una operación a una variable).

ENUNCIADOS DE DECISIÓN O ALTERNATIVOS: En el desarrollo de un algoritmo la mayoría de las veces se ver abocado a tomar una decisión o realizar comparaciones o agrupación, para que éste sea general y flexible se deben tener en cuenta las alternativas que se puedan presentar en un momento dado.

Se utilizarán para hacer preguntas, comparaciones y tomar decisiones. Por medio de preguntas de exclusión, excepción, y comparación se puede tomar una decisión o conocer alguna situación.

EXPRESIONES: Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales; una expresión consta de operandos y operadores. Los paréntesis indican el orden de cálculo. Según el tipo de dato que manipulan se clasifican en: Aritméticas, Lógicas, Carácter.

FUNCIONES: Es un subprograma que proporciona un valor o resultado según sean sus parámetros de entrada. Las funciones pueden ser internas o externas.Una función se representa: f (p1, p2......,pn) f Nombre de la función p son los parámetros .

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, generalmente incorporadas por la mayoría de los lenguajes de programación. HERENCIA: Propiedad que permite a los objetos se construidos a partir de otros objetos; es recibir de una modulo superior, las características de él, como atributos o funciones (campos y métodos o comportamientos), para usarlos en el módulo actual. Heredar es compartir atributos.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 128: Manual de logica de programacion

LOGICA DE PROGRAMACION 128

IDENTIFICADORES : Son los nombres que se dan a los programas, constantes, variables, subprogramas y otros objetos o entidades de dígitos. Su nombre puede constar de una letra o agrupación de letras o combinación de letras y números 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 máquina, 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 inglés y de una forma sencilla para que el usuario entienda fácilmente . Ej. Cobol, Basic, Pascal etc.. LENGUAJE DE BAJO NIVEL: Es un lenguaje mas al nivel de la máquina, los compiladores procesan estos lenguajes mas rápidamente que los de alto nivel.

LOGICA: Procedimiento razonable y apropiado para buscar la solución de un problema cualquiera. 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 paréntesis 2 subíndices separados por comas, donde el primero se refiere a la fila y el segundo se refiere a la columna.

MEMORIA : Capacidad de guardar información y tenerla disponible para su uso. MEMORIA ROM (read only memory), memoria de sólo lectura, en la cual se almacena ciertos programas e información que necesita la computadora las cuales están grabadas permanentemente y no pueden ser modificadas por el programador. Las instrucciones básicas para arrancar una computadora están grabadas aquí MEMORIA RAM (Random access memory), memoria de acceso aleatorio, la utiliza el usuario mediante sus programas, y es volátil. La memoria del equipo permite almacenar datos de entrada, instrucciones de los programas que se están ejecutando en ese momento, los dato s resultados del procesamiento y los datos que se preparan para la salida. MÉTODO: Es la implementación de un algoritmo que representa una operación o función que un objeto realiza. El conjunto de los métodos de un objeto determinan el comportamiento del objeto MODELO: Es una vista de un sistema del mundo real, es decir, una abstracción de dicho sistema considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito 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 más componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un módulo, no hay necesidad de hacer cambios en otras partes del todo. Un ejemplo clásico es conjunto de módulos que, al integrarlos conforman un armario, el cual puede agregarle más funcionalidad si se le agregan más módulos, o al contrario. OBJETO: Componente o código de software, el cual contiene en sí mismo tanto sus características (campos) como sus comportamientos (métodos), el cual se accede a través de su interfaz o

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 129: Manual de logica de programacion

LOGICA DE PROGRAMACION 129

signatura. OBJETOS CONCRETOS: Partes físicas del modelo mecánico, ojo del modelo, no del sistema real, o sea, los objetos planeta no son los planetas reales. PARÁMETROS: 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 envían valores desde el procedimiento al programa que llama; de entrada/salida que sirve para ambos propósitos.

POLIFORMISMO: Esta propiedad indica que un elemento puede tomar distintas formas. Podemos definirlo como el uso de varios tipos en un mismo componente o función. Por ejemplo, una función que sume dos operandos, la cual maneja, o dos números o dos cadenas, para retornar un total de una suma o de una concatenación

PROCESO : Es el conjunto de operaciones o cálculos que transforman los datos en información, 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 función de los parámetros definidos en su formato; se llama con una instrucción llamar- a o con el nombre del procedimiento PROGRAMAS DEL USUARIO: Son aplicaciones específicas que cada persona diseña para la solución de diferentes problemas de procesamiento de la información, los programas son escritos en un lenguaje de programación, de acuerdo a las normas y sintaxis de dicho lenguaje. El programa consta de un número específico de instrucciones, las cuales respetando una secuencia lógica cumplirán el objetivo de tomar unos datos de entrada, procesarlos y entregar una información como salida. PROGRAMA FUENTE: Es el programa escrito por el programador usando un lenguaje de alto nivel. PROGRAMA OBJETO: Es el programa que resulta de la traducción que hace el compilador del programa fuente en lenguaje de máquina.

PROGRAMACIÓN ORIENTADA A OBJETOS: al conjunto de teorías, estándares, modelos y métodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programación la solución 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 características 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 compañeros con las mismas características y un comportamiento similar.

Una ventaja de la POO es la facilidad que brinda a través de sus herramientas, de concebir,

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 130: Manual de logica de programacion

LOGICA DE PROGRAMACION 130

analizar, modelar, diseñar e implementar el mundo real de manera fiel a como se presenta en la realidad; el paso que hay desde la concepción y asimilación del problema hasta la implementación 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 programación de computadores; esto hace referencia reales, los cuales se pueden representar como tales en una solución computarizada PROMEDIO : Resultado de la división de un acumulador por un contador. ( PROMEDIO = ACUMULADOR/CONTADOR). PSEUDO CÓDIGO: Es la descripción de los pasos lógicos para la solucionar un problema en forma semejante al lenguaje de computadora utilizado, es decir un lenguaje de seudo programación, una imitación del código de computadora. El Pseudo código es una mezcla de lenguajes natural y símbolos, términos y otras características comúnmente utilizadas en uno o más lenguajes de alto nivel.

REGISTRO: Es un conjunto de campos relacionados. REGISTRO CENTINELA: Es el último registro que contiene una señal 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 número 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 numeración que utilizan los circuitos digitales de las computadoras. Su base numérica es 2. SISTEMA HEXADECIMAL: Sistema numérico 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 según las cuales se intercambia información 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 sería un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la máquina actuará como si recibiera una educación instantánea; de pronto "sabe" cómo pensar y cómo operar. SOFTWARE DE USO GENERAL : El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario ( manuales de referencia, plantillas de teclado y demás ). SOFTWARE DE APLICACIONES : El software de aplicación esta diseñado y escrito para realizar

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 131: Manual de logica de programacion

LOGICA DE PROGRAMACION 131

tareas específicas personales,,empresariales o científicas como el procesamiento de nóminas, la administración de los recursos SUBALGORITMOS o SUBPROGRAMAS: Es un programa independiente que resuelve una función definida por los módulos. 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.

SUBÍNDICE: o Índice, indica el número de cada posición del arreglo. Este debe ser un número entero.

SUICHES: Los suiches o interruptores es un campo de memoria que puede tomar dos valores: falso o verdadero; si o no; 1 o 0. Estos tienen gran aplicación en la programación 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 acción 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 numéricas y alfanuméricas. VARIABLE ALFABÉTICA O ALFANUMÉRICA: El valor almacenado en ésta puede ser numérico, alfabético o alfa-numérico y siempre debe estar colocado entre comillas. Este tipo de valor almacenado se denomina constante, literal, cadena o título. VARIABLES DE TRABAJO: Son las variables donde se guardan los resultados de cálculos u operaciones matemáticas y se les debe dar siempre un valor inicial de 0. VARIABLES GLOBALES: Son las que se utilizan en todo el programa y tienen actuación tanto en el programa principal como en los subprogramas. Su definición se realiza en el programa principal.

VARIABLES LOCALES: Son las que se utilizan en la definición de un subprograma (incluyendo parámetros). Solo tiene actuación o significado dentro del subprograma donde se definen y no son conocidas fuera de el. Su definición debe ser dentro del subprograma. VARIABLE NUMÉRICA: Su nombre puede ser una letra o agrupación de letras o combinación de letras y números; debiendo empezar siempre por una letra sin caracteres especiales ni espacios en blanco. El valor almacenado en ella debe ser totalmente numérico; 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 operación con ellos o consultar de una forma rápida.

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co

Page 132: Manual de logica de programacion

LOGICA DE PROGRAMACION 132

BIBLIOGRAFIA Básica: BECERRA SANTAMARÍA, Cesar . Algoritmos, Conceptos Básicos.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. HERNÁNDEZ, Roberto; LÁZARO, Juan Carlos; DORMIDO, Raquel; ROS, Salvador. Estructura de datos y algoritmos. Madrid : s.n., 2001. 283 p. + CD-ROM.

JOYANES AGUILAR, Luis. Fundamentos de programación : algoritmos y estructuras de datos. 2. ed. Madrid : McGraw-Hill, 1996. 714 p.

JOYANES AGUILAR, Luis; RODRÍGUEZ BAENA, Luis; FERNÁNDEZ AZUELA, Matilde. Fundamentos de programación : libro de problemas. Madrid : McGraw-Hill, 1996. 392 p.

JOYANES AGUILAR, Luis. Problemas De La Metodología De Programación. Madrid: Ed. Mc Graw Hill, 1990, 500 p.

ORREGO VILLA, Gildardo Antonio. Fundamentos De Lógica De Programación. Diseño de algoritmos. ed. Medellín : s.n., 2000. 110 p.

OVIEDO R, Efraín. Algoritmos estructurados. 2. ed. Medellín : s.n., 1995. 283 p. VÁSQUEZ L., Gabriel. Lógica para programación de computadores fundamentos y aplicaciones. 2. ed. Medellín : Ediciones Gráficas, 1985. 163 p.

VÁSQUEZ L., Gabriel. Lógica para programación de computadores fundamentos y aplicaciones. 2. ed. Medellín : Ediciones Gráficas, 1985. 163 p.

VILLALOBOS S, Jorge A. Diseño 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.nethttp://informatica.uv.es/iiguia/2000/AED/2002_03/Teoria/http://www.solocursos.net/algoritmos_desarrollados-slccurso1056443.htmhttp://www.solocursos.net/manual_basico_de_algoritmos-slccurso343432.htmhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.emagister.com/cursos-algoritmos-pclave-algoritmos.htm

Esp. Eugenia Mejía de Restrepo E-mail eugeniamejia@une. net.co