Beruflich Dokumente
Kultur Dokumente
ITSLP/2013-1
2013
2013
Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos: Los resultados esperados. Los datos de entrada disponibles. Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (frmulas, tablas, accesorios diversos). Una medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la computadora deduciendo los elementos que necesitaremos para alcanzar el resultado. Ejemplo 2.1 Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia. Anlisis Las entradas de datos en este problema se concentran en el radio del crculo. Dado que el radio puede tomar cualquier valor dentro del rango de los nmeros reales, el tipo de datos radio debe ser real. Las salidas sern dos variables : superficie y circunferencia que tambin sern de tio real. Entradas : Radio del crculo (variable RADIO). Salidas : Superficie del crculo (variable AREA). Circunferencia del crculo (variable CIRCUNFERENCIA). Variables : RADIO, AREA, CIRCUNFERENCIA tipo real.
2013
obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos. Esta etapa incluye la descripcin del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programacin. Como puede verse, solo se establece la metodologa para alcanzar la solucin en forma conceptual, es decir ; sin alcanzar la implementacin en el sistema de cmputo. De acuerdo al ejemplo 2.1 tenemos que la informacin proporcionada constituye su entrada y la informacin producida por el algoritmo constituye su salida. Los problemas complejos se pueden resolver ms eficazmente por la computadora cuando se dividen en subproblemas que sean ms fcil de solucionar. El problema de clculo de la longitud y superficie de un crculo se puede descomponer en subproblemas ms simples : Leer datos de entrada. Calcular superficie y longitud. Escribir resultados (datos de salida).
2.4 Codificacin
Se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la mquina. Incluye una etapa que se reconoce como compilacin. Si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso conocido como transcripcin.
Pgina 3
2013
Programa Fuente Esta escrito en un lenguaje de programacin. (pascal, C++,Visual Fox, Visual Basic, etc). Es entendible por el programador. Programa Ejecutable Est en lenguaje mquina. Entendible por la mquina.
2.6 Documentacin
Unidad 2/Ing. Hctor Bazarte Torres Pgina 4
2013
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilizacin para resolver problemas del tipo que di origen a su diseo. En vista de que esta utilizacin no podr ser supervizada en todas las ocasiones por el programador, debe crearse un manual o gua de operacin que indique los pasos a seguir para utilizar el programa.
2.7 Mantenimiento
Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias as lo requieran. Este programa deber ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operacin. Cualquier actualizacin o cambio en el programa deber reflejarse en su documentacin
2013
Inicio Declarar variables o contantes: PI = 3.1416; Programa principal Escribir (Dame el valor del radio); Leer (radio); Area=Radio *Radio *PI; Escribir (El area del circulo fue de :,Area); Fin
Codificacin
Transformar el pseudocdigo en su equivalente cdigo de un lenguaje de programacin, en este caso, bajo el paradigma estructurado, empleando el LP llamado C, como a continuacin se indica.
#include <stdio.h> #define PI 3.1416 /* definicin de constante */ *********/ *********/ *********/ *********/ *********/
/***Programa que recibe el valor del radio de un crculo , calcula y /***y muestra por pantalla, el correspondiente valor del rea. /***Elabor: Hctor Bazarte Torres /***Fecha: 12-09-2012 /***Materia: ALP
main (){
Pgina 6
2013
Compilacin y ejecucin
Se trata de transformar el programa fuente, escrito en un lenguaje fuente (C), en su equivalente programa objeto, escrito en lenguaje de mquina (proceso llamado compilacin). A travs del men Ejecutar, opcin compilar. En l se obtiene un cdigo: Libre de errores de escritura (de sintaxis o llamados sintcticos), principalmente. Luego, se verifica que el programa haga lo que se supone debe de hacer (se dice correr el programa). A travs del men Ejecutar.
Verificacin
Se complementa la fase anterior de pruebas, ampliando las alternativas de las corridas, con diferentes valores. Se corrigen errores de ejecucin.
Depuracin
Se corrigen los errores de lgica o de ejecucin del programa.
Mantenimiento y documentacin
Se documenta el programa: comentarios, manuales de usuario o de operacin del programa/sistema.
Pgina 7
2013
Elementos y reglas de la representacin grfica y manuscrita de los algoritmos (diagramas de flujo, pseudocdigo, diagramas N-S). "TENICAS PARA LA FORMULACION DE ALGORITMOS"
Las tcnicas analizadas en la unidad anterior permiten un diseo global del algoritmo, pero ocasionalmente pueden desatender detalles especficos de este. Las tres tcnicas de formulacin de algoritmos ms populares son : Diagrama de flujo Pseudocdigo Diagramas estructurados
Diagramas de Flujo
Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente. SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO
Smbolo Funcin
Pgina 8
2013
Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en concepto de impuestos (20 por 100).
Pgina 9
2013
Ejemplo: Realizar un diagrama de flujo que permita mostrar en pantalla un mensaje de mayora o minora de edad segn sea el caso para un nombre especfico.
Pgina 10
2013
Pseudocdigo
Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil. El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar bsicamente las estructuras de control de programacin estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora.
Pgina 11
2013
La ventaja del pseudocdigo es que en su uso en la planificacin de un programa, el programador se puede concentrar en la lgica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Es tambin fcil modificar el pseudocdigo si se descubren errores o anomalas en la lgica del programa, adems de todo esto es fcil su traduccin a lenguajes como pascal, COBOL, C, FORTRAN o BASIC.
Proceso
Multiplicar Base y altura. Dividir resultado de la multiplicacin anterior entre dos. Mostrar resultado de divisin anterior.
Unidad 2/Ing. Hctor Bazarte Torres Pgina 12
2013
Algoritmo
Inicio Leer(B) leer(h) x A B*h x/2
Escribir(A) Fin
Ejercicio complementario #1
UN CLIENTE ACUDE A REALIZAR SUS COMPRAS A UN SUPERMERCADO O TIENDA DE ABARROTES, UNA VEZ QUE SELECCIONO SUS PRODUCTOS Y CANTIDADES DE LOS MISMOS, LLEGA A LA CAJA DE PAGO, DONDE UNA CAJERA A TRAVS DE UN ESCANER, IRA LEYENDO LOS CODIGOS DE BARRA DE CADA UNO DE LOS PRODUCTOS, ASI COMO, EN SU CASO, IRA TECLEANDO LA CANTIDAD DE CADA UNO DE ELLOS. AL TERMINAR DE LEER TODOS LOS PRODUCTOS, LA CAJERA LE COMUNICARA AL CLIENTE, LA CANTIDAD TOTAL A PAGAR, PERO ANTES DE ELLO, LE INFORMARA QUE LA TIENDA TIENE UNA PROMOCION QUE CONSISTE EN QUE SEGN LA FORMA DE PAGO, EXISTE UN PORCENTAJE DE DESCUENTO, ES DECIR, SI EL CLIENTE PAGA EN EFECTIVO SE LE HARA UN DESCUENTO DEL 5%, SI LO HACE CON TARJETA DE CREDITO SU DESCUENTO SERA DEL 10%, Y SI PAGA CON CHEQUE, SE LE REEMBOLSARA EL 15% DE SU PAGO TOTAL. PARA ELLO, EL CLIENTE DEBE DE INDICAR SU FORMA DE PAGO. AL FINAL, LA CAJERA DEBERA ENTREGARLE AL CLIENTE UNA FACTURA QUE CONTENGA LOS DATOS SIGUIENTES: CANTIDAD DE PRODUCTOS NOMBRE DEL PRODUCTO PRECIO UNITARIO SUBTOTAL DE CADA PRODUCTO EL SUBTOTAL DE LAS COMPRAS EL DESGLOSE DEL 15% IVA ( DERIVADO DE ANTES HABER HECHO EL DESCUENTO RESPECTIVO POR LA FORMA DE PAGO)
Pgina 13
2013
SI DESEA, INCLUYA EN SU FACTURA DATOS DEL CLIENTE (NOMBRE, APELLIDOS, DIRECCION, TELEFONO, ETC.).
TIPOS DE DATOS
Ejercicio 1 - Clasificar datos (Tipos de datos - Pseudocdigo CEE) Clasifique los siguientes datos en simples y compuestos: El nmero de botones de una camisa. La altura de una torre. Los datos de una cuenta bancaria. El nmero de pasajeros de un avin. El resultado de hacer una apuesta (ganar o perder). La capital de Canad. La letra 'b' escrita en mayscula.
Solucin del Ejercicio 2 - Palabras reservadas (Tipos de datos - Pseudocdigo CEE) Cules son palabras reservadas en pseudocdigo CEE? Son palabras reservadas en pseudocdigo CEE: cadena entero real verdadero
No lo son: carcter debera ser caracter (sin tilde) compuesto es un tipo de dato, pero no una palabra reservada faslo debera ser falso lgico debera ser logico (sin tilde) numerico es un tipo de dato, pero no una palabra reservada simple es un tipo de dato, pero no una palabra reservada
Ejercicio 3 - Tipos de datos simples (Tipos de datos - Pseudocdigo CEE) De la lista siguiente: dato booleano dato cadena dato enumerado
Pgina 14
2013
_*_*_
47_ejercicio Costa Rica aErOnAvE
Ejercicio 2 - Declaraciones (Identificadores, variables y constantes - Pseudocdigo CEE) En pseudocdigo CEE, cules de las siguientes declaraciones de constantes y variables son correctas? 1) caracter = u 2) vocal = i 3) letra j 4) cadena = "nombre" 5) entero numero = 7.0 6) 888.8 7) cadena variable 8) verdadero 9) nueve = 9 10) logico CIERTO 11) interruptor = falso 12) _123 = "un dos tres"
Pgina 15
2013
Ejercicio 3 - En memoria (Identificadores, variables y constantes - Pseudocdigo CEE) Dadas las siguientes declaraciones de constantes y variables: UNO = 1 DOS = '2' FECHA = "20/7/2007" BARRAS = "\\/\\/" PI = 3.141592 entero numero1 = 2, numero2 = 3 logico a = falso
OPERDADORES Y EXPRESIONES
Ejercicio 1 - Evaluacin de expresiones (Operadores y expresiones - Pseudocdigo CEE) Dadas las siguientes declaraciones: TRES = 3 entero a = 5, b = 4 real x = 5e-2, y = 2.
qu valores se obtienen de evaluar las siguientes expresiones? 1) a = b mod TRES 2) 6 div TRES < TRES mod 6 3) TRES + b - 1 <> a o b >= -b * a y a ** 2 <= 10 4) x * y * 10 = 10.E-1
Pgina 16
2013
qu valores se obtienen de evaluar las siguientes expresiones? 1) G ** ALBERTO > i 2) letra > 'd' o CUATRO < numero 3) ( c + DOS * F - a ) ** b = -125 4) j div a >= OSCAR
Pgina 17
2013
qu valores se habrn almacenado en la memoria del ordenador para los objetos declarados? Ejercicio 2 - Salida por pantalla (Asignacin, salida y entrada - Pseudocdigo CEE) A partir de las declaraciones: C = "xyz" cadena letras entero a = 12, b = 3 real k
al escribir las siguientes instrucciones: k a / ( b * 8 ) letras "A" + "B" + C escribir( "El valor de k es:", k ) escribir( letras ) a b ** b div a escribir( a / k > k * a )
ESTRUCTURA DE UN ALGORITMO
Ejercicio 1 - rea de un tringulo (Estructura de un algoritmo - Pseudocdigo CEE) Disee el algoritmo (en pseudocdigo) de un programa que: 1) Pida por teclado la base (dato real) de un tringulo. 2) Pida por teclado la altura (dato real) de un tringulo. 3) Calcule el rea del tringulo. 4) Muestre por pantalla el resultado (dato real).
Pgina 18
2013
1) Pida por teclado dos nmeros (datos enteros). 2) Muestre por pantalla el resultado de realizar la divisin entera del primer nmero introducido por el usuario entre el segundo, y el resto.
En pantalla: Introduzca dividendo (entero): 39 Introduzca divisor (entero): 5 39 div 5 = 7 ( Resto = 4 ) Nota: Se entiende que el usuario no introducir un divisor igual a cero.
Ahora responde a las siguientes cuestiones: a) Qu valor contiene A despus de la cuarta instruccin? b) Qu valor contiene B despus de la quinta instruccin? c) Qu valor contiene A despus de la sexta instruccin? d) Qu valor imprime la ltima instruccin? e) Si en lugar de Imprimir(A) hubisemos escrito Imprimir(A) Qu aparecera?
Unidad 2/Ing. Hctor Bazarte Torres Pgina 19
2013
Ahora responde a las siguientes cuestiones: a) Qu valor contiene D despus de la cuarta instruccin? b) Qu valor contiene E despus de la quinta instruccin? c) Qu valor contiene F despus de la sexta instruccin? d) Cunto valen A, B y C despus de la ltima instruccin? Ejercicio 3: Observa la siguiente secuencia de instrucciones: 1. 2. 3. 4. 5. 6. leer(A) leer(B) leer(C) D = (A == B) E = (A <> B) F = (MOD(B/A) >= C)
Ahora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C a) b) c) d) Qu valor contiene D despus de la cuarta instruccin? Qu valor contiene E despus de la quinta instruccin? Qu valor contiene F despus de la sexta instruccin? Cunto valen A, B y C despus de la ltima instruccin?
Ejercicio 4: Observa la siguiente secuencia de instrucciones: 1. 2. 3. 4. 5. 6. 7. leer (A) resultado = 1 mientras (A>1) resultado = resultado * A A=A1 fin mientras imprimir(resultado)
Ahora responde a las siguientes cuestiones: a) Si en la primera instruccin se introduce un valor 2 en A Qu valor se imprime? b) Si en la primera instruccin se introduce un valor 3 en A Qu valor se imprime?
Unidad 2/Ing. Hctor Bazarte Torres Pgina 20
2013
c) Si en la primera instruccin se introduce un valor 4 en A Qu valor se imprime? d) Qu se est calculando? Ejercicio 5: Observa la siguiente secuencia de instrucciones: 1. 2. 3. 4. 5. 6. leer (A) Si (A>0) Imprimir (A,es positivo) Si no Imprimir (A,es negativo) Fin si
a) Describe, instruccin por instruccin, qu se est haciendo con este algoritmo. b) Qu pasa si A = 5? Y si A = - 100? c) Escribe otro algoritmo para distinguir mltiplos de 3 y compralo Ejercicio 6: Observa la siguiente secuencia de instrucciones:
1. 2. 3. 4. 5. 6. 7. leer (NumeroA) leer (NumeroB) Si (NumeroA < NumeroB) imprimir ("El mayor es:", NumeroB) si-no imprimir ("El mayor es:", NumeroA) fin-si
a) Describe qu se est haciendo con este algoritmo. b) Qu pasa si NumeroA = 5 y NumeroB = - 100? c) Qu pasa si NumeroA = 10 y NumeroB = 100? d) Qu pasa si NumeroA = 10 y NumeroB = 10?
Pgina 21