Un problema se puede resolver ms eficazmente cuando se rompe el problema
original en subproblemas. Este mtodo se conoce como Divide y Vencers, es decir dividir un problema complejo en otros ms simples. Ventajas de la prograaci!n od"lar El problema se comprende ms fcilmente al dividirse en partes ms simples denominadas mdulos. Las modificaciones en los mdulos son ms fciles. La comprobacin del problema se puede verificar fcilmente. Mod"lo principal Se trabaja con un modulo principal, el cual contiene operaciones !o tambin las llamadas a otros mdulos. "or ejemplo# Un algoritmo $ue promedia % n&meros ingreasados. 'nicio Entrada (nota),nota*,nota%+ "roceso (nota),nota*,nota%,prom+ Salida (prom+ ,in Entrada (nota),nota*,nota%+ Leer (nota),nota*,nota%+ ,in de la entrada "roceso(nota),nota*,nota%,prom+ - )- mod * -../ 0!1 ) )- mod % ).- %-!%- ) %- div %- -./ *.-!2.- 3 )1 div * -.*/ )!2 % )- div % %./ )-./!%.- 4esultado E5presin 4esultado E5presin E5ponenciacin 6 4esiduo mod 7ivisin entera div 7ivisin real ! 8ultiplicacin 9 4esta : Suma ; Operaci!n Operador raizcuadrada 4aiz cuadrada suma<nota) ; nota* ; nota% prom< suma!% ,in del proceso Salida(prom+ Escribir (prom+ ,in de la salida OP#RADOR#$ % OP#R&NDO$ Un operador es el s=mbolo $ue determina el tipo de operacin o relacin $ue >abr de establecerse entre los operandos para alcanzar un resultado. Los operadores se clasifican en tres grupos# ). ?ritmticos. *. 4elacionales. %. Lgicos. '( Operadores Arit)ticos Son a$uellos $ue permiten la realizacin de clculos aritmticos. Utilizan operndos numricos proporcionan resultados numricos. En caso de realizar ms de una operacin aritmtica, utilizar los parntesis para agrupar las operaciones $ue se realizarn primero. "or ejemplo# 2 ; )* !* < )- (sin agrupar+ (2 ; )*+ !* < 1 (con agrupador+ Operadores div y od El s=mbolo ! se utiliza para la divisin real, el operador div representa la divisin entera. *( Operadores Relacionales "ermiten realizar comparaciones de valores de tipo numrico o carcter. Estos operadores sirven para e5presar las condiciones en los algoritmos. "roporcionan resultados lgicos. +( Operadores L!gicos Son a$uellos $ue permiten la combinacin de condiciones para formar una sola e5presin lgica. "roporcionan resultados lgicos. 7isuncin E5clusiva (@!S@L@+ 5or 7isuncin (@+ or Aonjuncin (B+ and Cegacin (Co+ not Relaci!n Operador 7iferente de DE 8aor o igual $ue E< 8enor o igual $ue D< 'gual $ue < 8aor $ue E 8enor $ue D $igni,icado Operador Ejemplos# Not - . / "roduce un error, a $ue el operador not se aplica a 2.
Not 0- . '-1 "roduce un valor verdadero. 0'(2341 And 04351 Si 5 vale . z vale 2, se obtiene un valor falso. #N6RADA % $ALIDA D# IN7ORMACI8N #N6RADA % $ALIDA D# IN7ORMACI8N Los clculos $ue realizan las computadoras re$uieren los datos de Entrada necesarios para ejecutar las operaciones $ue posteriormente se convertirn en resultados, es decir, Salida. Las operaciones de entrada permiten leer determinados valores asignarlos a determinadas variables. Esta entrada se conoce como operacin de Lectura (read+. Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, unidades de disco, etc+. La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc+. La operacin de salida se denomina escritura (Frite+. En la escritura de algoritmos las acciones de lectura escritura se representan por los formatos siguientes# leer ( ComGvariable + escribir (lista de variables de salida+, escribir (Hte5toI+ Solo uno de los operandos es verdadero J@4 ?l menos un operando es verdadero @4 ?mbos operandos son verdaderos ?C7 El operando es falso C@K $e o9tiene Verdadero si: , L L , , V V L L , , L V 7 L L , L , 7 V , , , L L 7 7 ; ;OR % ; OR % ; AND % NO60%1 NO60;1 % ; #$6RUC6URA$ <A$ICA$ D# PROGRAMACI8N Secuenciales Selectivas 4epetitivas #VOLUCI8N D# LA PROGRAMACI8N Prograaci!n Lineal Prograaci!n #str"ct"rada Prograaci!n Mod"lar Prograaci!n Orientada a O9jetos Progra( Orie ntad a a Aspe ctos o # c"aciones lineales o #str"ct" ra $ec"encial o #str"ct" ra $electiva o #str"ct" ra Repetitiva o #( $ec"encial o #( $electiva o #( Repetitiva = o 7"n ciones o Pro cediientos o #( $ec"encial o #( $electiva o #( Repetitiva o 7"n ciones o Pro cediientos = o Cla ses o O9j etos $"rgiiento de la prograaci!n estr"ct"rada ? finales de los aMos sesenta surgi una nueva forma de programar $ue no solamente daba lugar a programas fiables eficientes, sino $ue adems estaban escritos de manera $ue facilitaba su comprensin posterior. Un famoso Keorema de 7ijNstra, demostrado por Edsger 7ijNstra en los aMos sesenta, demuestra $ue todo programa puede escribirse utilizando &nicamente las tres instrucciones de control siguientes# Secuencia 'nstruccin condicional. 'teracin, o bucle de instrucciones. Solamente con estas tres estructuras se puede >acer un programa informtico, o desarrollar un "seudocdigo. Ventajas de la prograaci!n estr"ct"rada Aon la programacin estructurada, elaborar programas de computador sigue siendo una labor $ue demanda esfuerzo, creatividad, >abilidad cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas# ). Los programas son ms fciles de entender a $ue pueden ser le=dos de forma secuencial, para entender la lgica. *. La estructura del programa es ms clara puesto $ue las instrucciones estn ms ligadas o relacionadas entre s=. %. 4educcin del esfuerzo en las pruebas. El seguimiento de las fallas se facilita debido a la lgica ms visible, por lo $ue los errores se pueden detectar corregir ms fcilmente. 2. 4educcin de los costos de mantenimiento. /. "rogramas ms sencillos ms rpidos. 0. Los blo$ues de cdigo son auto e5plicativos, lo $ue apoa a la documentacin. Inconvenientes de la prograaci!n estr"ct"rada El principal inconveniente de este mtodo de programacin, es $ue se obtiene un &nico blo$ue de programa, $ue cuando se >ace demasiado grande puede resultar problemtico su manejo, esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados compilados por separado. Un mtodo un poco ms sofisticado es la programacin por capas, en la $ue los mdulos tienen una estructura jerr$uica mu definida se denominan capas. #$6RUC6URA $#CU#NCIAL Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia. Es decir, es a$uella en la $ue una accin (instruccin+ sigue a otra en secuencia. Las tareas se suceden de tal modo $ue la salida de una es la entrada de la siguiente as= sucesivamente >asta el fin del proceso. La estructura secuencial tiene una entrada una salida. Su representacin grfica es la siguiente# Pse"docodigo de "na Pse"docodigo de "na # #str"ct"ra str"ct"ra $ $ec"encial ec"encial 'nicio # # acciones # # fin Ejemplo de acciones# au5 5 5 au5 Esta secuencia de instrucciones intercambia los valores de 4 e y, con auda de una variable a"4iliar (au5+. )O Puardamos una copia del valor de 4 en a"4. *O Puardamos el valor de y en 4, se pierde el valor anterior de 4 pero no importa por$ue tenemos una copia en a"4. %O Puardamos el valor de a"4 en y, $ue es el valor inicial $ue ten=a 4. El resultado es el intercambio de los valores de 4 e y, en tres operaciones secuenciales. #jeplo: #jeplo: Un vendedor recibe mensualmente un sueldo base mas un e5tra, $ue es el )-Q de cada venta $ue realice, el vendedor desea saber cuanto dinero e5tra obtendr por las % ventas $ue realiz en el mes, adems del total $ue recibir en el mes tomando en cuenta su sueldo base las comisiones. $ol"ci!n "rocedimiento "rincipal 'nicio 4eales sb, mv), mv*, mv%, e5tra), e5tra*, e5tra%, tote5tra, sueldo Entrada (sb, mv), mv*, mv%+ "roceso) (mv), mv*, mv%, e5tra), e5tra*, e5tra%+ "roceso*( e5tra), e5tra*, e5tra%,totalestra,sueldo+ Salida(totalestra,sueldo+ ,in "rocedimiento Entrada(4eal R sb, 4eal R mv), 4eal R mv*, 4eal R mv%+ 'nicio Escribir (H'ngresar sueldo baseI+ Leer (sb+ Escribir (H'ngresar monto de la )S ventaI+ Leer (mv)+ Escribir (H'ngresar monto de la *S ventaI+ Leer (mv*+ Escribir (H'ngresar monto de la %S ventaI+ Leer (mv%+ ,in "rocedimiento "roceso)(4eal mv), 4eal mv*, 4eal mv%, 4ealRe5tra), 4ealRe5tra*, 4eal Re5tra%+ 'nicio e5tra) mv) 9 -.)- e5tra* mv* 9 -.)- e5tra% mv% 9 -.)- ,in "rocedimiento "roceso*(4eal e5tra), 4eal e5tra*, 4eal e5tra%,4eal Rtotale5tra, 4eal Rsueldo+ 'nicio tote5tra e5tra) ; e5tra* ; e5tra% sueldo sb ; tote5tra ,in "rocedimiento Salida(4eal totale5tra, 4eal sueldo+ 'nicio Escribir (HEl total de dinero e5tra es#I, totale5tra+ Escribir (HEl salario de mes es#I, sueldo+ ,in Re,erencia > El R permite $ue el valor ingresado o calculado de una variable sea enviado de un procedimiento a otro para $ue este lo pueda utilizar. Por ejeplo: Procediiento #ntrada Procediiento Proceso*