Algoritmos

Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

Estructuras Algorítmicas
Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en: • Secuenciales Asignación Entrada Salida • Condicionales Simples Múltiples • Repetición fila condicional Es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma: Inicio Accion1 Accion2 . . AccionN Fin

Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: • Simples: Consiste en pasar un valor constate a una variable (a=15) • Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a=a+1) • Acumulador: Consiste en usarla como un sumador en un proceso (a= a+b) • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a= c+b*2/4).

que integran el programa en su totalidad. En la programación modular. Condicionado (a través de las expresiones lógicas) c. una vez se haya establecido cierta condición para finalizar el proceso de repetición. Esta operación se representa en un pseudocódigo como sigue: Leer a.ej. A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p. así como la implementación de estándares de ciertas compañías o instituciones. Cada técnica tiene sus propias características.ej. la ejecución de las instrucciones dependerá de que se cumplan o no. y distintos métodos de resolución de problemas. Asignación b. Asimismo dentro de las estructuras básicas existen acciones o procesos a los cuales son sometidos los datos. entre ellos. De entrada y salida Técnicas modernas de Programación Modular En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos. b Donde a y b son las variables que recibirán los valores. una o varias condiciones. . el teclado) un valor. monitor o impresora) un resultado o mensaje. el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. Programación Estructurada a) Secuenciales: cuando se requiere que una instrucción siga después de otra. Iterativas e. Técnicas de Programación Las técnicas de programación constituyen parte fundamental en el proceso de desarrollo e Ingeniería del Software dentro del ámbito informático. y es de gran importancia aprender a implementarlas a la hora de adentrarse en la evolución de cualquier proyecto de desarrollo de software. c) Repetición o Iteración: se utiliza cuando un proceso debe repetirse un número determinado o no de veces. Escritura: Consiste en mandar por un dispositivo de salida (p. tenemos: a. Alternativas (estructura condicional) d. Este proceso se representa en un pseudocódigo como sigue: Escribe El resultado es: R Donde El resultado es: es un mensaje que se desea aparezca y R es una variable que contiene un valor. b) Selección o decisión: se utiliza cuando se requiere tomar decisiones lógicas.

El elemento principal de la programación orientada a objetos es el objeto. 3. estos son: Entero Base decimal [ej. 0xF10] byte [-128 a 127] short [-32768 a 32767] int [-2147483648 a 2147483647] long [-9223372036854775808 a 9223372036854775807] float [32 bits. Funcional Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones. Sintaxis Estudia las formas en que se combinan los elementos básicos del lenguaje C. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. 01234] Base hexadecimal [ej.Orientada a objetos (POO) Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.7E308] true [valor cierto]. false [valor falso] char [carácter alfanumérico] String [Matriz de caracteres. 1. flotante Booleano Carácter Cadena Matrices Especiales . realmente se trata de una clase. Lógica Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. precisión simple. Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento. Se trata de una programación más lenta y laboriosa. precisión doble. obteniendo unos resultados lentos en las acciones. Concurrente Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. 1234] Base octal [ej.4E38] double [64 bits.7E-308 a 1. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas. que encapsula las operaciones de gestión de caracteres] array [puede ser de varias dimensiones] \n [nueva línea] \t [tabulador horizontal] \b [retroceso] Coma. pueda dar soluciones inteligentes).4E-38 a 3.

b. } .h> int x. b=12.[decremento] > [mayor que] >= [mayor o igual que] < [menor que] <= [menor o igual que] == [igual a] != [distinto de] >> [desplazamiento a la derecha] << [desplazamiento a la izquierda] >>> [desplazamiento sin signo] & [operador Y –and-] | [operador O –or-] ^ [operador O exclusivo –xor-] ~ [complemento a] Estructuras Secuenciales Las estructuras secuenciales están basadas en sentencias de asignación simples. printf("%d". suma=a +b. Ejemplo. suma. main () {int a. suma). a=5.Operadores Aritmeticos Logicos Sobre Bits \r [retorno de carro] \f [salto de página] \\ [carácter \] \’ [comilla simple] \" [comilla doble] \udddd [carácter unicode] + [adición] . suma=suma +b.[sustracción] * [multiplicación] / [división] % [resto] ++ [incremento] -. #include<stdio.

Hacer el algoritmo para escribir un programa que evalúe la expresión.En este caso. } 2. scanf("%f %f". siguiendo un orden. Resultado Leer x.&w). Hacer el algoritmo para escribir un programa que evalúe la expresión Algoritmo Inicio Declare x.w Resultado (x+w)/(2*w) Mostrar Resultado Fin Variables resultado: valor de la expresión luego de ser evaluada.w. printf("%f".h> main(void) {float resultado.x. Ejercicios: 1. En algunos algoritmos se omite la declaración de variables.&x. Solución: observe que los valores de ingreso serán para las variables x. también de w \n"). w. //Se evalúa la expresión y el resultado es asignado a la variable resultado.resultado). //se escriben dos valores separados por la barra espaciadora printf("ingrese el valor de x . resultado=(x+w)/(2*w).y Resultado raizcuadrada(3*x*x+4*y*y) . la evaluación se hace línea por línea. x : guarda un valor numérico ingresado. y. //se leen o capturan dos valores escritos en las variables x y w. x. Los algoritmos que necesitan de estructuras secuenciales para su solución son los más difíciles de comprender y más sencillos de identificar los procesos que realizará el programa que nos llevarán a la solución del mismo. w Leer x. en casos que el algoritmo no es complicado. Programa #include<stdio. w : guarda un valor numérico ingresado. //se imprime el valor de la variable resultado. Algoritmo Inicio Declare Resultado.

&x.igv). subtotal=total-igv. también y \n"). Algoritmo Inicio.h> main(void) {int x.&y).&total).subtotal. Programa #include<stdio.19*total.19*total Subtotal total-igv Mostrar subtotal. igv Leer total Igv 0. Hacer el algoritmo para escribir un programa que imprima el subtotal y el IGV de una transacción comercial. siendo el IGV el 19% del total. igv=0. printf("ingrese el valor de x. float resultado.resultado). printf("%f". printf("total: %f. resultado=sqrt(3*x*x+4*y*y).igv.h> main() {float total.Mostrar resultado Fin Variables x: guarda un valor numérico ingresado. resultado: guarda el valor resultado de la expresión. scanf("%d %d". El dato de ingreso será el total. igv: %f". Declare total. printf("ingrese el total a pagar"). subtotal: %f. scanf("%f". y : guarda un valor numérico ingresado. igv Fin Variables total : guarda el valor del total ingresado subtotal: guarda el valor del subtotal calculado igv : guarda el valor del total ingresado Programa #include<stdio.y.total.subtotal. } 3.h> #include<math. } . subtotal.

. else if se pueden realizar comprobaciones múltiples. etc. los mismos que pueden ser números o caracteres. valores de la variable opción.. Constante3. La sentencia de bifurcación múltiple switch tiene la solución. inclusive para uno mismo que ojee su código después de un buen tiempo de vacaciones. sin embargo esto puede tornarse en confusiones muy serias para los que leen los programas. .Selectivas Sentencia If Las tres formas como se puede emplear la sentencia if son: La sentencia switch Con la estructura if . Constante2. Sean Constante1.

Algoritmo Inicio Declare num Leer num Si num>0 entonces Imprimir num es positivo Fin si Fin Variables Nu2m: Número que se ingresa por el teclado Programa #include<stdio.5 soles por persona y para grupos de 8 personas o más el pago es 0. if(num>0) printf("el número es positivo"). scanf("%d". printf("ingrese un número. pago Leer num Si num>=8 entonces Pago=0.&num).Ejemplo: Hacer el algoritmo para escribir un programa que indique si un número ingresado por el teclado es positivo.. } Ejercicios 1. "). Hacer un algoritmo para un programa que calcule el pago que hacen un grupo de personas para ver una película teniendo en cuenta que si el grupo es menor de 8 personas el pago es de 1.5 soles por persona..5*num sino Pago=1..h> main(void) {int num.5*num Fin si Imprimir pago Fin . Algoritmo Inicio Declare num.

que calcule la máxima área de un terreno rectangular de lados 100-2x y x respectivamente. pago). scanf("%d". Algoritmo Inicio Declare x. Expresion2: Define la asignación del valor final a una variable.5*num. Área : asume el valor del área. expresion2. pago. Programa #include<stdio.5*num. printf("el pago es %f". if(num<8) pago=1. Expresion3: Define el incremento del valor de la variable Ejemplo Hacer el algoritmo para un programa. área Fin Desde Fin Variable X : asume valores desde 10 hasta 30.&num). para valores de x entre 10 y 30. printf(" ingrese número de personas "). } Repetitivas La sentencia for tiene el formato: for (expresion1. Programa #include<stdio.Variables num: Número que se ingresa por el teclado e indica la cantidad de personas pago: El valor del pago que se calculará.h> main(void) {float num. área Desde x=10 hasta x<=30 hacer Área=100-2*x Imprimir x. else pago=0. expresion3) {Bloque de sentencias} Expresion1: Define la asignación del valor inicial a una variable.h> .

menor:10000. Programa #include<stdio.menor. si menor>num entonces menor: num.x++) { printf("INGRESAR NÚMERO %d\n". para x=%d \n". return 0. x.mayor.main (void) {int x. Desde x=1 hasta x<=8 hacer leer num si mayor<num entonces mayor: num. if(mayor<num) mayor=num.mayor.x*(100-2*x). for(x=1. NOTA: El mayor valor de área es 1250 para un valor de x =25 Ejercicios: 1. mayor=0.&num). Hacer el algoritmo para un programa que calcule el mayor y el menor número de 8 números ingresados por el teclado. scanf("%d".x++) printf("%d unidades.x). menor : Para asignarle el valor del menor de los números leídos x : Permite contar los 8 ingresos (valores desde 1 hasta 8). mayor. if(menor>num) menor=num.x. } printf("NÚMERO MAYOR: %d MENOR: %d \n". x<=8. mayor:0. Algoritmo Inicio Declare num. } Herramientas Case .x). Fin Desde Imprimir mayor. menor=10000. x<=30. menor. for(x=10. menor Fin Variables num: guarda un número ingresado mayor : Para asignarle el valor del mayor de los números leídos.h> main(void) {int num.menor).

es decir. Existen diferentes modelos de este tipo. su objetivo es acelerar el proceso para el que han sido diseñadas. semántica asociada a los datos y restricciones de consistencia. • Modelos físicos de datos. • Herramientas de diseño para dar apoyo al análisis de datos. las relaciones que existen entre ellos.De acuerdo con Kendall y Kendall la ingeniería de sistemas asistida por ordenador es la aplicación de tecnología informática a las actividades. pero el más utilizado por su sencillez y eficiencia es el modelo Entidad-Relación. con este modelo representamos los datos de tal forma como nosotros los captamos en el mundo real. la primera etapa del ciclo de vida de las aplicaciones de bases de datos. Modelo: Es una representación de la realidad que contiene las características generales de algo que se va a realizar. Se usan para describir datos en los niveles conceptual y de visión. también se puede escoger una herramienta CASE (Computer-Aided Software Engineering) que permita llevar a cabo el resto de tareas del modo más eficiente y efectivo posible. Modelos de datos. En base de datos. Modelo Entidad-Relación. en el caso de CASE para automatizar o apoyar una o más fases del ciclo de vida del desarrollo de sistemas. esta representación la elaboramos de forma gráfica. Cuando se hace la planificación de la base de datos. ¿Qué es modelo de datos? Es una colección de herramientas conceptuales para describir los datos. así como los esquemas conceptual y lógico. • Herramientas que permitan desarrollar el modelo de datos corporativo. El uso de las herramientas CASE puede mejorar la productividad en el desarrollo de una aplicación de bases de datos. tienen una capacidad de estructuración bastante flexible y permiten especificar restricciones de datos explícitamente. . Una herramienta CASE suele incluir: • Un diccionario de datos para almacenar información sobre los datos de la aplicación de bases de datos. Los modelos de datos se dividen en tres grupos: • Modelos lógicos basados en objetos. • Modelos lógicos basados en registros. Modelos lógicos basados en objetos. • Herramientas para desarrollar los prototipos de las aplicaciones. las técnicas y las metodologías propias de desarrollo.

Artículo: Descripción Costo Clave La relación entre ambas entidades se puede establecer como Venta. así mismo. de este problema determinamos que los objetos o entidades principales a estudiar son el empleado (vendedor) y el artículo (que es el producto en venta). sabemos que existe. departamento. Clave. Este modelo representa a la realidad a través de entidades. A su vez una entidad se puede asociar o relacionar con más entidades a través de relaciones. por ejemplo: un alumno se distingue de otro por sus características particulares como lo es el nombre. la representación es muy sencilla. etc. son atributos de la entidad alumno.. no la podemos visualizar o tocar. número de seguro social.F. un empleado. etc. ahora falta describir como se representa un modelo E-R gráficamente.C. por ejemplo el nombre. por ejemplo: la entidad materia. dirección teléfono. Ejemplo: Se considera una empresa que requiere controlar a los vendedores y las ventas que ellos realizan. y las características que los identifican son: Empleado: Nombre Puesto Salario R. Intangibles: Todos aquellos eventos u objetos conceptuales que no podemos ver.Denominado por sus siglas como: E-R. sin embargo. o el numero de control asignado al entrar a una institución educativa. los cuales son: Así queda representado: . Bueno. que son objetos que existen y que se distinguen de otros por sus características. una materia. tocar o sentir. se emplean símbolos. grado. Las características de las entidades en base de datos se llaman atributos. Las entidades pueden ser de dos tipos: • • Tangibles: Son todos aquellos objetos físicos que podemos ver. etc. grupo. son atributos de la entidad empleado. aun sabiendo que existen.

Modelo jerárquico. Modelo de red. Es similar al modelo de red en cuanto a las relaciones y datos. se usan para especificar la estructura lógica global de la base de datos y para proporcionar una descripción a nivel más alto de la implementación. a través de una colección de tablas. Los registros se organizan en un conjunto de gráficas arbitrarias. Los tres modelos de datos más ampliamente aceptados son: • • • Modelo Relacional Modelo de Red Modelo Jerárquico Modelo relacional. Modelos físicos de datos. Estos modelos utilizan registros e instancias para representar la realidad. Se utilizan para describir datos en los niveles conceptual y físico. así como las relaciones que existen entre estos registros (ligas) o apuntadores.Modelos lógicos basados en registros. En este modelo se representan los datos y las relaciones entre estos. A diferencia de los modelos de datos basados en objetos. Este modelo representa los datos mediante colecciones de registros y sus relaciones se representan por medio de ligas o enlaces. . en las cuales los renglones (tuplas) equivalen a los cada uno de los registros que contendrá la base de datos y las columnas corresponden a las características(atributos) de cada registro localizado en la tupla. ya que estos se representan por medio de registros y sus ligas. La diferencia radica en que están organizados por conjuntos de arboles en lugar de gráficas arbitrarias. los cuales pueden verse como punteros.

Existen dos clasificaciones de este tipo que son: • Modelo unificador • Memoria de elementos. Estos elementos se conocen como las tres "Rs" (Rutas. definir niveles de seguridad y definir prioridades en documentos. cabe anotar que la persona encargada del proceso puede definir el recorrido que debe tener un documento al que haya que dar trámite. la tecnología workflow se convierte en un potente medio para el desarrollo de aplicaciones. Reglas y Roles) y las tres "Ps" (Procesos. Políticas y Prácticas) de la arquitectura workflow.Se usan para describir a los datos en el nivel más bajo. básicamente capturan aspectos de la implementación de los sistemas de base de datos. Workflow Es una herramienta de software que puede ser implementada sobre una Intranet para automatizar procesos que requieren del envío de documentos. Sus características más relevantes son: . Aspectos tecnológicos El proceso workflow es simplemente la automatización de los procesos que se realizan a diario dentro de la actividad comercial de una empresa. actividades o tareas utilizadas para la ejecución del proceso. Cuando se cambian las rutas. aunque existen muy pocos modelos de este tipo. Las características claves de un sistema workflow son las tareas. herramientas y datos que dependen de varios elementos modulares críticos para poder llegar a su expresión final. incluyendo el seguimiento del status de cada instancia del mismo y la aportación de las herramientas necesarias para gestionarlo. Una aplicación workflow automatiza la secuencia de acciones. con el fin de agilizar los trámites propios existentes en el funcionamiento de una organización. políticas y prácticas adecuadas. personas. reglas y roles adecuado con los procesos.

Así. En el mundo del tratamiento de imágenes. los procesos no son diseñados. • Roles. • Herramientas. definir las reglas de un proceso comercial puede resultar difícil. que indican la forma en que deben manejarse ciertos procesos. sino que se identifican después del hecho en cuestión y se extraen del uso o la actividad común. • Procesos. Es importante definir roles o funciones independientemente de las personas o de los procesos específicos que desempeñen ese rol. sino que generalmente estas tareas las realizan herramientas tales como aplicaciones de productividad personal y aplicaciones de línea-denegocio. • Políticas. • Reglas. sin embargo. Con frecuencia. los atributos que identifican a una aplicación workflow pueden simplificarse en forma de tres "Rs" y tres "Ps": • Rutas.• Tareas. • Personas. por personas específicas o por agentes automatizados que asumen el papel de personas en base a condiciones o reglas comerciales. Las Rs y las Ps del workflow Aunque hay gran cantidad de funciones y características que forman parte del workflow. Los primeros productos workflow eran en realidad routers inteligentes. entre otros. compañías como FileNet o Recogniton International permitían a vendedores o revendedores (y más adelante a los clientes) definir el orden en el que deberían fluir las imágenes. Esto se conoce a veces como routing condicional o tratamiento de situaciones de excepción. se les comunican las normas de la compañía . es su capacidad de definir las reglas que determinan que información debe dirigirse a través de la ruta y a quién. El proceso de la información propiamente dicho dentro de cada tarea como una comprobación de crédito o la redacción de una carta no lo realiza la aplicación workflow. Estos objetos deben ser capaces de moverse a través de cualquier cantidad de rutas secuenciales. formularios. datos. ya que pueden ser complejas y elaboradas. variaciones y excepciones. por ejemplo un sistema de contabilidad llamado por la aplicación workflow o invocado explícitamente por el usuario cuando se necesita. aplicaciones. Hoy. con múltiples opciones. y que hace que sea tan valiosa. diferentes y después reconciliarse formando una única ruta en un punto especificado. Las normas o políticas son expresiones redactadas formalmente. Recoger las normas y supuestos que describen como funciona verdaderamente una empresa es incluso más valioso que definir reglas workflow. Una característica más avanzada de la automatización workflow. cuando los empleados inician un nuevo trabajo. son tan variados y tan personales como las personas que participan en ellos. • El routing condicional permite al sistema manejar una mayor proporción de la transmisión automática de objetos. Una aplicación workflow automatizada está formada por diferentes tareas o actividades que deben ser realizadas para alcanzar un determinado objetivo comercial. es necesario especificar el flujo de cualquier tipo de objeto como documentos. Los procesos establecidos. que controlan y dirigen la actividad de una empresa. para enviarla al receptor apropiado. Las tareas son realizadas siguiendo un orden específico.

Aunque las compañías deben mantener una política formal sobre cómo manejar cada proceso comercial automatizado. y que pueden considerarse como actos que "infringen las reglas" y que hacen que el proceso funcione realmente. muchas no la tienen. • Prácticas. beneficios asistenciales y pagos en caso de enfermedad.sobre vacaciones. . Las prácticas son aquellas cosas que verdaderamente suceden en las empresas.

Sign up to vote on this title
UsefulNot useful