sábado, 12 de julio de 2014

EVP 7

MÉTODOS DE ORDENAMIENTO EN C++

Debido a que las estructuras de datos son utilizadas para almacenar información, para poder recuperar esa información de manera eficiente es deseable que aquella esté ordenada. Existen varios métodos para ordenar las diferentes estructuras de datos básicas.
En general los métodos de ordenamiento no son utilizados con frecuencia, en algunos casos sólo una vez. Hay métodos muy simples de implementar que son útiles en los casos en dónde el número de elementos a ordenar no es muy grande (ej, menos de 500 elementos). Por otro lado hay métodos sofisticados, más difíciles de implementar pero que son más eficientes en cuestión de tiempo de ejecución.


  1. ORDENAMIENTO DE BURBUJA: 
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más 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 pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.
ORDENAMIENTO POR INTERSECCIÓN: El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.

Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha) o cuando ya no se encuentran elementos (todos los elementos fueron desplazados y este es el más pequeño). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.

ORDENAMIENTO POR SELECCIÓN: El ordenamiento por selección (Selection Sort en inglés) es un algoritmo de ordenamiento que requiere O operaciones para ordenar una lista de n elementos.
Su funcionamiento es el siguiente:

  • Buscar el mínimo elemento de la lista
  • Intercambiarlo con el primero
  • Buscar el mínimo en el resto de la lista
  • Intercambiarlo con el segundo


















sábado, 28 de junio de 2014

EVP 6

MATRICES
Una matriz es una estructura de datos, o más técnicamente, un espacio de memoria que 
permite almacenar una colección de elementos, todos del mismo tipo. La diferencia con 
los arreglos está en que, en las matrices, los elementos no están organizados linealmente 
sino que su organización es bidimensional, es decir, en filas y columnas. Conviene 
imaginar una matriz como una organización de celdas de memoria, o casillas, en cada 
una de las cuales se puede guardar un elemento de la colección. Además, es usual 
dibujarla como lo ilustra la figura siguiente.


EJEMPLO EN C++ 
 
#include <iostream.h> 
#include <stdlib.h> 
#include <conio.h> 
 
/*Este programa lee los datos de una matriz 3x4 y muestra en pantalla 
la suma de los datos de cada fila */ 
 
main(){ 
 int matriz[3][4]; 
 int arreglo[3]; 
 int i,j; 
 
 //Ingreso de los datos 
 for (i=0;i<3;i++){ 
 for (j=0;j<4;j++){ 
 cout << "Ingrese el numero entero correspondiente a la posicion ["<<i<<"] ["<<j<<"]: "; 
 cin >> matriz[i][j]; 
 } 
 }

EVP 5

VECTORES EN C++
Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará para accederlos. Está posición o índice será siempre un número entero positivo.
En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se define cuando se declara el vector.
TIPOS DE VECTORES

VECTORES DINAMICOS :
Lo habitual es que un vector tenga una cantidad fija de memoria asignada, aunque dependiendo del tipo de vector y del lenguaje de programación un vector podría tener una cantidad variable de datos. En este caso, se les denomina vectores dinámicos.

VECTORES ESTATICOS:
El uso de vectores dinámicos requiere realizar una apropiada gestión de memoria dinámica. Un uso incorrecto de los vectores dinámicos, o mejor dicho, una mala gestión de la memoria dinámica, puede conducir a una fuga de memoria. Al utilizar vectores dinámicos siempre habrá que liberar la memoria utilizada cuando ésta ya no se vaya a seguir utilizando.

EVP 4

FUNCIONES

Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
  • EJEMPLO DE FUNCIONES
 Para comenzar, vamos a considerar el caso en el cual se desea crear la función cuadrado(), que deberá devolver el cuadrado de un número real (de punto flotante), es decir, cuadrado() aceptará números de punto flotante y regresará una respuesta como número flotante.

Nota: aunque para la función que veremos el tipo de retorno coincide con el tipo de parámetro pasado, algunas veces las cosas pueden cambiar, es decir, no es obligatorio que una función reciba un parámetro de un tipo y que tenga que regresar una respuesta de dicho tipo.
// regresar el cuadrado de un número
double Cuadrado(double n)
{
    return n*n;
}

sábado, 19 de abril de 2014

EVAP3


               BUCLES


Ø  TEORIA:
Estos tipos de sentencias son el núcleo de cualquier lenguaje de programación, y están presentes en la mayor parte de ellos. Nos permiten realizar tareas repetitivas, y se usan en la resolución de la mayor parte de los problemas.


Generalmente estas sentencias tienen correspondencia con estructuras de control equivalentes en pseudocódigo. El pseudocódigo es un lenguaje creado para expresar algoritmos formalmente y de manera clara. No es en si mismo un lenguaje de programación, sino más bien, un lenguaje formal (con reglas muy extrictas), pero humano, que intenta evitar ambigüedades.
A su vez, un algoritmo es un conjunto de reglas sencillas, que aplicadas en un orden determinado, permiten resolver un problema más o menos complejo.

TIPOS
:
BUCLES INFINITO:
Por definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.

BUCLES FINITO: los bucles finitos o definidos son aquellos q ejecutan las instrucciones de códigos en determinado número de veces. 

        -      El código se escribe solo una vez.
        -      Reduce la posibilidad de errores.-      Acorta el tiempo.

DIAGRAMA DE FLUJO DE BUCLES INFINITO



Algoritmo bucles infinitos:

inicio
C <- entero
leer numero
siempre y cuando el numero > 0
C<-- C+1
 leer numero
siempre y cuando el numero > 0
C<-- C+1

fin de algoritmo por el momento





sábado, 12 de abril de 2014

EVAP 2

DIAGRAMA DE FLUJO DE TOMA DE DECISIONES SIMPLE


DIAGRAMA DE FLUJO DE TOMA DE DECISIONES DOBLE
DIAGRAMA DE FLUJO DE TOMA DE DECISIONES MÚLTIPLE

sábado, 5 de abril de 2014

EVP1

1)      INICIO DEL ALGORITMO.

i           Inicio

2)      DECLARACIÓN.
 p,q(1), q(2) ,r,s --> OBJETOS
x,y,z,w(1),w(2),n--> BOTONES
m,h --> ACCIONES 



3)      ASIGNACIÓN

p--> televisor.
q(1)--> control remoto de la TV.
q(2)--> control remoto del DVD.
r--> DVD.
s-->CD formato mp4.
x--> botón de encendido de TV.
Y--> botón de encendido del DVD.
z--> botón de video de la TV.
w(1) --> botón de open.
 w(2) -->botón de close.
m--> acción de insertar el CD.
n -->botón play.
h-->fin de la película.

4)      PROCESOS.

coger--> q(1) 
apuntar hacia --> p
presionar--> x,z
coger-->q(2)
apuntar hacia-->r
presionar--> y
presionar-->w(1)

Generar la acción --> m
presionar-->w(2)
presionar-->n.



5)      RESULTADO.

h --> fin de la película.