Está en la página 1de 28

FUNDAMENTOS DE ALGORITMIA

PRESENTADO A: Henry Alfonso Garzn Snchez.

PRESENTADOR POR: JAIRO ANDRADE CALDERON

BOGOT 25 DE FEBRERO DE 2013 CENTRO DE GESTIN DE MERCADOS, LOGSTICA Y TECNOLOGAS DE LA INFORMACIN

FUNDAMENTOS DE ALGORITMIA

1.2 QUE ES ALGORITMIA? Algoritmia consiste en la bsqueda de soluciones a un problema concreto. 1.3 Qu es algoritmo? Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. POR EJEMPLO. 1.4

La lmpara no funciona

Esta enchufada?

Enchufada

Foco Quemado?

Reemplazar el foco

Comprar nueva Lmpara

1.4 ALGORITMOS COTIDIANOS: Algoritmo cotidiano, es aquel que se repite mucho, varias veces, o siempre... por ejemplo: dormir, es una accin que siempre haces, al menos una vez por da (noche) comer, es una accin que haces a menudo 1.5 LENGUAJES ALGORITMICOS Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera: Lenguaje Natural.

Lenguaje de Diagrama de Flujo. Lenguaje Natural de Programacin. Lenguaje de Programacin de Algoritmos. 1.6 METODOLOGIA DE SOLUCION DE PROBLEMAS La solucin de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboracin. Los siete pasos de la metodologa son los siguientes: 1. Definicin del problema 2. Anlisis de la solucin 3. Diseo de la solucin 4. Codificacin 5. Prueba y Depuracin 6. Documentacin 7. Mantenimiento 1.7 Definicin del problema Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber qu es lo se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso. 1.8 Anlisis del problema. Una vez que se ha comprendido lo que se desea del computador, es necesario definir: Los datos de entrada. Cul es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para

procesar los datos. Una recomendacin muy practica es el que nos pongamos en el lugar de el computador y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperado. 1.9 Diseo del algoritmo Las caractersticas de un buen algoritmo son: Debe tener un punto particular de Inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin 1.10 CODIFICACION La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la Lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computador, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.

1.11 Prueba y Depuracin Los errores humanos dentro de la programacin de computadores son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la solucin, por ello se debe considerar con el mismo inters y entusiasmo. Resulta conveniente observar los siguientes principios al realizar una depuracin, ya que de este trabajo depende el xito de nuestra solucin 1.12 Documentacin Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).La documentacin se divide en tres partes : Documentacin Interna* Documentacin Externa* Manual del Usuario Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo Fuente para hacer ms claro el entendimiento de un proceso.

Documentacin Externa: Se define en un documento escrito los siguientes puntos: 1.13 Mantenimiento Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS


Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

SIMPLES TIPOS DE DATOS

Numricos Lgicos Alfanumricos

ESTRUCTURADOS

Arreglos, vectores, matrices Registros, Archivos.

Tipos de Datos Simples Datos Numricos: Permiten representar valores escalares de forma numrica, esto incluye a los nmeros enteros y los reales. Este tipo de datos permiten realizar operaciones aritmticas comunes.

Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparacin entre otros datos (numricos o alfanumricos). Datos Alfanumricos (String): Es una secuencia de caracteres alfanumricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar nmeros como alfanumricos, pero estos pierden su propiedad matemtica, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.

Ejemplo: 2.2 Expresiones Las expresiones son combinaciones de constantes, variables, smbolos de Operacin, parntesis y nombres de funciones especiales. Por ejemplo:

a+(b + 3)/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. Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las expresiones en: - Aritmticas - Relacinales -Lgicas 2.3 Operadores y Operandos Operadores: Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Aritmticos

TIPOS DE OPERADORES

Relacionales

Lgicos

Operadores Aritmticos: Los operadores aritmticos permiten la realizacin de Operaciones matemticas con los valores (variables y constantes). Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o Reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el Resultado es real.

Operando (operador) operando

VALOR
(CONSTANTE VARIABLE)

OPERADORES ARITMETICOS + Suma - Resta * Multiplicacin / Divisin Mod Modulo (residuo de la divisin entera) Ejemplos: Expresin Resultado 7 / 2 3.5 12 mod 7 5 4 + 2 * 5 14 Prioridad de los Operadores Aritmticos h Todas las expresiones entre parntesis se evalan primero. Las expresiones con Parntesis anidados se evalan de dentro a fuera, el parntesis ms interno se evala primero. h Dentro de una misma expresin los operadores se evalan en el siguiente orden. 1.- ^ Exponenciacin 2.- *, /, mod Multiplicacin, divisin, modulo. 3.- +, - Suma y resta. h Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplos: 4 + 2 * 5 = 14 23 * 2 / 5 = 9.2 46 / 5 = 9.2 3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23 3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09 2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 =28.98 Operadores Relacinales: h Se utilizan para establecer una relacin entre dos valores. h Compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso).

h Los operadores relacinales comparan valores del mismo tipo (numricos o cadenas) h Tienen el mismo nivel de prioridad en su evaluacin. h Los operadores relacinales tiene menor prioridad que los aritmticos.

Operadores Relacinales > Mayor que < Menor que > = Mayor o igual que < = Menor o igual que < > Diferente == igual Ejemplos: Si a = 10 b = 20 c = 30 a + b > c Falso a - b < c Verdadero a - b == c Falso a * b < > c Verdadero Ejemplos no lgicos: a<b<c 10 < 20 < 30 T < 30 (no es lgico porque tiene diferentes operandos) Operadores Lgicos: h Estos operadores se utilizan para establecer relaciones entre valores lgicos. h Estos valores pueden ser resultado de una expresin relacional.
Ejemplos: (a < b) and (b < c) (10<20) and (20<30) T AND T T

Prioridad de los Operadores Lgicos Not And Or Prioridad de los Operadores en General 1.- ( ) 2.- ^ 3.- *, /, Mod, Not 4.- +, -, And 5.- >, <, > =, < =, < >, ==, Or

Identificadores

Los identificadores representan los datos de un programa (constantes, Variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite acceder a su contenido. Ejemplo: Nombre Num_hrs Calif2 Reglas para formar un Identificador h Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener espacios en blanco. h Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer carcter. h La longitud de identificadores puede ser de hasta 8 caracteres Constantes y Variables Constante: Una constante es un dato numrico o alfanumrico que no cambia durante la ejecucin del programa. Ejemplo: Pi = 3.1416 Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecucin de un proceso, su contenido puede cambia durante la ejecucin del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo. Ejemplo: rea = pi * radio ^ 2 Las variables son: el radio, el rea y la constate es pi

Numricas
Por su contenido Clasificacin de la variables Lgicas Alfanumricas

Por su uso

De trabajo, Contadores, Acumuladores

Por su contenido: Variables Numricas: Son aquellas en las cuales se almacenan Valores numricos, positivos o negativos, almacenan nmeros del 0 al 19 signos (+ y -) y el punto decimal. Ejemplo: IVA= 0.15 pi=3:1416 costo= 2.500 Variables lgicas: son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparacin entre dos datos. Variables alfanumricas: Esta formada por caracteres alfanumricos (letras, nmeros, y caracteres especiales) ejemplo: Letra= a apellido= Lpez direccin=av.libertad#190 Por sus uso Variables de trabajo: variables que reciben el resultado de una operacin matemtica completa y que se usa normalmente dentro de un programa Ejemplo: Suma = a+b/c Contadores: Se utilizan para llevar el control del nmero de ocasiones, en que se realiza una operacin o s e cumple una condicin con los incrementos generalmente de uno en uno Acumuladores: forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que s e van leyendo o calculando progresivamente. III .TECNICAS DE DISEO

3.1 Top Down Tambin conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solucin al problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidas de informacin. Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa. La utilizacin de la tcnica de diseo Top-Down tiene los siguientes objetivos bsicos: Simplificacin del problema y de los subprogramas de cada descomposicin. Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas. El programa final queda estructurado en forma de bloque o mdulos lo que hace ms sencilla su lectura y mantenimiento. 3.2 Bottom Up El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o bien, la adquisicin de paquetes de software para satisfacer el problema inmediato. Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido. Los problemas de integracin entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programacin alcanza la fecha lmite para la integracin total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la duplicacin de esfuerzos para acceder el software y ms an al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el ms serio inconveniente del enfoque ascendente, es que los

objetivos globales de la organizacin no fueron considerados y en consecuencia no se satisfacen. En contraste, en el diseo Bottom-up las partes individuales se disean con detalle y luego se enlazan para formar componentes ms grandes, que a su vez se enlazan hasta que se forma el sistema completo. Las estrategias basadas en el flujo de informacin "bottom-up" se antojan potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables que pueden afectar los elementos del sistema. IV.TECNICAS PARA LA FORMULACION DE ALGORITMOS 4.1 DIAGRAMA DE FLUJO Es un esquema para representar grficamente un algoritmo. 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. Para poder hacer comprensibles los diagramas a todas las personas, los smbolos se someten a una normalizacin; es decir, se hicieron smbolos casi universales, ya que, en un principio cada usuario podra tener sus propios smbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que slo aquel que conoca sus smbolos, los poda interpretar. La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente. En teora, no es necesario usar un tipo especial de smbolos para crear un diagrama de flujo, pero existen algunos ampliamente utilizados por lo que es adecuado conocerlos y utilizarlos, ampliando as las posibilidades de crear un diagrama ms claro y comprensible para crear un proceso lgico y con opciones mltiples adecuadas. Se utilizan los smbolos indicados a continuacin, estandarizados segn la norma ISO 5807. Flecha. Indica el sentido y trayectoria del proceso de informacin o tarea. Rectngulo. Se usa para representar un evento o proceso determinado. ste es controlado dentro del diagrama de flujo en que se encuentra. Es el smbolo ms comnmente utilizado. Se usa para representar un evento que ocurre de forma automtica y del cual generalmente se sigue una secuencia determinada.

Rombo. Se utiliza para representar una condicin. Normalmente el flujo de informacin entra por arriba y sale por un lado si la condicin se cumple o sale por el lado opuesto si la condicin no se cumple. El rombo adems especifica que hay una bifurcacin. Crculo. Representa un punto de conexin entre procesos. Se utiliza cuando es necesario dividir un diagrama de flujo en varias partes, por ejemplo por razones de espacio o simplicidad. Una referencia debe darse dentro para distinguirlo de otros. La mayora de las veces se utilizan nmeros en los mismos.

Tipos de diagramas de flujo


Formato Vertical: En l el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la informacin que se considere necesaria, segn su propsito. Formato Horizontal: En el flujo o la secuencia de las operaciones, va de izquierda a derecha. Formato Panormico: El proceso entero est representado en una sola carta y puede apreciarse de una sola mirada mucho ms rpidamente que leyendo el texto, lo que facilita su comprensin, aun para personas no familiarizadas. Registra no solo en lnea vertical, sino tambin horizontal, distintas acciones simultneas y la participacin de ms de un puesto o departamento que el formato vertical no registra. Formato Arquitectnico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectnico del rea de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los ltimos son fundamentalmente representativos. 4.2 Pseudocdigo Mezcla de lenguaje de programacin que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. 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. En esencial, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos.

Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar. Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin. 4.3 Diagrama estructurado (nassi-schneiderman) El diagrama estructurado N-S tambin conocido como diagrama de chapn es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la sig. Forma:

Inicio Accion1 Accion2

... Fin

Inicio

Leer

Nombre, Hrs, Precio Calcular

V. Estructuras algortmicas 5.1 Secuenciales La estructura secuencial es aquella en la que una accin (instruccin) Sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del Proceso. Una estructura secuencial se representa de la siguiente forma: 1.-Inicio 2.-Declaracin de variables; 3.- Accion1; 4.- Accion2; 5.- . 6.- . Accin N; N+1.-Fin.

Asignacin

Asignacin: La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constate a una variable (a=15) Contador: Consiste en usarla como un verificador del nmero de Veces que se realiza un proceso (a=a+1) Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b) De trabajo: Donde puede recibir el resultado de una operacin Matemtica que involucre muchas variables (a=c+b*2/4). - Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej.) El teclado) un valor. Esta operacin se representa en un pseudocdigo como Sigue: Leer(a); Leer (b); Donde a y b son las variables que recibirn los valores Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un Pseudocdigo como sigue: Escribir (El resultado es:); Escribir(R); Escribir (El resultado es:, R); Donde El resultado es: es un mensaje que se desea aparezca y R es Una variable que contiene un valor Entrada

entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuacin de la instruccin. Esta operacin se representa as:

Salida Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instruccin presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa as como sigue:

5.2 Condicionales Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen tres tipos bsicos, las simples, las dobles y las mltiples.

Simples: Las estructuras condicionales simples se les conocen como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma:

Pseudocdigo:

Diagrama de flujo:

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma: Pseudocdigo: Diagrama de flujo:

Donde: Si: Indica el comando de comparacin Condicin: Indica la condicin a evaluar Entonces: Precede a las acciones a realizar cuando se cumple la condicin Instruccin(es): Son las acciones a realizar cuando se cumple o no la condicin si no: Precede a las acciones a realizar cuando no se cumple la condicin Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o ms acciones Mltiples: Las estructuras de comparacin mltiples, son tomas de decisin especializadas

que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma comn es la siguiente:

Diagrama de flujo: Pseudocdigo:

VI. Arreglos Arreglo: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una coleccin de datos del mismo tipo. Los arreglos se caracterizan por:

Almacenan los elementos en posiciones contiguas de memoria Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a esos elementos es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento dentro del archivo. 6.1 Vectores Es un arreglo de N elementos organizados en una dimensin donde N recibe el nombre de longitud o tamao del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual indica una posicin en particular del vector. Por ejemplo: Vec [x] Donde: Vec Nombre del arreglo X Numero de datos que constituyen el arreglo

6.2 Matrices Una matriz identidad es aquella en la que la diagonal principal est llena de unos y el resto de los elementos son cero. Para llenar la matriz identidad se debe verificar que cuando los ndices i y j sean iguales, la posicin vale 1, en caso contrario se asigna cero al elemento i,j.

Algoritmo Inicio Desde i = 1 hasta 4 hacer Desde j = 1 hasta 4 hacer

Si i=j entonces Matriz[i,j] =1 Sino Matriz [i, j] =0 Fin_si Fin_desde Fin_desde Fin 6.3 Manejo de cadenas de caracteres Una cadena es un conjunto de caracteres incluido el espacio en blanco, que se almacena en un rea contigua de la memoria central. La longitud de una cadena es el nmero de caracteres que contiene. Una cadena vaca es la que no tiene ningn carcter. Una constante de tipo cadena es un conjunto de caracteres vlidos encerrados entre comillas. Una variable de cadena es aquella cuyo contenido es una cadena de caracteres. El ltimo carcter de la cadena marca el fin de la cadena. Las variables de cadena se dividen en: Estticas. Su longitud se define antes de ejecutar el programa y no puede cambiarse a lo largo de este. Semiestticas. Su longitud puede variar durante la ejecucin del programa, pero sin sobrepasar un lmite mximo declarado al principio. Dinmicas. Su longitud puede variar sin limitacin dentro del programa. VII. Manejo de mdulos La programacin est representada por la programacin modular. En realidad, esta tcnica no es estrictamente necesaria. Sin embargo, cuando los programas se vuelven ms complejos y ms extensos, se hace ms difcil rastrear los errores y analizar su funcionalidad. Con este fin necesitamos disponer de una tcnica que nos permita concentrarnos realmente en los problemas que debemos resolver con

nuestro programa y abstraernos de los detalles particulares y de la parafernalia tcnica que hace funcionar a la computadora. De algn modo esta tarea la cumplen Python, BASIC, etc. ya que con sus funciones incorporadas y predeterminadas evitan que nosotros debamos tratar directamente con el hardware de la computadora para realizar diversas tareas tpicas como leer un archivo, comprobar que una tecla se ha presionado, etc. El objetivo de la programacin modular es extender las capacidades predeterminadas de un lenguaje mediante porciones de cdigo empacadas en diferentes mdulos, los cuales pueden ser fcilmente insertados en nuestros programas. La primera forma de programacin modular fue la subrutina que era un bloque de cdigo al cual se poda saltar (similar a la instruccin GOTO que hemos mencionado antes) y una vez ejecutado el bloque, el programa devolva el control a la instruccin siguiente a la que haba producido la llamada. Esta tcnica modular se conoce con el nombre de procedimiento o funcin. En Python y en otros lenguajes.

7.1 Definicin En programacin, un mdulo es un software que agrupa un conjunto de subprogramas y estructuras de datos. Los mdulos son unidades que pueden ser compiladas por separado y los hace reusables y permite que mltiples programadores trabajen en diferentes mdulos en forma simultnea, produciendo ahorro en los tiempos de desarrollo. Los mdulos promueven la modularidad y el encapsulamiento, pudiendo generar programas complejos de fcil comprensin. Puede tomarse como sinnimo de subrutina o de unidad de software, aunque este ltimo es ms abrcatelo. 7.2 Funcin Las funciones son bloques de instrucciones que tienen por objeto el alcanzar un resultado que sustituir a la funcin en el punto de invocacin (las funciones devuelven un resultado). Cada funcin se evoca utilizando su nombre en una expresin con los argumentos actuales o reales encerrados entre parntesis.

Para hacer una referencia a una funcin se invoca mediante un nombre y en caso de existir, una lista de parmetros actuales necesarios (argumentos). Los argumentos deben coincidir en cantidad, tipo y orden con los de la funcin que fue definida. La funcin devuelve un valor nico. Las funciones a que se hace referencia, se conocen como funciones de usuario puesto que son definidas por l mismo y permiten su uso en forma idntica a las funciones estndares. Para coordinar e iniciar el procesamiento, se utiliza un mdulo principal que es colocado al final del algoritmo. EJERCICIOS LPP /*Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificacin del examen final. 15% de la calificacin de un trabajo final.*/

real notaFinal, p1,p2,p3,v1, v2,v3, promedio, exfinal,trabfinal Inicio Escriba "ingrese primer parcial " Lea p1 Escriba "ingrese segundo parcial " Lea p2 Escriba "ingrese tercer parcial " Lea p3

Escriba "ingrese examen final " Lea exfinal escriba "ingrese trabajo final " lea trabfinal promedio <- p1 + p2 + p3 v3 <- promedio * 0.55 v1 <- exfinal*0.3 v2 <- trabfinal*0.15 notaFinal <- v1+v2+v3 escriba " nota final ", notaFinal fin

/*Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cunto deber pagar finalmente por su compra.*/

Entero vcompra, ctotal Inicio Escriba "ingrese compra total " Lea vcompra ctotal <- vcompra * 0.15 ctotal <- vcompra - ctotal escriba " valor final compra "

escriba ctotal fin /*Un vendedor recibe un sueldo base ms un extra por comisin de sus ventas, el vendedor desea saber cunto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su sueldo base y comisiones.*/

Entero sueldo, v1, v2, v3, totalv, total Inicio Escriba "ingrese sueldo " Lea sueldo Escriba "venta uno " Lea v1 Escriba "venta dos " Lea v2 Escriba "venta tres " Lea v3 totalv <- v1 + v2 + v3 totalv <- totalv * 0.10 Escriba "comision " Escriba totalv Escriba " sueldo total "

total <- sueldo + totalv Escriba total Fin

/*Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara despus de un mes si el banco paga a razn de 2% mensual.*/

Entero capital, total Inicio Escriba "Ingresar el capital " Lea capital total <- capital * 0.2 total <- total + capital Escriba "capital mas intereses " Escriba total fin

También podría gustarte