Revista Digital Algoritmos

Page 1

UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 1


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

A mediados del pasado mes de noviembre (2017) iniciamos formalmente una nueva etapa en nuestra formación profesional, a través de la Maestría de Informática Gerencial en la Universidad de Oriente, Núcleo Monagas, comenzando con la asignatura: Algoritmos y Computación Avanzada. Aunque el concepto de algoritmo es conocido por todos los participantes, definido de manera general, como un conjunto de instrucciones ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos, es decir, mediante una entrada o estado inicial, siguiendo los pasos sucesivos se llega a un estado final o solución de un problema o situación determinada. Muchas expectativas surgieron: adquirir, complementar fortalecer conocimientos, técnicas y herramientas, mediante el intercambio de experiencias e investigaciones pertinentes, que permitan implementar algoritmos, en el quehacer diario, tanto laboral como personal, de la manera más eficiente posible a fin optimizar recursos. Desde la ubicación de un elemento que cumpla con ciertos criterios de búsqueda; pasando por el ordenamiento de una lista de datos; así como el establecimiento de cifrado de información, archivos y/o contraseñas; además de la asignación de memoria a procesos dentro del computador; llegando a la simulación de sistemas y modelos matemáticos, para solucionar problemas; fueron presentadas diversas técnicas para darle solución a situaciones específicas. La participación de todos los presentes fue producto de investigaciones y experiencias propias, lo cual nos mantuvo atentos a todas las disertaciones, demostrando que los algoritmos pueden dominar nuestra sociedad, tal es así que están presentes tanto en los pequeños actos de nuestra vida como en la toma de importantes decisiones. El uso de algoritmos es omnipresente.

Los autores Pág. 2


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

INDICE DE CONTENIDO Algoritmos Algoritmos de Búsqueda Algoritmo de búsqueda secuencial Por: Ing. Aurely Maneiro…………………………………….. Algoritmo de búsqueda Binaria Por: Ing. Enrique A. Martínez…………………………………... Algoritmo de búsqueda por transformación de claves HASH Por: Ing. Luis Castillo…… Algoritmo Genético de Predicción de Fallas Por: Ing. Leonardo Castillo Villegas……… Algoritmo de Búsqueda Heurístico Por: Ing. Johanna Mora………………………………………

Pág. N° 05 06 08 09 10

Algoritmos de Ordenamiento Algoritmo de Ordenamiento QUICKSORT Por: Ing. Jesús Mota…………………………………. Algoritmo de Ordenamiento SELECTIONSORT Por: Ing. Francisco Antequera………….. Algoritmo de Ordenamiento por Mezcla MERGESORT Por: Ing. Ruth Reyes……………… Algoritmo de Ordenamiento por Cubetas Por: Ing. Ali Tovar…………………………………….. Algoritmo de Ordenamiento por Inserción Por Ing. Yanired Urbina……………………………

12 14 15 17 18

Algoritmos de encriptación Algoritmo de Encriptación Elgamal Por: Ing. David Fernández…………………………………… Algoritmo Deffie Hellman Por: Ing. Luis Roberto Hernández……………………………………… Algoritmo de Encriptación EXCERSA Por: Ing. Luismar Natera…………………………………… Algoritmo de encriptación AES Por: Ing. Alexander Valderverde…………………………….. Algoritmo de encriptación RC4 Por: Lcda. Coromoto Malave……………………………………. Algoritmo de encriptación DES Por: Lcda .Marisela Malave……………………………………….

21 23 24 25 27 28

Algoritmos de Simulación Algoritmo De Generación De Números Aleatorios. Por: Ing. Rafael Salazar……………… Algoritmo de Modelo Cuantil. Por: Ing. Edduard González………………………………….…… Algoritmo de Vectores Multidimensionales. Por: Ing. Wilmen Rondón……………………... Algoritmo de Variables continúas. Por: Ing. Luis Mujica……………………………………………. Algoritmo de Variables continuas Método de Inversión Por: Ing Ismarys Castilo………. Algoritmo de Lanzamiento de dados Por: Ing. Pethaidis Gaitan…………………………………

30 32 33 34 35 36

Algoritmos de Asignación de Memoria Algoritmo de Mejor Ajuste. Por: Ing. José Ruiz.…………………………………………………………. Algoritmo de Asignación de memoria Pila Por: Ing. Rodolfo Orence………………………….

38 40

Algoritmos de modelos matemáticos Algoritmo de Modelo Matemático Cuantitativo Por: Ing. Karelys Zerpa……………………. Algoritmo de Modelo Matemático de Optimización. Por: Ing. Lisandro Mendez……….

42 43

Pág. 3


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 4


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

B-01

ENUNCIADO:

NOMBRE:

Algoritmo De Búsqueda Secuencial

Con este algoritmo se requiere calcular la nota definitiva de primer lapso de la materia de Informática de los 30 estudiantes de la sección “A” de tercer año de la UEP Fermín Toro. Las nóminas de estudiantes están ordenadas secuencialmente de menor a mayor por números de cédulas. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

Cédulas, N1,N2,N3,N4

DATOS DE SALIDA:

Nota definitiva de cada uno

DATOS AUXILIARES:

((N1 + N2 + N3 + N4)*100/4) + 1). 4 notas acumuladas, hay que hacerlo para cada estudiante.

CONDICIONES O RESTRICCIONES:

Luego de calcular las notas el algoritmo puede ubicar la nota de cierto estudiante que se requiera específicamente por número de cédula de identidad

PROCESO:

1. Inicio. 2. Leer N // (Número de estudiantes) 3. Para I = 1 to 30 hacer //Comienza el ciclo 4. Leer N1, N2, N3, N4 // Leemos las cuatro notas 5. Nota Def = ((N1 + N2 + N3 + N4)*100/4) + 1) // Calculamos la nota definitiva 6. Imprimir Nota Definitiva 7. Continuar ciclo 8. Fin Elaborado por: Ing. Aurely Maneiro

Pág. 5


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

B-02

ENUNCIADO:

NOMBRE:

Algoritmo de Búsqueda Binaria

Desarrollar un algoritmo de búsqueda binaria para consultar las notas de los alumnos en la materia de Algorítmica y Programación. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: VARIABLES DATOS AUXILIARES

CONDICIONES O RESTRICCIONES:

PROCESO:

Vector con registro de estudiantes. N: Cantidad total de registros en el vector. Cedula del alumno a buscar.  Notas asociadas a cada estudiante.  Inferior: índice o límite inferior del vector.  Mitad: subíndice central del vector.  Superior: índice o límite superior del vector.  Encontrado: valor booleano para comprobar si fue encontrado el registro. o Los registros de los estudiantes deben estar ordenados de forma ascendente bajo el criterio de la cedula. o Truncar o redondear el valor del índice asignado a la variable Mitad. Inicio 1. Inicializar las variables y auxiliares: Inferior <-0; Mitad <- 0; Superior <- n-1; Encontrado <- falso. 2. Pedir la Cedula de Alumno. Leer Cedula. 3. Mientras Inferior sea menor igual a Superior repetir los siguiente: Mientras(Inferior<=Superior) 4. Calcular Mitad del vector o estructura. Mitad <- Truncar((Superior-Inferior/2)+Inferior) 5. Si Cedula de Alumno a buscar es igual a la cedula de la posición Mitad entonces, imprime el registro, asignar verdadero a la variable auxiliar Encontrado y termina la búsqueda. Si (vector [Mitad] = Cedula)entonces Imprimir “Registro de notas del Alumno”. Encontrado<- verdadero. Salir del Bucle. 6. Si no, Si Cedula de Alumno a buscar es menor a la cedula de la posición o índice Mitad entonces, Pág. 6


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA Superior se le asigna el índice de mitad menos 1. Sino Si (Cedula < vector[Mitad]) entonces Superior<- Mitad – 1 7. Si no, Inferior se le asigna el índice de mitad más 1. Si no Inferior<- Mitad + 1 Fin Mientras 8. Si Encontrado es igual a falso entonces, imprimir por pantalla que la cedula no fue encontrada en el vector. Si (Encontrado= Falso) entonces Imprimir “Cedula del Alumno no encontrada” Fin Elaborado por: Ing. Enrique Martínez

Pág. 7


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Búsqueda por transformación de claves. : Buscar las placas de los vehículos de Vencana ENUNCIADO Servicios Petroleros aplicando la búsqueda por transformación de claves. ANALISIS DEL PROBLEMA DATOS DE ENTRADA: Placas de vehículos DATOS DE SALIDA: Resultado de la búsqueda DATOS AUXILIARES: Función hash - No puede haber colisiones de claves. - Total de 11 vehículos. CONDICIONES O RESTRICCIONES: - No pueden haber placas iguales. - Las placas pueden contener números y letras. INICIO 1. Se proceden a ingresar las 11 placas sin repetir ninguna. 2. Las placas son almacenadas en un vector A 3. Se procede a realizar la función hash para cada posición del vector A, y su resultado será la posición en el vector B (ya con su respectiva transformación de clave realizada) 4. Se le pide al usuario que ingrese una placa para realizar la búsqueda. 5. Se le aplica la función hash al valor de la placa PROCESO: ingresado por el usuario. 6. Con el resultado se localiza la posición equivalente a la función hash de la placa ingresada por el usuario en el vector B. 7. Se compara si el valor en la posición es el mismo que el resultado de la transformación hash. 8. Si la coincide: se mostrará que se encontró el resultado X en la posición Y del vector B. 9. Si no coincide: se mostrará que el resultado no fue encontrado FIN CODIGO:

B-03

NOMBRE:

Elaborado por: Ing. Luis Castillo

Pág. 8


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

B-04

ENUNCIADO:

Algoritmo Genético De Predicción De Fallas De Turbinas De Gas. Determinar por medio de un algoritmo genético la probabilidad de fallas de una turbina de gas de la Planta Compresora. Muscar. NOMBRE:

ANALISIS DEL PROBLEMA DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

Modelo de códigos de alarmas de fallas, Cromosoma inicial. Módelo de cromosoma Predictivo. Códigos de alarmas, porcentaje de fallas.

CONDICIONES O RESTRICCIONES:

PROCESO:

Inicio 1. Establecer cromosoma de población inicial. 1.1 .Completar el array modelo con los bits. 1.2 .Establecer longitud. 1.3 .Establecer números de individuos. 2. Evaluación. fitness: Evalúa los individuos de la población calcula características comunes con la población inicial modelo. 3. Selección: Selecciona los individuos con el fitness más alto. 3.1. Guarda individuo seleccionado. 4. Cruce: Mezclar el material genético de los individuos, para crear nuevos. 4.1 Elegir punto de cruce. Cruce de un punto. 4.2. Elegir padres. 4.3. Mezclar. 5. Mutación: Añadir variaciones al azar en el array, conseguir una nueva generación. 5.1. Elegir punto al azar de la cadena de bits. 5.2 Invertir valor del Bit en el array. Establecer nuevo valor. 5.3. Si el nuevo valor es diferente se aplica mutación. 5.4. Crea nueva población. 6. Población actual: Validar si muto. 6.1. Si es así, el resultado es óptimo. 6.2. Escribir, población inicial. 7. Evolución. 7.1. Mostrar población evolucionada. 8. Terminar ciclo. 8.1. Si no es evolucionada, retorno a evaluación fitness. Fin Elaborado por: Ing. Leonardo Isaac Villegas Pág. 9


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

B-06

ENUNCIADO:

NOMBRE:

Algoritmo de Búsqueda Heurístico

Se requiere obtener, utilizando el algoritmo HEURÍSTICO, la conformación de los Circuitos Educativos de la Parroquia Las Cocuizas del Municipio Maturín. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA:

Num_Planteles, Num_Circuitos, Punto_Inicio, ID Plantel, Distancia_Plantel, Distancia_Actual, Tope_Circuito, Registro. Circuitos Educativos de la Parroquia Las Cocuizas del estado Monagas.

DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

PROCESO:

Inicio 1. Declarar Num_Planteles, Num_Circuitos, Punto_Inicio, ID_Plantel, Distancia_Plantel, Distancia_Actual, Tope del Circuito, Registro. 2. Ingresar Num_Planteles 3. Num_Circuitos=Num_Planteles/8 4. Mostrar ”Aproximadamente Num_Circuitos Circuito Educativos en la Parroquia” 5. Ingresar Punto_Inicio, ID_Plantel, Distancia_Plantel, 6. Distancia_Actual= Distancia_Plantel+ Punto_Inicio. 7. Si la Distancia_Actual =< 1500 se incrementa el Tope_Circuito y se almacena ID_Plantel en Registro. 8. Si el Tope_Circuito= 8 se muestra “Circuito Creado” y va al paso 9. 9. Muestra lo almacenado en Registro. 10. De lo contrario repetir el paso 5. Fin Elaborado por: Ing. Johanna Mora

Pág. 10


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 11


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

CODIGO:

O-01

ENUNCIADO:

NOMBRE

Algoritmo QUICKSORT

Se requiere ordenar, utilizando el algoritmo QUICKSORT, los datos de disponibilidad de los equipos de proceso de la gerencia de AIT, pertenecientes al activo Jusepín – Furrial. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA:

DATOS AUXILIARES:

Listado de Nombre de equipos (equipo) y Porcentaje de disponibilidad (disponibilidad) Número de elementos de la lista (n). Nombres de los equipos y disponibilidad de equipos ordenados de manera decreciente. Disponibilidad (auxiliar) y nombre de equipo (temp_equipo), para hacer los intercambios. Elemento pivote (pivote) Posición central de la lista (central) Índices (i, j) para el recorrido de la lista

CONDICIONES O RESTRICCIONES:

La lista de datos no puede estar vacía.

PROCESO:

Inicio 1. Asignar las posiciones: inicial=1 y final=n de la lista 2. Inicio de función recursiva con parámetros inicial y final 3. Inicializar los índices i =inicial y j=final 4. Determinar la posición central de la lista (central) la cual será la parte entera resultante, al sumar la posición inicial más la posición final y dividirla entre 2 (central=(inicial+final) div 2) 5. Asignar al elemento pivote, el elemento que se encuentre en la posición central de la lista, pivote=disponibilidad[central]. 6. Se recorre la lista desde la posición inicial a la final utilizando el índice i, con incrementos de uno, iniciando en la posición inicial de la lista, hasta localizar un elemento mayor que el pivote. 7. Se recorre la lista desde la posición final a la inicial utilizando un índice j, con decrementos de uno, iniciando en la posición final de la lista, hasta localizar un elemento menor que el pivote. 8. Si el índice i es menor o igual que el índice j entonces se intercambian los datos de disponibilidad y de nombre del equipo: 8.1. auxiliar = disponibilidad[j] 8.2. disponibilidad[j]=disponibilidad[i] 8.3. disponibilidad[i]=auxiliar Pág. 12


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

8.4. temp_equipo=equipo[j] 8.5. equipo[j]=equipo[i] 8.6. equipo[i]=temp_equipo 8.7. Se incrementa en una unidad el índice i 8.8. Se decrementa en una unidad el índice j 9. Se repiten los pasos 6, 7 y 8 mientras que i sea menor que j 10. Si la posición inicial es menor que el índice j entonces se repite el proceso (función recursiva) enviando como parámetros: inicial=1 y final=j 11. Si el índice i es menor que la posición final entonces se repite el proceso (función recursiva) enviando como parámetros: inicial=i y final=n 12. Final de la función recursiva Fin Elaborado por: Ing. Jesús Mota

Pág. 13


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

O-02

ENUNCIADO:

NOMBRE:

Algoritmo SELECTION SORT

Se requiere ordenar, utilizando el algoritmo SELECTION SORT, las remotas (PLCs) existentes de la plataforma AIT en Jusepín – Furrial, según la cantidad de señales Análogicas que poseen cada una. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

Nombre de la Remota y cantidad de señales que posee Cantidad de Remotas a evaluar (n). Nombres de la Remotas y cantidad de señales analógicas que posee ordenados de manera decreciente. Variable temporal (para hacer los intercambios) Índices (i, j) para el recorrido de la lista

CONDICIONES O RESTRICCIONES:

PROCESO:

Inicio 1. Declarar la variable min (que será cargado con el elemento menor del vector), temp (variable temporal), las variables i y j (variables para el ciclo) y el arreglo arreg[]. 2. Inicio de ciclo para (carga del arreglo) desde i=0 hasta i< n-1 3. Fin de para 4. Inicio del ciclo para (ordenamiento) recorriendo el vector desde el primer elemento de la lista (i=0) hasta último elemento de la lista (i < n-1) con incremento de una unidad (i ++). 2.1 Se asigna a la variable min el índice i indicando que el primer elemento es el mínimo (min=i). 2.2 Inicio de ciclo para el recorrido por el resto de elementos que nos quedan desde j=i+1 hasta j<n buscando el elemento menor con incremento de una unidad por cada pasada (j++). 2.2.1 Preguntar Si cada elemento de los que quedan es menor al que se estableció como min (arreg[min] > arreg[j]) entonces 2.2.2 En caso que sí, Se reasigna el apuntador min=j 2.3 Fin ciclo para 2.4 Se guarda en la variable temporal el nuevo valor mínimo temp=arreg[min] 2.5 Se intercambia el elemento en la primera posición no ordenada por el que acabamos de encontrar arreg[min]=arreg[i] 2.6 Se guarda el valor de temp en arreg[i] 3. Fin ciclo para 4. Inicio de ciclo para (mostrar el arreglo ordenado), desde i=0 hasta i< n5. Fin ciclo para Fin Elaborado por: Ing. Francisco Antequera. Pág. 14


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

O-03

ENUNCIADO:

NOMBRE:

Algoritmo de Ordenamiento MERGESORT

A partir de un reporte de movimientos ó consumos de almacén generado del sistema SAP para un grupo de materiales clasificados por centro en un determinado periodo se requiere utilizar el algoritmo de ordenamiento Mergesort para ordenar en una macro de excel los consumos de manera ascendente a fin de determinar cuáles de estos materiales están propensos a pagar impuesto de reserva por obsolescencia debido a su bajo o nulo consumo en las operaciones del Dtto Morichal y a partir de allí tomar las acciones correspondientes. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

DATOS DE SALIDA:

DATOS AUXILIARES:

=>Reporte de Movimientos de Almacén por centro (Columna de Despachos). => Rango de datos del reporte a ordenar. =>Reporte de movimiento de almacén ordenado de menor a mayor por la columna de Despachos. Limite del vector A. lim_inf, lim_sup. Tamaño del vector A. n Subvectores A1 y A2.

CONDICIONES O RESTRICCIONES:

El reporte de movimiento debe tener más de 1 registro.

PROCESO:

1. Inicio. 2. Llenar el vector A con las celdas de la columna Despachos a ordenar. 2.1 Asignar a la variable lim_inf el número de fila inicial del vector A. 2.2 Asignar a la variable lim_sup el número de fila final del vector A. 2.3 Dimensionar el vector A desde lim_inf hasta lim_sup. 2.4 Determinar el tamaño de A y almacenarlo en la variable n. 3. Verificar si el tamaño del vector A representado por n es menor o igual que 1. Es decir (n<= 1.) 3.1 Si: Esta ordenado, imprimir el vector A. 3.2 No:Dividir el vector A en dos subvectores (A1 y A2). A1 conteniendo los primeros (n/2-1) posiciones de A y A2 las restantes. Es decir: A1=A [0…n/2-1] y A2=A [n/2...n-1]. 3.3 Mientras el tamaño (n) de los vectores A1 y A2 sea mayor a 1 se aplica recursivamente el paso 3.2 4. Mezclar A1 y A2 ordenadamente de forma ascendente en un nuevo vector B mediante comparaciones de cada una de sus posiciones utilizando el siguiente procedimiento: 4.1 Mientras las referencias a comparar de los Vectores A1 y A2 sean menores al tamaño cada vector, es decir: A1(i) < n/2 y A2(j) < n 4.1.1 Comparar cada índice o referencia de los vectores A1 y A2 Pág. 15


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA verificando cual es el menor. A1(i) < A2(j)? 4.1.2 Insertar el menor de los elementos referenciados en la secuencia o vector resultante B. 4.2 Mientras que en algún vector A1 ó A2 queden elementos se inserta en la secuencia resultante (B) el menor de los elementos referenciados y se avanza esa referencia una posición. 5.Fin Elaborado por: Ing. Ruth Reyes

Pág. 16


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

O-04

ENUNCIADO:

Algoritmo de Ordenamiento por Cubeta Se describe el problema de una estudiante de matemáticas y Estructura de datos en la universidad IUTIRLA (con nombre Maria ), quien realiza operaciones (sumas) con sumandos que se encuentran en un rango de [1,3], se pide ordene los sumandos de menor a mayor con el fin de que Maria pueda realizar la operación con mayor facilidad. NOMBRE:

ANALISIS DEL PROBLEMA DATOS DE ENTRADA:

La entrada del problema es dada mediante una cadena S que representa una suma correcta de a lo más 100 caracteres sin espacios y con elementos dentro del rango [1,3].

DATOS DE SALIDA:

Se pide que como salida se imprima en pantalla la suma que Maria pueda realizar, es decir, los sumandos en orden ascendente.

CONDICIONES O RESTRICCIONES:

El maestro anotó la suma de varios números. Los alumnos deben calcular la suma. Para facilitar el cálculo, la suma solo contiene los números 1, 2 y 3. Aún así, eso no es suficiente para Maria. Ella solo está comenzando a contar, por lo que puede calcular una suma solo si los sumandos siguen en orden no decreciente. Por ejemplo, no puede calcular la suma 1 + 3 + 2 + 1 pero puede calcular las sumas 1 + 1 + 2 y 3 + 3. De modo general el algoritmo es el siguiente:

PROCESO:

1. 1-Creación de cubetas (subconjuntos uniformes) 2. 2-Ubicar cada elemento de la secuencia en la cubeta correspondiente. 3. 3-Ordenar los elementos de cada cubeta. 4. 4-Crear la salida. Elaborado por: Ing. Ali Tovar

Pág. 17


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

O-05

ENUNCIADO:

NOMBRE:

Algoritmo de Ordenamiento por Inserción

Un grupo de estudiantes de la U.P.T.N.M. “Ludovico Silva” Punta de Mata necesita consultar los proyectos socio tecnológicos en el Departamento de Instrumentación y Control para que sirvan de referencias bibliográficas en su proyecto, para ello se deben realizar un algoritmo que indique la ubicación de los proyectos codificados por su línea de investigación y año de creación, utilizando los archivos de la Universidad para facilitar la búsqueda se utilizará el algoritmo de ordenamiento por Inserción. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

Titulo del Proyecto y Línea de Investigación. Autores Año de Creación.

DATOS DE SALIDA:

Nombres y disponibilidad de proyectos ordenados por línea de investigación adscritos al departamento. Autores y Títulos de Proyectos por año de creación.

DATOS AUXILIARES:

Disponibilidad de los proyectos socio tecnológicos de Instrumentación y Control.

CONDICIONES O RESTRICCIONES:

Debe existir la base de datos de los proyectos disponibles y debe estar actualizada por año de creación. Inicialización de variables enteras. Inicio Paso 1. Se deben considerar en primer lugar los datos de entrada en la lógica de ordenamiento por inserción y este algoritmo es simple. En este caso se crea una base de datos y se insertan datos invocando la función para ordenar por línea de investigación.

PROCESO:

PASO2. El grupo de estudiantes entra al departamento y la coordinadora de proyecto anota su solicitud de revisión por sus necesidades. PASO3. Se debe buscar en la base de datos los proyectos por la línea de investigación solicitada en donde se encuentra los proyectos asociados por año de creación y autores. PASO4. Escribir el nombre del proyecto que se desea y el lugar de ubicación en donde se encuentra en el estante. Pág. 18


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA PASO5. Buscar el proyecto, siguiendo las pautas indicadas en la base de datos. PASO7. Si encuentras el proyecto. a. Llevar el proyecto al estudiante. b. Anotar los datos a la coordinadora, y mostrar tu carnet de estudiante. c. La coordinadora te indicara en qué fecha lo devolverás, tomando del día en que lo estas solicitando, tres días de plazo. PASO8. Si no lo encuentras a. Ir con los estudiantes y dar información de cuándo estará disponible el proyecto. 9. Fin Elaborado por: Ing.Yanired Urbina

Pág. 19


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 20


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

E-01

ENUNCIADO:

NOMBRE:

Algoritmo de Encriptación de Elgamal.

El Ing . de pozo del taladro GW-189 campo Mulata , pozo Muc -68 requiere enviar una orden de pago de la cabina GW-030 por el servicio prestado en el mes de enero a través de internet con valides legal a CNPC ML Monagas usando el algoritmo de firma digital Elgamal ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

Nombre del Emisor (ing de pozo ) Nombre(s) del(os) Receptor (CNPC ML) Clave Privada (ng de pozo) Clave Pública ( ing de pozo y CNPC ML ) Texto plano que se desea enviar.(orden de pago)

DATOS DE SALIDA:

Orden de pago firmado digitalmente ( emisor= ing de pozo) ) Este lo puede leer todos los que posean la clave pública todos los departamentos de CNPC ( donde se incluye el coordinador = receptor = departamento de Mud Logging )

DATOS AUXILIARES:

Utilizar números primos muy elevados para dificultar la violación de la información por hackers Tener conocimiento de los algoritmos simétricos y asimétricos Saber diferencia entre cifrado, descifrado y firma digital

CONDICIONES O RESTRICCIONES:

Se debe seleccionar a quien o quienes se enviara el mensaje ( en este caso a que departamento de CNPC ) La clave privada sólo la tiene una persona ( la que enviara el documento = ing de pozo ) La clave pública la puede tener una o varias personas ( CNPC y PDVSA) Ninguno que tenga el mensaje se puede hacer pasar por el emisor ya que no tiene la clave privada ( para hacer el proceso de encriptación correctamente ) 1.

PROCESO:

2.

3. 4.

Inicio Se seleccionarla orden de pago (numero) que se va enviar con validez ( Firma digital ) el emisor usa su clave privada(ing de Pozo) 2.1 Con la clave privada + texto plano + algoritmo de encriptación = encripta mensaje Es enviado a través de un medio ( internet satelital) Es recibido por el receptor ( CNPC ML) Pág. 21


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA 5. El receptor a través de un algoritmo de dessencriptacion + la clave pública convierten el texto cifrado = texto plano firmado digitalmente 6. Confirman que ha sido enviado por la persona que dice ser quien es 7. Pasan el mensaje a la parte de finanza de CNPC , para canalizar con los contadores de que se ha efectuado un pago DE y estos lo contabilicen y hagan los tramites al respecto 8. Fin Elaborado por: Ing. David Fernández

Pág. 22


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

E-02

ENUNCIADO:

NOMBRE:

Algoritmo Deffie Hellman

El Departamento de informática le envía una clave al departamento de RRHH atreves del algoritmo Deffie Hellman en el Instituto Nacional de capacitación y educación Socialista (INCES). ANALISIS DEL PROBLEMA Nombre del Emisor Departamento de Informática Nombre(s) del(os) Receptor Departamento de RRHH Clave Pública Primo y base Envió de clave secreto entre los dos departamento Clave de secreto compartido Utilizar números primos muy elevados para dificultar la violación de la información por hackers Tener conocimiento de los algoritmos simétricos y asimétricos El valor de primo tiene que ser mayor que la clave secreta La clave pública la tiene los dos departamentos Si una tercera persona quiere meterse y obtiene la clave publica y el secreto compartido tendrá que calcular atraves de una función de logaritmo discreto de los dos departamento

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

CONDICIONES O RESTRICCIONES:

Inicio 1. Se seleccionarla el valor del numero primo y la base 2. el emisor envía su clave de Departamento de informática y recibe la clave del RRHH 3. Enviado a través de un medio ( internet satelital) El valor de A es enviado por el departamento de RRHH y calcula PROCESO: 4.

Es recibido por el receptor (Departamento de RRHH) y envía. El valor de B es enviado por el departamento de Informática y calcula 5. Se calcula el valor de la clave secreta compartida atraves mod P = mod P FIN Elaborado por: Ing. Luis Roberto Hernández

Pág. 23


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

CODIGO:

E-03

ENUNCIADO:

NOMBRE:

Algoritmo de Encriptación EXCERSA

Utilizar el algoritmo asimetrico RSA “EXCERSA” para el control de acceso al inventario de repuestos realizado en EXCEL de la empresa Repuestos y Accesorios Palma, C.A. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

PROCESO:

Texto plano,Clave publica Mensaje cifrado Se necesita la clave publica para cifrar el mensaje Inicio 1. Se elige dos números primos,p y q para generar la clave publica 2. Calcular n= p*q 3. Calcular la función phi=(p-1)*(q-1) 4. Elegir un numero k tal que sea comprimo de phi 5. Para que sea comprimo de phi (phi no debe ser divisible entre k) 6. La clave publica es el conjunto [n,k] 7. Para generar la clave privada para el control de acceso al inventario se elige un numero j que verifique k*j=1 (mod phi) 8. Se verifica que la división sea un resto =1 9. Si la división no es el resto =1 repite el paso 8 10. Si el resto es =1 entonces la j= es la clave privada 11. Para cifrar el mensaje p^k=E (mod n) donde p es el texto plano 12. Dividir p^k entre n=p*q 13. El dicimal de la división multilicarlo por n=p*q 14. El resultado de n=p*q *decimal=E= al texo cifrado 15. Para descifrar el mensaje se utiliza E^j=p (mod n) 16. Dividir E^j entre n 17. El resto de la división multiplicarlo *n 18. El texto plano será la resta de la división y la multiplicación Fin Elaborado por: Ing. Luismar Natera

Pág. 24


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

ENUNCIADO:

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES: PROCESO:

E-04

NOMBRE:

Algoritmo de encriptación AES

La empresa Smart Data quiere ofrecer un nuevo servicio denominado Crypto Project, el cual permita a sus clientes almacenar información de sus proyectos de forma fácil y segura a través de sus servicios en la nube, para ello es requerido que los datos suministrados por el cliente sean encriptados usando una clave antes de ser enviados, para ser guardados en la base de datos remota. De tal forma que solo el creador del contenido tenga la clave de cifrado. Para que el cliente pueda acceder a la data deberá suministrar la clave, de tal forma de realizar al proceso de descifrado justo antes de presentar la data. Por lo que Smart Data garantizara que no tiene acceso a la data suministrada por sus clientes ANALISIS DEL PROBLEMA Texto plano Clave de cifrado Texto cifrado Texto Cifrado parcial Clave de cifrado, Texto plano, La data guardada en la base de datos debe estar encriptada, la clave de cifrado no deberá ser guardada en la base de datos. Inicio: 1. Desplegar formulario de entrada de datos. 2. Validar Inputs de formulario, si los campos requeridos son suministrado, continuar, de lo contrario mostrar alerta informativa. 3. Capturar texto plano y clave de cifrado 4. Convertir cada carácter del texto plano, de código ANSI a HEX. 5. Convertir cada carácter de la clave de cifrado, de código ANSI a HEX. 6. Dividir el texto plano en bloques de 128 bits 7. Procesar cada bloque del texto de 128 bits usando el algoritmo Rijidael. 7.1. Expansión de la clave usando el esquema de claves de Rijndael. 7.2. Etapa inicial: 7.2.1.AddRoundKey 7.3. Rondas (9 para cifrado de 128 bitz): 7.3.1.SubBytes — en este paso se realiza una sustitución no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de búsqueda. 7.3.2.ShiftRows — en este paso se realiza una transposición donde cada fila del «state» es rotada de manera cíclica un número determinado de veces. 7.3.3. MixColumns — operación de mezclado que opera en las columnas del «state», combinando los cuatro bytes en cada columna usando una transformación lineal. 7.3.4.AddRoundKey — cada byte del «state» es combinado con la Pág. 25


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

8. 9. 10. 11.

clave «round»; cada clave «round» se deriva de la clave de cifrado usando una iteración de la clave. 7.4. Etapa final: 7.4.1.SubBytes 7.4.2.ShiftRows 7.4.3.AddRoundKey 7.5. Bloque de texto plano cifrado Guardar texto plano cifrado en variables auxiliar Enviar data encriptada Guardar en la base de datos. Fin Elaborado por: Ing. Alexander Valdeverde

Pág. 26


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

E-05

ENUNCIADO:

NOMBRE:

Algoritmo de encriptación RC4

Un contador Público independiente necesita brindar confidencialidad del manejo de los datos que se envían de una computadora a otra y que obviamente este codificado para evitar que sea interpretado por personas ajenas a la comunicación por lo que se crea un programa para exportar documentos Contables utilizando archivos CSV. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

Texto plano proveniente de archivo CSV. Clave de cifrado

DATOS DE SALIDA:

Texto cifrado

DATOS AUXILIARES:

Cifrado parcial

CONDICIONES O RESTRICCIONES:

La data escondida en la base de datos debe estar encriptada, la clave de cifrado no deberá ser guardada en la base de datos.

PROCESO:

Inicialización de variables enteras. 1. Se llenara el arreglo S caja con los valores hexadecimales del 0 a 255. i. Repetir de i=0 mientras i< 256 ii. Una vez llenado el arreglo S caja se procederá a su modificación combinándola con respecto a los valores del arreglo. i. Repetir de i=0 mientras i< 256 ii. La función intercambio recibe dos valores V1 y V2 que serán intercambiados de posición, en este caso dentro de la misma variable S caja. Una vez que se generó completamente S caja se procederá a cifrado por byte. i. Repetir de i=0 mientras i< longitud_ mensaje. ii. Uno a uno los caracteres del mensaje se van cifrando con respecto a los valores de S caja. El algoritmo de descifrado es el mismo que no se mencionara. Fin Elaborado por: Lcda. Coromoto Malavé.

Pág. 27


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

E-06

NOMBRE:

Algoritmo de encriptación DES

ENUNCIADO:

Un Escritorio Jurídico quiere ofrecer un nuevo servicio a sus clientes para garantizar la confidencialidad de los datos proporcionados y asegurar que sea resguardada su información para ello se propone implementar el uso de un Inbox encriptado, siendo necesario que las partes acuerden la clave a usar que debe ser la misma para cifrar y descifrar el mensaje con esta propuesta se busca garantizar un alto nivel de seguridad, ser adaptable y eficaz ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

Texto plano Clave de cifrado Texto cifrado Texto cifrado parcial La clave de cifrado, Texto plano, La data guardada en la base de datos debe estar encriptada, la clave de cifrado no deberá ser guardada en la base de datos. Encriptación: 1.- Procesar la clave 1.1.- Solicitar una clave de 64 bits al usuario. 1.2.- Calcular las subclaves. 1.2.1.- Realizar la permutación en la clave de 64 bits reduciéndose la misma a 56 bits 1.2.2.- Dividir la clave permutada en dos mitades de 28 bits cada una. 1.2.3.- Calcular las 16 subclaves 2.- Procesar el bloque de datos de 64 bits 2.1.- Obtener un bloque de datos de 64 bits 2.2.- Realizar la permutación inicial 2.3.- Dividir el bloque resultante en dos mitades de 32 bits cada una. 2.4.- Aplicar las 16 subclaves obtenidas en el paso 1 2.5.- Hacer la permutación final Desencriptación: Usar el mismo proceso descrito con anterioridad pero empleando las subclaves en orden inverso, esto es, en lugar de aplicar K(1) para la primera iteración aplicar K(16), K(15) para la segunda y así hasta K(1). Elaborado por: Abog. Marisela Malavé.

DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

PROCESO:

Pág. 28


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 29


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

S-01

ENUNCIADO:

NOMBRE:

Algoritmo De Generación De Números Aleatorios

Se requiere generar números aleatorios usando el método congruencial para la simulación de valores para variables de procesos con el fin de ejecutar pruebas en aplicaciones de visualización y control. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

Número para ser usado como semilla (seed) Número multiplicador Número incrementador Número modulo Numero aleatorio asignado a una etiqueta virtual (virtual tag) Variables auxiliares Numero de ciclo i Temporizador Tag de programa de visualización y control

CONDICIONES O RESTRICCIONES:

Los números generados deben ser positivos.

PROCESO:

Inicio 1. Inicializar i = 1 2. Asignar un número entero positivo a la variable semilla X[0] 3. Asignar un número entero positivo a la variable multiplicadora a 4. Asignar un número entero positivo a la variable incrementadora c 5. Asignar un número entero positivo mayor que cero n para fijar la cantidad de números aleatorios a generar. 6. Mientras que i sea menor a n Calcular el número aleatorio ejecutando los siguientes pasos: 6.1. Comparar que i sea menor a n de ser cierto ir al paso 4.2 sino salir del ciclo. 6.2. Multiplicación del multiplicador y la semilla. a*X[i-1] 6.3. Sumar el incrementador al producto del paso anterior. a*X[i-1] + c 6.4. Calcular el modulo en base al resultado y el numero modulo. X[i] = (a*X[i-1] + c) mod m 6.5. Dividir el resultado entre el valor del modulo y almacenarlo en una variable auxiliar. U[i] = X[i] / m 6.6. Asignar el número aleatorio resultante almacenado en la variable auxiliar U[i] a una etiqueta (tag) virtual de la Pág. 30


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA aplicación de visualización y control. 6.7. Incrementar en 1 el valor de n 6.8. Esperar unos segundos usando un temporizador. 6.9. Volver al paso 4.1. Fin Elaborado por: Ing. Rafael Eduardo Salazar Ravelo

Pág. 31


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

S-02

ENUNCIADO:

NOMBRE:

Algoritmo de Modelo Cuantil

Evaluar el estatus de las computadoras del área administrativa de la UPTNM “Ludovico Silva” ANALISIS DEL PROBLEMA Equipo PC Área Administrativa

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

PROCESO:

Estatus del equipo PC Disponibilidad del Área. Inicio 1. Existe un área donde evaluar equipos? 2. Si la respuesta en (SI) Vamos al área. 2.1 Verificamos la disponibilidad del área. 2.2 Si está disponible evaluamos el equipo. 2.3 Registramos el estatus del equipo. 2.4 Preguntamos existe otro equipo por evaluar? 2.4.1 Si la respuesta es (SI) volvemos al paso 2.2. 2.4.2 Si la respuesta es (NO) volvemos al paso 1. 3. Si no está disponible volvemos al paso 1. 4. Si no hay más áreas por evaluar equipos Finalizamos. Fin Elaborado por: Ing. Edduard Domingo González

Pág. 32


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

S-03

ENUNCIADO:

NOMBRE:

Algoritmo de Vectores Multidimensionales

Proceso de Orden de Compra de la UPTNM “Ludovico Silva” sede Caripito. ANALISIS DEL PROBLEMA

Requisición. Proveedores Artículos

DATOS DE ENTRADA:

Orden de Compra. Artículos Almacén Disponibilidad Presupuestaria. Dirección solicitante

DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

Disponibilidad Presupuestaria. Inicio 1. 2. 3. 4. 5. 6.

PROCESO:

7. 8. 9.

Requerimiento para Orden de Compra. Solicitud de Cotizaciones. Número de solicitudes recibidas Leer numsol Análisis de cotización Revisar i = 1 hasta numsol Aprobar solicitud ganadora Si no ir a paso 5 Generar orden de compra Aprobar orden de compra Si no ir paso 7 Contabilidad orden de compra Pasa revisión de disponibilidad si no ir a paso 5.

10. Generar pago. 11. Recepción de artículos almacén. Fin Elaborado por: Ing. Wilmen Rondón

Pág. 33


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

S-04

ENUNCIADO:

NOMBRE:

Algoritmo de Variables continuas

Verificar si hay las condiciones necesarias para la cancelación del pago de nóminas(quincenas) de la UPTNM “Ludovico Silva” ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

DATOS DE SALIDA: DATOS AUXILIARES:

Nominas calculadas y contabilizadas. Disponibilidad presupuestaria para cancelación de las mismas. Verificación de las cuentas contables y financieras.

Conexión a internet(enviar al banco) Comunicación entre los integrantes del equipo de procesamiento de las nóminas.

CONDICIONES O RESTRICCIONES:

Disponibilidad financiera.

PROCESO:

Inicio 1. Recibir datos nóminas. 2. Procede al cálculo de las nóminas. 3. Verificar cuentas contables 4. Verificación de las cuentas presupuestarias. 5. Contabilización de las mismas. 6. Procede al cierre presupuestario. 7. Contable de las nóminas. 8. Chequeo nóminas. 9. Enviar al banco las nóminas.(vía web) 10. Procesar las nóminas. (vía web). 11. Ejecución de las nóminas. (vía web). Fin Elaborado por: Ing. Luis Mujica

Pág. 34


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

S-05

ENUNCIADO:

NOMBRE:

Algoritmo de Variables continuas Método de Inversión

Suministro de Toner para equipos impresores de la UPTNM “Ludovico Silva” sede Caripito. ANALISIS DEL PROBLEMA

Solicitud del modelo de toner Cartucho vacio.

DATOS DE ENTRADA:

DATOS DE SALIDA:

Entrega de toner nuevo. Listado de requisición de compra de toner Modelos de toner. Modelos de impresoras. Oficinas solicitantes.

DATOS AUXILIARES:

CONDICIONES O RESTRICCIONES:

PROCESO:

Disponibilidad de los modelos de Toner. Inicio 1. Recibir solicitud y modelo del toner vacio. 2. Verificar disponibilidad del modelo de toner solicitado. 2.1. Si hay en existencia, se procede a 2.1.1. Realizar la orden de despacho. 2.1.2. Se hace entrega del toner nuevo según el modelo solicitado. 2.2. De lo contrario 2.2.1. Se regresa la solicitud y el modelo del toner vacio. 2.2.2. Se toman los datos para realizar solicitud de compras del modelo inexistente. 2.2.3. Agregar al listado de requisición de compras. Fin Elaborado por: Ing. Ismarys Castilo

Pág. 35


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

CODIGO:

S-06

ENUNCIADO:

NOMBRE:

Algoritmo de Simulación Método de Lanzamiento de Dados.

Se requiere la simulación de un juego de lanzamiento de dos dados por el método de Monte Carlo para saber si el juego es conveniente o no.

ANALISIS DEL PROBLEMA DATOS DE ENTRADA:

L Variables Aleatorias: D1, D2

DATOS DE SALIDA:

Ganancia

DATOS AUXILIARES:

Número del ciclo i

CONDICIONES O RESTRICCIONES:

Si el resultado es igual en cada uno de los dados el jugador gana y se le pagará 100.000 Bs multiplicados por el producto de puntos de cada dado. Si el resultado es diferente en los dos dados el jugador deberá pagar 50.000 Bs. 1. 2. 3. 4.

PROCESO:

Inicio Inicializar la simulación (i = 1) Declarar el número de lanzamientos que se desea realizar (L) Mientras que i sea menor a n: 4.1 Solicitar a la computadora que genere dos números aleatorios del 1 al 6 (D1, D2) 4.2 Comparar el resultado de cada variable asignada al azar 4.2.1 Si, Son iguales, 100000 * (D1*D2),

Ganancia = escribir, “Gano el Jugador”

4.2.2 Sino, Ganancia = - 50000 5. Fin Elaborado por: Ing. Pethaidis Gaitan

Pág. 36


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 37


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO :

AM-01

ENUNCIADO:

NOMBRE:

Algoritmo de Mejor Ajuste.

Desarrollar un algoritmo, basado en el algoritmo del mejor ajuste, para facilitar la toma de decisiones en cuanto a la asignación de una caja de un equipo tecnológico en un estante inteligente de 100 compartimientos, ocupado por varias cajas del mismo largo y profundidad a excepción del ancho. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

CONDICIONES O RESTRICCIONES:

PROCESO:

Cantidad total de compartimientos Tamaño de cada espacio vacío Tamaño del ancho de la caja a ubicar Numero de compartimiento que cumple con la asignación Decisión de ejecutar o no el proceso del algoritmo Desperdicio al ubicar la caja Posición de cada desperdicio Aplicación del algoritmo del mejor ajuste. Aplicación del algoritmo de ordenamiento: Burbuja. Las cajas son del mismo tamaño en sus dimensiones de largo y profundidad excepto el ancho. Se requiere que el tamaño de cada espacio vacío sea mayor o igual a 0. Se requiere que la cantidad total de compartimientos se ubique entre 1 y 100. Inicio 1. Inicializar la decisión de ejecutar o no el proceso en 0. 2. Obtener la cantidad total de compartimientos. // El número del espacio es igual al número de su compartimiento. 3. Obtener el tamaño del ancho de los espacios dentro de cada compartimiento. 4. Almacenar las posiciones de los espacios. 5. Obtener el tamaño del ancho de la caja a asignar. 6. Buscar si hay un espacio que cumpla con el tamaño del ancho de la caja a ubicar. 6.1Validar si el espacio cumple. 6.1.1 Si es así, inicializar la decisión en 1. 7. Validar si la decisión es 1. 7.1 Si es así, iniciar el proceso. 7.1.1 Recorrer los espacios y las posiciones. 7.1.1.1 Calcular los desperdicios en números reales. //El desperdicio es la diferencia entre el tamaño a ubicar y un Pág. 38


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA espacio. 7.1.1.2 Validar si el desperdicio es un valor positivo. 7.1.1.2.1 Si es así, almacenar su valor. 7.1.1.2.2 Si no, almacenar su valor absoluto. 7.1.2 Recorrer los desperdicios y las posiciones de los espacios //Algoritmo de ordenamiento burbuja cuyo resultado genera una estructura de desperdicios ordenados en forma ascendente y una estructura de las posiciones intercambiadas después del ordenamiento. 7.1.2.1 Validar si el desperdicio de una posición inferior es mayor que el desperdicio de una posición superior 7.1.2.1.1 Si es así, almacenar el intercambio de los desperdicios y almacenar el intercambio de las posiciones 7.1.3 Recorrer los espacios según el orden de las posiciones intercambiadas 7.1.3.1 Validar si el tamaño a ubicar es menor o igual al espacio 7.1.3.1.1 Si es así, escribir el número del compartimiento. 7.1.3.1.2 Terminar el programa. 7.2 Si no, escribir que no existe espacio para ubicar la caja. Fin Elaborado por: Ing. José Daniel Ruiz Pérez

Pág. 39


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

AM-02

ENUNCIADO:

NOMBRE:

Algoritmo de Asignación de memoria Pila

La empresa MAÍZ PILADO C.A necesita desarrollar un programa que permita el ordenamiento de los inventarios en el almacén utilizando el algoritmo de asignación de memoria pila. ANALISIS DEL PROBLEMA

DATOS DE ENTRADA:

DATOS DE SALIDA:

DATOS AUXILIARES:

CONDICIONES O RESTRICCIONES:

PROCESO:

Diseñar estrategias para implementar técnicas y políticas de mercadeo para un control orientado y automatizado del stock de Mercancía en el almacén de la empresa MAÍZ PILADO C.A.  Determinación del stock de mercancía existente.  N° de persona que se beneficiaran.  Rentabilidad de la aplicación del programa en la empresa. Incorporación desincorporación de procesos, que permita el mejoramiento de la implementación del programa dentro de la organización MAÍZ PILADO C.A. No permite el acceso directo a los procesos de dicho programa de manera arbitraria, sin antes cumplir con un conjunto de requerimientos. Iniciación La lógica que utiliza este algoritmo es simple. En este caso se crea una pila y se insertan datos invocando la función apilar y desapilar  Se debe de manejar una variable de almacenamiento si el stock a incorporar es menor que el Máximo de los productos requeridos en el almacén  Se procede a incorporar un nuevo producto en el espacio disponible escribir “almacén está lleno” para desincorporar stock del almacén se verifica si el existente es mayor a cero del máximo de los productos requeridos  Se procede a desincorporar elemento para crear espacio disponible dentro del almacén escribir “almacén está vacío” fin Elaborado por: Ing. Rodolfo Orence

Pág. 40


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 41


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

CODIGO:

MM-01

ENUNCIADO:

NOMBRE:

Algoritmo de Modelo Matemático Cuantitativo

Se requiere una estadística básica de la Mercancía Disponible en el almacén y la cantidad de Servicios Pendientes (Montaje y Balanceo) en la oficina de la Firestone Sucursal Maturín ANALISIS DEL PROBLEMA

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES:

Número de Mercancía Recibida, Número de Mercancía Despachada, Número de Servicios Realizados. Total de Mercancía Disponible. Total de Servicios Pendientes. Medidas de Cauchos disponibles. Medida de Cauchos Vendidos.

CONDICIONES O RESTRICCIONES:

PROCESO:

Inicio 19. Declarar Número de Mercancía Recibida, Número de Mercancía Despachada, Número de Servicios Realizados. 20. Ingresar Número de Mercancía Recibida, Número de Mercancía Despachada 21. Total de Mercancía Disponible = Número de Mercancía Recibida Número de Mercancía Despachada. 22. ¿Toda mercancía despachada se ha realizado el servicio? SI: Ir Paso 6 23. NO: Ir paso 7 24. Número de Servicios Realizados = Número de Mercancía Despachada 25. Total de Servicios Pendiente = (Número de Mercancía Despachada - Número de Servicios Realizados) 26. Mostrar (Total Mercancía disponible, Total de Servicios Pendientes) Fin Elaborado por: Ing. Karelys Zerpa

Pág. 42


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA CODIGO:

MM-02

ENUNCIADO:

NOMBRE:

Algoritmo matemático Optimización

Análisis del retorno de una cartera de crédito. Donde se visualice el retorno de capital e intereses. ANALISIS DEL PROBLEMA Monto del crédito, interés fecha, anualidad, porc_, cuota. Tipo

DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

Cuota de crédito e interese generados durante su ejecución. . Anualidad, interés y tiempo de pago. Todos los datos deben estar incluidos. ( fecha, monto, tiempo de pago) Inicio

9.

PROCESO:

1._ Inicio 2._ Imprimir tipo crédito 3._ Leer tipo crédito 10. 4._ Imprimir monto_credito 5._ Leer monto_credito 6._ Imprimir FECHA 7._ Leer fech 8._ Imprimir inte 9._ Leer inte 10._ inte<--- poc/anualidad 11._ Imprimir: INTERÈS, inte 12._ cuota<--- inte +tiempo, monto_prest)*-1 13._ Imprimir: monto_cuota, 14._ Fin Fin Elaborado por: Ing. Lisandro Mendez

Pág. 43


UNIVERSIDAD DE ORIENTE NUCLEO MONAGAS CONSEJO DE ESTUDIOS DE POSTGRADO MAESTRÍA EN INFORMÁTICA GERENCIAL MODULO: ALGORITMOS Y COMPUTACIÓN AVANZADA

Pág. 44


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.