80
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS 31 2. SISTEMA DE PROCESAMIENTO DE LA INFORMACIÓN El Sistema de procesamiento de datos de información en un computador transforma datos en información organizada, significativa y oportuna. Los tres componentes básicos de un Sistema de Procesamiento de Información son: entrada, proceso, salida. ENTRADA Datos SALIDA Información PROCESO La ENTRADA son los datos que van a servir de materia prima. Esta se hará mediante el teclado, el mouse, discos duros, disquetes, discos ópticos, CD’s, cintas, DVD’s. El PROCESO: lo llevará a cabo el procesador (CPU, Central Processing Unit) del computador, que utilizará La Memoria RAM y Dispositivos de almacenamiento. La SALIDA es el resultado u obtención de la información que puede ser enviada a los dispositivos de salida o a los de almacenamiento. Ahora veamos una descripción más completa del flujo de información dentro del computador: SALIDA Información ENTRADA Información PROCESADOR Teclado, disquete, CD, etc. Pantalla, Impresora MEMORIA UNIDADES DE ALMACENAMIENTO

Manual Logica y Algoritmos

Embed Size (px)

DESCRIPTION

Manual Logica y Algoritmos

Citation preview

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    31

    2. SISTEMA DE PROCESAMIENTO DE LA INFORMACIN

    El Sistema de procesamiento de datos de informacin en un computador transforma datos en informacin organizada, significativa y oportuna. Los tres componentes bsicos de un Sistema de Procesamiento de Informacin son: entrada, proceso, salida.

    ENTRADA

    Datos

    SALIDA Informacin

    PROCESO

    La ENTRADA son los datos que van a servir de materia prima. Esta se har mediante el teclado, el mouse, discos duros, disquetes, discos pticos, CDs, cintas, DVDs. El PROCESO: lo llevar a cabo el procesador (CPU, Central Processing Unit) del computador, que utilizar La Memoria RAM y Dispositivos de almacenamiento. La SALIDA es el resultado u obtencin de la informacin que puede ser enviada a los dispositivos de salida o a los de almacenamiento. Ahora veamos una descripcin ms completa del flujo de informacin dentro del computador:

    SALIDA Informacin

    ENTRADA Informacin

    PROCESADOR

    Teclado, disquete, CD, etc.

    Pantalla, Impresora

    MEMORIA

    UNIDADES DE ALMACENAMIENTO

  • MANUAL DE LGICA Y ALGORITMOS

    32

    Observe la direccin de las flechas: En la ENTRADA tiene un solo sentido (derecha). En la SALIDA tiene un solo sentido (derecha) EL PROCESADOR enva datos a la MEMORIA (temporales) y al DISCO DURO (guardar o grabar) en los dos sentidos. La MEMORIA A SU VEZ tiene tambin doble flujo: enva y recibe datos del PROCESADOR y del DISCO DURO El DISCO DURO enva y recibe datos de la MEMORIA. doble sentido.

    2.1 DATOS Debido a que el computador maneja informacin o datos es necesario clasificarlos para su diferente representacin en l. Un dato es la expresin general que describe los objetos con los cuales opera el computador. Existen dos tipos de datos: simples (sin estructura), compuestos (estructurados). Un dato simple es un nmero como por ejemplo 4568, o un carcter como C. Los datos estructurados pueden ser cadenas de caracteres o strings, arreglos o registros. Los datos simples se clasifican de la siguiente manera:

    2.1.1 Numricos Es el conjunto de los valores numricos. Se pueden representar en dos formas: ENTEROS: son nmeros que, no tienen componentes fraccionarios o decimales y pueden ser positivos o negativos. Ejemplos: 5, -5, 1.340, 27 Los enteros se denominan en ocasiones nmeros de punto fijo o coma fija.

    DATOS SIMPLES

    NUMERICO CARACTER LOGICO

    ENTERO REAL

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    33

    REALES: Siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de una parte entera y una parte decimal. Ejemplo: 0,08 ; 3739,41 ; -52,321 ; 3,0 En aplicaciones cientficas se requiere una representacin especial para manejar nmeros muy grandes o muy pequeos as:

    Notacin decimal Notacin Cientfica Notacin Exponencial 367520100000000000000 3,675201 X 1020 3,675201 e 20 0,0000000000302579 3,02579 X 10-11 3,0579 e -11

    NOTACIN CIENTFICA

    En textos cientficos, los nmeros muy grandes o muy pequeos en valor absoluto suelen indicarse en la forma a10n, donde a es una expresin decimal con una sola cifra entera no nula (le llamaremos mantisa) y n es un nmero entero (le diremos exponente).

    Las calculadoras cientficas, cuando el resultado tiene ms cifras de las que puede mostrar la pantalla, lo expresan directamente en notacin cientfica; algunas tambin lo hacen cuando hay demasiados ceros a la izquierda. Nos puede aparecer, por tanto, en una operacin tan sencilla como 1/125, con resultado 0,008 = 810-3. La mayora de las calculadoras nos dicen la mantisa y el exponente, y los pueden presentar de las siguientes formas:

    separados por un espacio 8 -03En la misma lnea

    separados por una E 8E-03sin separacin 8-03 A diferente nivel, con el exponente

    arriba y ms pequeo separados por un pequeo x10 8x10-03

    Ejemplos de Notacin Cientfica

    Medida de: N escrito en notacin decimal N escrito en Notacin cientfica Masa de la Tierra 5.983.000.000.000.000.000.000.000kg. 5,983 1024 Kg Dimetro del Sol 1.391.000km. 1,391 106km. Tamao de un microbio 0,000004 cm. 4 10-6 cm. Tamao de un virus 0,00000002 cm. 2 10-8 cm. Tamao de lo glbulos Rojos 0,0000075 mm. 7,5 10-6 mm. Tamao de una bacteria 0,0000002 mm. 2 10-6 mm. Dimetro del ADN 0,0000000002 mm. 2 10-9 mm. Dimetro de un Protn 0,000000000000001 mm. 1 10-15 mm. Masa de un Neutrn 0,0000000000000000000000000017 mm. 1,7 10-27 mm. Neuronas que forman el Sistema Nervioso 10.000.000.000 1 1010 Velocidad de la Luz 300.000.000m/s. 3 108m/s. Radio Ecuatorial de la Tierra 6.370.000 m. 6,37 106 m. Peso de un tomo de Plutonio 0,0000000000000000000039 g. 3,9 10-22g. Dimetro de Jpiter 144.000.000m. 1,44 108m. Distancia que recorre la luz en 1 hora 108.000km. 1,08 105km. Distancia que recorre la luz en 1 da 25.920.000km. 2,592 107km. Distancia que recorre la luz en 1 ao 946.080.000km. 9,4608 108km. Distancia de la Tierra a la estrella ms cercana (Alfa Centauro)

    18.820.000.000.000.000.000km. 1,882 1019km.

  • MANUAL DE LGICA Y ALGORITMOS

    34

    1 ao luz aprox. es : 9.408.000.000.000km. 9,408 1012km. La notacin cientfica. Recuperado el 16 de Noviembre 2005, de http://html.rincondelvago.com/notacion-cientifica-y-de-ingenieria.html

    ADICIN Y SUSTRACCIN EN NOTACIN CIENTFICA

    Para sumar o restar medidas expresadas en Notacin Cientfica(a x 10n) con el mismo exponente simplemente sume o reste los valores de la mantisa, manteniendo el mismo valor en el exponente. Ejemplos: 25 x 10

    5 + 13 x 10

    5 = 38 x 10

    5

    15 x 10-4 m + 13 x 10-4 m = 28 x 10-4 m 51.3 x 10

    -2 - 12.9 x 10

    -2 = 38.4 x 10

    -2

    Si los exponentes no son iguales, hay que igualarlos, moviendo el punto decimal antes de sumar o restar. 8.7 x 10

    5 + 2.6 x 10

    4 = 8.7 x 10

    5 + 0.26 x 10

    5 = 8.96 x 10

    5

    MULTIPLICACIN EN NOTACIN CIENTFICA

    Para multiplicar medidas expresadas en notacin cientfica, se multiplica los valores de la mantisa y luego se suman los exponentes. Ejemplos: ( 5 x 10

    3) ( 8 x 10

    6) = 40 x 10

    3+6 = 40 x 10

    9

    ( 6 x 10-4) ( 4 x 108) = 24 x 10-4+8 = 24 x 104

    DIVISION EN NOTACIN CIENTFICA

    Para dividir medidas expresadas en notacin cientfica, se divide los valores de la mantisa y luego se restan los exponentes. Ejemplo:

    3696

    9

    1033.81033.81031025 ==

    2.1.2 Lgicos Tambin se denominan BOOLEANOS, solo pueden tomar uno de dos valores: VERDADERO (TRUE) o FALSO (FALSE). Este tipo de dato se utiliza para representar las alternativas (s/no) a determinadas condiciones.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    35

    2.1.3 Caracter Conjunto finito y ordenado de caracteres que el computador reconoce. Un dato tipo caracter contiene un solo caracter, este puede ser: - Alfabtico (a, b , c , d ,...., z) - Numrico (1, 2, 3, 4,...., 9 ) - Especial (+, -, *, /, ., ^, , $,....) Una cadena de caracteres (string) es una sucesin de caracteres que se encuentran delimitadas por una comilla (apstrofo), o doble comilla, segn el tipo de lenguaje de programacin. Ejemplos: 'hola profe'; "20 de julio"; 'Sra. Yolanda'

    2.2 SISTEMAS NUMRICOS

    Un sistema de numeracin es una forma unnimemente aceptada por la humanidad de contar las cosas. Conocer sistemas de numeracin como el binario o el hexadecimal es imprescindible si se quiere trabajar con el computador. El computador no entiende nuestro lenguaje, solamente lo interpreta, adaptndolo al suyo propio: el binario. Un sistema numrico est definido por la base que utiliza. La base es el nmero de smbolos diferentes, necesarios para representar un nmero cualquiera. Entre otros sistemas numricos, estn: el decimal (base 10), el binario (base 2), el hexadecimal (base 16) y el octal (base 8).

    2.2.1 Sistema decimal El sistema decimal es el ms utilizado en la actualidad, lo compone diez smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Para representar un valor mayor que 9, por ejemplo 10, se combinan dos de los smbolos y las posiciones de los smbolos adquieren un significado especial. Con este sistema simbolizamos muchas magnitudes diarias como centmetros, kilogramos, metros, litros, nmeros telefnicos o dinero.

    2.2.2 Sistema binario Se compone de dos dgitos: 0 y 1, es decir los dos estados posibles de encendido o apagado. Es el sistema numrico del computador. Cada uno de estos dgitos (0 y 1) es llamado bit (del ingls binary digit). Cualquier nmero binario es una sucesin de bits. Los valores de posicin de la parte entera de un numero binario son las potencias no negativas de dos: 20 21 22 23 24 ... El sistema binario nos sirve para medir capacidad de almacenamiento, es decir, la cantidad de informacin que puede grabarse en el disco duro, disquete, CD-ROM, DVD o la memoria.

  • MANUAL DE LGICA Y ALGORITMOS

    36

    La agrupacin de 8 bits es llamada Byte y se puede representar de la siguiente forma:

    1 0 0 0 1 1 0 1 Esto significa que hay 28 = 256 combinaciones posibles. Un Byte suele representar un caracter. Para que el computador pueda asimilar que una cadena de ceros(0) y unos(1) representan una letra, un nmero o cualquier otro signo, se codifican utilizando cdigos binarios como el EBCDIC o el ASCII. El cdigo ASCII (American Standard Code for Information Interchange) o Cdigo estndar americano para el intercambio de informacin, especifica un cdigo de 256 caracteres. Los cdigos ASCII usan valores numricos para definir el conjunto de caracteres estndar del idioma ingls, incluyendo las letras maysculas y minsculas, los nmeros, los signos de puntuacin y smbolos. En la siguiente figura se muestran algunos ejemplos de cdigo ASCII.

    Carcter Valor ASCII (binario) Valor ASCII (Decimal) A 01000001 65 B 01000010 66 @ 01000000 64 $ 00100010 36 1 00110001 49 3 00110011 51

    El patrn de dgitos 01000001 representa la letra A en el cdigo ASCII, pero tambin es la representacin binaria del nmero 65.

    32 > 56 8 80 P 104 H 33 ! 57 9 81 Q 105 I 34 " 58 : 82 R 106 J 35 # 59 ; 83 S 107 K 36 $ 60 < 84 T 108 L 37 % 61 = 85 U 109 M 38 & 62 > 86 V 110 N 39 ' 63 ? 87 W 111 O 40 ( 64 @ 88 X 112 P 41 ) 65 A 89 Y 113 Q 42 * 66 B 90 Z 114 R 43 + 67 C 91 [ 115 S 44 , 68 D 92 \ 116 T 45 - 69 E 93 ] 117 U 46 . 70 F 94 ^ 118 V 47 / 71 G 95 _ 119 W 48 0 72 H 96 ` 120 X 49 1 73 I 97 a 121 Y 50 2 74 J 98 b 122 Z 51 3 75 K 99 c 123 { 52 4 76 L 100 d 124 | 53 5 77 M 101 e 125 } 54 6 78 N 102 f 126 ~ 55 7 79 O 103 g 127 DEL

    CDIGO ASCII

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    37

    2.2.3 Aritmtica binaria

    CONVERSION DECIMAL A BINARIO

    Para encontrar la equivalencia un nmero de decimal y un binario, se divide el nmero y cada cociente sucesivo por dos (2), y se toman los residuos, como se muestra a continuacin: Por ejemplo para convertir el nmero 53 a binario, procesa de la siguiente manera:

    53 2 13 26 2 1 06 13 2 0 1 6 2 0 3 2 1 1

    Observe que los residuos pueden ser 0 o 1, ya que las divisiones son por 2. La sucesin de residuos de abajo hacia arriba como lo indica la flecha da el equivalente binario: 110101.

    CONVERSION BINARIO A DECIMAL

    Si lo que desea hacer es el proceso contrario, es decir transformar 110101 a su equivalente decimal, escriba el valor de posicin adecuado sobre cada bit, y luego sume aquellas potencias de dos que tienen 1, as:

    25 24 23 22 21 20

    1 1 0 1 0 1 Equivalente decimal

    SUMA DE BINARIOS

    La realizacin de clculos numricos es esencialmente igual en todos los sistemas de numeracin posicional. La tabla que se debe tener en cuenta para la adicin de binarios es la siguiente:

    + 0 1 0 0 1 1 1 10

    14

    1632

    53

  • MANUAL DE LGICA Y ALGORITMOS

    38

    Si tenemos, 1 + 1 = 0, llevando 1 1 + 1 + 1 = 1, llevando 1 Ejemplo: 1111 + 101

    111 1111 + 101 10100

    2.2.4 Sistema hexadecimal

    Es un sistema de numeracin vinculado a la informtica, ya que los computadores interpretan los lenguajes de programacin en bytes, que estn compuestos de ocho dgitos. A medida de que los computadores y los programas aumentan su capacidad de procesamiento, funcionan con mltiplos de ocho, como 16 32. Por este motivo, el sistema hexadecimal, de 16 dgitos, es un estndar en la informtica.

    Este sistema de numeracin tiene la ventaja de ser empleado tanto en operaciones binarias puras como en operaciones con nmeros decimales codificados en binario. Como nuestro sistema de numeracin slo dispone de diez dgitos, debemos incluir seis letras para completar el sistema, estas letras y su valor en decimal son: A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15.

    Binario Hexadecimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F

    La utilizacin del sistema hexadecimal en los computadores, se debe a que un dgito hexadecimal representa a cuatro dgitos binarios (4 bits = 1 nibble), por tanto dos dgitos hexadecimales representaran a ocho dgitos binarios (8 bits = 1 byte) que es la unidad bsica de almacenamiento de informacin.

    CONVERSIN HEXADECIMAL A DECIMAL

    Para convertir un hexadecimal a decimal multiplique por la potencia de 16 en la posicin dada, como por ejemplo:

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    39

    El nmero (decimal) 1870 se expresa como 74E en hexadecimal, as:

    7 *162 + 4 *161 + E *160 = 7 *256 + 4 *16 + 14 *1= 1792 + 64 + 14= 1870

    CONVERSIN BINARIO HEXADECIMAL

    Es relativamente fcil convertir una cantidad representada en binario a su correspondiente representacin hexadecimal. La regla es dividir la cantidad binaria en grupos de 4 dgitos empezando por la derecha (en caso necesario, aadir ceros a la izquierda para completar un grupo). A continuacin traducir cada cuarteto (de 0000 a 1111) en el correspondiente dgito hexadecimal.

    Por ejemplo:

    Para pasar el nmero (Binario) 111011100 a (Hexadecimal) 1DC, siga el siguiente proceso:

    Empezamos tomando parejas de 4 en 4 de derecha a izquierda

    1 1 1 0 1 1 1 0 0

    Completamos con ceros a la izquierda el primer grupo:

    0 0 0 1 1 1 0 1 1 1 0 0

    Convertimos cada grupo en decimal y lo interpretamos en hexadecimal:

    0 0 0 1 1 1 0 1 1 1 0 023 22 21 20 23 22 21 20 23 22 21 20

    1 13 12 1 D C

    2.2.5 Sistema octal Cuando trabajamos con una gran cantidad de nmeros binarios de muchos bits, es ms adecuado y eficaz escribirlos en octal y no en binarios; sin embargo como los circuitos y sistemas digitales trabajan elctricamente en binario, usamos el sistema octal solo por conveniencia con los operadores. En el sistema octal se utilizan 8 estados (base ocho), y el conjunto de smbolos utilizados va del 0 al 7 (0,1,2,3,4,5,6,7).

    Los nmeros octales pueden construirse a partir de nmeros binarios agrupando cada tres dgitos consecutivos de estos ltimos (de derecha a izquierda) y obteniendo su valor decimal.

  • MANUAL DE LGICA Y ALGORITMOS

    40

    Por ejemplo, el nmero binario 1000001 es 101 en octal y 65 en decimal

    1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1

    22 21 20 22 21 20 22 21 20 1 0 1

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    41

    TALLER No. 2 1. Si A = 6.24 X 10-3, B= 3.15 X 10-4, C= -2.8X10-4. Hallar los valores de:

    a) a + b b) a + c c) b - a d) a * b e) b * c

    2. En la Va Lctea hay aproximadamente 1.2 x1011 estrellas. Cuntos aos le tomara

    a una persona contar las estrellas si cuenta una por segundo? 3. La Biblioteca del Congreso tiene aproximadamente 59 millones de libros. Si cada

    libro tiene en promedio 270 pginas. Cuntas pginas habr en total en la Biblioteca del Congreso?

    4. Realice las siguientes conversiones:

    a) 23510 a binario e) 74910 a binario i) 23516 a decimal b) 10110112 a decimal f) 1001112 a decimal j) 1001112 a hexadecimal c) 43710 a binario g) 101012 a decimal k) AA216 a decimal d) 11100112 a decimal h) 52410 a binario l) 11100110102 a octal

    5. Realice las siguientes sumas binarias:

    a) 101011 + 11011 d) 11011 + 111001+ 1001 + 1100 b) 11001 + 1111 e) 10111 + 11011 + 111 c) 11111 + 101

    6. Coloque una X en el tipo de dato que corresponda:

    DATO NUMERICO CARCTER LOGICO 1,320 311 2220340 3,675 E 10 MARTHA JULIANA SECRETARIA 5.320.400 SI NO 0,007 K 5 #7-20 7. Convierta los siguientes nmeros al formato decimal estndar:

    a) 6,34 e5 c) 2,95 e-3 b) 1,95162 e 2 d) 4,632 e-4

  • MANUAL DE LGICA Y ALGORITMOS

    42

    3. INTRODUCCIN A LA PROGRAMACIN La principal razn para que las personas aprendan a programar en general y los lenguajes de programacin en particular, es utilizar el computador como una herramienta para solucin de problemas. La solucin de un problema puede dividirse en los siguientes seis pasos: LEER O CONOCER EL PROBLEMA: A travs de la lectura comprensiva se identifica qu clase de problemas se va a resolver, qu valores (variables de procesos) y clculos (operaciones aritmticas y lgicas) se requieren para conseguir dichos resultados. ANALISIS DEL PROBLEMA: Consiste en identificar qu valores o datos proporciona el problema (variables de entradas), qu valores (variables de procesos) y clculo (operaciones aritmticas y lgicas) se requieren para conseguir dichos resultados (Variables de salida). GENERAR UNA SOLUCIN: Mediante la utilizacin de expresiones (seudo-cdigo) o smbolos grficos convencionales (diagrama de flujo) que muestren la secuencia lgica para obtener resultados propuestos. COMPROBACION DE RESULTADOS: Permite controlar si la solucin dada al problema es la adecuada o no, y garantizar que al codificarse funcione correctamente, mediante una prueba de escritorio. CODIFICACION, PRUEBA Y EJECUCION: se codifica el programa en el lenguaje de computador seleccionado y si es necesario se almacena o no en un dispositivo de almacenamiento secundario para su posterior utilizacin. USO Y MANTENIMIENTO: Comprobada suficientemente la solucin, se comienza a procesar los datos necesarios para obtener los resultados esperados; el programa debe estar actualizndose permanentemente si se presentan nuevos requerimientos por parte del usuario. EJEMPLO Definicin del problema: Calcular la cantidad de lmina de acero necesaria para fabricar 5.000.000 de tapas de gaseosa. Anlisis del problema: La entrada de datos se concentra en el radio del crculo de la tapa, el rea de la lmina y la cantidad de tapas solicitadas. Las salidas sern: cantidad de lmina de acero necesarias, cantidad de lmina sobrante luego del recorte. Las variables son: Radio, rea. La constante es: 5.000.000 tapas. Los clculos debern mostrar el rea de un crculo y el rea del recorte. Paso seguido, el problema debe esquematizarse con la utilizacin de smbolos grficos o expresiones secuenciales que muestren la secuencia lgica para resolver el problema,

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    43

    comprobar los resultados y codificar el programa en el computador utilizando un lenguaje de programacin.

    3.1 IDENTIFICADORES Y PALABRAS RESERVADAS Cuando se escribe un programa en un lenguaje de alto nivel se deben identificar todos los objetos que hacen parte del mismo tales como: variables, constantes, procedimientos, funciones, etc. Estos identificadores se construyen de acuerdo a las reglas de sintaxis del lenguaje especfico en que se trabaje. Por ejemplo en Pascal, C++, el nombre de una variable debe comenzar por una letra, no contener caracteres especiales ni espacios, como *();-, contener mximo 32 caracteres. Las palabras reservadas, son los nombres de las instrucciones o los nombres de los componentes que ayudan a formar una instruccin, como por ejemplo los tipos de datos o nombres de constantes que utilizan algunos compiladores. Es prohibido por el programador utilizar como nombre de variable, de funcin o de procedimiento, una palabra reservada. Algunas palabras reservadas que se utilizan al hacer los algoritmos son: Entero, escribir, repita, mod, para, leer, si.

    3.2 CONSTANTES Y VARIABLES Existen valores que no deben cambiar durante la ejecucin de un programa, tales valores se denominan CONSTANTES, de lo contrario se le llaman VARIABLES. Ejemplos de constantes: - Reales: 2,14159 ; -0,1436 ; +5443324; 3,37456Exp2 - Tipo caracter: 'B'; '+'; '4' - Tipo cadena: 'carlos'; 'novedades' - Lgicas: falso o verdadero VARIABLE: Es un espacio reservado para almacenar datos dentro de la memoria RAM del computador, cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecucin del programa. Cuando se crea una variable se asocian las siguientes partes:

    contenido Nombre de la variable

    Tipo de dato

    Direccin de memoria

  • MANUAL DE LGICA Y ALGORITMOS

    44

    Nombre de la variable: Es el identificador de la variable que la diferencia de las dems dentro del programa. Para dar un nombre a una variable existen las siguientes restricciones: Debe comenzar por una letra. Puede contener solamente letras o nmeros, El carcter _ puede tratarse como una letra al definir una variable. Los nombres de las variables no pueden ser palabras reservadas. Ejemplos: NOMBRES ------> Para representar nombre de personas. PRECIOS -------> Para representar los precios de los diferentes artculos. Tipo de dato: Se refiere al tipo de informacin que se almacena en la variable, para nuestro, puede ser; numrico, carcter o lgico (booleano). Contenido: Es el dato especfico que se almacena en la variable. Direccin de memoria: Es el sitio exacto dentro de la memoria del computador donde ubica la variable, esta direccin se escribe en hexadecimal. Ejemplo de variable:

    3.3 EXPRESIONES Son combinaciones de constantes, variables, smbolos de operaciones, parntesis y nombres de funciones especiales. Ejemplos:

    (X + 1) / (X^2 + 3*X + 4) a + (b + 3) + Raizcuadrada (c) Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Su forma de representacin parte de una expresin algebraica que previamente se realiza para poder obtener el resultado esperado, sin embargo, el computador no entiende la forma de notacin algebraica y hay la necesidad de suministrarla en la forma que la entienda, esta notacin se denomina, algortmica.

    PRECIO 500

    Numrico

    0F3A8B10

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    45

    Un ejemplo de las dos expresiones es:

    Expresin Algebraica Expresin Algortmica

    X2 + 3 -5X + 2 X^2+raizcuadrada(3)-5*X+2

    3.4 OPERADORES ARITMTICOS Permiten realizar las diferentes operaciones aritmticas en el computador

    OPERADORES SIGNIFICADO TIPO DE DATO EN LOS OPERANDOS

    TIPO DE DATO EN EL RESULTADO

    ^ , **

    Exponenciacin

    Entero o real

    Entero o real

    +

    Suma

    Entero o real

    Entero o real

    -

    Resta

    Entero o real

    Entero o real

    *

    Multiplicacin

    Entero o real

    Entero o real

    /

    Divisin

    Real

    Real

    DIV

    Divisin entera

    Entero

    Entero

    MOD

    Mdulo (resto)

    Entero

    Entero

    REGLAS DE PRIORIDAD

    Las expresiones que tienen dos o ms operandos requieren unas reglas matemticas que permitan determinar el orden de las operaciones, se denominan reglas de prioridad, precedencia o jerarqua de los operadores y son:

    - Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen parntesis anidados (interiores unos a otros), las expresiones ms internas se evalan primero. - Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad: 1. Operadores exponenciales ( ^, **) 2. Operadores Multiplicativos ( * , /, Div, Mod) 3. Operadores Aditivos (+ , -) - Si en una expresin hay operadores que tienen en mismo orden de prioridad las operaciones se desarrollan de izquierda a derecha.

  • MANUAL DE LGICA Y ALGORITMOS

    46

    Ejemplos: 5 + (10 mod 2) = 5 + 0 = 5 5 * 3 + 2 ^ 2 4 / 2 = 15 + 4 2 = 17 5 3 + 3 + 5 = 2 + 3 + 5 = 5+5 =10 4 * 3 ^ 2 + 5 = 4 * 9 + 5 = 36 + 5 = 41

    3.5 OPERADORES RELACIONALES Se utilizan para relacionar dos expresiones, esto es, permiten comparar operandos y operadores combinados para producir valores verdaderos o falsos (expresiones booleanas). Si una condicin se cumple, el resultado es verdadero (1), en caso contrario, el resultado es falso (0).

    OPERADORES SIGNIFICADO < Menor que > Mayor que = Igual

    < = Menor o igual que > = Mayor o igual que

    ! =, Distinto a (Diferente) Ejemplos: 5 < 3 + 8 produce el valor Verdadero 7 != 2 + 5 Produce el valor Falso

    3.6 OPERADORES LGICOS Se utilizan para establecer grados de verdad o falsedad, al comparar dos o ms proposiciones o expresiones. A continuacin se presenta una tabla que resume la forma como se relacionan dos expresiones booleanas. Esta es llamada la tabla de la verdad.

    P Q P y Q P o Q no P Falso Falso Verdadero Verdadero

    Falso Verdadero Falso Verdadero

    Falso Falso Falso Verdadero

    Falso Verdadero Verdadero Verdadero

    Verdadero Verdadero Falso Falso

    Interpretando la segunda fila de la tabla tenemos: Si P es falso y Q es verdadero P y Q ser falso. Si P es falso y Q es verdadero P o Q ser Verdadero. Si P es falso no P ser verdadero.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    47

    Ejemplos: EXPRESIN LOGICA FORMA DE EVALUAR RESULTADO (3 > 2) y (5 != 5) Verdadero y Falso Falso (4 > 2) o (5 > 6) Verdadero o Falso Verdadero

    3.7 ASIGNACION DE VALORES A VARIABLES Y CONSTANTES Las variables y constantes almacenan datos el modo de darle valores a una variable se denomina asignacin. La operacin de asignacin se representa con el smbolo (flecha a la izquierda): Nombre de la Variable o constante Expresin o Valor Ejemplo 1: X 7, se lee a X se le asigna el valor 7 Y Y + 1, se lee a Y se le asigna el valor de Y + 1 Nota: las variables guardan el ltimo valor que se les asigna, as: Resultado de la asignacin a X

    X 5 5 X X + 5 5+5=10 X X + 10 10+10=20

    El valor final, de X es 20 Ejemplo 2: A B A 3 3 B A + 6 9 B A 3 B B ^ 2 9 Valor Final: 3 9

    3.8 FUNCIONES INTERNAS Adems de las operaciones bsicas ya mencionadas, existen otro conjunto de funciones predefinidas que normalmente incorporan la mayora de los lenguajes de programacin. Para utilizar cualquiera de estas funciones simplemente se da el nombre de la funcin, seguido por una constante, variable o expresin (argumento) encerrado entre parntesis.

  • MANUAL DE LGICA Y ALGORITMOS

    48

    FUNCION DESCRIPCION

    abs(x) arctan(x) cos(x) exp(x) ln(x) log10(x) RaizCuadrada(x) redondeo(x) sin(x) tan(x) truncar(X)

    Valor absoluto de x Arco tangente de x (en radianes) Coseno de x (en radianes) Exponencial de x Logaritmo neperiano de x Logaritmo decimal de x Raz cuadrada de x x se redondea al entero mas prximo Seno de x (en radianes) Tangente de x (en radianes) x se trunca a la parte entera

    Ejemplos: redondeo (5.5) = 6 redondeo (-3.5) = -4 redondeo (9.8) = 10 truncar (6.7) = 6 truncar (-3.5) = -3 RaizCuadrada (25) = 5 abs (-12) = 12 abs (6.5) = 6.5

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    49

    TALLER No. 3 1. Resuelva las siguientes expresiones: a) 7 * 10 mod 3 * 4 + 9 i) (7 * (10 5) mod 3) * 4 + 9 b) 4 * 7 + 2 3 / 4 5 j) 23 * 2 div 5 c) (9 + 3) * 5 div 4 mod 7 + 1 k) (24 + 2 * 6) div 4 d) 5* (75/15) + 4*(4 -1) + 2*(7 + 4) l) (a+5)*3/2*b b si a=3 y b=6 e) 7 * 10 15 mod 3 * 4 + 9 m) 5 * 4 + 6 / (2 + 1) f) 5 * (4 + 6) / (2 + 1) n) (3 + 2 * 4) div 7 g) (22 3 * 5) mod 7 o) (2 + 3) * (5 + (6 2) / 2) h) 4 40 div 5 2. Complete la siguiente tabla

    a B a mod b a div b - 17 3 -15 5 14 3 38 5 27 4 32 5

    3. Deducir el valor lgico de la expresin: a) (1 > 0) y (3 = 3) f) (0 < 5) o (0 > 5) b) no (5 != 5) g) (1 < x) y x < z + 7 Si x vale 7 y z vale 2 c) no (6 > 10) h) (4.5 > x) y (z < x +7.5) para x = 7, z = 5 d) no ((10!=8) o no(5=5)) i) ((x>y) y no(z=y) para x=6,y=5,z=10 e) (5 4) j) ((10>5) y (8

  • MANUAL DE LGICA Y ALGORITMOS

    50

    6. Supngase que M, N y P son variables de tipo lgico cules son los valores que toman las variables despus de las operaciones?

    a) M 3 > 5 N M o (7 > = 12)

    P 7 > 6 y N b) M (4=5) N no (5 =7) y no ((5=2)) N no (M) o no (5

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    51

    e)

    nnn

    n

    m

    22

    3

    +

    =

    10) Indique si los nombres de variables son vlidos o no:

    NOMBRE VARIABLE SI NO Cod_a Amperios 9abc Abc9 *codigo Nota promedio

  • MANUAL DE LGICA Y ALGORITMOS

    52

    4. ALGORITMO Debido a que el computador no tiene la capacidad de solucionar problemas, se le deben proporcionar los pasos sucesivos a realizar o algoritmos.

    4.1 CONCEPTO DE ALGORITMO Conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico o clase de problemas. CARACTERISTICAS DE LOS ALGORITMOS - Debe ser preciso: Debe indicar el orden de realizacin de cada paso. - Debe estar definido: Si se sigue un algoritmo dos veces, se debe obtener el mismo

    resultado. - Debe ser finito: Tiene un fin, un nmero determinado de pasos.

    4.2 DISEO DE ALGORITMOS Para la realizacin de cualquier actividad, se utilizan los algoritmos con el propsito de llegar a los resultados esperados. La diferencia entre un algoritmo para resolver una tarea corriente y un algoritmo para resolver un problema por computador, es que el ltimo debe ser expresado con la lgica del computador. La informacin proporcionada al algoritmo constituye su entrada y la informacin producida por el algoritmo constituye su salida. Los problemas complejos se pueden resolver ms eficientemente en el computador, cuando se rompen en subproblemas que sean ms fciles de solucionar que el original y si es necesario dividir estos subproblemas en otros mas simples. Este tipo de metodologa se le denomina diseo descendente (top-down design). Normalmente se disea el algoritmo en un primer esbozo utilizando pocos pasos, luego se describe cada uno para ampliar detalladamente estos pasos, generando un nivel de refinamiento necesario para que el algoritmo sea claro, preciso y completo. Existen dos formas principales de representar un algoritmo: a travs de pseudocdigo que utiliza texto en espaol, y diagramas de flujo que es una representacin grfica y trabaja con smbolos especiales.

    4.2.1 Pseudocdigo Es la forma de escribir un algoritmo utilizando texto en espaol.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    53

    Tipo de Instruccin

    Pseudocdigo espaol

    Comienzo de proceso Inicio

    Fin de proceso fin

    Entrada (lectura) leer

    Salida (escritura) escribir

    Asignacin B 7

    Selectiva si-entonces

    Repetitivas Para, fin_para, mientras, fin_mientras

    Ejemplo 1. Elabore un algoritmo para ver una pelcula PSEUDOCODIGO

    PSEUDOCODIGO CON REFINAMIENTO

    Inicio Inicio

    Invitar a cine Invitar a cine

    Consultar la cartelera de cine Consultar la cartelera de cine

    Si no proyectan RAMBO entonces decidir otra pelcula

    Trasladarse al teatro Si proyectan RAMBO entonces trasladarse a la sala de cine

    Hacer fila Si hay cola, entonces ponerse en ella

    Comprar entradas Hacer avanzar la cola

    Si existen boletas disponibles, entonces comprar entradas

    Entrar a la sala Entrar a la sala y buscar asiento

    Ver la pelcula Mientras proyectan la pelcula, ver

    Abandonar la sala de cine Abandonar la sala de cine

    Volver a casa Volver a casa.

    Fin Fin

  • MANUAL DE LGICA Y ALGORITMOS

    54

    Ejemplo 2. Elabore un algoritmo para hacer la solicitud de un crdito en un banco. PSEUDOCODIGO Inicio Leer la solicitud Examinar tarjeta del cliente y capacidad de endeudamiento Si el cliente es solvente y cumplido entonces aprueba el crdito Si no rechaza el crdito Fin Ejemplo 3. Elabore un algoritmo para leer un nmero y escribir su cuadrado: PSEUDOCODIGO Inicio leer A (en A se almacenar el nmero) B A * A (en B se almacenar el resultado de la operacin) escribir B fin Aspectos a considerar en los ejemplos anteriores: Utilice palabras reservadas como: si, inicio, mientras, sino, entonces, leer, escribir. Elija un mtodo para escribir los algoritmos:

    o El empleo de la indentacin (sangra o justificacin). o El uso de comentarios para documentar el algoritmo.

    4.2.2 Diagramas de flujo Es una tcnica de representacin de algoritmos ms antigua y a la vez ms utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin de lenguaje de programacin orientado a objetos. Un diagrama de flujo utiliza los smbolos (caja) unidos por flechas, denominados lnea de flujo, que indican la secuencia en que se deben ejecutar.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    55

    Existen diversos tipos de diagramas de flujos, bsicamente se encuentran tres tipos: de sistema, de bloque y detalle. Los diagramas de flujos de sistema u organigramas de sistema, representan la relacin existente entre los diferentes soportes fsicos que contienen la informacin necesaria para la ejecucin de un proceso. Los diagramas de bloques o macro procesos, muestran la estructura de los mdulos que conforman la solucin del problema y el flujo existente entre ellos. Los diagramas de flujo de detalle, son los que muestran la secuencia paso a paso para la solucin de un problema que va a ser ejecutado en un procesador. Un software diseado para construir y analizar algoritmos, es el DFD. Usted puede crear diagramas de flujo de datos para la representacin de algoritmos de programacin estructurada a partir de las herramientas de edicin que para ste propsito suministra el programa. Despus de haber ingresado el algoritmo representado por el diagrama, podr ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseado para ste fin. La interfaz grfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la representacin estndar de diagramas de flujo en hojas de papel. Dfd posee una ventana principal que proporciona el ambiente de trabajo en donde se pueden construir y analizar algoritmos. Los componentes bsicos de la ventana principal son: La barra de men, barras de herramientas, barras de desplazamiento y el rea de trabajo.

    Para la elaboracin de un diagrama de flujo se deben seguir ciertas normas:

  • MANUAL DE LGICA Y ALGORITMOS

    56

    1. Entender claramente el problema a resolver. 2. Iniciar desde arriba hacia abajo y de izquierda a derecha. 3. Identificar claramente cada uno de los pasos secunciales, ya sea una instruccin o toma de decisiones. 4. Una vez terminado, hacer seguimiento paso a paso para verificar su funcionalidad.

    SIMBOLOGIA BSICA

    Para la solucin de algoritmos empleando la tcnica del Diagrama de Flujo de detalles, se utiliza una serie de smbolos para representar las diferentes acciones, los smbolos que utiliza el programa DFD, son:

    FUNCION

    SIMBOLOS PRINCIPALES

    INICIO O FIN DE UN PROGRAMA

    ENTRADA O LECTURA DE DATOS O INFORMACION

    SALIDA O ESCRITURA DE DATOS O INFORMACION ASIGNACION, OPERACIN O PROCESO DE DATOS

    DECISION, PERMITE SELECCIN DE ALTERNATIVA

    INDICADOR DE DIRECCIN O LINEA DE FLUJO.

    REPRESENTA ESTRUCTURAS REPETITIVAS, CICLO PARA, CICLO MIENTRAS.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    57

    Otros programas de elaboracin de diagramas de flujo, permiten tener smbolos ms explcitos, que indican el dispositivo de entrada o de salida:

    Smbolos de Salida Smbolos de Entrada

    Impresora Pantalla Teclado Disco Cinta

    Ejemplo: Calcular y escribir el rea de un tringulo. Variables: BASE, ALTURA, AREA

    PSEUDOCODIGO DIAGRAMA DE FLUJO

    Inicio leer BASE, ALTURA AREA BASE * ALTURA /2 escribir AREA fin

  • MANUAL DE LGICA Y ALGORITMOS

    58

    4.2.3 Ejercicios resueltos 1. Dada una cantidad en pesos calcular y escribir su equivalencia en Dlares y Euros.

    Sabiendo que el valor del dlar es $2490 y el Euro $3200. Variables: P: Cantidad en Pesos, Dlar: equivalencia en dlares, Euro: equivalencia en

    Euros

    PSEUDOCODIGO DIAGRAMA DE FLUJO

    Inicio leer P DOLAR P /2490 EURO P /3200 escribir DOLAR, PESOS fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    59

    2. Calcular el rea de un triangulo en funcin de las longitudes de sus lados.

    AREA= ))()(( CPBPAPP , donde P=(A+B+C)/2.

    Variables: A:lado , B: lado, C: lado, P: semiperimetro, AREA: rea.

    PSEUDOCODIGO DIAGRAMA DE FLUJO

    Inicio leer A,B,C P (A+B+C) /2 AREA RaizCuadrada(P*(P-A)*(P-B)*(P-C)) escribir AREA fin

  • MANUAL DE LGICA Y ALGORITMOS

    60

    3. Calcular y escribir el salario neto de un trabajador dado el numero de horas y el

    valor de la hora y sabiendo que el tasa de impuesto que se le debe deducir es del 2%.

    Variables: N: nmero de horas, V:valor hora, Sb: salario bsico(antes de impuesto), I:

    impuesto, S: salario neto

    PSEUDOCODIGO DIAGRAMA DE FLUJO

    Inicio leer N,V Sb N * V I Sb * 0.02 S Sb - I escribir S fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    61

    TALLER No. 4 Elabore un algoritmo que le permita: 1. Cruzar una calle por un paso de peatonal. 2. Hacer una fotografa a una persona con una cmara automtica. 3. Buscar informacin sobre un tema determinado a travs de Internet. 4. Efectuar una llamada telefnica a un amigo cuyo nmero se desconoce pero viene en

    la gua telefnica. 5. Cambiar el cristal roto de una ventana. Elabore el pseudocdigo y el diagrama de flujo, para solucionar los siguientes problemas: 1. Hallar el producto y la suma de dos nmeros 2. Intercambiar los valores de dos variables. 3. Calcular la superficie lateral de un cilindro recto. S = 2..Radio.Altura. 4. Calcular el precio total de un artculo dado su precio y el iva(%). 5. Calcular la hipotenusa(a) de un tringulo rectngulo conociendo sus catetos (b, c).

    a2 = b2 +c2 6. Dado un nmero en centmetros calcular su equivalencia en pulgadas.

    1 pulg =2.54 cm. 7. Un almacn requiere un programa para generar las facturas, dado el nombre del

    artculo, el precio del articulo, nmero de artculos vendidos y sabiendo que toda venta tiene un descuento del 10%. Escribir nombre del artculo, total de la venta, valor del descuento y total a pagar.

    8. Calcular y escribir la media de tres nmeros dados por el usuario. 9. Leer tres notas calcular y escribir la definitiva sabiendo que la primera nota vale el

    30%, la segunda 30% y la tercera 40%. 10. Leer las ventas realizadas por un vendedor de libros, calcular y escribir la comisin

    que recibe sabiendo que es del 20% sobre las ventas. 11. Leer el ao de nacimiento de una persona, calcular y escribir la edad que tiene.

  • MANUAL DE LGICA Y ALGORITMOS

    62

    4.3 CONDICIONALES Los algoritmos hasta aqu escritos son instrucciones secuenciales, donde la ejecucin comienza en la primera instruccin y prosigue hasta la ltima de ellas. Sin embargo en ocasiones se necesita tener la posibilidad de controlar cuales son las instrucciones que se deben ejecutar y en qu momento, para esto los compiladores traen instrucciones que le permiten al programador elegir entre una u otras alternativas. Las condicionales son expresiones booleanas, que se emplean para controlar la secuencia en que deben ejecutarse los pasos de un algoritmo. Generan un valor verdadero (1) o falso (0), esto es pueden tomar dos valores: verdadero (true) y falso (FALSE). Las instrucciones condicionales controlan si una instruccin o lista de instrucciones se ejecutan en funcin del cumplimiento o no, de una condicin Esta instruccin la denominaremos si y tiene la siguiente forma: si (condicin) entonces instrucciones sino instrucciones fin_si La condicin es una expresin booleana, si el valor generado es verdadero entonces se ejecutan las instrucciones que siguen a la palabra entonces. Si el valor generado por la condicin es falso, se ejecutan las instrucciones que siguen a la palabra sino, en caso de que no se requieran especificar instrucciones por falso, simplemente se omite esta parte y las instrucciones por verdadero no se ejecutaran: si (condicin) entonces instrucciones fin_si EJEMPLO 1:

    Inicio

    leer x, y si (x

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    63

    EJEMPLO 2:

    Inicio

    leer x, y si (x= B X != 0

    CONDICIONES COMPUESTAS

    Permiten enlazar condiciones simples para formar otras ms complejas; las condiciones son enlazadas entre s por medio de los operadores lgicos. Por ejemplo:

    a > b y a > c x != y x = z no (a > b) y no (x = y)

    EJEMPLO: Inicio leer a si (a20) entonces x 3 sino x 0 fin_si escribir x fin

  • MANUAL DE LGICA Y ALGORITMOS

    64

    En el ejemplo anterior si la condicin es verdadera (por ejemplo si a=3) se le asigna 3 a x; en caso de que sea falso (por ejemplo x=15) se le asigna 0 a x.

    4.3.2 Representacin de los condicionales en diagramas de flujo Para representar un condicional se utiliza un rombo: En caso que no se quieran especificar instrucciones por falso: Cuando se quieran especificar instrucciones por falso y verdadero: A continuacin presentamos unos ejemplos grficos de enunciados de decisin:

    COMPOSICION EJEMPLO Variable: Constante

    CONDICION SI NO

    SUELDO > 500000

    NO SI

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    65

    Variable: Variable

    Variable: Expresin

    Expresin: Expresin

    EJEMPLO: Leer un nmero y escribir si es mayor o menor o igual que 100

    PSEUDOCODIGO DIAGRAMA DE FLUJO

    Inicio leer numero si (numero > 100) entonces escribir mayor sino escribir menor o igual fin_si fin

    PAS=NUEVO

    NO SI

    INTE = A+B

    NO SI

    A*B != C/E

    NO SI

  • MANUAL DE LGICA Y ALGORITMOS

    66

    4.3.3 Condicionales anidados En ocasiones es necesita tener la posibilidad de controlar las instrucciones que se deben ejecutar entre ms de una alternativa, en cumplimiento de dos o ms condiciones. La instruccin si, puede incluir otras instrucciones si. En este caso se dice que las instrucciones si estn anidadas. Esta instruccin si anidada, tiene la siguiente forma: si (condicin1) entonces instrucciones sino si (condicin2) entonces instrucciones sino instrucciones fin_si fin_si En la forma anterior, se tienen dos condiciones para tres posibilidades de instrucciones. Ntese que en la negacin de la primera condicin, resulta el segundo si, que nos permite evaluar las dos posibilidades de la segunda condicin. Otra forma sera que el segundo si, estuviera por la afirmacin de la primera condicin, con lo cual tendra la siguiente apariencia: si (condicin1) entonces si (condicin2) entonces instrucciones sino instrucciones fin_si sino instrucciones fin_si Se acepta un nmero indeterminado de si anidados, que depende de la habilidad del programador para controlar todas las posibilidades. A continuacin se presenta un ejemplo de cuatro condicionales: si (condicin1) entonces si (condicin2) entonces si (condicin3) entonces si (condicin4) entonces instrucciones1 sino instrucciones2 fin_si sino instrucciones3 fin_si sino instrucciones4 fin_si sino instrucciones5 fin_si

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    67

    EJEMPLO:

    Leer un nmero y escribir si es menor que cero, igual a cero o mayor que cero. Variable: NUMERO

    PSEUDOCODIGO

    Inicio leer NUMERO si (NUMERO < 0) entonces escribir menor que cero sino si (NUMERO = 0) entonces escribir igual a cero sino escribir mayor que cero fin_si fin_si fin

    DIAGRAMA DE FLUJO

  • MANUAL DE LGICA Y ALGORITMOS

    68

    4.3.4 Ejercicios resueltos 1. Leer dos nmeros, y determinar cual es el mayor. Variables: N1: Numero N2: Numero

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio leer N1, N2 si (N1 > N2) entonces escribir N1 sino escribir N2 fin_si fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    69

    2. Leer un carcter, determinar si es una letra, un nmero, otro carcter. Variables: C: Carcter

    PSEUDOCODIGO

    Inicio leer C si (C>=a y C=0 y C

  • MANUAL DE LGICA Y ALGORITMOS

    70

    3. Leer tres nmeros, determinar cual es el mayor. Variables: A: Numero 1 B: Numero 2 C: Numero 3

    PSEUDOCODIGO

    Inicio leer A, B, C si (A > B y A>C) entonces escribir A sino si (B>A y B>C) entonces escribir B sino escribir C fin_si fin_si fin

    DIAGRAMA DE FLUJO

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    71

    TALLER No. 5 Elabore el algoritmo en pseudocdigo y en diagrama de flujo que le permita resolver los siguientes problemas: 1. Escribir el aviso PAGO EN CHEQUE a los trabajadores que ganan ms de $800.000,

    dado el salario de la persona. 2. Escribir si una persona es mayor o menor de edad, dado el ao de nacimiento. 3. Escribir si un estudiante es mayor de 25 aos, dentro de tres aos, dada la fecha de

    nacimiento. 4. Determinar si una cantidad es positiva o negativa. 5. Leer un nmero y escribir si es par o impar. 6. Leer dos nmeros y escribir si estn en orden ascendente o descendente. 7. Leer dos nmeros y decidir si el primero es divisor del segundo. 8. Calcular y escribir el valor del salario de un trabajador, dado el numero de horas

    trabajadas y sabiendo que el numero de horas que superen las 160 se consideren extras y se pagan a 1,5 el valor de la hora normal. Valor de la hora normal es de $2000.

    9. Dados tres nmeros, determinar si la suma de cualquier pareja de ellos es igual al

    tercer nmero. Si se cumple esta condicin, escribir iguales de lo contrario distintos.

    10. Determinar el precio de un pasaje de ida y vuelta en tren, conociendo la distancia a

    recorrer y sabiendo el nmero de das de estancia. Si el nmero de das es superior a 7 y la distancia es superior a 800 kms., el pasaje tiene una reduccin del 30%. El precio por Kilmetro es de $200.

    11. Si Z es menor o igual a X asignarle a R el valor de Z+1, si Z es mayor que X, y Z igual

    a P, asignarle a R el valor de Z+2, si Z no es menor o igual a X y Z diferente de P, asignarle a R el valor de Z+3.

    12. Dados tres nmeros determinar cul es el mayor, el medio y el menor. 13. Clasificar un tringulo en funcin de sus lados: Equiltero (todos iguales), Issceles (2

    iguales y uno diferente), Escaleno (todos diferentes). Verifique que la suma de dos lados cualquiera, debe ser mayor a la del otro lado.

    14. Escribir un programa que asigne una calificacin en letras a un estudiante basado en

    la siguiente tabla de puntuaciones: Puntuaciones Calificacin 0 2.9 I 3.0 3.7 A 3.8 4.4 B 4.5 5.0 E

    Para puntuaciones diferentes el mensaje Dato Errado

  • MANUAL DE LGICA Y ALGORITMOS

    72

    15. Escribir un programa que lea el precio de un artculo y calcule el precio final, teniendo en cuenta lo siguiente: Precio menor o igual de 10.000, sin descuento. Precio mayor a 10.000 y menor de 50.000, descuento de 10% Precio mayor o igual de 50.000, descuento de 20%.

    16. Solucionar la ecuacin de primer grado AX+B = 0, donde, A y B son los datos, y las

    posibles soluciones son: A != 0, X = -B/A A = 0, B != 0 entonces Solucin imposible A = 0, B = 0 entonces Solucin indeterminada.

    17. Resolver la ecuacin de segundo grado AX2 + BX +C = 0 18. Una compaa de alquiler de carros requiere un programa para emitir las facturas de

    sus clientes, teniendo presente los siguientes puntos: Cargo fijo $50.000 pesos si no se rebasan los 300 Kms. Para las distancias comprendidas entre 300 y 1000 Kms. Cargo fijo ms

    kilometraje a razn de $3.000 por Km. Para distancias mayores de 1.000 Kms. Cargo fijo ms Kilometraje a razn de

    $3000 por Kilmetro, para distancias comprendidas entre 300 y 1.000 Kms y de $2.000 por Kilmetro para distancias mayores de 1.000 Kms.

    19. En una empresa, los salarios de los empleados se van a aumentar segn su salario

    actual, escribir un algoritmo que solicite el salario actual del empleado, calcule y escriba el nuevo salario.

    SALARIO ACTUAL AUMENTO (%) 0 a 9.000 dlares 20 9.001 a 15.000 10 15.001 a 20.000 5 Ms de 20.000 0

    20. Una fbrica de huevos requiere, un generar una factura para calcular el precio de un

    pedido, dado el tipo de huevo y la cantidad as: TIPO VALOR UNITARIO

    A 250 B 200 C 150

    Calcule el valor del IVA a la factura, que corresponde al 8% del Valor Total. Si el valor del pedido (Valor Total + Iva) es superior a $60.000, tiene un descuento del 2%. Escribir Valor Total, IVA, valor del pedido, descuento y valor a pagar.

    21. Calcular el salario a pagar a un empleado, dado el valor del salario bsico y los siguientes descuentos: Retencin en la fuente del 10%, para todos los salarios superiores a $1.200.000 Seguro Social del 4% sobre el salario bsico. Pensiones del 6% sobre el salario bsico. Fondo de empleados del 2% sobre el salario bsico. Adicional recibe los siguientes beneficios: Bonificacin de $50.000 a los empleados cuyo salario bsico sea menor a

    $300.000.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    73

    Subsidio de transporte de la siguiente forma: SALARIO BASICO SUB. TRANSPORTE Menos de $400.000 $80.000 Entre $400.000 - $1.500.000 $50.000 Mas de $1.500.000 NO TIENEN

    Si el Salario Neto es mayor o igual a $1.000.000 escriba pago en cheque, en caso contrario pago en efectivo.

    22. Calcular y escribir el impuesto a pagar de un vehculo, dado su precio y el modelo: Precio menor o igual a $15.000.000 y modelo menor 1990, el impuesto es del 5%

    del valor del vehculo. Precio menor o igual a $15.000.000 y modelo superior a 1990, el impuesto es del

    10% del valor del vehculo. Precio mayor a $15.000.000 en cualquier modelo, el valor del impuesto es del

    15% sobre el valor del vehculo.

  • MANUAL DE LGICA Y ALGORITMOS

    74

    4.4 INSTRUCCIONES REPETITIVAS En la elaboracin de programas es importante que existan instrucciones que permiten que el computador ejecute un grupo de instrucciones varias veces sin tener que volverlas a escribir, estas son: la instruccin mientras que y la instruccin para.

    4.4.1 Bucles e iteraciones Un bucle o ciclo es un pedazo de algoritmo, cuyas instrucciones se repiten un nmero determinado de veces mientras se cumple una determinada condicin. Un bucle consta de tres partes fundamentales: DECISION (simple o compuesta), CUERPO DEL BUCLE y la SALIDA DEL BUCLE. Una iteracin es la ejecucin de todas las instrucciones del ciclo. Los bucles pueden ser sencillos o anidados (ciclos dentro de otros ciclos).

    BUCLES SENCILLOS BUCLES ANIDADOS I N I C I O I N I C I O

    Bucle A

    Bucle B

    Bucle C

    Bucle A

    Bucle B

    B U C L E

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    75

    4.4.2 Contador Los procesos repetitivos son la base del uso del computador. En estos procesos se necesita normalmente contar los sucesos o acciones internas del bucle. Una forma de controlar un bucle es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante por cada iteracin. El formato general es: CONTADOR CONTADOR + CANTIDAD CONSTANTE Ejemplo: Z Z + 2, donde Z se incrementa en 2 en cada iteracin.

    4.4.3 Acumulador Es una variable cuya misin es almacenar por cada iteracin, cantidades variables resultantes de sumas o productos sucesivos. El formato general es: ACUMULADOR ACUMULADOR + CANTIDAD VARIABLE ACUMULADOR ACUMULADOR * CANTIDAD VARIABLE Ejemplo: S S+N, donde N es una variable y no una constante.

    4.4.4 Instruccin mientras que La instruccin mientras, nos permite ejecutar una instruccin o un grupo de instrucciones un nmero determinado de veces, mientras se cumple una condicin. Esta instruccin es utilizada, cuando no se sabe el nmero de veces que va a ocurrir el ciclo. La representamos en pseudocdigo de la siguiente forma:

    mientras (condicin) hacer instrucciones fin_mientras

    En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

  • MANUAL DE LGICA Y ALGORITMOS

    76

    Ejemplo: Sumar una serie de nmeros, el programa solicita los nmeros por teclado hasta que se digite el numero -1 Variables: SU: Acumulador (suma de los nmeros) NU: Numero

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio SU 0 leer NU mientras (NU != -1) hacer SU SU + NU leer NU fin_mientras escribir SU fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    77

    4.4.5 Instruccin para

    La instruccin para permite repetir una instruccin o un grupo de instrucciones un nmero determinado de veces. Esta instruccin solo es utilizada cuando se sabe el nmero exacto de veces que va a ocurrir un ciclo. La representamos en el pseudocdigo de la siguiente forma:

    para Variable valor_inicial , valor_final , incremento haga instrucciones

    fin_para En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

    Ejemplo: Sumar 10 nmeros introducidos por teclado: Variables: SU: Acumulador (Suma de los nmeros) NU: Numero que es introducido por teclado i: Contador que controla el ciclo para

  • MANUAL DE LGICA Y ALGORITMOS

    78

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio SU 0 para i 1, 10, 1 haga leer NU SU SU + NU fin_para escribir SU fin

    4.4.6 Instrucciones repetitivas anidadas Es posible anidar ciclos o bucles. Los bucles anidados constan de un bucle externo con uno o ms bucles internos. Cada vez que se repite el bucle externo, los bucles internos se repiten. Ejemplo: Calcular y escribir las tablas de multiplicar del 1 al 5 Variables: i: Variable del ciclo externo (multiplicando) j: Variable del ciclo interno (multiplicador) R: Resultado del producto

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    79

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio para i 1, 5, 1 haga para j 1, 10, 1 haga R i * j escribir i, j, R fin_para fin_para Fin

  • MANUAL DE LGICA Y ALGORITMOS

    80

    4.4.7 Ejercicios resueltos 1. Calcular el promedio de las notas de un grupo de alumnos. El programa finaliza el ingreso de notas cuando se digite el cdigo 999. Variables: N: Nota SN: Suma de notas C: Cdigo CN: Cantidad de notas PN: Promedio de notas

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio SN 0 CN 0 leer C

    mientras ( C != 999) hacer leer N SN SN + N CN CN + 1

    leer C fin_mientras

    PN SN / CN escribir PN fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    81

    2. Calcular y escribir el factorial de un nmero dado por el usuario. Variables: NUM: Numero F: Factorial

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio F 0 leer NUM

    para X 1, NUM, 1 haga F F * X fin_para

    escribir F fin

  • MANUAL DE LGICA Y ALGORITMOS

    82

    3. Calcular y escribir el factorial de 5 nmeros dados por el usuario. Variables: NUM: Numero F: Factorial

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio

    para X 1, 5, 1 haga F 1 leer NUM para Y 1, NUM, 1 haga F F * X fin_para escribir F fin_para

    fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    83

    TALLER No. 6

    1. Escribir los nmeros del 1 al 10 con su respectivo cuadrado.

    2. Resolver la funcin 5)(23 += xxxf , para X tomando valores desde 0 hasta 5 en

    incrementos de 1. 3. Escribir las 30 primeras potencias de 4. 4. Leer 10 nmeros y determinar cuntos son positivos. 5. Determinar de un conjunto de 15 nmeros naturales. Cuntos son menores de 15?.

    Cuntos son mayores de 50? Cuntos estn comprendidos entre 25 y 45? 6. Una empresa con n_empleados, desea conocer. Cuntos ganan menos de $500.000?

    Cuntos entre $500.000 y $1.000.000? Cuntos ganan ms de $1.000.000? 7. Realizar una estadstica de las estaturas de los n_alumnos de un colegio, as: Alturas hasta 1,65 Alturas entre 1,66 y 1,75 Alturas mayores 1,75

    8. Calcular la suma de los nmeros pares hasta 100 inclusive. 9. Calcular y visualizar la suma y el producto de los nmeros pares comprendidos entre

    20 y 200 ambos inclusive. 10. Calcular el producto de los n primeros nmeros naturales, siendo n un nmero dado

    desde el teclado. 11. Calcular la suma de los nmeros impares 1 + 3 ++ 99, del 1 al 99. 12. Calcular la media de 12 nmeros e imprimir el resultado. * 13. Calcular los mltiplos de 4 comprendidos entre 4 y N, donde N es un valor

    introducido por teclado. 14. Se tienen encuestas y se desea determinar cuntos son hombres(H) y cuntas son

    mujeres(M), la ltima encuesta tiene como dato en sexo la letra (F) que significa fin. 15. Calcular el valor mximo de una serie de 100 nmeros. 16. Encontrar la nota mayor de un paquete de calificaciones, informar cuntos alumnos

    perdieron y cuntos ganaron, el ltimo tiene como calificacin el numero -1. 17. Leer 10 nmeros y determinar la media de los nmeros positivos y la media de los

    nmeros negativos; cambie el programa para ingresar 100 nmeros. 18. Leer 10 nmeros e imprimir la suma de los nmeros pares y la suma de los impares;

    cambie el programa para ingresar 100 nmeros.

  • MANUAL DE LGICA Y ALGORITMOS

    84

    19. Calcular el salario neto de n-empleados de una empresa cuyo trabajo se paga por

    horas y del siguiente modo: Las horas inferiores a 35 se pagan a una tarifa determinada que se debe introducir

    por teclado al igual que el nmero de horas, Las horas iguales o superiores a 35 se pagaran como extras a un precio de 1.5

    horas normales. Los impuestos a deducir a los trabajadores varan en funcin de su sueldo mensual:

    Sueldo < = 300.000 libre de impuestos Los siguientes 200.000 al 20% El resto 30%

    20. De un conjunto de encuestas determinar el nmero de hombres, como el nmero de

    mujeres mayores de 21 aos que habitan en una ciudad; el programa termina cuando se digite como dato edad 0.

    21. Leer las edades de los n-alumnos de una clase. Calcular la media y determinar

    cuantos alumnos son mayores de edad. 22. Una compaa le cobra a sus clientes, as:

    Si el cliente paga dentro de los primeros 10 das del mes, obtiene un descuento del 2% sobre la deuda. Si el cliente paga en los 10 das siguientes no tiene derecho a ningn descuento, es decir deber pagar exactamente la suma adeudada. Si paga dentro de los restantes das del mes, tendr que pagar un recargo del 2% sobre la deuda. Escribir el valor a pagar. Modifique el programa para ingresar los 5 cobros que se hacen en un da y sacar el informe diario.

    23. Un vendedor desea calcular la comisin que recibe sobre las ventas de varios

    artculos. Al vendedor le corresponde el 3% de comisin sobre artculos cuyo precio es menor de $200.000 y el 5% de comisin sobre aquellos artculos cuyo precio es de $200.000 o ms. El vendedor realiza 20 ventas diarias y desea saber cuantas ventas hace menores de $200.000 y cuantas de $200.000 o ms

    24. Un almacn tiene 3 secciones en donde se realizan n-ventas diarias. Leer el valor de

    la venta y la seccin donde se realiz el ltimo dato que se ingresa tiene como seccin la letra z. Calcular el promedio de las ventas de cada una de las secciones y las ventas totales realizadas en todo el almacn.

    25. Obtener el salario neto de cada uno de los n: trabajadores de una empresa. Leer el

    salario bsico, el porcentaje de seguridad social es de 2% sobre el salario bsico, bonificacin del 7% para los empleados cuyo salario bsico sea mayor a $500.000 y un 10% para salarios menores o iguales a $500.000. La empresa desea saber el promedio de los salarios netos mayores o iguales a $500.000 y cuntos trabajadores ganan menos de $500.000.

    26. Disear un programa que permita visualizar las tablas de multiplicar del 1 hasta la

    del N, con multiplicador hasta el 10. 27. Calcular la nota media de los alumnos de una clase considerando n-nmeros de

    alumnos y c-nmeros de notas por cada alumno. 28. Calcular el factorial de n-nmeros ledos por teclado.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    85

    4.5 PROCEDIMIENTOS Y FUNCIONES (SUBPROGRAMAS) La mayor parte de los programas resuelven problemas complejos son mucho ms largos que los desarrollados hasta el momento. La mejor forma de desarrollar y mantener un programa grande es construirlo a partir de piezas menores, llamados mdulos o subprogramas, que permite dividir problemas complejos en problemas mas pequeos, siendo cada uno de ellos mas fciles de construir que el programa original. Los subprogramas son unidades de programa o mdulos que estn diseados para ejecutar una tarea especfica. Estos subprogramas pueden ser de dos tipos: funciones o procedimientos, llamados tambin subrutinas. La ventaja de usar funciones o procedimientos en un programa es que se escriben solamente una vez, pero pueden ser referenciados para utilizarse desde diferentes puntos de un programa de modo que se evita la duplicidad innecesaria de cdigo. Las funciones contienen varias sentencias bajo un mismo nombre, que un programa puede utilizar una o ms veces.

    Un programa se puede componer de varias funciones, cada una de las cuales realiza una tarea principal. Las funciones se pueden llamar desde cualquier parte del programa. Las funciones no se pueden anidar, esto significa que una funcin no se puede declarar dentro de otra funcin.

    La estructura de un programa que utiliza funciones y/o procedimientos es la siguiente:

    Algoritmo principal() inicio fin nombre procedimiento/funcin ( arg1: tipo1, ...) inicio fin_procedimiento/funcin

    donde,

    Programa Principal

    Funcion1 Funcion2 Funcion3

    FuncionA FuncionB

  • MANUAL DE LGICA Y ALGORITMOS

    86

    : Es el conjunto de funciones y procedimientos declarados que se usarn en el programa. Algoritmo principal: : Es el conjunto de variables que son usadas nicamente por el algoritmo principal, es decir, por el algoritmo que hace llamados a las funciones y/o procedimientos. : Algoritmo principal. procedimiento/funcin: : es el conjunto de variables que son usadas nicamente en el procedimiento o funcin. : De la funcin o procedimiento.

    4.5.1 Funciones

    Matemticamente una funcin es una operacin que toma uno o ms valores llamados argumentos y produce un valor denominado resultado. Por ejemplo:

    237)( xxf = La funcin anterior se llama f, el argumento es x. Para evaluar f debemos darle un valor a x, para calcular el resultado.

    Algunas funciones pueden tener ms de un argumento. Cada lenguaje de programacin tiene sus propias funciones incorporadas, llamadas funciones internas; por ejemplo raz cuadrada, logaritmo natural, etc.

    Las funciones definidas por usuario, llamadas funciones externas, permiten realizar tareas que las funciones internas no pueden realizar. Por ejemplo, calcular los costos de produccin de una empresa que estn dados por la siguiente ecuacin:

    2001.03.150 xxC ++= o imprimir la factura de venta de un artculo.

    Una funcin, desde el punto de vista de la programacin, se define como un proceso que recibe valores de entrada (llamados argumentos) y retorna o devuelve un valor resultado. Adicionalmente, las funciones se pueden invocar (ejecutar), desde cualquier parte del programa principal o desde otra funcin, cuantas veces sea necesario.

    El programa llama o invoca a la funcin por su nombre, seguida de una lista de argumentos que deben coincidir en cantidad, tipo y orden con la definicin.

    La forma en que se declara una funcin es la siguiente:

    Nombre_ funcion ( arg1 , ..., argn)

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    87

    inicio retorne fin_funcion Por ejemplo, en un algoritmo se puede invocar varias veces una funcin para que calcule una ecuacin determinada. De esta manera se define solamente una vez la funcin que al ser invocada ejecute dicho cdigo. EJEMPLOS Ejemplo 1. Crear una funcin que retorne el cuadrado de un nmero funcion cuadrado( a ) Inicio retorne a*a fin_funcion Ejemplo 2. Crear una funcin que retorne el valor mnimo de tres nmeros. funcion minimo( a, b, c ) Var m Inicio si (a

  • MANUAL DE LGICA Y ALGORITMOS

    88

    4.5.2 Procedimientos Los procedimientos realizan instrucciones que no retornan valores, solo realizan procesos. Por ejemplo aceptar los datos de una factura para producir un formato adecuado para impresin, escribir en pantalla, modificar variables, leer datos, etc. Un procedimiento se define de la siguiente manera: Nombre_procedimiento ( arg1: tipo1, ...) inicio fin_procedimiento EJEMPLO Crear un procedimiento que escriba el mensaje Ejemplo de la utilizacin de un procedimiento. Procedimiento Mensaje() Inicio Escribir Ejemplo de la utilizacin de un procedimiento Fin_procedimiento La forma en que se puede invocar un procedimiento es similar al de una funcin: Nombre_ procedimento ( lista de parmetros actuales ) Ejemplo: Leer un nmero, si el nmero es positivo llamar el procedimiento Mensaje. Inicio Leer A Si (A>=0) entonces Mensaje() Fin_si Fin

    4.5.3 Argumentos por valor y por referencia La lista de parmetros (argumentos) que se mencionan en una funcin o un procedimiento cuando se invoca, se define o se declara, deben corresponder exactamente en cantidad y tipo. Cada vez que se llama una funcin desde el algoritmo principal se establece automticamente una correspondencia entre los parmetros formales de la funcin y los parmetros actuales del programa principal; esto es a cada parmetro formal se le asigna

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    89

    el valor real de su correspondiente parmetro actual (argumento por valor o llamada por valor). Procedimiento calculo (A,B,C) Inicio Fin Inicio Escribir calculo(numero,aos,tasa) Fin Argumentos por valor: los argumentos convencionales son por valor, es decir a la funcin o procedimiento se le enva un valor que almacena en la variable correspondiente al argumento, la cual es local, de manera que su modificacin no tiene efecto en el resto del programa. Argumentos por referencia: s un procedimiento tiene un argumento por referencia, este no recibe un valor, sino una referencia a una variable, es decir la misma variable (posicin en memoria y valor) que enva el algoritmo, hace el llamado al procedimiento con un alias (el nombre de la variable del argumento que se recibe por referencia), por lo tanto cualquier modificacin del argumento tiene efectos en el algoritmo que realiz el llamado del procedimiento. Cuando se ejecuta un procedimiento con uno o varios argumentos por referencia, ni un literal ni una constante se pueden poner en la posicin de alguno de estos argumentos, es decir, ni las constantes ni los literales pueden ser pasados a un procedimiento por referencia. Un argumento por referencia se especifica anteponiendo la palabra referencia a su definicin. En el siguiente ejemplo el argumento A es pasado por referencia y el argumento B es pasado por valor: procedimiento Proc ( referencia A , B) inicio fin_procedimiento

    4.5.4 Variables locales y globales (mbito) Las variables utilizadas en los programas principales y subprogramas se clasifican de dos tipos: Locales y globales. La parte del programa o algoritmo en que una variable se define se conoce como mbito. El mbito de una variable o constante es la parte del programa donde se conoce, los lenguajes que admiten variables locales y globales suelen tener la posibilidad explcita de definir dichas variables en las cabeceras de los programas, para las globales y en los cuerpos de las funciones para las locales.

  • MANUAL DE LGICA Y ALGORITMOS

    90

    Variables Globales: Variables definidas al comienzo del programa (antes de cualquier funcin), que se pueden usar a lo largo de todo el programa, es decir, dentro del algoritmo principal y en cada funcin definida en el programa. Variables Locales: Variables que son definidas dentro de cada funcin y/o procedimiento, y que solo se pueden usar en la funcin y/o procedimientos en la que son declaradas. Una buena tcnica de programacin es no usar o usar la menor cantidad de variables globales, de tal forma que las funciones y/o procedimientos que se creen no dependan de elementos externos, en este caso las variables globales, para realizar su proceso. El no usar variables globales dentro de una funcin y/o procedimiento garantiza su fcil depuracin y seguimiento. Algoritmo principal() Inicio fin EJEMPLO: Funcion F() Var global A Inicio X 5 A 10 Y F(X) Escribir X,A,Y Fin Funcion F(N) Inicio A 5 X 12 F N+5 retorne F Fin_Funcion A la variable global A se puede acceder desde el programa principal y desde la funcin. Las variables locales X, son dos variables distintas: una local al programa y otra local a la funcin. Al ejecutar el programa anterior las variables asumen en primera instancia los siguientes valores:

    X (programa principal) A (variable global) 5 10

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    91

    Y=F(5), invoca la funcin F(N) que realiza un paso del parmetro actual X al parmetro formal N. En la funcin se modifica el valor de la variable global A a 5 y la variable X de la funcin asume el valor de 12; note que este valor no afecta la variable X del programa principal. Finalmente F asume el valor 10 ya que F=5+5 porque se pasa el valor del argumento X(5) a travs del parmetro N Al terminar el programa las variables conservan los siguientes valores: A(variable global) X(programa principal) X(funcin) Y(programa principal) F(funcin)

    5 5 12 10 10 Y el programa imprimir la lnea 5 5 10

  • MANUAL DE LGICA Y ALGORITMOS

    92

    TALLER No. 7 1. Disear un algoritmo que contenga una funcin que calcule la media de tres

    nmeros ledos desde el teclado. 2. Disear un algoritmo que lea los datos desde el programa principal y contenga un

    procedimiento para calcular e imprimir: Xn para X variable real y n variable entera.

    3. Realizar un procedimiento que realice la conversin de coordenadas polares(r,) a

    coordenadas cartesianas (x,y). x = r Cos y = r Sen 4. Escribir una funcin para un algoritmo que permita calcular el salario bsico de un

    trabajador para un nmero dado de horas y un salario hora. Las horas que superen las 40 se pagarn como extras a un valor de 2 veces el salario hora.

    5. Elaborar un algoritmo que permita rpidamente hacer los clculos para resolver el

    siguiente problema:

    Un cazador acostado en el suelo lanza varias veces una flecha con ngulos () de 60, 40, 20 y 10, con una velocidad de 20m/s. Calcular la altura mxima que alcanza la flecha. Por ejemplo: Si el ngulo es 60, se resuelve de la siguiente forma: Altura Mxima

    msm

    sensmg

    senvy 3,15)/8,9(260)/20(

    2 22222

    0max ===

    Tiempo de vuelo

    ssmsensm

    gsenvtv 53,3/8,9

    60)/20(222

    0 ===

    El programa debe contener: a) Una variable global pi, que almacene el valor 3,141594. Una variable global g, que almacene el valor 9,8. b) Una funcin de usuario que convierta los grados en radianes y retorne este ltimo valor para hacer los clculos de la funcin seno.

    radianes = 180

    c) Un procedimiento para calcular e imprimir la altura mxima que alcanza la flecha. d) Un procedimiento para imprimir el resultado.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    93

    4.6 ARREGLOS (ARRAYS) Para resolver algunos problemas es necesario que algunos programas manejen datos del mismo tipo; los arreglos nos permiten mantener en memoria estos datos sin necesidad de disponer de una variable por cada elemento, adems almacenar y manipular grandes cantidades de datos. En general se puede visualizar un arreglo de la siguiente forma:

    12 16 8 10 15 24 14 9 10 12 El anterior arreglo est compuesto por 10 elementos (posiciones). En cada elemento se almacena un nmero entero. Un arreglo se puede definir como una variable que est compuesta por varios elementos del mismo tipo, es un conjunto finito y ordenado de elementos homogneos. El tipo de dato almacenado en un arreglo puede ser cualquiera: numrico, carcter o lgico. Por ejemplo podemos almacenar en un arreglo los nombres de los estudiantes de un curso, la temperatura mnima registrada en una ciudad durante una semana o las coordenadas de una figura en el plano cartesiano. Los arreglos son un conjunto de variables que en la memoria ocupan posiciones continuas de almacenamiento que tienen el mismo nombre. El grupo de variables que conforman un arreglo tienen las mismas caractersticas, es decir, son de la misma clase (numrica o alfanumrica); y adems tienen el mismo tamao. Los elementos de un arreglo se numeran consecutivamente 0, 1, 2, 3, 4, ... Estos nmeros se denominan ndices o subndices del arreglo. Si el nombre del arreglo es a, entonces a[0] es el nombre del elemento que est en la posicin 1, a[1] es el nombre del elemento que est en la posicin 2. En general, el elemento i-simo, a[i], est en la posicin i+1. Por ejemplo:

    talla POSICION 1 2 3 4 5 6 7 8 9 10 ELEMENTO talla[0] talla[1] Talla[9] Esto es el arreglo talla tiene 10 elementos: talla[0] contiene 1.65, talla[1] contiene 1.35, talla[2] contiene 1.45, talla[3] contiene 1.65 y as sucesivamente, el ltimo elemento, talla[9] contiene 1.60. Los arreglos pueden ser: unidimensionales y bidimensionales. A los arreglos de una dimensin se denominan listas o vectores, a los de dos dimensiones se les llama tablas o matrices, a los de ms dimensiones se les denomina arreglos de n dimensiones.

    1.65 1.35 1.45 1.65 1.23 1.66 1.42 1.50 1.75 1.60 CONTENIDO

  • MANUAL DE LGICA Y ALGORITMOS

    94

    4.6.1 Arreglos unidimensionales Los arreglos de una dimensin, llamados tambin listas o vectores, permiten almacenar datos que tienen las mismas caractersticas. Se caracterizan por tener un solo subndice. Por ejemplo: nombres, sueldos, edades, temperatura, talla, etc. Las cantidades que se muestran a continuacin pueden considerarse como los elementos de un arreglo unidimensional. 21, 14, 15, 80, 17, 20, 30 Donde, cada elemento representa la edad de una persona. Si a este conjunto (lista o vector) de datos se le asigna el nombre EDADES, se puede referenciar a cualquier elemento del arreglo.

    21 14 15 80 17 14 20 30 La referencia a sus elementos sera:

    EDADES[0] = 21 EDADES[1] = 14 EDADES[2] = 15 EDADES[3] = 80 EDADES[4] = 17 EDADES[5] = 14 EDADES[6] = 20 EDADES[7] = 30

    EJEMPLO Elaborar un algoritmo para cargar en memoria 10 elementos en un arreglo que se ingresan por teclado, a continuacin; calcular y escribir la suma de los nmeros. VARIABLES: Nu: arreglo de 10 elementos donde almacenan los nmeros Cont: Variable individual que cuenta los nmeros que se han almacenado. Sum: Variable individual que contiene el valor de la suma de los nmeros.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    95

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio Defina Nu[10] Cont 0 Mientras (Cont < 10) hacer Leer Nu [Cont] Contador Cont + 1 Fin Mientras Cont 0 Sum 0 Mientras (Cont < 10) hacer Sum Sum + Nu[Cont] Cont Cont + 1 Fin Mientras Escribir Sum Fin

    4.6.2 Arreglos bidimensionales Los arreglos de dos dimensiones, llamados tambin tablas o matrices, se caracterizan por tener dos ndices. Por ejemplo: nombres por dependencia, sueldos por rangos, edades por estrato, temperatura por zonas, talla por edades, etc. Las cantidades que se muestran a continuacin pueden considerarse como los elementos de un arreglo bidimensional. En el siguiente ejemplo: El nombre del arreglo es a, es un arreglo de cuatro filas por tres columnas, para un total de doce elementos.

  • MANUAL DE LGICA Y ALGORITMOS

    96

    Columna 0 Columna 1 Columna 2 Fila 0 a[0][0] a[0][1] a[0][2] Fila 1 a[1][0] a[1][1] a[1][2] Fila 2 a[2][0] a[2][1] a[2][2] Fila 3 a[3][0] a[3][1] a[3][2]

    Cada uno de los elementos de a, est identificado por un nombre de elemento de la forma: a[i],[j], donde i corresponde a la fila y j a la columna.

    Columna 0 Columna 1 Columna 2 Columna 3 Fila 0 900 600 755 280 Fila 1 400 450 615 715 Fila 2 300 680 420 690 Fila 3 250 550 150 800

    Cada elemento representa el cdigo de un trabajador cualquiera. Si a este conjunto de cdigos organizados por filas y columnas, se le asigna el nombre IDENTI, se puede hacer referencia a cualquier elemento del arreglo bidimensional agregando al nombre IDENTI, dos nmeros separados por una coma y encerrados entre parntesis (subndices). El primer nmero indica siempre la fila a la cual se hace referencia, y el segundo indica la columna.

    IDENTI[2],[3] = 690 IDENTI[2],[0] = 300 IDENTI[3],[3] = 800 IDENTI[0],[3] = 280

    En este otro ejemplo el arreglo tiene 30 elementos.

    65 35 45 65 23 66 42 50 75 60 45 40 42 50 35 52 48 43 52 50 18 14 15 17 13 16 14 16 17 15

    El arreglo datos tiene 30 elementos: datos[0],[0] contiene 65, datos[0],[1] contiene 35, datos[0],[2] contiene 45, datos[1],[3] contiene 50 y as sucesivamente, el ltimo elemento, datos[2],[9] contiene 15. EJEMPLO Elaborar un algoritmo para guardar en la memoria las notas de 20 estudiantes de un curso en las siete asignaturas que toman. VARIABLES:

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    97

    NOTA : Arreglo bidimensional que almacena las notas de los 20 estudiantes del curso en las siete asignaturas.

    J : Variable individual que se utiliza para modificar los sub-ndices que maneja las filas. K: Variable individual que se utiliza para modificar los sub-ndices que maneja las

    columnas.

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio Defina NOTA[20],[7]

    para J 0 hasta 20 hacer para K 0 hasta 7 hacer Leer NOTA[J],[K] fin_para fin_para

    fin

  • MANUAL DE LGICA Y ALGORITMOS

    98

    4.6.3 Ejercicios resueltos 1. Definir un vector que contenga las edades de 10 alumnos. Calcular y escribir la

    cantidad de alumnos mayores de edad y la cantidad de menores de edad. Variables: EDAD: Vector X: Sub-ndice C1: Cantidad de mayores de edad C2: Cantidad de menores de edad

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio C1 0 C2 0 para X 0 hasta 9 hacer leer EDAD[X] si (EDAD[X] >= 18) entonces C1 C1+1 sino C2 C2 + 1 fin_si

    fin_para escribir C1,C2

    Fin

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    99

    2. Definir una matriz de 3*3 que contenga las definitivas de un curso. Calcular y escribir la cantidad de alumnos que perdieron la materia. Las definitivas se encuentran en el rango de 1.0 a 5.0

    Variables: NOTAS: Matriz X: Sub_ndice que maneja las filas de la matriz Y: Sub_ndice que maneja las columnas de la matriz PER: Cantidad de alumnos que perdieron

    PSEUDOCODIGO

    DIAGRAMA DE FLUJO

    Inicio PER 0 para X 0 hasta 2 hacer para Y 0 hasta 2 hacer leer NOTAS[X][Y] si (NOTAS[X][Y] < 3.0) entonces PER PER+1 fin_si fin_para

    fin_para escribir PER

    Fin

  • MANUAL DE LGICA Y ALGORITMOS

    100

    TALLER No. 8 1. Transferir los valores de un vector B de 10 elementos a un vector A. 2. Llenar un vector A con enteros consecutivos. 3. Llenar un vector V de 10 elementos con los cuadrados de los 10 primeros

    elementos. 4. Calcular la sumatoria de un vector de 15 elementos, as como la media aritmtica. 5. Determinar el nmero de elementos positivos de una tabla de 20 elementos. 6. Determinar la posicin del elemento ms grande de una tabla de 20 elementos. 7. Calcular la nota media de los 20 alumnos de una clase. Determinar cuntas notas

    son ms altas que la media y cuntas ms bajas que dicha media. 8. Se tiene una tabla T de 6 filas por 3 columnas. Calcular la suma de todos sus

    elementos. 9. Sumar el nmero de elementos positivos y el de negativos de una tabla T de 20

    elementos. 10. Leer una matriz de 3 por 3 elementos y calcular la suma de cada una de sus filas y

    columnas, en vectores de tres elementos. 11. Calcular la media de 20 nmeros contenidos en una matriz de 10 filas por 2

    columnas, e informar cuntos son positivos, cuantos negativos y cuantos son ceros.

  • UNIVERSIDAD MILITAR NUEVA GRANADA CENTRO DE SISTEMAS

    101

    4.7 REGISTROS Y ARCHIVOS

    4.7.1 Registros Un registro es una estructura de datos compuesta por campos que pueden contener diferentes tipos de datos. Por ejemplo se tiene un registro llamado ALUMNO, formado por los campos: codigo, nombre, direccion, telefono. Los registros se crean con el fin de agrupar informacin en un mismo sitio de memoria con un mismo nombre ALUMNO. La forma en que se declara el registro es la siguiente: Estructura ALUMNO Var codigo, nombre, direccion,telefono Fin Estructura Podemos asignar a una o ms variables el tipo de dato de un registro, estas variables se denominan variables compuestas, y para referenciarlas se debe tener en cuenta su nombre y el componente: NombreVariable.nombrecampo EJEMPLO ALUMNO Al1, Al2 En el anterior caso las variables Al1 y Al2 puede almacenar los siguientes valores: codigo, nombre, direccion y telefono, para hacer referencia a cada uno de los campos, se realiza de la siguiente forma: Al1.codigo, para hacer referencia al codigo del registro Al1 Al2.codigo hace referencia al cdigo del registro Al2.

    4.7.2 Arreglo de registros Es muy parecido a un archivo de datos, se diferencian en que los archivos residen en memoria auxiliar y los arreglos de registros en memoria principal. En este se puede tener datos de diferente tipo mientras que en los arreglos normales es necesario tener datos del mismo tipo. Una ventaja grande de este tipo de arre