Sie sind auf Seite 1von 6

De acuerdo a su condicion lleve a cabo los siguientes ejercicios: (Valor 10 ptos).

Da entrega: Jueves mximo 6 de Julio a las 9:00 p.m. Lugar: A travs de http://uvirtual.unet.edu.ve Verificacin de realizacin personalizada: da normal de laboratorio a la entrega. Valor: 10 puntos.

Alumnos de carreras que no pertenezcan a las carreras informtica y electrnica:


Un establecimiento de la ciudad de San Cristbal dedicado a la venta de artculos de diversas categoras, ha sufrido en los ltimos das una fuerte competencia, y sus ingresos han disminuido. Por lo que para evitar ir a la quiebra la misma desea realizar un anlisis de sus ventas diarias durante la ultima semana con el fin de conocer cuales son sus ventajas y desventajas competitivas, para poder idear un plan de descuentos que permita atraer mayores ingresos al almacn. Las ventas diarias en Bolvares y sin descuentos, de cada uno de los rubros para cada uno de los das de la semana se han arreglado de la siguiente manera:
PRODUCTO

Lunes

Martes

Mircoles Jueves

Viernes

Sbado

Domingo

Tipo Producto Cosmticos Cosmticos Alimentos Limpieza Licores ... XXXXX

% de Descuento Propuesto

Labial xxx Espuma de afeitar xxx Harina de maz xxx Jabn en polvo xxx Botella XXX ... XXXXXX

### ### ### ### ### ... ###

### ### ### ### ### ... ###

### ### ### ### ### ... ###

### ### ### ### ### ... ###

### ### ### ### ### ... ###

### ### ### ### ### ... ###

### ### ### ### ### ... ###

XX

Como se observa los productos se pueden agrupar en 4 grupos: Cosmticos, Alimentos, Limpieza y Licores, los cuales permiten que en este momento los productos reciban un descuento igualitario dependiendo del grupo al que pertenezcan, el mismo es conocido : Grupos % Actual Cosmticos XX% Limpieza XX% Alimentos XX% Licores XX%

Lo que se busca es implementar descuentos diferentes para cada producto, y no por grupos ya que esto permitira aumentar los ingresos del almacn, para comprobar esto se le pide:

PRODUCTO

% de Descuento propuesto XX% XX% XX% XX% XX% ... XX%

Labial xxx Espuma de afeitar xxx Harina de maz xxx Jabn en polvo xxx Botella XXX ... XXXXXX

1. Almacenar en arreglos y vectores los datos necesarios. 2. Determinar cuales fueron los ingresos netos (luego de aplicar el descuento) del almacn con los porcentajes de descuentos por grupos. 3. Determinar cuales podran ser los ingresos netos del almacn si se aplicaran los descuentos individuales por producto. 4. Cual es el porcentaje de diferencia entre los ingresos netos a los que se les apliquen los descuentos por grupos versus los ingresos netos a los que se les apliquen los descuentos individuales. 5. Encuentre el da de la semana pasada en el que se recaudo el mayor ingreso neto, y el producto que tuvo el mayor ingreso dicho da, considere que pueden existir varios productos y das con el mismo ingreso mayor. 6. Calcule el total de ingresos proporcionados por el producto Desinfectante tapa naranja, perteneciente al grupo Limpieza si se aplicase el descuento por grupo o si se aplicase su descuento individual.

Alumnos de carreras que pertenezcan a las carreras informtica y electrnica:


Nota: Complemente la informacin sobre los algoritmos solicitados mediante cualquier fuente que desee, recuerde debe ser capaz de entender y cambiar el programa realizado por ud. En un vector de un mximo de hasta 100 posiciones, proceda a solicitar al usuario una cantidad de nmeros al azar (el usuario no conoce cuantos va a meter simplemente introduce hasta que ya no quiera introducir ms), dichos nmeros deben ser ordenados mediante c/u de los tres siguientes mtodos: 1. Un mtodo creado por ud., haciendo uso de las operaciones que considere necesarias llevar a cabo el ordenamiento del vector. 2. Haga la implementacin del algoritmo quicksort (NO recursivo) para llevar a cabo el ordenamiento del vector. (Anexo explicacin) . 3. Haga la implementacin del algoritmo del mtodo de la burbuja para llevar a cabo el ordenamiento del vector. (Anexo explicacin) . 4. Realice una funcin que desordene el vector.

Explicaciones Anexas:

Quicksort
El ordenamiento r pido (quicksort en ingls) es un algoritmo basado en la tcnica de divide y vencers, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n. Esta es probablemente la tcnica de ordenamiento ms rpida conocida. Fue desarrollada por C. Antony R. Hoare en 1960. El algoritmo original es recursivo, pero se utilizan versiones iterativas para mejorar su rendimiento (los algoritmos recursivos son en general ms lentos que los iterativos, y consumen ms recursos).

Descripcin del algoritmo


El algoritmo fundamental es el siguiente:

Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote. Resituar los dems elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que l, y al otro los mayores. En este momento, el pivote ocupa exactamente el lugar que le corresponder en la lista ordenada. La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha. Repetir este proceso de forma recursiva para cada sublista mientras stas contengan ms de un elemento. Una vez terminado este proceso todos los elementos estarn ordenados.

Como se puede suponer, la eficiencia del algoritmo depende de la posicin en la que termine el pivote elegido.

En el mejor caso, el pivote termina en el centro de la lista, dividindola en dos sublistas de igual tamao. En este caso, el orden de complejidad del algoritmo es O(nlog n). En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de 0(n). El peor caso depender de la implementacin del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas. En el caso promedio, el orden es O(nlog n).

No es extrao, pues, que la mayora de optimizaciones que se aplican al algoritmo se centren en la eleccin del pivote

Ejemplo
En el siguiente ejemplo se marcan el pivote y los ndices i y j con las letras p, i y j respectivamente. Comenzamos con la lista completa. El elemento divisor ser el 4:
5 - 3 - 7 - 6 - 2 - 1 - 4 p

Comparamos con el 5 por la izquierda y el 1 por la derecha.


5 - 3 - 7 - 6 - 2 - 1 - 4 i j p

5 es mayor que cuatro y 1 es menor. Intercambiamos:


1 - 3 - 7 - 6 - 2 - 5 - 4 i j p

Avanzamos por la izquierda y la derecha:


1 - 3 - 7 - 6 - 2 - 5 - 4 i j p

3 es menor que 4: avanzamos por la izquierda. 2 es menor que 4: nos mantenemos ah.
1 - 3 - 7 - 6 - 2 - 5 - 4 i j p

7 es mayor que 4 y 2 es menor: intercambiamos.


1 - 3 - 2 - 6 - 7 - 5 - 4 i j p

Avanzamos por ambos lados:


1 - 3 - 2 - 6 - 7 - 5 - 4 iyj p

En este momento termina el ciclo principal, porque los ndices se cruzaron. Ahora intercambiamos lista[i] con lista[sup] (pasos 16-18):
1 - 3 - 2 - 4 - 7 - 5 - 6 p

Aplicamos recursivamente a la sublista de la izquierda (ndices 0 - 2). Tenemos lo siguiente:


1 - 3 - 2

1 es menor que 2: avanzamos por la izquierda. 3 es mayor: avanzamos por la derecha. Como se intercambiaron los ndices termina el ciclo. Se intercambia lista[i] con lista[sup]:
1 - 2 - 3

El mismo procedimiento se aplicar a la otra sublista. Al finalizar y unir todas las sublistas queda la lista inicial ordenada en forma ascendente.
1 - 2 - 3 - 4 - 5 - 6 - 7

Ordenamiento de burbuja (bubble sort)


El Bubble sort es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambindolos de posicin si estn en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten ms intercambios, lo cual significa que la lista est ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeas "burbujas". A continuacin se muestra el pseudocdigo, donde Vector(posicion) es una funcin que devuelve el elemento situdado en una determinada posicin de la lista, y NO_ORDENADOS(a, b) devuelve VERDADERO si no estn en orden los elementos a y b: Mientras LISTA no ordenada, hacer
Para iCasilla desde INICIO hasta FINAL-1 Si NO_ORDENADOS(Vector(iCasilla), Vector(iCasilla+1)) entonces Variable_Auxiliar=Vector(iCasilla) Vector(iCasilla)=Vector(iCasilla+1) Vector(iCasilla+1)=Variable_Auxiliar Fin Si Siguiente iCasilla Fin Mientras

Caractersticas Ventajas:

Es bastante sencillo En un cdigo reducido se realiza el ordenamiento Eficaz Consume bastante tiempo de computadora Requiere muchas lecturas/escrituras en memoria Siempre hace la misma cantidad de comparaciones, incluso cuando el arreglo ya est ordenado.

Desventajas:

Das könnte Ihnen auch gefallen