Documente Academic
Documente Profesional
Documente Cultură
diseo de la solucin
Codificacin La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.
PRUEBA
Probar un programa es ejercitarlo con la peor intencin a fin de encontrarle fallos. El objetivo especfico de la fase de pruebas es encontrar cuantos ms errores, mejor. Probar un programa es someterle a todas las posible variaciones de los datos de entrada, tanto si son vlidos como si no lo son. tipos de prueba Pruebas de Integracin Las pruebas de integracin se llevan a cabo durante la construccin del sistema, involucran a un nmero creciente de mdulos y terminan probando el sistema como conjunto. Estas pruebas se pueden plantear desde un punto de vista estructural o funcional. Pruebas de Aceptacin Estas pruebas las realiza el cliente. Son bsicamente pruebas funcionales, sobre el sistema completo, y buscan una cobertura de la especificacin de requisitos y del manual del usuario. Estas pruebas no se realizan durante el desarrollo, pues sera impresentable de cara al cliente; sino una vez pasadas todas las pruebas de integracin por parte del desarrollador.
Depuracin (debugging)
Los depuradores pueden usarse para realizar inspecciones rigurosas sobre el comportamiento dinmico de los programas. La prctica demuestra, no obstante, que su uso es tedioso y que slo son eficaces si se persigue un objetivo muy claro. El objetivo habitual es utilizarlo como consecuencia de la deteccin de un error. Si el programa se comporta mal en un cierto punto, hay que averiguar la causa precisa para poder repararlo. La causa a veces es inmediata (por ejemplo, un operador booleano
equivocado); pero a veces depende del valor concreto de los datos en un cierto punto y hay que buscar la causa en otra zona del programa. En general es mala idea "correr al depurador", tanto por el tiempo que se pierde buceando sin una meta clara, como por el riesgo de corregir defectos intermedios sin llegar a la raiz del problema. Antes de entrar en el depurador hay que delimitar el error y sus posibles causas. Ante una prueba que falla, hay que identificar el dominio del fallo, averiguar las caractersticas de los datos que provoca el fallo (y comprobar experimentalmente que todos los datos con esas caractersticas provocan ese fallo, y los que no las tienen no lo provocan).
Documentacin Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes: Documentacin Interna Documentacin Externa Manual del Usuario
Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer mas claro el entendimiento de un proceso. Documentacin Externa: Se define en un documento escrito los siguientes puntos: Descripcin del Problema Nombre del Autor Algoritmo (diagrama de flujo o pseudocdigo) Diccionario de Datos Cdigo Fuente (programa)
Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.
Mantenimiento Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.
UNIDAD
ALGORITMOS
algoritmos prcticos como aquellos que solo funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de Gauss-Jordan funcionan, al menos en principio, con nmeros de precisin infinita; sin embargo no es posible programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda funcin calculable se puede programar en una mquina de Turing (o equivalentemente, en un lenguaje de programacin suficientemente general):10
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 mas, es casi fundamental que sea en un nmero razonable de pasos. > >Definibilidad: 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 deempezar 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 mas salidas en relacin con las entradas. > >Efectividad: se entiende por eso que una persona sea capa 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, calculo 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 pseudo cdigo y diagrama de flujo. > > > > >El pseudocdigo: > >Es un conjunto de palabras reservadas y reglas para escribir algoritmos de una manera ms formal y estructurada. El objetivo es tener un algoritmo que este planteado en trminos ms cercanos a los lenguajes de programacin utilizados en la computadora. Es utilizada para los cursos de fundamentos de programacin. El pseudo cdigo ha sido concebido con algunos elementos similares a los lenguajes C para dar cierta familiaridad con el lenguaje que en estos cursos se utiliza para los proyectos. Sin embargo, el pseudo
cdigo NO ES EL LENGUAJE C. tiene diferencias sustanciales en cuanto a sus tipos de datos, operadores, representacin de variables y estructuras de control. C es un lenguaje muy rico en expresividad pero tambin es muy fcil al usarlo, escribir cdigo de mala calidad si no se tiene cuidado.
TIPOS DE ALGORITMOS El programador de computadoras es ante que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemtico. A la metodologa necesaria para resolver problemas mediante programas se denomina Metodologa de la Programacin. El eje central de esta metodologa es el concepto, ya tratado, de algoritmo. Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin del trmino ha llegado con el advenimiento de la era informtica, algoritmo proviene de Mohammed al-Khowarizmi, matemtico persa que vivi durante el siglo IX y alcanzo gran reputacin por el enunciado de las reglas para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido de la palabra algorismus derivo posteriormente en algoritmo. Euclides, el gran matemtico griego (del siglo IV antes de Cristo) que invento un mtodo para encontrar el mximo comn divisor de dos nmeros, se considera con Al-Khowarizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos). El profesor Niklaus Wirth, inventor de Pascal, Modula-2 y Oberon, titulo uno de sus mas famosos libros, Algoritmos + Estructuras de Datos = Programas, significndonos que solo se puede llegar a realizar un buen programa con el diseo de un algoritmo y una correcta estructura de datos. Esta ecuacin ser de una de las hiptesis fundamentales consideradas en esta obra. La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto. Los pasos para la resolucin de un problema son:
Diseo de algoritmo, que describe la secuencia ordenada de pasos que conducen a la solucin de un problema dado. (Anlisis del problema y desarrollo del algoritmo). Expresar el algoritmo como un programa de lenguaje de programacin adecuado. (Fase de codificacin.) Ejecucin y validacin del programa por la computadora. Para llegar a la realizacin de un programa es necesario el diseo previo de algoritmo, de modo que sin algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora que lo ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programacin y ejecutarse en una computadora distinta; sin embargo, el algoritmo ser siempre el mismo. As, por ejemplo, en una analoga con la vida diaria, una receta de un plato de cocina se puede expresar en espaol, ingles o francs, pero cualquiera que sea el lenguaje, los pasos para la elaboracin del plato se realizaran sin importar el idioma del cocinero. En la ciencia de la computacin y en la programacin, los algoritmos son ms importantes que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efecte el proceso correspondiente. Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy importante ser el diseo de algoritmos. El diseo de la mayora de los algoritmos requiere creatividad y conocimientos profundos de la tcnica de la programacin. En esencia, la solucin de un problema se puede expresar mediante un algoritmo. Caractersticas de los Algoritmos: Las caractersticas fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algn momento; o sea, debe tener un numero finito de pasos.
La definicin de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendr: Entrada: ingrediente y utensilios empleados. Proceso: elaboracin de la receta en la cocina. Salida: terminacin del plato (por ejemplo, cordero). Ejemplo de Algoritmo: Un cliente ejecuta un pedido a una fbrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido. Redactar el algoritmo correspondiente. Los pasos del algoritmo son: inicio leer el pedido examinar la ficha del cliente si el cliente es solvente aceptar pedido; en caso contrario, rechazar pedido fin Diseo del Algoritmo: En la etapa de anlisis del proceso de programacin se determina que hace el programa. En la etapa de diseo se determina como hace el programa la tarea solicitada. Los mtodos mas eficaces para el proceso de diseo se basan en el conocido por Divide y Vencers, es decir, la resolucin de un problema complejo se realiza dividiendo el problema en sub problemas y a continuacin dividir estos sub problemas en otros de nivel mas bajo, hasta que pueda ser implementada una solucin en la computadora. Este mtodo se conoce tcnicamente como diseo descendente (Top Down) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo. Cada sub programa es resuelto mediante un modulo (sub programa) que tiene un solo punto de entrada y un solo punto de salida. Cualquier programa bien diseado consta de un programa principal (el modulo de nivel mas alto) que llama a sub programas (mdulos de nivel mas bajo) que a su vez pueden llamar a otros sub programas. Los programas estructurados de esta forma se dice que tienen un diseo modular y el mtodo de romper el programa en mdulos ms pequeo se llama Programacin Modular. Los
mdulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuacin combinarlos entre si. El proceso implica la ejecucin de los siguientes pasos hasta que el programa se termina: programar modulo. Comprobar el modulo. Si es necesario, depurar el modulo. Combinar el modulo con los mdulos anteriores. El proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamiento sucesivo que permitan una posterior traduccin al lenguaje se denomina diseo de algoritmo. El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente.
entero mes escribir ' Ingrese el numero del mes: ' leer(mes) Si(mes = 1) o (mes = 3) o (mes = 5) o (mes = 7) o (mes = 8) o (mes = 10) o(mes = 12) Entonces escribir'El mes tiene 31 dias' Si no Si(mes = 4) o (mes = 6) o (mes = 9) o (mes = 11)Entonces escribir'El mes tiene 30 Dias' Sino Si(mes = 2) escribir'El mes tiene 28 dias' Fin Si Fin 3Inicio Variables entero n entero divisor <- 2 escribir'Ingrese el numero: ' leer(n) mientras (n<divisor) hacer Si(n mod divisor = 0)entonces escribir'El numero no es Primo' else divisor <= divisor + 1 Fin si fin mientras Escribir'El numero es Primo'
Tipos de operadores
Formato vertical: En l, el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la informacin que se considere necesaria, segn su propsito. Formato horizontal: En l, el flujo o la secuencia de las operaciones, va de izquierda a derecha. Formato panormico: El proceso entero est representado en una sola carta y puede apreciarse de una sola mirada mucho ms rpido que leyendo el texto, lo que facilita su comprensin, an para personas no familiarizadas. Registra no solo en lnea vertical, sino tambin horizontal, distintas acciones simultneas y la participacin de ms de un puesto o departamento que el formato vertical no registra. Formato Arquitectnico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectnico del rea de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.
aritmeticos
En matemtica, la aritmtica es un sistema aritmtico para clases de equivalencia de nmeros enteros llamadas clases de congruencia. Algunas veces se le llama, sugerentemente, aritmtica del reloj, ya que los nmeros dan la vuelta tras alcanzar cierto valor llamado mdulo.1 La aritmtica modular fue introducida en 1801 por Carl Friedrich Gauss en su libro Disquisitiones Arithmeticae.2
RELACIONALES
El mapeo objeto-relacional (ms conocido por su nombre en ingls, Object-Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) es una tcnica de programacin para convertir datos entre el sistema de tipos utilizado en un lenguaje de programacin orientado a objetos y el utilizado en una base de datos relacional, utilizando un motor de persistencia. En la prctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las caractersticas propias de la orientacin a objetos (bsicamente herencia y polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus propias herramientas ORM.
Operadores lgicos
Artculo principal: Operador lgico
Muy utilizados en Informtica, Lgica proposicional y lgebra booleana, entre otras disciplinas. Los operadores lgicos nos proporcionan un resultado a partir de que se cumpla o no una cierta condicin. Esto genera una serie de valores que, en los casos ms sencillos, pueden ser parametrizados con los valores numricos 0 y 1, como se puede apreciar en los ejemplos de abajo. La combinacin de dos o ms operadores lgicos conforma una funcin lgica. Los ms sencillos son (ntese su relacin con los operadores relacionales): Operador NO-lgico: 'A' significa todo lo que no es A' Operador Y-lgico: 'A B' significa 'A y B a la vez'; resultando FALSO (0) si no se
cumple y VERDADERO (1) si s lo hace. Operador O-lgico: 'A B' significa 'O bien A, o bien B, o bien los dos'; resultando
FALSO (0) si no se dan ni A ni B y VERDADERO (1) si se da alguno de los dos o los dos a la vez. Operador =: 'A = B' significa 'A debe ser igual a B'; resultando FALSO (0) si esto no
es as y VERDADERO (1) en caso contrario. Operador <: 'A < B' significa 'A debe ser menor que B'; resultando FALSO (0) si no
se satisface y VERDADERO (1) en caso contrario. Los operadores ms complejos se construyen a partir de los anteriores (podra incluirse alguno ms) y ya entran dentro de lo que sera una funcin lgica. Un ejemplo muy utilizado sera 'SI(condicin;A;B)' ('IF condicin THEN A ELSE B' en la mayora de los lenguajes de programacin) cuyo resultado sera A si se satisface la 'condicin' o B en caso contrario.