Вы находитесь на странице: 1из 26

DIRECCIN GENERAL DE EDUCACIN TECNOLGICA INDUSTRIAL CENTRO DE ESTUDIOS TECNOLGICOS INDUSTRIAL Y DE SERVICIOS No. 43, XOCHITEPEC MOR.

Enero 2013

Aplicar los principios de programacin en la solucin de problemas

Fundamentos de Programacin
1. NOCIONES BSICAS DE PROGRAMACIN EN LA SOLUCIN DE PROBLEMAS
1.1. RESOLUCIN DE PROBLEMAS COMPUTACIONALES

En la vida diaria nos enfrentamos continuamente a problemas que debemos resolver en lo posible felizmente. As como cada individuo tiene formas de encarar un problema y su propia manera de solucionarlo, computacionalmente hablando podemos hacer un paralelo. Ante la presentacin de un problema encarar la mejor forma de resolverlo para arribar al resultado esperado y correcto es un desafo. Para ello debemos comprender exactamente qu se pide, qu resultados se pretenden y que restricciones y/o condiciones existen. Para realizar lo antes dicho dividiremos la resolucin de un problema en etapas, las cuales enunciamos y definimos a continuacin. 1.2. ETAPAS PARA LA RESOLUCIN DE PROBLEMAS

A. Definicin del problema Est dada por la formulacin del problema en forma correcta y completa. Esta enunciacin de lo que se desea es primordial para el xito de la resolucin. B. Anlisis del problema A partir del estudio del problema se deber identificar y conocer las partes principales del mismo y de esa manera determinar los siguientes conjuntos: de DATOS : es la informacin con que contamos para resolver el problema. de RESULTADOS : es lo que se desea obtener. de CONDICIONES: una o ms relaciones que vinculan los dos conjuntos anteriores y que permitirn plantear la solucin del problema. Programacin Esta etapa consiste en obtener la solucin del problema dado. Se divide en dos subetapas: Eleccin y creacin del mtodo. Se trata de buscar un procedimiento o mtodo general que permita resolver el problema planteado utilizando una computadora. Es muy factible que se encuentren varios mtodos para hacerlo, lo importante es determinar la mejor alternativa, de acuerdo a distintos parmetros que se establezcan para esta seleccin. Esta puede ser la que produzca los resultados esperados en el menor tiempo y al menor costo o slo en el menor tiempo u otras. Codificacin. Consiste en expresar el mtodo elegido en un lenguaje, llamado lenguaje de programacin, que pueda ser interpretado por la computadora. Esta subetapa ser objeto de estudio en aos superiores.

C.

D. Prueba Esta etapa consiste en la ejecucin del cdigo del mtodo elegido, es decir, suministrar los datos al computador, y obtener los resultados. Luego se analizarn los mismos determinando si son realmente los esperados. Caso contrario, debern analizarse las etapas previas, comenzando por la ltima hacia atrs, y realizar las modificaciones necesarias, repitiendo este proceso hasta obtener los resultados esperados. 1.3. ESTRATEGIA

El diseo de la estrategia consiste en encontrar un mtodo que nos permita llegar a resolver el problema planteado. Como primer paso de esta etapa, debemos preparar un plan o esquema general de las tareas que deben realizarse para llegar a la solucin. Este esquema se denomina estrategia y debe ser una lista de QU hacer. 1.3.1. CMO SE DISEA UNA ESTRATEGIA?

Aplicar los principios de programacin en la solucin de problemas

Por lo dicho, disear una estrategia consiste en dividir o descomponer el problema original en una sucesin de problemas ms simples, de tamao suficientemente pequeo como para que cada uno de ellos pueda ser comprendido en su totalidad. sto, permitir atacar la solucin de cada problema simple por separado e independientemente de los dems, volviendo a aplicar este enfoque a cada uno de los subproblemas hasta llegar a subproblemas de solucin simple. Una vez que todos ellos han sido resueltos, se puede decir que el problema original ha sido resuelto. Este proceso de descomposicin de un problema partiendo de la formulacin completa del problema hasta llegar a problemas elementales de simple solucin, se llama diseo descendente, tambin conocido como top-down, mtodo de refinamiento sucesivo o diseo compuesto.

2. ALGORITMOS
2.1. DEFINICIN DE ALGORITMO

Planteada una estrategia indicando QU tareas hacer, debemos especificar una lista detallada de CMO hacerlas, llegando as a definir una solucin paso a paso del problema llamada algoritmo. La descripcin de la solucin detallada por medio de un algoritmo constituye el segundo paso en la etapa de eleccin del mtodo. La palabra algoritmo se utiliza, en general, como sinnimo de procedimiento, mtodo o tcnica. Pero en el rea de computacin tiene un significado ms especfico.

Un algoritmo es un conjunto finito de operaciones no ambiguas y ordenadas (instrucciones - pasos) que seguidos en un determinado orden permiten resolver un tipo de problema. Un algoritmo puede expresarse de distintas maneras: en forma grfica, como un diagrama de flujo, en forma de cdigo como en pseudocdigo o un lenguaje de programacin, en forma explicativa, etc. 2.2. 2.3. CARACTERSTICAS PRINCIPALES DE UN ALGORITMO Definido: cada paso debe ser enunciado en forma clara y precisa, y no debe dar lugar a ambigedades. Para los mismos datos el algoritmo debe dar siempre los mismos resultados debe resolver el problema para el que fue formulado . Lgicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean algoritmos que resuelven problemas diferentes al planteado. Los algoritmos son independientes del ordenador . Los algoritmos se escriben para poder ser utilizados en cualquier mquina. deben de ser precisos. Los resultados de los clculos deben de ser exactos, de manera rigurosa. No es vlido un algoritmo que slo aproxime la solucin. deben de ser finitos. Deben de finalizar en algn momento. No es un algoritmo vlido aquel que produce situaciones en las que el algoritmo no termina. deben de poder repetirse. Deben de permitir su ejecucin las veces que haga falta. No son vlidos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por la razn que sea. General: la solucin debe ser aplicable a un tipo de problemas y no a un problema particular. CARACTERSTICAS DESEABLES DE UN ALGORITMO Validez. Un algoritmo es vlido si carece de errores. Un algoritmo puede resolver el problema para el que se plante y sin embargo no ser vlido debido a que posee errores Eficiencia. Un algoritmo es eficiente si obtiene la solucin al problema en poco tiempo. No lo es si es lento en obtener el resultado. ptimo. Un algoritmo es ptimo si es el ms eficiente posible y no contiene errores. La bsqueda de este algoritmo es el objetivo prioritario del programador. No siempre podemos garantizar que el algoritmo hallado es el ptimo, a veces s. ELEMENTOS DE UN ALGORITMO

2.4.

Aplicar los principios de programacin en la solucin de problemas

Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso. Acciones que lleva a cabo el algoritmo. Salida. Datos que obtiene finalmente el algoritmo.

Teniendo en cuenta las caractersticas mencionadas previamente podemos decir que: un algoritmo es una secuencia ordenada y finita de pasos que constituyen un mtodo general para resolver un tipo de problemas. Es de notar que esta definicin, se refiere a ...resolver un tipo de problemas ..... y no hace hincapi en el uso del computador como herramienta para su resolucin. Esto se debe a que el concepto de algoritmo se aplica a problemas computacionales que van a ser resueltos por medio de un computador y a problemas no computacionales, en cuya resolucin no interviene esta herramienta. En ambos casos el lenguaje usado en la descripcin del algoritmo debe ser comprensible para el destinatario o para quien lo va a ejecutar. Por lo visto, para cualquier problema para el que pueda especificarse un mtodo finito de solucin puede definirse un algoritmo. Ejemplos que se pueden presentar en la vida diaria: una receta de cocina las instrucciones para utilizar un aparato electrnico el camino para llegar a un lugar determinado desde un punto de partida

Ejemplos de algoritmos computacionales: 2.5. Calcular los sueldos de los empleados de una empresa Actualizar el stock de un comercio Calcular las races de una ecuacin FORMALIZACIN

Formalizaremos algunos conceptos vistos anteriormente. Hemos mencionado que la forma de enunciar la solucin a un problema planteado depende del ejecutante o tambin llamado procesador. Por lo tanto llamaremos as a toda entidad capaz de entender un enunciado y ejecutar los pasos descriptos en un algoritmo. Si bien en los ejemplos vistos el ejecutante se trataba de una persona en la resolucin de problemas computacionales debemos pensar que el procesador ser la computadora. Tambin hemos notado que para poder realizar su tarea el ejecutante debe contar con los recursos adecuados. El conjunto de estos recursos existentes en el momento de la ejecucin de un trabajo constituye el ambiente del problema. El mtodo que se elija para proponer la solucin de un tipo de problema depende del ejecutante y de los recursos o elementos con que se cuenta (ambiente). Cuando definimos algoritmo hemos hablado de un conjunto de pasos o acciones. Una accin es un evento que modifica el ambiente y puede ser: Una accin Primitiva. Es cuando para un ejecutante dado su enunciado es suficiente para que pueda ser ejecutada sin informacin adicional. Una accin no-primitiva es aquella que puede ser descompuesta en acciones primitivas para un ejecutante dado.

Tambin hemos visto que en los ejemplos se nos presentan situaciones que indican alternativas: SI se tiene soda ..., esta no es una accin porque no modifica el ambiente, pero son elementos que el ejecutante debe saber interpretar. A estos enunciados se los denomina condicin. Por lo tanto: Una condicin es una afirmacin lgica sobre el estado de algn recurso del ambiente, que puede tomar valor verdadero o falso en el momento de la observacin.

Aplicar los principios de programacin en la solucin de problemas

El ejecutante determina en el momento de la ejecucin del algoritmo las acciones a seguir, dependiendo de que la condicin sea satisfecha o no. 2.6. PROGRAMACIN MODULAR

Es un mtodo de diseo y tiende a dividir el problema en partes perfectamente diferenciadas que puedan ser analizadas, resueltas y puestas a punto por separado. Para atacar el anlisis de un problema, y siguiendo el diseo Top-Down, se pueden utilizar criterios de programacin modular para dividirlos en partes independientes, probando cada uno por separado y realizando su recomposicin ascendente. Cada una de las partes independientes se llama Mdulo y para su determinacin se deben tener en cuenta los siguientes criterios: Un mdulo debe corresponder a una funcin lgica perfectamente bien definida. Los mdulos deben ser pequeos para que sean claros y de poca complejidad. Un mdulo debe tener una estructura de caja negra, es decir la salida debe ser exclusivamente funcin de la entrada. Cada mdulo deber tener una nica entrada y una nica salida. Objetivos de la programacin modular La programacin modular tiende a: Disminuir complejidad: disminuye la complejidad del problema original, dividiendo un problema en partes ms simples. Aumentar la claridad: el problema original es planteado ahora como una sucesin de mdulos que resulta ms fcil de comprender inclusive para terceras personas. Aumentar la fiabilidad: como consecuencia de los dos puntos anteriores, aumenta la confiabilidad en todo proceso de resolucin. Facilitar modificaciones y conexiones: cada mdulo puede realizarse y probarse por separado, minimizndose los problemas de puesta a punto al final. APLICAR EJERCICIOS

2.7.

3. DIAGRAMAS DE FLUJO
3.1. CONCEPTO DE DIAGRAMA DE FLUJO

Un diagrama de flujo es una representacin grfica de un algoritmo o de una parte del mismo. Los diagramas de flujo ayudan en la comprensin de la operacin de las estructuras de control (Si, Mientras). La ventaja de utilizar un algoritmo es que se lo puede construir independientemente de un lenguaje de programacin, pues al momento de llevarlo a cdigo se lo puede hacer en cualquier lenguaje. 3.2. CARACTERSTICAS Un diagrama de flujo siempre tiene un nico punto de inicio y un nico punto de trmino. Las siguientes son acciones previas a la realizacin del diagrama de flujo: Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos interrelacionados, as como las terceras partes interesadas. Definir qu se espera obtener del diagrama de flujo. Identificar quin lo emplear y cmo. Establecer el nivel de detalle requerido. Determinar los lmites del proceso a describir. Los pasos a seguir para construir el diagrama de flujo son:

Aplicar los principios de programacin en la solucin de problemas

3.3.

Establecer el alcance del proceso a describir. De esta manera quedar fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente. Identificar y listar las principales actividades/subprocesos que estn incluidos en el proceso a describir y su orden cronolgico. Si el nivel de detalle definido incluye actividades menores, listarlas tambin. Identificar y listar los puntos de decisin. Construir el diagrama respetando la secuencia cronolgica y asignando los correspondientes smbolos. Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud el proceso elegido. SIMBOLOGIA

Dichos diagramas se construyen utilizando ciertos smbolos de uso especial como son rectngulos, diamantes, valos, y pequeos crculos, estos smbolos estn conectados entre s por flechas, conocidas como lneas de flujo. A continuacin se detallarn estos smbolos. Nombre Terminal Smbolo Funcin Representa el inicio y fin de un programa. Tambin puede representar una parada o interrupcin programada que sea necesaria realizar en un programa. Cualquier tipo de introduccin de datos en la memoria desde los perifricos o registro de informacin procesada en un perifrico. Cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmticas, de transformaciones, etc. Indica operaciones lgicas o de comparacin entre datos (normalmente dos) y en funcin del resultado de la misma determina (normalmente si y no) cual de los distintos caminos alternativos del programa se debe seguir Sirve para enlazar dos partes cualesquiera de un diagrama a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pagina del diagrama

Entrada / salida

Proceso

Decisin

Conector Misma Pgina

Indicador de direccin o lnea de flujo

Indica el sentido de la ejecucin de las operaciones

Salida a impresora

Se utiliza en ocasiones en lugar del smbolo de salida. El dibujo representa un pedazo de hoja. Es usado para mostrar datos o resultados.

Salida a pantalla

Se utiliza para representar la salida por medio del monitor

3.4.

REGLAS DE LOS DIAGRAMAS DE FLUJO

Aplicar los principios de programacin en la solucin de problemas

Debe de indicar claramente dnde inicia y dnde termina el diagrama. Cualquier camino del diagrama debe de llevarte siempre a la terminal de fin. Organizar los smbolos de tal forma que siga visualmente el flujo de arriba hacia abajo y de izquierda a derecha. No usar lenguaje de programacin dentro de los smbolos. Centrar el diagrama en la pgina. Segn la normativa, el flujo presupuesto es de izquierda a derecha y de arriba hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido (de derecha a izquierda o de abajo hacia arriba), es obligatorio el uso de la flecha. Las lneas deben ser verticales u horizontales, nunca diagonales.

No cruzar las lneas de flujo empleando los conectores adecuados sin hacer uso excesivo de ellos.

No fraccionar el diagrama con el uso excesivo de conectores. Solo debe llegar una sola lnea de flujo a un smbolo. Pero pueden llegar muchas lneas de flujo a otras lneas.

Aplicar los principios de programacin en la solucin de problemas

3.5.

Las lneas de flujo deben de entrar a un smbolo pro la parte superior y/o izquierda y salir de l por la parte inferior y/o derecha. Evitar que el diagrama sobrepase una pgina; de no ser posible, enumerar y emplear los conectores correspondientes. Usar lgica positiva, es decir, realizar procesos cuando es verdadera la condicin y expresar las condiciones de manera clara (por ej., "no es a =/= de b" ==> "a=b"). Comentar al margen nicamente cuando sea necesario. VENTAJAS DE LOS DIAGRAMAS DE FLUJO Favorecen la comprensin del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fcilmente los dibujos. Un buen diagrama de flujo reemplaza varias pginas de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisin. Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el anlisis de las mismas. Son una excelente herramienta para capacitar a los nuevos empleados y tambin a los que desarrollan la tarea, cuando se realizan mejoras en el proceso. Al igual que el pseudocdigo, el diagrama de flujo con fines de anlisis de algoritmos de programacin puede ser ejecutado en un ordenador, con un IDE como Free DFD.

3.6.

EJEMPLOS DE DIAGRAMAS DE FLUJO

4. PSEUDOCDIGO
4.1. PSEUDOCDIGO El pseudocdigo (o falso lenguaje) es una descripcin informal de alto nivel de un algoritmo informtico de programacin, com2 pacto e informal, que utiliza las convenciones estructurales de un lenguaje de programacin verdadero , pero que est diseado para la lectura humana en lugar de la lectura mediante mquina, y con independencia de cualquier otro lenguaje de programacin. Normalmente, el pseudocdigo omite detalles que no son esenciales para la comprensin humana del algoritmo, tales como declaraciones de variables, cdigo especfico del sistema y algunas subrutinas. 4.2. SINTAXIS En la actualidad y por lo general, el pseudocdigo, como su nombre lo indica, no obedece a las reglas de sintaxis de ningn idioma en particular ni es de forma estndar sistemtica, a pesar de que cualquier escritor en particular vaya a pedir prestado

Aplicar los principios de programacin en la solucin de problemas

las estructuras de control general, la sintaxis y el estilo, por ejemplo, de algn lenguaje de programacin convencional. Pero en caso de que se quiera ejecutar, se debe llevar a forma tipo, para que no genere mensajes de error. Las fuentes populares incluyen la sintaxis de Pascal, BASIC, C, C++, Java, Lisp, y ALGOL. Por lo general, se omiten las declaraciones de variables. A veces, las llamadas a funciones, los bloques de cdigo y el cdigo contenido dentro de un loop se remplazan por una sentencia de una lnea en lenguaje natural. Dependiendo del escritor, el pseudocdigo puede variar mucho en su estilo, yendo desde en un extremo, una imitacin casi exacta de un lenguaje de programacin real, hasta al acercarse a una descripcin en prosa de formato de pseudocdigo en el otro extremo. Este es un ejemplo de pseudocdigo (para el juego matemtico bizz buzz):
Pseudocdigo estilo Fortran: programa bizzbuzz hacer i = 1 hasta 100 establecer print_number a verdadero si i es divisible por 3 escribir "Bizz" establecer print_number a falso si i es divisible por 5 escribir "Buzz" establecer print_number a falso si print_number, escribir i escribir una nueva lnea fin del hacer Pseudocdigo estilo Pascal: procedimiento bizzbuzz para i := 1 hasta 100 hacer establecer print_number a verdadero; Si i es divisible por 3 entonces escribir "Bizz"; establecer print_number a falso; Si i es divisible por 5 entonces escribir "Buzz"; establecer print_number a falso; Si print_number, escribir i; escribir una nueva lna; fin Pseudocdigo estilo C: subproceso funcion bizzbuzz para (i <- 1; i<=100; i++) { establecer print_number a verdadero; Si i es divisible por 3 escribir "Bizz"; establecer print_number a falso; Si i es divisible por 5 escribir "Buzz"; establecer print_number a falso; Si print_number, escribir i; escribir una nueva lnea; }

4.3. CARACTERISTICAS Y PARTES Las principales caractersticas de este lenguaje son: 1. Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX, Maruga Script, Seudocdigo o PSeInt.) 2. Es una forma de representacin sencilla de utilizar y de manipular. 3. Facilita el paso del programa al lenguaje de programacin. 4. Es independiente del lenguaje de programacin que se vaya a utilizar. 5. Es un mtodo que facilita la programacin y solucin al algoritmo del programa. Todo documento en pseudocdigo debe permitir la descripcin de: 1. Instrucciones primitivas. 2. Instrucciones de proceso.... 3. Instrucciones de control. 4. Instrucciones compuestas. 5. Instrucciones de descripcin. Estructura a seguir en su realizacin: 1. Cabecera. 1. Programa. 2. Mdulo. 3. Tipos de datos. 4. Constantes. 5. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin. 4.4. DEFICINICION DE DATOS La definicin de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocdigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente.

Aplicar los principios de programacin en la solucin de problemas

4.5. FUNCIONES Y OPERACIONES Cada autor usa su propio pseudocdigo con sus respectivas convenciones. Por ejemplo, la instruccin "reemplace el valor de la variable por el valor de la variable " puede ser representado como: asigne a el valor de

Las operaciones aritmticas se representan de la forma usual en matemticas.

4.6. ESTRUCTURAS DE CONTROL En la redaccin del pseudocdigo se utiliza tres tipos de estructuras de control: las secuenciales, las selectivas y las iterativas. 4.7. ESTRCUTURAS SECUENCIALES Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el nmero de rengln. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se ejecutan dependiendo de la condicin dada dentro del algoritmo.

4.8. ESTRUCTURAS SELECTIVAS Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, segn el cumplimiento de una condicin.

Diagrama de flujo que muestra el funcionamiento de la instruccin condicional.

Aplicar los principios de programacin en la solucin de problemas

La condicin es una expresin booleana. Instrucciones es ejecutada slo si la condicin es verdadera. 4.9. SELECTIVA DOBLE (ALTERNATIVA) La instruccin alternativa realiza una instruccin de dos posibles, segn el cumplimiento de una condicin.

Diagrama de flujo que muestra el funcionamiento de la instruccin condicional.

La condicin es una variable booleana o una funcin reducible a booleana (lgica, Verdadero/Falso). Si esta condicin es cierta se ejecuta Instrucciones1, si no es as, entonces se ejecutaInstrucciones2. 4.10. SELECTIVA MULTIPLE Tambin es comn el uso de una seleccin mltiple que equivaldra a anidar varias funciones de seleccin.

En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de ellas se cumple las dems tienen que ser falsas necesariamente, hay un caso si no que ser cierto cuando las dems condiciones sean falsas. En esta estructura si Condicin1 es cierta, entonces se ejecuta slo Instrucciones1. En general, si Condicini es verdadera, entonces slo se ejecuta Instruccionesi 4.11. SELECTIVA MULTIPLE - CASOS Una construccin similar a la anterior (equivalente en algunos casos) es la que se muestra a continuacin.

10

Aplicar los principios de programacin en la solucin de problemas

En este caso hay un Indicador es una variable o una funcin cuyo valor es comparado en cada caso con los valores " Valori", si en algn caso coinciden ambos valores, entonces se ejecutarn las Instruccionesi correspondientes. La seccinen otro caso es anloga a la seccin si no del ejemplo anterior. 4.12. ESTRUCTURAS ITERATIVAS Las instrucciones iterativas representan la ejecucin de instrucciones en ms de una vez. 4.13. BUCLE MIENTRAS El bucle se repite mientras la condicin sea cierta, si al llegar por primera vez al bucle mientras la condicin es falsa, el cuerpo del bucle no se ejecuta ninguna vez.

Diagrama de flujo que muestra el funcionamiento de la instruccin mientras

4.14. BUCLE REPETIR Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se utiliza cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que se cumpla la condicin:

La estructura anterior equivaldra a escribir:

4.15. BUCLE HACER El Bucle hacer se utiliza para repetir un bloque de cdigo mientras se cumpla cierta condicin.

11

Aplicar los principios de programacin en la solucin de problemas

4.16. BUCLE PARA (FOR) Una estructura de control muy comn es el ciclo para, la cual se usa cuando se desea iterar un nmero conocido de veces, empleando como ndice una variable que se incrementa (o decrementa): Plantilla:Definiciones la cual se define como:

4.17. BUCLE PARA CADA Por ltimo, tambin es comn usar la estructura de control para cada. Esta sentencia se usa cuando se tiene una lista o un conjunto y se quiere iterar por cada uno de sus elementos:

Si asumimos que los elementos de

son

, entonces esta sentencia equivaldra a:

Que es lo mismo que:

Sin embargo, en la prctica existen mejores formas de implementar esta instruccin dependiendo del problema. Es importante recalcar que el pseudocdigo no es un lenguaje estandarizado. Eso significa que diferentes autores podran dar otras estructuras de control o bien usar estas mismas estructuras, pero con una notacin diferente. Sin embargo, las funciones matemticas y lgicas toman el significado usual que tienen en matemtica y lgica, con las mismas expresiones. 4.18. EL ANIDAMIENTO Cualquier instruccin puede ser sustituida por una estructura de control. El siguiente ejemplo muestra el pseudocdigo del ordenamiento de burbuja, que tiene varias estructuras anidadas. Este algoritmo ordena de menor a mayor los elementos de una lista .

12

Aplicar los principios de programacin en la solucin de problemas

En general, las estructuras anidadas se muestran indentadas, para hacer ms sencilla su identificacin a simple vista. En el ejemplo, adems de la indentacin, se ha conectado con flechas los pares de delimitadores de cada nivel de anidamiento. 4.19. DESARROLLO DE ALGORITMOS Con este pseudocdigo se puede desarrollar cualquier algoritmo que: Tenga un nico punto de inicio. Tenga un nmero finito de posibles puntos de trmino. Haya un nmero finito de caminos, entre el punto de inicio y los posibles puntos de trmino. 4.20. FUCNIONES Y PROCEDIMIENTOS Muchas personas prefieren distinguir entre funciones y procedimientos. Una funcin, al igual que una funcin matemtica, recibe uno o varios valores de entrada y regresa una salida mientras que un procedimiento recibe una entrada y no genera ninguna salida aunque en algn caso podra devolver resultados a travs de sus parmetros de entrada si estos se han declarado por referencia (ver formas de pasar argumentos a una funcin o procedimiento). En ambos casos es necesario dejar en claro cules son las entradas para el algoritmo, esto se hace comnmente colocando estos valores entre parntesis al principio o bien declarndolo explcitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra como regresar o devolver para indicar cul es la salida generada por el algoritmo. Por ejemplo, el pseudocdigo de una funcin que permite calcular (un nmero elevado a potencia ).

13

Aplicar los principios de programacin en la solucin de problemas

Un ejemplo de procedimiento seria el algoritmo de Ordenamiento de burbuja, por el que partiendo de una lista de valores estos se ordenan, ntese que en un procedimiento, no se calcula el valor de una funcin, sino que se realiza una accin, en este caso ordenar la lista.

Procedimiento de la burbuja (a0, a1, a2, a3, .a (n 1) Para i 2 hasta n Hacer Para j 0 hasta n i Hacer Si a(j) < a(j+1) entonces Aux a(j) A(j) a(j+1) A(j+1) aux Fin si Fin para Fin para Fin procedimiento
4.21. VENTAJAS DEL PSEUDOCODIGO SOBRE LOS DIAGRAMAS DE FLUJO. Los pseudocdigos presentan los siguientes beneficios: 1. Ocupan mucho menos espacio en el desarrollo del problema. 2. Permite representar de forma fcil operaciones repetitivas complejas. 3. Es ms sencilla la tarea de pasar de pseudocdigo a un lenguaje de programacin formal. 4. Si se siguen las reglas de identacin se puede observar claramente los niveles en la estructura del programa. 5. En los procesos de aprendizaje de los alumnos de programacin, stos estn ms cerca del paso siguiente (codificacin en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo). 6. Mejora la claridad de la solucin de un problema.

5. PRINCIPIOS DE LA PROGRAMACION
5.1. PROGRAMACION Es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no involucra necesariamente otras tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones.

5.2. LEXICO Y PROGRAMACION La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en ingls); y que adems tienen la particularidad de una reducida ambigedad. Cuanto menos ambiguo es un lenguaje de programacin, se dice, es ms potente. Bajo esta premisa, y en el extremo, el lenguaje ms potente existente es el binario, con ambigedad nula (lo cual lleva a pensar as del lenguaje ensamblador). En los lenguajes de programacin de alto nivel se distinguen diversos elementos entre los que se incluyen el lxico propio del lenguaje y las reglas semnticas y sintcticas. 5.3. PROGRAMAS Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que la complejidad algortmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una prctica muy utilizada y se conoce como "refino progresivo". Segn Niklaus Wirth, un programa est formado por los algoritmos y la estructura de datos.

14

Aplicar los principios de programacin en la solucin de problemas

Programa. La definicin de la RAE es: Conjunto unitario de instrucciones que permite a un ordenador realizar funciones diversas, como el tratamiento de textos, el diseo de grficos, la resolucin de problemas matemticos, el manejo de bancos de datos, etc. Pero normalmente se entiende por programa un conjunto de instrucciones ejecutables por un ordenador. 5.4. CICLO DE VIDA DE UN PROGRAMA

Una de las cosas que se han definido tras el nacimiento de la ingeniera del software ha sido el ciclo de vida de una aplicacin. El ciclo de vida define los pasos que sigue el proceso de creacin de una aplicacin desde que se propone hasta que finaliza su construccin. Los pasos son: A. Anlisis. En esta fase se determinan los requisitos que tiene que cumplir la aplicacin. Se anota todo aquello que afecta al futuro funcionamiento de la aplicacin. Este paso le realiza un analista B. Diseo. Se especifican los esquemas de diseo de la aplicacin. Estos esquemas forman los planos del programador, los realiza el analista y representan todos los aspectos que requiere la creacin de la aplicacin. C. Codificacin. En esta fase se pasa el diseo a cdigo escrito en algn lenguaje de programacin. Esta es la primera labor que realiza el programador D. Pruebas. Se trata de comprobar que el funcionamiento de la aplicacin es la adecuada. Se realiza en varias fases: Prueba del cdigo. Las realizan programadores. Normalmente programadores distintos a los que crearon el cdigo, de ese modo la prueba es ms independiente y generar resultados ms ptimos.

Versin alfa. Es una primera versin terminada que se revisa a fin de encontrar errores. Estas pruebas conviene que sean hechas por personal no informtico. El producto slo tiene cierta apariencia de acabado. Versin beta. Versin casi definitiva del software en la que no se estiman fallos, pero que se distribuye a los clientes para que encuentren posibles problemas. A veces est versin acaba siendo la definitiva (como ocurre con muchos de los programas distribuidos libremente por Internet). (5) Mantenimiento. Tiene lugar una vez que la aplicacin ha sido ya distribuida, en esta fase se asegura que el sistema siga funcionando aunque cambien los requisitos o el sistema para el que fue diseado el software. Antes esos cambios se hacen los arreglos pertinentes, por lo que habr que retroceder a fases anteriores del ciclo de vida.

5.5. COMPILACION El programa escrito en un lenguaje de programacin (fcilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opcin ms comn es compilar el programa obteniendo un mdulo objeto, aunque tambin puede ejecutarse en forma ms directa a travs de un intrprete informtico. El cdigo fuente del programa se debe someter a un proceso de traduccin para convertirlo en lenguaje mquina, cdigo est directamente ejecutable por el procesador. A este proceso se le llama compilacin. Habitualmente la creacin de un programa ejecutable (un tpico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilacin (propiamente dicho) y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado en un archivo a cdigo en bajo nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se aade el cdigo de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando un mdulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilacin en archivos objetos (un tpico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilacin se almacena slo temporalmente. Un programa podra tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), que se podran compilar de forma independiente y luego enlazar juntas para formar un nico mdulo ejecutable. 5.6. PROGRAMACION E INGENIERIA DE SOFTWARE

15

Aplicar los principios de programacin en la solucin de problemas

Existe una tendencia a identificar el proceso de creacin de un programa informtico con la programacin, que es cierta cuando se trata de programas pequeos para uso personal, y que dista de la realidad cuando se trata de grandes proyectos. El proceso de creacin de software, desde el punto de vista de la ingeniera, incluye los siguientes pasos: 1. Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatizacin de una tarea. 2. Recoger los requisitos del programa. Debe quedar claro qu es lo que debe hacer el programa y para qu se necesita. 3. Realizar el anlisis de los requisitos del programa. Debe quedar claro cmo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase. 4. Disear la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable. 5. Implementar el programa. Consiste en realizar un diseo detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificacin (programacin propiamente dicha) debera resultar inmediata. 6. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.). La ingeniera del software se centra en los pasos de planificacin y diseo del programa, mientras que antiguamente (programacin artesanal) la realizacin de un programa consista casi nicamente en escribir el cdigo, bajo slo el conocimiento de los requisitos y con una modesta fase de anlisis y diseo.

16

Aplicar los principios de programacin en la solucin de problemas

GUA DE TRABAJOS PRCTICOS NRO. 1

Temas: Constantes, Variables, Expresiones, Asignaciones, Leer y Escribir. 1. Analice el valor de verdad de cada una de las siguientes expresiones. Justifique su respuesta. a) b) c) d) e) f) g) h) i) j) k) l) La constante mantiene siempre su valor a lo largo del algoritmo. Una variable es un lugar de memoria. El nombre de una variable debe estar relacionado con su contenido. El tipo de variable se define por su contenido. Si el contenido se modifica en el transcurso del algoritmo, puede cambiar el tipo. Una variable puede almacenar una expresin. El nombre de una variable ser correcto siempre que el mismo comience con un nmero o una letra. Resultado y RESULTADO son variables distintas. JUAN y JUAN son variables distintas. En una expresin las sumas y restas se resuelven primero. Una funcin no puede participar en el argumento de otra funcin. Las palabras reservadas se escriben siempre con maysculas. Una cadena de caracteres hay que encerrarlas entre apstrofos o comillas.

2. Complete con una de las opciones propuestas entre parntesis: Las siguientes ...........................(variables / constantes) son .................... (iguales / diferentes). - ALTO - AlTo - AltO Las siguientes ...........................(variables / constantes) son .................... (iguales / diferentes). - ALTO - AlTo - AltO

3. Dados los siguientes contenidos para las variables A, B, C, D, E, F; analice las expresiones en que intervienen y encuentre en la lista de opciones el resultado correcto de la expresin. ABCDEF 3 BC JOSE V 97.9 87 a) ( A + C ) RC 2 b) TRUNC( E ) >= REDON( E ) c) 'ER' < A d) ( B = XA ) v ( A = E ) e) ( B < C ) ^ F f) ( C <> 'F' ) ^ ( A < 4 ) g) ( E < F ) h) TRUNC( ( A + E ) / 2 )+5 17

Aplicar los principios de programacin en la solucin de problemas

Resultados posibles: V | F | Expresin Invlida | 55 |

4. Analice el valor de verdad de cada una de las siguientes expresiones. Justifique su respuesta. a) A la izquierda del smbolo de asignacin puede ir una variable. b) La asignacin X <- X + 2 carece de sentido porque no existe ningn nmero que incrementado en dos unidades sea igual a s mismo. c) La accin de escritura destruye el contenido de las variables que utiliza. d) En una nica accin de lectura se pueden leer dos o ms datos. e) En una accin de lectura el primer valor ingresado se almacena en la variable que sigue a la palabra LEER. 5. Dado el siguiente algoritmo realizar el seguimiento del mismo. a) Con los datos: 26, 5, 2007, Jorge Gmez, 500, 150, 120. b) Con los datos: 15, 10, 2008, Carlos Oviedo, 850, 600, 250. Proceso Liquidacin Leer DIAACT, MESACT, ANIOACT; Leer NOM, DEUDA, PAGO1, PAGO2; PAGO <- PAGO1 + PAGO2; SALDO <- DEUDA PAGO; DESC <- SALDO * 0.10; SALDO <- SALDO DESC; Escribir Fecha: , DIAACT, /, MESACT, /, ANIOACT; Escribir Cliente: , NOM, Deuda Total: $ , DEUDA; Escribir Pagos realizados: $ , PAGO; Escribir Descuento 10%: $ , DESC; Escribir Saldo a pagar: $ , SALDO FinProceso 6. Realizar ambiente y algoritmo de cada uno de los siguientes enunciados: a) Calcular e informar el permetro de un cuadrado conociendo el valor del lado. b) Una remisera desea liquidar el sueldo de los choferes de una de sus unidades para ello se ingresan los datos de los 2 choferes de la misma: nombre y apellido, sueldo bsico y km. recorridos en el mes a liquidar. Primero se ingresan los datos del chofer 1, y luego los datos del chofer 2. Se desea generar un informe como el siguiente: LIQUIDACION MENSUAL CHOFERES NOMBRE DEL CHOFER 1.............................. TOTAL A COBRAR $.................. NOMBRE DEL CHOFER 2.............................. TOTAL A COBRAR $.................. TOTAL GRAL $...................... Observacin: Tener en cuenta que por cada km. se le paga $7.5 y que el total a cobrar se calcula como: Sueldo bsico + monto por kms. SOLUCIN: 18

Aplicar los principios de programacin en la solucin de problemas

PARA COMPILAR EN PSeint Proceso Remiseria Leer nom1, sdobas1, kmr1; Leer nom2, sdobas2, kmr2; montokm1<-7.5*kmr1; montokm2<-7.5*kmr2; totc1<-sdobas1+montokm1; totc2<-sdobas2+montokm2; totalg<-totc1+totc2; Escribir 'Liquidacion mensual choferes:'; Escribir 'Nombre chofer 1:', nom1, 'Total a cobrar: $', totc1; Escribir 'Nombre chofer 2:', nom2, 'Tocal a cobrar: $', totc2; Escribir 'total general: $', totalg FinProceso

Dados los siguientes enunciados realizar ambiente y pseudocdigo. 7. En un recital se vendieron dos tipos de entradas, a saber: popular y plateada. El xito del recital se ocasion porque se lograron vender la totalidad de las plateadas y de las populares, 1723 y 3557 respectivamente. El precio de la popular es del 50 % ms barata que la plateada. Hallar la recaudacin total, sabiendo que se ingresa como primer dato el precio de la plateada. SOLUCIN: PARA COMPILAR EN PSeint Proceso Recital Escribir 'Ingrese el Valor de la Platea:'; Leer PrePla; PrePop<-PrePla/2; TOTG<-(PrePla*1000)+(PrePop*3000); Escribir 'Recaudacion Total:', TOTG FinProceso

8. Una empresa que comercializa electrodomsticos posee 2 sucursales. De cada una de ellas se conocen los montos de ventas semestrales realizadas durante el ao 2009. Estos datos se ingresan ordenados por sucursal y por semestre. Cada sucursal destin el 20% del total de sus ventas para pagar una bonificacin a sus empleados; monto que se reparti en partes iguales entre ellos. Se ingresan tambin, la cantidad de empleados que tenan las sucursales en el 2009. Determinar e informar: a. El total de ventas de cada sucursal. b. La bonificacin que pag cada sucursal a cada empleado. SOLUCIN: PARA COMPILAR EN PSeint

19

Aplicar los principios de programacin en la solucin de problemas

Proceso Pravega Escribir 'Ingrese el monto del semestre A de la sucursal 1:'; Leer MontoV1SeA; Escribir 'Ingrese el monto del semestre B de la sucursal 1:'; Leer MontoV1SeB; Escribir 'Ingrese la cantidad de empleados de la sucursal 1:'; Leer CantEm1; Escribir 'Ingrese el monto del semestre A de la sucursal 2:'; Leer MontoV2SeA; Escribir 'Ingrese el monto del semestre B de la sucursal 2:';; Leer MontoV2SeB; Escribir 'Ingrese la cantidad de empleados de la sucursal 2:'; Leer CantEm2; TOTV1<-MontoV1SeA+MontoV1SeB; TOTV2<-MontoV2SeA+MontoV2SeB; BON1<-(TOTV1*0.2)/CantEm1; BON2<-(TOTV2*0.2)/CantEm2; Escribir 'Total de Ventas de la sucursal 1:',TOTV1; Escribir 'Total de Ventas de la sucursal 2:',TOTV2; Escribir 'Bonificacion que pago la sucursal 1 a cada empleado:',BON1; Escribir 'Bonificacion que pago la sucursal 2 a cada empleado:',BON2 FinProceso

9. Un avin realiza su recorrido partiendo del aeropuerto A, luego se dirige al B, y de all al C y culmina su recorrido nuevamente en A. Se conocen como datos las coordenadas de los puntos A (Xa,Ya), B(Xb,Yb) y C(Xc,Yc). Se pide: a. Calcular la distancia que existe entre A y B, entre B y C y entre C y A. b. Calcular e informar la distancia total que debe recorrer el avin. La distancia se debe calcular en base a la siguiente frmula: D= RC ( (X2-X1)2 + (Y2-Y1)2) SOLUCIN: PARA COMPILAR EN PSeint Proceso Avion Escribir 'Ingrese el valor de la coordenada XA:'; Leer XA; Escribir 'Ingrese el valor de la coordenada YA:'; Leer YA; Escribir 'Ingrese el valor de la coordenada XB:'; Leer XB; Escribir 'Ingrese el valor de la coordenada YB:'; Leer YB; Escribir 'Ingrese el valor de la coordenada XC:'; Leer XC; Escribir 'Ingrese el valor de la coordenada YC:'; Leer YC; DistAB<-(XB+YB)-(XA+YA); DistBC<-(XC+YC)-(XB+YB); 20

Aplicar los principios de programacin en la solucin de problemas

DistCA<-(XC+YC)-(XA+YA); DistTOT<-(RC(((XC-XA)*(XC-XA))+((YC-YA)*(YC-YA))))*2; Escribir 'Distancia entre A y B:',DistAB; Escribir 'Distancia entre B y C:',DistBC; Escribir 'Distancia entre C y A:',DistCA; Escribir 'Distancia total que recorrio el Avion:',DistTOT FinProceso

10. Una lnea de colectivos presta los siguientes servicios: Comn, Estudiante y Trabajador. Los estudiantes y los trabajadores abonan el 50 % y el 40 % del costo de un boleto comn, respectivamente. Se desea obtener cantidad de boletos vendidos segn el servicio y total recaudado. Para resolver el problema, se dispone de las numeraciones iniciales y finales de los boletos de cada uno de los servicios, adems se conoce al inicio el precio del boleto estudiante. SOLUCIN: PROXIMAMENTE

11. La liquidacin del consumo telefnico de una lnea familiar tiene en cuenta un abono fijo con el cual el usuario puede utilizar 600 pulsos. El exceso de pulsos se liquida a razn de $1.75 por cada pulso de ms. Se conocen como datos: el monto del abono fijo, la cantidad de pulsos consumidos totales (mayor de 600) y la cantidad de pulsos utilizados en Internet. Estos ltimos se liquidan a tarifa reducida del 40 % del costo del pulso normal. Como primer dato, se conoce el nmero de telfono. Se desea obtener un informe como el siguiente: NMERO DE TELFONO: ............. ABONO FIJO: $ ....................... RECARGO: $ ........................... CANTIDAD DE PULSOS EXCEDENTES: .............. INTERNET: $............................ TOTAL: $ ................................ SOLUCIN: PROXIMAMENTE

Ejercicios de Algoritmos
Aca les dejo algunos ejercicios de algoritmo con pseudocodigo para los que le haga falta,un simple aporte,saludis.
TPA N1 : Nocin de Algoritmo. 1.1 Disear un algoritmo para cambiar una lamparita quemada de un artefacto suspendido en el techo. Utilizar la tcnica de refinamientos sucesivos. Algoritmo LAMPARITA comienzo 1. situar escalera debajo del artefacto que tiene la lamparita quemada 2. repetir subir un peldao hasta que (la mano alcanza la lamparita?) (hay ms peldao?) 3. repetir girar lamparita sentido anti horario

21

Aplicar los principios de programacin en la solucin de problemas hasta que (lamparita suelta?) 4. sacar lamparita 5. repetir bajar peldao hasta que (llegar al piso?) 6. repetir subir un peldao hasta que (la mano alcanza la lamparita?) (hay mas peldaos?) 7. poner la lamparita 8. repetir girar lamparita sentido horario hasta que (lamparita ajustada?) 9. repetir bajar peldao hasta que (llegar al suelo?) fin 1.2 Calcular el promedio de tres nmeros Algoritmo PROMEDIO var: N1,N2,N3,PROM: REAL comienzo 1.leer N1,N2,N3 2.P N1+N2+N3/3 3.escribir P fin 1.3 Buscar el rey de copas en un mazo de naipes. Slo puede mirar una ca rta por vez. Algoritmo CARTAS comienzo 1.tomar mazo de cartas 2. repetir cambiar carta hasta que encontrar rey de copas fin 1.4 De una sola tirada de 5 dados, informar si se ha formado generala, tomando de a un dado por vez y comparando de a dos. Algoritmo GENERALA var: A B C D E :entero comienzo leer A B si (a=b) entonces leer c si (c=b) entonces leer d si (d=c) entonces leer e si (e=d) entonces escribir GENERALA sino escribir NO GENERALA finsi fin 1.5 De un mazo de cartas espaolas se desean formar cuatro pilas, una para cada palo, teniendo en cuenta que solo se puede mirar de una carta por vez. Algoritmo CARTAS var: CARTA, P1, P2, P3, P4: entero P(PILA)

22

Aplicar los principios de programacin en la solucin de problemas comienzo leer CARTA repetir si CARTA=E entonces carta en P1 si CARTA=B entonces carta en P2 si CARTA=C entonces carta en P3 sino carta en p4 finsi hasta que (No mas cartas?) fin

1.7 Cambiar la rueda de un automvil Algoritmo AUTOMOVIL comienzo 1.situar gato en el lugar adecuado 2.repetir accionar gato hasta que (auto alcanza altura adecuada) 3.repetir colocar herramienta sobre tuerca 3.2 repetir girar herramienta en sentido anti horario hasta que (tuerca floja) hasta que (todas las tuercas sueltas 4.sacar rueda 5.colocar rueda nueva 6.repetir colocar herramienta sobre tuerca 6.1 repetir girar herramienta sentido horario hasta que (tuerca ajustada) hasta que (todas las tuercas ajustadas) 7.repetir accionar gato Hasta que (auto llegue al piso) fin 1.8 Leer un libro Algoritmo LIBRO comienzo 1.tomar libro 2.abrir tapa 3.repetir leer hoja hasta que (no mas texto) 4.repetir cambiar hoja hasta que (no mas hojas) fin

TPA N2: Formalizacin de Algoritmos. 2.1 Escribir las siguientes expresiones aritmticas, en un lenguaje de programacin, cuyos operadores aritmticos, son: +,-,*,/ y ^ a) x+y b)(a+b)/(c+d) c)(a+(b/(c+d)))/((1-x)/y) d)(a/b-1)/(d/c-1)

23

Aplicar los principios de programacin en la solucin de problemas e)x^5 f)(x+y)^3 2.2 Indicar el resultado y el tipo, de cada una de las siguientes expresi ones. a)5^3+4 = 129 entero b)2.0^3+5 = 13.0 real c)1/3+1/2 = 5/6 entero d)1/4+4 = 17/4 entero e)2*3/6 = 1 entero f)2+6*3.0+4^2 = 36.0 real 2.3 Indicar cual es el valor de la variables RESULTADO, despus de la ejecucin de las siguientes acciones (suponer que son reales) a)x 3.0 b)y 5.0 c)RESULTADO x*y+x d)RESULTADO 6 x4 RESULTADO RESULTADO *x^2 RESULTADO 96.0 2.5 Una agencia de venta de autos paga a su personal de ventas un salario de $800,00 mas una comisin de $170,00 por auto vendido mas un 5% del valor de venta. Disear un algoritmo para calcular el salario de un vendedor en un determinado mes, conociendo el n de automviles vendidos y el total del monto de ventas. Algoritmo ST var: S, NA, PT: reales comienzo leer NA,PT ST SM+ 100*NA+PT*0.05 escribir S fin 2.11 En un curso de ciencias de la computacin la calificacin final del estudiante se determina a partir del rendimiento e n tres aspectos del trabajo. Existe una calificacin de exmenes parciales, que cuenta con 30% del total, la calificacin de trabajo de taller con 20%, y el examen final con el 50%. Disear un algoritmo para calcular la calificacin final del estudiante. Algoritmo CALIFICACION var:EP,TT,EF:real comienzo leer EP,TT,EF C EP*0.3+PI*0.2+EF*0.5 escribir C fin TPA N3: Estructura de Decisin. 3.1 Comprobar si un numero entero positivo ingresado desde el teclado es par Algoritmo NPAR var:nro:entero comienzo leer NRO si ((-1)^NRO>0) entonces escribir PAR sino escribir NO ES PAR finsi fin

24

Aplicar los principios de programacin en la solucin de problemas

6. BIBLIOGRAFIA
1. Laboda, Javier; Josep Galimany, Rosa Mara Pena, Antoni Gual (1985). Software. Biblioteca prctica de la computacin. Barcelona: Ediciones Ocano-xito, S.A.. 2. Bellows, Jeannie, Castek (2000). Activity Diagrams and Operation Architecture. Technologies Group Inc.. 3. Pseudocdigo - Estructuras condicionales. Consultado el 7 de diciembre de 2012. 4. Instroduccin al PseudoCdigo. Consultado el 7 de diciembre de 2012. 5. Pea Mar, Ricardo (2005) (en espaol). Diseo de programas: formalismo y abstraccin (3 edicin). Pearson Alhambra. pp. 488. ISBN 978-84-205-4191-4. 6. (en espaol) Pseudocdigos y programacin estructurada (1 edicin). Centro Tcnico Europeo de Enseanzas Profesionales. 2 de 1997. ISBN 978-84-8199-065-2. 7. Brassard, Gilles; Bratley, Paul (1996) (en espaol). Algortmica: concepcin y anlisis. Pea Mari, Ricardo Tr. (1 edicin). Masson, S.A.. pp. 384. ISBN 978-84-458-0535-0. 8. Rodeira, ed (6 de 1994) (en Gallego). Pseudocdigos e programacin estructurada (1 edicin). ISBN 978-84-8116287-5. 9. Edeb, ed (8 de 1993) (en espaol). Pseudocdigos y programacin estructurada (1 edicin). ISBN 978-84-2363126-1.

Wikimedia Commons alberga contenido multimedia sobre Diagrama de flujo. Wikimedia Commons alberga contenido multimedia sobre diagrama de actividades. Documentos de la Especificacin UML 2.0 Introduccin a los Diagramas de Actividades UML 2 Wikimedia Commons alberga contenido multimedia sobre Programacin. Wikcionario tiene definiciones para programacin. Wikiquote alberga frases clebres de o sobre Programacin. Wikilibros alberga un libro o manual sobre Fundamentos de programacin.

25

Вам также может понравиться