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).

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

realmente se trata de una clase. 1234] Base octal [ej. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. flotante Booleano Carácter Cadena Matrices Especiales . Funcional Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones. obteniendo unos resultados lentos en las acciones. false [valor falso] char [carácter alfanumérico] String [Matriz de caracteres. El elemento principal de la programación orientada a objetos es el objeto. Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.7E-308 a 1. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. 0xF10] byte [-128 a 127] short [-32768 a 32767] int [-2147483648 a 2147483647] long [-9223372036854775808 a 9223372036854775807] float [32 bits. Sintaxis Estudia las formas en que se combinan los elementos básicos del lenguaje C. Se trata de una programación más lenta y laboriosa.7E308] true [valor cierto].4E38] double [64 bits. precisión simple. 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.4E-38 a 3.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. 1. 3. precisión doble. 01234] Base hexadecimal [ej. Concurrente Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. estos son: Entero Base decimal [ej. Lógica Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. 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).

main () {int a. printf("%d". Ejemplo. b=12.[sustracción] * [multiplicación] / [división] % [resto] ++ [incremento] -.h> int x. suma=a +b. #include<stdio.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] . } . b.[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. a=5. suma. suma=suma +b. suma).

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

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

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

5*num sino Pago=1.5 soles por persona. if(num>0) printf("el número es positivo").5 soles por persona y para grupos de 8 personas o más el pago es 0. scanf("%d".. 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.Ejemplo: Hacer el algoritmo para escribir un programa que indique si un número ingresado por el teclado es positivo. "). printf("ingrese un número. Algoritmo Inicio Declare num.h> main(void) {int num. 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. pago Leer num Si num>=8 entonces Pago=0.&num).5*num Fin si Imprimir pago Fin .. } Ejercicios 1..

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

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

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

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

Estos modelos utilizan registros e instancias para representar la realidad. En este modelo se representan los datos y las relaciones entre estos. Los registros se organizan en un conjunto de gráficas arbitrarias. a través de una colección de tablas. Modelo jerárquico. los cuales pueden verse como punteros. 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. . Este modelo representa los datos mediante colecciones de registros y sus relaciones se representan por medio de ligas o enlaces. ya que estos se representan por medio de registros y sus ligas. Se utilizan para describir datos en los niveles conceptual y físico. La diferencia radica en que están organizados por conjuntos de arboles en lugar 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. así como las relaciones que existen entre estos registros (ligas) o apuntadores. Es similar al modelo de red en cuanto a las relaciones y datos. Modelo de red.Modelos lógicos basados en registros. 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 diferencia de los modelos de datos basados en objetos.

Cuando se cambian las rutas. con el fin de agilizar los trámites propios existentes en el funcionamiento de una organización. Las características claves de un sistema workflow son las tareas. 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. Estos elementos se conocen como las tres "Rs" (Rutas.Se usan para describir a los datos en el nivel más bajo. aunque existen muy pocos modelos de este tipo. cabe anotar que la persona encargada del proceso puede definir el recorrido que debe tener un documento al que haya que dar trámite. Existen dos clasificaciones de este tipo que son: • Modelo unificador • Memoria de elementos. actividades o tareas utilizadas para la ejecución del proceso. Políticas y Prácticas) de la arquitectura workflow. Una aplicación workflow automatiza la secuencia de acciones. Reglas y Roles) y las tres "Ps" (Procesos. políticas y prácticas adecuadas. 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. la tecnología workflow se convierte en un potente medio para el desarrollo de aplicaciones. reglas y roles adecuado con los procesos. básicamente capturan aspectos de la implementación de los sistemas de base de datos. personas. Sus características más relevantes son: . definir niveles de seguridad y definir prioridades en documentos. Workflow Es una herramienta de software que puede ser implementada sobre una Intranet para automatizar procesos que requieren del envío de documentos.

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

• Prácticas. .sobre vacaciones. muchas no la tienen. 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. beneficios asistenciales y pagos en caso de enfermedad. Las prácticas son aquellas cosas que verdaderamente suceden en las empresas.

Sign up to vote on this title
UsefulNot useful