Sie sind auf Seite 1von 35

UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Definicin del problema Consiste en la obtencin de una visin general y clara del problema.

Ayuda a identificar los elementos claves del problema y los de la futura solucin, as como fijar los lmites de los mismos basados en su planteamiento textual sobre el papel. Un problema mal planteado, incompleto o mal comprendido es un mal inicio para la programacin. Las respuestas a las siguientes preguntas son claves para la correcta definicin de un problema: Qu entradas se requieren, de qu tipo, en qu orden y qu cantidad? Qu salidas se desean, de qu tipo, en qu orden y qu cantidad? Qu mtodo(s) o frmula(s) produce(n), o puede(n) producir las salidas deseadas? Dependiendo de qu tan precisas sean las respuestas a esas preguntas, as ser la definicin del problema, sobre todo en cuanto al orden explcito de las entradas y las salidas esperadas. Mientras no se comprenda con claridad el problema por resolver no puede pasarse a la fase siguiente. Anlisis del problema Es la comprensin a fondo del problema y sus detalles y es un requisito para lograr una solucin eficaz. Es precisamente en esta fase donde se definen formal y correctamente la Entrada que recibir el programa (datos o materia prima), la Salida que producir (informacin o resultados) y el Proceso necesario para su solucin (el mtodo para convertir los datos de entrada en informacin de salida). Cada uno de estos aspectos coincide respectivamente con las preguntas planteadas en la fase de Definicin del Problema. A este enfoque se le conoce comnmente como E-P-S (Entrada-Proceso-Salida). Diseo de la solucin En esta fase se disea la lgica de la solucin a usar, o sea, cmo har el programa la tarea que se desea automatizar usando los datos de entrada para generar los datos de salida, enfatizndose los diseos limpios, sencillos y claros. Pueden plantearse diferentes alternativas de solucin al problema y elegir la ms adecuada, la que produzca los resultados esperados en el menor tiempo y al menor costo. Codificacin En este paso se traduce el algoritmo ya estructurado, verificado y comprobado a mano, al lenguaje de programacin que vaya a utilizarse. Slo se convierten las acciones del algoritmo en instrucciones de computadora usando la sintaxis de un lenguaje particular, pero requiere de conocimientos del lenguaje y de sumo

cuidado en la colocacin de las instrucciones, las que deben apegarse y seguir fielmente a la lgica del algoritmo y la semntica y sintaxis del lenguaje. La digitacin, el acto de teclear el algoritmo codificado, se lleva a cabo para almacenar el programa en la memoria de la computadora (virtual o fsica) y pueda ser aceptado por esta. Con frecuencia los programadores realizan la codificacin y la digitacin al mismo tiempo a fin de ahorrar tiempo, pero esto puede conducir a errores debido a la prdida de concentracin que implica el uso de un editor. La compilacin, o correccin de los errores sintcticos y semnticos del cdigo, es la eliminacin de los errores "gramaticales" segn las reglas de construccin de instrucciones particulares del propio lenguaje (la sintaxis). Puede hacerse a medida que se traduce, pero es mejor al final para no perder la secuencia de la codificacin. Al terminar debe tenerse el cdigo libre de los errores antes mencionados. Para realizar la compilacin puede hacerse uso de un compilador, el cual es un programa especial que analiza todo el cdigo fuente y detecta los errores antes mencionados ocasionados durante la codificacin o la digitacin. Las fallas de lgica que puedan existir en nuestro programa no son detectadas por este software. Los errores que s son evidenciados por el compilador deben corregirse modificando el programa fuente. Prueba y depuracin Una vez compilado el programa, este es sometido a pruebas a fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Para ello le suministramos datos de prueba, como lo hicimos en la prueba de escritorio. El programa codificado y compilado no garantiza que funcione correctamente. Debe depurarse (librarse de errores de lgica o de ejecucin) realizando corridas de prueba continuas con datos y respuestas conocidas como lo hicimos en la prueba de escritorio, verificando todas las posibles alternativas del programa y sus respuestas y haciendo el mayor nmero de variantes con sus combinaciones, a fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Las pruebas que se aplican al programa son de diversa ndole y generalmente dependen del tipo de problema que se est resolviendo. Comnmente se inicia la prueba de un programa introduciendo datos vlidos, invlidos e incongruentes y observando cmo reacciona en cada ocasin. Los resultados obtenidos en las pruebas pueden ser cualquiera de los siguientes: La lgica del programa est bien, pero hay errores sencillos, los cuales los corregimos eliminando o modificando algunas instrucciones o incluyendo nuevas. Hay errores ocasionados por fallas en la lgica, lo que nos obliga a regresar a las fases de Diseo y Codificacin para revisin y modificacin del diagrama. Hay errores muy graves y lo ms aconsejable es que regresemos a la fase 2 para analizar nuevamente el problema, y repetir todo el proceso.

No hay errores y los resultados son los esperados. En este caso guardamos el programa permanentemente en un medio de almacenamiento. Puede ser necesario en la mayora de los casos retroceder a fases previas de desarrollo, revisar el algoritmo otra vez en caso de errores de anlisis y/o lgica (que son los ms difciles de detectar, a diferencia de los de sintaxis y semntica), realizar ajustes al cdigo y una serie de nuevas ejecuciones de prueba para que el programa funcione correctamente. Si no existen errores en el programa, puede entenderse la depuracin como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeo del programa. Si se est automatizando alguna tarea manual, es comn poner a funcionar por un tiempo y de forma paralela ambas alternativas, a fin de comparar las salidas de ambas y adquirir confianza en la solucin automatizada. Documentacin Es la fase ms ignorada por la mayora de los programadores noveles, por razones de tiempo, costos o simple pereza. Pero no documentar los programas es un mal hbito en programacin y un gran error. Ser muy difcil a los usuarios entender un programa si no cuentan con un manual de operaciones (el Manual de Usuario). Tambin para los programadores que necesiten darle mantenimiento o hacerle modificaciones si no existe ninguna documentacin acerca de sus fases de desarrollo. Incluso ser difcil de entender para el mismo autor, algn tiempo despus. La documentacin es la gua o comunicacin escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas y sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). Recoge todos los elementos encontrados y material creado en las diferentes fases del desarrollo, adems de las normas de instalacin o las recomendaciones para la ejecucin del programa. La documentacin se divide en tres partes: Documentacin Interna Documentacin Externa Manual del Usuario Documentacin Interna: Son los comentarios que se aaden al cdigo fuente para clarificarlo. Documentacin Externa: Es todo el material creado y empleado en las diferentes fases del desarrollo del programa. Incluye: Descripcin del Problema Narrativo con la descripcin de la solucin Autor(s) Algoritmo (diagrama de flujo y/o pseudocdigo) Cdigo Fuente (programa)

Relacin de los elementos utilizados en el programa, cada uno con su respectiva funcin Limitaciones del programa Manual del Usuario: Describe paso a paso la manera cmo funciona el programa, con el fin de que los usuarios pueda operarlo correctamente y obtener los resultados deseados. Mantenimiento Es posible que el programa deba revisarse cada cierto tiempo para ajustes. Estos cambios pueden ser por la dinmica del problema, por la naturaleza del cdigo, las exigencias del tiempo o las modernas necesidades que surgen frecuentemente, por lo que se considera que ningn programa es esttico. Los programas siempre son susceptibles de mejoras y de mantenimiento. Por tales razones, es comn que se tenga que retornar a una de las fases iniciales de desarrollo para corregir o aadir funcionalidades, repitiendo el proceso en cada fase subsiguiente para introducir los cambios pertinentes y lograr que el programa funcione correctamente con los cambios realizados. Se enfatiza el hecho de que cualquier actualizacin o cambio en el programa deber reflejarse en su documentacin para que sta mantenga su vigencia.

UNIDAD II: ALGORITMOS Definicin de algoritmo En matemticas, ciencias de la computacin y disciplinas relacionadas, un algoritmo (del griego y latn, dixit algorithmus y ste a su vez del matemtico persa Al Juarismi ) es un conjunto prescrito 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. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia. En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones. Un algoritmo es una secuencia lgica y cronolgica de pasos encaminados a resolver un problema. Las acciones bsicas que puede llevar a cabo un algoritmo son: pedir datos, desplegar datos, evaluar condiciones y ejecutar operaciones.

Los programas se estructuran a partir de los algoritmos, los cuales se pueden escribir utilizando la tcnica convencional del pseudocdigo (mezcla de lenguaje comn, trminos tcnicos de computacin, smbolos y palabras reservadas de algn lenguaje de programacin) y los diagramas de flujo (flujo gramas) que son la representacin grfica de un algoritmo, plasmados en papel para su estudio. En el caso de emplear diagramas de flujo pueden emplearse herramientas de software tales como el DFD v1.0. Si se opta por el pseudocdigo, se recomienda escribirlos a doble interlnea para efecto de facilitar modificaciones o adicin de acciones no consideradas y dotarlos de las siguientes caractersticas. Caractersticas Un algoritmo debe tener un punto de inicio o partida. Debe ser preciso e indicar el orden de realizacin de cada paso. Debe estar bien definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Debe ser finito (tener un nmero finito de pasos). Si se sigue un algoritmo, se debe terminar en algn momento. La definicin de un algoritmo debe describir con claridad las tres partes fundamentales del problema: Entrada, Proceso y Salida encontrados en las fases de Definicin y Anlisis del problema. Se deja sentado que todos los programas empiezan primero en papel, no directamente frente a la computadora. An los programadores ms experimentados plasman en papel sus ideas y soluciones antes de programarlas. Pero es comn que los novatos vayan directamente a la computadora sin haber siquiera ledo bien el problema o pensado siquiera el algoritmo. Eventualmente podrn concluir el programa y alcanzar una solucin, pero slo despus de probar diferentes ideas, hacer miles de cambios y perder gran cantidad de tiempo y esfuerzo. Los que se toman tiempo para analizar el problema, pensar y plasmar su solucin en papel mediante un algoritmo tendrn un tiempo de respuesta (el tiempo para obtener el programa terminado) mucho menor, y se convierten en mejores programadores. Es un hecho. Los problemas complejos pueden solucionarse ms eficazmente utilizando el mtodo "Divide y Vencers", el que consiste en fraccionar un problema complejo en otros ms simples y ms fciles de solucionar. Esto conduce a la Modulacin del programa auxiliado por el mtodo de diseo Top-Down o Descendente en el que se da un refinamiento de los pasos del algoritmo. De hecho, el enfoque E-P-S mencionado anteriormente es un buen ejemplo de esto, pues al concentrarse en resolver cada uno de los tres aspectos del enfoque de manera independiente se lograr la solucin del problema completo. Reglas para la construccin de algoritmos

Conjunto finito de reglas que dan una secuencia de operaciones para resolver todos los problemas de un tipo dado. De forma ms sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato. Adems debe cumplir estas condiciones. Finitud: el algoritmo debe acabar tras un nmero finito de pasos. Es ms, es casi fundamental que sea en un nmero razonable de pasos. El algoritmo debe definirse de forma precisa para cada paso, es decir hay que evitar toda ambigedad, puesto que el lenguaje es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de programacin para un computador. Entrada: el algoritmo tendr cero o ms entradas es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenece adems a conjuntos especificados de objetos (cadenas de caracteres, enteros, naturales, fraccionarios, etc.). Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean acta para su interpretacin por el computador. Salida: el algoritmo tiene una o ms salidas en relacin con las entradas. Efectividad: se entiende por eso que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una maquina en un lapso de tiempo finito. Lo que pretende un algoritmo es sintetizar de alguna forma alguna tarea, clculo o mecanismo antes de ser transcrito al ordenador. Los pasos que hay que seguir son los siguientes: 1. anlisis previo del problema. 2. primera visin del mtodo de resolucin. 3. descomposicin en mdulos. 4. programacin estructurada. 5. bsqueda de soluciones parciales. 6. ensamblaje de soluciones finitas. Lenguaje algortmico: El lenguaje algortmico es aquel que por medio del cual se realiza un anlisis previo del problema a resolver y encontrar un mtodo que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse se le denomina algoritmo. El lenguaje algortmico se divide en cdigo y diagrama de flujo. Tipos de algoritmos La mayora de los sistemas expertos utilizan algoritmos para el razonamiento. Este planteamiento tiene una limitacin importante: el sistema es capaz de resolver solamente las situaciones previstas por quien ha diseado el algoritmo. Por este motivo nadie califica de "inteligente" a un sistema de estas caractersticas. Existen distintos tipos de algoritmos de razonamiento:

Algoritmos estticos, es decir, algoritmos que funcionan siempre igual, independientemente del tipo de problema tratado. Por ejemplo, los sistemas basados en el mtodo de resolucin. Algoritmos probabilsticos, es decir, algoritmos que no utilizan valores de verdad booleanos sino continuos. Por ejemplo, los sistemas basados en lgica difusa. Algoritmos adaptativos, es decir, algoritmos con cierta capacidad de aprendizaje. Por ejemplo, los sistemas basados en redes neuronales. Los Algoritmos permiten resolver problemas computacionales mediante lenguajes de programacin. Como Ejemplo podemos poner dos de los ms usuales: Divide y Vencers: Consiste en descomponer un problema en sub problemas, resolver cada sub problema y combinar las soluciones. El resultado, es la solucin del problema original. Si los sub problemas son todava demasiado grandes, se utiliza la misma tctica con ellos, esto es, dividirlos a ellos tambin, utilizando un algoritmo recursivo que vaya dividiendo ms el sub-problema hasta que su solucin sea trivial Backtracking: El Backtracking o esquema de vuelta atrs, es un esquema que de forma sistemtica y organizada, genera y recorre un espacio que contiene todas las posibles secuencias de decisiones. Este espacio se denomina el espacio de bsqueda del problema, y se representa como un rbol sobre el que el algoritmo hace un recorrido en profundidad partiendo de la raz. Se conoce de antemano el orden en que se van a generar y recorrer sus nodos, y se contina recorriendo el rbol mientras se cumplan las restricciones. ste mtodo tiene tres posibles esquemas: encontrar una solucin factible, encontrar todas las soluciones factibles, encontrar la mejor solucin factible. Un algoritmo puede adems ser: Determinstico, s en cada paso del algoritmo, es posible predecir la salida para una entrada dada. No determinsticos, s existe uno ms pasos en el algoritmo, para el cual es posible predecir cul ser la salida. Por esa razn se tienen los siguientes tipos de problemas: I) Polinomial: Existe al menos un algoritmo polinomial determinstico que lo resuelve. II) No -Polinomiales: Solo existen algoritmos polinomiales del tipo no determinstico que los resuelven. Ejercicios con algoritmos En una empresa: se debe visualizar en una lista FICHA donde se encuentra nombre categora, edad y sueldo adems el programa debe visualizar un mensaje existen trabajadores mayores de 65 aos en un numero de... y el nmero de trabajadores mayores de 65 aos. Inicio SW 65 Entonces

S =18 entonces MMa=MMa+1 fin_si sino si Ed(c) 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 > 5 < 30 (No es lgico porque tiene diferentes operandos)

UNIDAD III: DIAGRAMAS DE FLUJO LINEALES 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. 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. Operadores Aritmticos + Suma - Resta * Multiplicacin / Divisin

mod Modulo (residuo de la divisin entera) Ejemplos: Expresin 7 / 2 3.5 12 mod 7 4+2*5

Resultado 5 14

Operadores Relacionales Se utilizan para establecer una relacin entre dos valores. Luego compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluacin. Los operadores relacinales tiene menor prioridad que los aritmticos. Tipos de operadores Relacionales > 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 > 5 < 30 (no es lgico porque tiene diferentes operandos) Operadores Lgicos

Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional. Tipos de operadores Lgicos And Y Or O Not Negacin Ejemplo: Para los siguientes ejemplos T significa verdadero y F falso. Operador Not Operador Not Operando Resultado T F F T

Operador And Operador And Operando1 Operador Operando2 Resultado T AND T T T F F F T F F F F

Operador Or Operador Or Operando1 Operador Operando2 Resultado T Or T T T F T F T T F F F Prioridad de los Operadores Lgicos 1. Not 2. And 3. Or Prioridad de los Operadores en General 1. ( ) 2. ^

3. *, /, Mod, Not 4. +, -, And 5. >, <, > =, < =, < >, =, Or Ejemplos: Sea: a = 10 b = 12 c = 13 d =10

Conceptos Los diagramas de flujo (o flujo gramas) son diagramas que emplean smbolos grficos para representar los pasos o etapas de un proceso. Tambin permiten describir la secuencia de los distintos pasos o etapas y su interaccin. Las personas que no estn directamente involucradas en los procesos de realizacin del producto o servicio, tienen imgenes idealizadas de los mismos, que pocas veces coinciden con la realidad. La creacin del diagrama de flujo es una actividad que agrega valor, pues el proceso que representa est ahora disponible para ser analizado, no slo por quienes lo llevan a cabo, sino tambin por todas las partes interesadas que aportarn nuevas ideas para cambiarlo y mejorarlo. Ventajas de los Diagramas de Flujo * Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo. El cerebro humano reconoce 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 redundantes, los flujos de los reprocesos, 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. 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 Relacionales Lgicas

Contadores Un elemento cuyo valor se incrementa o decrementa en un valor constante en cada iteracin de un bucle, y se utiliza para controlar la condicin del bucle. Acumuladores Es una variable que tambin se suele usar en los bucles y que se incrementa o decrementa en cada iteracin del bucle, pero no en una cantidad constante.

Definicin y clasificacin de diagramas Diagrama de flujo Representacin grfica, mediante la utilizacin de signos convencionales, del proceso que sigue la informacin en un programa determinado. Se utilizan habitualmente en la fase de desarrollo de aplicaciones por los programadores. El diagrama de flujo o Flowchart es una de las tcnicas de representacin de algoritmos ms antigua, y consiste en representar mediante smbolos las operaciones a realizar. Por ejemplo: el inicio y el fin del algoritmo se representan con un smbolo elptico, las entradas y salidas con un paralelogramo, las decisiones con un rombo, los procesos con un rectngulo, etc.

-Control de Flujo. Mecanismo de protocolo que permite al receptor controlar la razn a la que enva datos un transmisor. El control de flujo hace posible que un receptor que... -Diagrama IP. Forma de un paquete enviado por una interred TCP/IP. Cada datagrama tiene una cabecera que identifica tanto al transmisor como al receptor, seguida de datos.... -Casos de uso. Es una secuencia de transacciones que son desarrolladas por un sistema en respuesta a un evento que inicia un actor sobre el propio... -BIT (Binario)Un bit no es otra cosa que un dgito dentro del sistema de numeracin binario, es decir que un bit puede ser un 1 o un 0. El trmino proviene... -Fichero. Denominado tambin como archivo, consiste en una unidad de informacin en la que se almacena el resultado de utilizar un programa de proceso de textos, base de datos o...

Clasificacin Por su presentacin: De bloque: Se representan en trminos generales con el objeto de destacar determinados aspectos. De detalle: Plasman las actividades en su ms detallada expresin. Por su formato: De formato vertical: En el que el flujo de las operaciones va de arriba hacia abajo y de derecha a izquierda. De formato horizontal: En el que la secuencia de las operaciones va de izquierda a derecha en forma descendente. De formato tabular: Tambin conocido como de formato columnar o panormico, en el que se presenta en una sola carta el flujo total de las operaciones, correspondiendo a cada puesto o unidad una columna. De formato arquitectnico: Muestra el movimiento o flujo de personas, formas, materiales, o bien la secuencia de las operaciones a travs del espacio donde se realizan. Por su propsito: De forma: El cual se ocupa fundamentalmente de documentos con poca y/o ninguna descripcin de operaciones. Vertical Horizontal De labores: Indica el flujo o secuencia de las operaciones, as como quin o en donde se realiza y en qu consiste sta. De mtodo: Muestra la secuencia de operaciones, la persona que las realiza y la manera de hacerlas. Analtico: Describe no slo el procedimiento quin lo hace, y cmo hacer cada operacin, sino para qu sirven. De espacio: Indica el espacio por el que se desplaza una forma o una persona. Combinados: Emplean dos o ms diagramas en forma integrada. De ilustraciones y texto: Ilustra el manejo de la informacin con textos y dibujos.

Asistido por computadora: El flujo de informacin se hace con recursos de software.

Simbologa

Inicio o fin del programa

Pasos, procesos o lneas de instruccin de programa de computo

Operaciones de entrada y salida

Toma de decisiones y Ramificacin

Conector para unir el flujo a otra parte del diagrama

Cinta magntica

Disco magntico

Conector de pagina

Lneas de flujo

Anotacin

Display, para mostrar datos

Enva datos a la impresora

Dentro de los smbolos fundamentales para la creacin de diagramas de flujo, los smbolos grficos son utilizados especficamente para operaciones aritmticas y relaciones condicionales. La siguiente es una lista de los smbolos ms comnmente utilizados: + * / = > < Sumar Menos Multiplicacin Divisin Mas o menos Equivalente a Mayor que Menor que Mayor o igual que Menor o igual que

o <> Diferente de Si No

True False

Estructura de control En lenguajes de programacin, las estructuras de control permiten modificar el flujo de ejecucin de las instrucciones de un programa. Con las estructuras de control se puede: De acuerdo a una condicin, ejecutar un grupo u otro de sentencias (If-Then-Else y Select-Case) Ejecutar un grupo de sentencias mientras exista una condicin (Do-While) Ejecutar un grupo de sentencias hasta que exista una condicin (Do-Until) Ejecutar un grupo de sentencias un nmero determinado de veces (For-Next) Etc Todas las estructuras de control tienen un nico punto de entrada y un nico punto de salida. Las estructuras de control se puede clasificar en: secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite que la programacin se rija por los principios de la programacin estructurada. Los lenguajes de programacin modernos tienen estructuras de control similares. Bsicamente lo que vara entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la estructura. Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.

Estructura secuencial.

Se caracteriza porque una accin se ejecuta detrs de otra. El flujo del programa coincide con el orden fsico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicializacin de variables, operaciones de asignacin, clculo, sumarizacin, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:

Definicin de variables (Declaracin) Inicializacin de variables. Lectura de datos Clculo Salida

Estructuras selectivas

Estructura de control selectivas: IF simple. Sentencia IF Toma una decisin referente a la accin a ejecutar en un programa entre dos alternativas basndose en el resultado (verdadero o falso) en una expresin. Sintaxis: if (condicin) Instruccin ejecutada cuando la condicin es "verdadera"; else Instruccin ejecutada cuando la condicin es "falsa"; Cuando en un programa que se est ejecutando se encuentra la instruccin if, la condicin ser evaluada para determinar su valor numrico, el cual ser interpretado como verdadero o falso. Si la condicin produce cualquier valor numrico positivo o negativo que no sea cero, ser considerada como condicin "verdadera" y se ejecutar la instruccin que sigue al if. Si la condicin produce un valor numrico de cero, ser considerada "falsa" y se ejecutar la instruccin que sigue al else La parte del else es opcional y se puede omitir.

Los operadores relacionales o lgicos sern utilizados para operandos con nmeros enteros, flotantes, dobles o caracter en la instruccin if.

Ejemplos: edad > 40 3<4 da != 5 largo <= 50 marcador == terminar 2.0 > 3.3 temp > 98.6 num_id ==682 hora > 40

edad > 40 && edad < 20 // si edad es mayor a 40 Y edad es menor que 20 numero > 2 && numero <= 9 // si numero es mayor a 2 Y numero es menor o igual que 9 numero > 5 || numero <= 15 // si numero es mayor a 5 O numero es menor o igual que 15 numero > 8 || numero <= 12 // si numero es mayor a 8 O numero es menor o igual que 12 Ejemplos invlidos: largo =< 50 // operador fuera de orden 2.0 >>3 // operador invalido marcador = = terminar // no se permiten espacios intermedios Sintaxis a utilizar dentro de un programa: #include<iostream.h> #include<dos.h> #include<conio.h> int main ( ) { textbackground(3) ; // sirve para asignar color al fondo de pantalla clrscr() ;

textcolor(2) ; // sirve para asignar color al texto clrscr() ; int num; cout<<"Dame un numero al azar no mayor a 30" << endl; cin>>num; if ( num > 30 ) cout<<"Nmero invalido"; if ( num > 1 ) && (num < 30) cout<<"Bien acertaste el rango"; getch(); return 0; }

IF, IF ELSE

La sentencia if La sentencia if, acta como cabra esperar. Si la condicin es verdadera, la sentencia se ejecuta, de otro modo, se salta dicha sentencia, continuando la ejecucin del programa con otras sentencias a continuacin de sta. La forma general de la sentencia if es: if (condicin) sentencia;

Si el resultado del test es verdadero (true) se ejecuta la sentencia que sigue a continuacin de if, en caso contrario, falso (false), se salta dicha sentencia, tal como se indica en la figura. La sentencia puede consistir a su vez, en un conjunto de sentencias agrupadas en un bloque. if (condicin){ sentencia1; sentencia2; } En el siguiente ejemplo, si el nmero del boleto que hemos adquirido coincide con el nmero aparecido en el sorteo, nos dicen que hemos obtenido un premio. if(numeroBoleto==numeroSorteo) System.out.println("has obtenido un premio");

La sentencia if...else La sentencia if...else completa la sentencia if, para realizar una accin alternativa if (condicin) sentencia1; else sentencia2

Las dos primeras lneas indican que si la condicin es verdadera se ejecuta la sentencia 1. La palabra clave else, significa que si la condicin no es verdadera se ejecuta la sentencia 2, tal como se ve en la figura.. Dado que las sentencias pueden ser simples o compuestas la forma general de if...else es if (condicin){ sentencia1; sentencia2; }else{ sentencia3 sentencia4; sentencia5; } Existe una forma abreviada de escribir una sentencia condicional if...else como la siguiente: if (numeroBoleto==numeroSoreteo) premio=1000; else premio=0;

en una sola lnea premio=(numeroBoleto==numeroSorteo) ? 1000 : 0; Un ejemplo significativo es el siguiente: el signo de un nmero elevado a una potencia par es positivo, y es negativo cuando est elevado a una potencia impar. int signo=(exponente%2==0)?1:-1; La condicin entre parntesis es la siguiente: un nmero es par, cuando el resto de la divisin entera de dicho nmero entre dos vale cero.

SWITCH

En la sentencia switch, se compara el valor de una variable o el resultado de evaluar una expresin, con un conjunto de nmeros enteros valor1, valor2, valor3, .. o con un conjunto de caracteres, cuando coinciden se ejecuta el bloque de sentencias que estn asociadas con dicho nmero o carcter constante. Dicho bloque de sentencias no est entre llaves sino que empieza en la palabra reservada case y termina en su asociado break. Si el compilador no encuentra coincidencia, se ejecuta la sentencia default, si es que est presente en el cdigo. Veamos ahora un ejemplo sencillo: dado el nmero que identifica al mes (del 1 al 12) imprimir el nombre del mes. public class SwitchApp1 { public static void main(String[] args) { int mes=3; switch (mes) { case 1: System.out.println("Enero"); break; case 2: System.out.println("Febrero"); break; case 3: System.out.println("Marzo"); break; case 4: System.out.println("Abril"); break; case 5: System.out.println("Mayo"); break; case 6: System.out.println("Junio"); break; case 7: System.out.println("Julio"); break; case 8: System.out.println("Agosto"); break; case 9: System.out.println("Septiembre"); break; case 10: System.out.println("Octubre"); break; case 11: System.out.println("Noviembre"); break; case 12: System.out.println("Diciembre"); break; default: System.out.println("Este mes no existe"); break; }

} }

Repetitivas Estructura de control repetitiva o ciclo For

FOR

Ciclo el cual permite ejecutar una sentencia simple o compuesta repetidamente un nmero de veces conocido, la sentencia adecuada FOR.

Sintaxis for ( inicializacin; condicin; variacin ) { sentencias } Ejemplo: int i; int i;

for ( i = 1; i <= for ( i = 10; i >= 10; i++ ) 1; i - - ) { printf ("hola"); } } { printf ("hola");

WHILE

Evalan una expresin al inicio y ejecuta la sentencia un nmero de veces requerido. Sintaxis: Sentencia Ejemplo: #include<iostream.h> #include<conio.h> #include<dos.h> int main () { int i; i=1; while ( i <= 10) { cout <<" hola"; i = i + 1; // Es los mismo que i ++; getch Puesto que los dos son (); contadores while ( expresin )

} return 0; }

DO WHILE Acompaada del while sirve para repetir la ejecucin de sentencias en funcin de una condicin al menos una vez. Sintaxis: { do

sentencias } while ( condicin ); Ejemplo 1: #include<iostream.h> #include<conio.h> #include<dos.h> main () { int i; i = 1; do { cout << i = i while ( i <= 10); " + hola"; 1;

} getch (); return 0; } Elaboracin de diagramas Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la direccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo horizontal o verticales (nunca diagonales). Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.

No deben quedar lneas de flujo sin conectar Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de muchas palabras. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo final. Solo los smbolos de decisin pueden y deben tener ms de una lnea de flujo de salida. Ejemplos de diagramas de flujo Diagrama de flujo que encuentra la suma de los primeros 50 nmeros naturales

Bueno, y ahora la descripcin del diagrama anterior Suma, es la variable a la que se le va agregando la valor de cada nmero natural. N, es el contador. ste recorrer los nmeros hasta llegar al 50. El primer bloque indica el inicio del Diagrama de flujo

El segundo bloque, es un Smbolo de procesos En este bloque se asume que las variables suma y N han sido declaradas previamente y las

inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada).

El tercer bloque, es tambin un Smbolo de procesos En ste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdr 1, ya que estaba inicializada en 0.

El cuarto bloque es exactamente lo mismo que el anterior Pero en ste, ya se le agrega el valor de N a la variable que contendr la suma (En el primer caso contendr 1, ya que N = 1). El quinto bloque es un Smbolo de Toma de decisiones y Ramificacin Lo que hay dentro del bloque es una pregunta que se le hace a los valores que actualmente influyen en el proceso (Por decir algo, no se como decirlo, soy muy sope :D)

Es N=50?, Obviamente la respuesta es no, ya que N todava es 1. Por lo que el flujo de nuestro programa se dirigir haca la parte en donde se observa la palabra no: Tercer Bloque, ste le sumar 1 (N=N+1) y vuelve a llegar a ste bloque, donde preguntar Es N=50?... No!, todava es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y as hasta llegar a 50, obteniendo as la suma de los primeros 50 primeros nmeros naturales. Por ltimo indicamos que el resultado ser mostrado en la impresora (Este lo

puedes cambiarlo por el display para mostrar datos).

Fin del programa (o diagrama)

Pseudocdigo El pseudocdigo se caracteriza por: a) No puede ser ejecutado directamente por un ordenador, por lo que tampoco es considerado como un lenguaje de programacin propiamente dicho. b) Ser una forma de representacin muy sencilla de aprender y utilizar. c) Permitir el diseo y desarrollo de algoritmos totalmente independientes del lenguaje de programacin seleccionado. d) Facilitar el paso del algoritmo al correspondiente lenguaje de programacin. e) Permitir una gran flexibilidad en el diseo del algoritmo para expresar acciones concretas. f) Facilitar la realizacin de futuras modificaciones ya que es flexible. g) Facilita la obtencin de soluciones mediante aproximaciones sucesivas. Su diseo descendente nos permite descomponer el problema en subproblemas ms pequeos. El diseo de un algoritmo mediante pseudocdigo exige la identificacin o sangra del texto en el margen izquierdo de las diferentes lneas, lo que facilita el entendimiento y comprensin del diseo realizado. Toda notacin pseudocodificada debe permitir la descripcin de: a) Instrucciones primitivas (entrada, salida y asignacin). b) Instrucciones de proceso o clculo. c) Instrucciones compuestas. d) La descripcin de todos los elementos que se vayan a manipular en el programa (variables, constantes, tablas, ficheros, etc.). Todo algoritmo representado en notacin pseudocodificada deber reflejar las siguientes partes: Cabecera: Es el bloque informativo donde quedar reflejado el nombre del algoritmo y el del programa al que pertenece. Cuerpo: Es el resto del diseo que queda dividido en otros dos bloques, el bloque de datos y el bloque de acciones. Prueba de escritorio O sea, comprobaciones a mano del algoritmo planteado (en pseudocdigo o en diagrama de flujo) con datos y resultados de prueba conocidos, papel, lpiz y calculadora (si es necesaria) para simular su ejecucin y evaluar su correcta operacin. Si la lgica es correcta, los resultados sern satisfactorios. Si no, el algoritmo deber modificarse y volverlo a probar hasta que est correcto. Algunos programas no son fciles de probar a mano por su complejidad y/o tamao, pero en tu ayuda est la verificacin durante la programacin inicial (la creacin del algoritmo), el trace and debugging (rastreo y deteccin de errores) automtico que incorporan los lenguajes de compiladores de los lenguajes de programacin y otras tcnicas. Se hace notar que ste acpite depende de los anteriores. Si la definicin y el anlisis son errados, el diseo del programa tambin lo ser, por lo

que se tendr que rehacer, retrocediendo quiz hasta la fase de Definicin del problema. Se puede definir como el lenguaje intermedio entre el lenguaje natural y el lenguaje de programacin seleccionado. Esta notacin se encuentra sujeta a unas determinadas reglas que nos permiten y facilitan el diseo de algoritmos.

UNIDAD IV: DISEO MODULAR Funciones Tipo de programacin se apega bien al diseo descendente porque enfatiza las interfaces entre los mdulos, mis qu mantenerlas ignoradas hasta el final del desarrollo del sistema. De manera ideal, cada mdulo debe ser funcionalmente cohesivo, de tal manera que satisfaga slo una funcin. El disueno de programas modulares, tiene tres ventajas bsicas: Primero, los mdulos son ms fciles de escribir y de revisar, ya que estn virtualmente autocontenidos. La deteccin de un error dentro de un mdulo es menos complicada, ya que los problemas asociados a un mdulo no llegarn a trascender a los otros. Una segunda ventaja del diseo modular, es que el mantenimiento de los mdulos es ms fcil. Las modificaciones pueden limitarse a unos cuantos mdulos y no al programa completo. Una tercera ventaja del diseo modular es que la problemtica de los mdulos es ms fcil de entender, ya que son sistemas autocontenidos. Eso significa que un lector entender la funcin de un mdulo especific, con slo tomar su listado de cdigo. Algunos lineamientos para la programacin modular son: Mantener cada mdulo de un tamao manejable (de manera ideal incluyendo slo una funcin). Prestar atencin particular en las interfaces criticas (esto es, a los datos y a las variables de control que pasan entre los mdulos). 3. Minimizar el nmero de mdulos que el usuario necesite modificar cuando haga cambios. 4. Mantener las relaciones jerrquicas establecidas en las etapas de descenso.

Otra definicin La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable. Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver. Al aplicar la programacin modular, un problema complejo debe ser dividido en varios subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers anlisis descendente (Top-Down). Un mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. Si bien un modulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la prctica es comn representarlos con procedimientos y funciones. Adicionalmente, tambin pueden considerarse mdulos las libreras que pueden incluirse en un programa o, en programacin orientada a objetos, la implementacin de un tipo de dato abstracto.

Sin parmetros La sintaxis utilizada para la declaracin de la lista de parmetros formales es similar a la utilizada en la declaracin de cualquier identificador. A continuacin se exponen varios ejemplos: int func(void) {...} // sin parmetros inf func() {...} // dem. int func(T1 t1, T2 t2, T3 t3=1) {...} // tres parmetros simples, // uno con argumento por defecto int func(T1* ptr1, T2& tref) {...} // los argumentos son un puntero y // una referencia. int func(register int i) {...} // Peticin de uso de registro para // argumento (entero)

int func(char* str,...) {...} /* Una cadena y cierto nmero de otros argumentos, o un nmero fijo de argumentos de tipos variables */

Con parmetros A los parmetros tambin se les conoce como argumentos y tienen la misin de comunicar al procedimiento con el programa que lo llama. Por ejemplo, si quieres hacer un subprograma que multiplique dos nmeros, lo ms cmodo es que al llamar al procedimiento le pases los valores que participarn en la operacin. Podra ser algo como: procedure producto (a,b : integer; var rdo : integer) ; (* resto del procedimiento *) En el ejemplo anterior se observan las dos clases de argumentos que existen en Pascal:

Los parmetros por valor Los parmetros por referencia

Los parmetros por valor tienen dicho nombre porque lo que recibe el subprograma no son ms que copias de los valores de los datos que el programa invocador le pasa. Por tanto si en el procedimiento modificamos alguno de estos valores, los datos originales permanecern inalterados. En el ejemplo, son a y b. En cambio, en los parmetros por referencia lo que se pasa al procedimiento son los datos en s. Y si ste los modifica, los cambios permanecern una vez que la ejecucin vuelva al mdulo que invoc al procedimiento. Se utilizan para obtener valores de los clculos que haga un subprograma, y en el anterior ejemplo es rdo.

http://html.rincondelvago.com/introduccion-a-la-programacion_1.html http://www.monografias.com/trabajos38/programacion/programacion.shtml

http://www.buenastareas.com/ensayos/Principios-De-Programacion/2872527.html >>>>>> UNIDAD 1

Russel, Charlie y Sharon Crawford. Windows NT Server 4.0 . Mxico, McGraw Hill, 1997. ~ St-Pierre, Armand y William Stphanos. Redes locales e Internet. Introduccin a la comunicacin de datos. Mxico, Editorial Trillas, 1997 ~ Tanenbaum, Andrew. Redes de Computadoras. 3 ed., Mxico, Prentice Hall Hispanoamrica S.A., 1997 ~ Wyatt, Allen. Aprendiendo Windows NT Server 4. Mxico, Prentice Hall Hispanoamrica, S. A., 1997. ~ Yost, Guy. Aprendiendo Netware 4.1. Mxico, Prentice Hall Hispanoamericana, S. A., 1997

T.W. Pratt y M.V. Zelkowitz, Lenguajes de programacin: diseo e implementacin, Prentice-Hall Hispanoamericana, 3 ed., 1998 R. Sethi, Lenguajes de programacin: conceptos y constructores, Addison-Wesley Iberoamericana, 1992

Das könnte Ihnen auch gefallen