jueves, 10 de julio de 2014

EVAP7



ORDENAMIENTO

Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en el valor de algún campo en un registro. El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del conjunto ordenado.
El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numérico, alfabético o incluso alfanumérico, ascendente o descendente.


EJEMPLO:

#include<stdio.h>
#include<conio.h>
int v[100000],n;
void num_ordenados()
{
 int valor_temporal;
 for (int q=0;q<n-1;q++)/*declaramos dos ciclos para poder ir comparando 0-1,1-2,2-3,...hasta n.
 {
  for (int w=q+1;w<n;w++)
  {
   if (v[w]<v[q])
   {
    valor_temporal=v[w];/*se asigna el valor encontrado*/
    v[w]=v[q];/*ahora el valor de v[q] toma el de v[w] para poder compararlo de nuevo con el siguiente numero*/
    v[q]=valor_temporal;
   }
  }
 }
}
void orden()/*para poder imprimirlos en orden*/
{
 for (int t=0;t<n;t++)
 {
  printf("\t%d\n",v[t]);
 }
}
main()
{
 printf("cant. de numeros: ");
 scanf("%d",&n);
 for (int i=0; i<=n-1;i++)
 {
  printf("\ningrse numero %d: ",i+1);
  scanf("%d",&v[i]);
 }
 printf("\norden en el que fueron ingresado:\n\n");
 orden();/*llamamos nuetra operacion para imprimirlo con el orden en el que fueron ingresados*/
 num_ordenados();/*luego ya con el metoo de seleccion*/
 printf("\n");
 printf("\nmetodo de seleccion:\n\n");
 orden();
}




MÉTODO DE BURBUJA:

El ordenamiento por burbuja es bastante sencillo, consiste en evaluar pares de elementos contiguos del arreglo y si el primero es mayor que el siguiente los intercambia (los más chicos quedan abajo). Todo esto sucede dentro de dos ciclos for que recorren el arreglo. El ciclo más interno realiza las comparaciones, y se asegura ya en la primera pasada completa que el elemento más grande del arreglo suba a la posición más alta (esto más adelante nos permitirá desarrollar un algoritmo mejorado del método burbuja).

EJEMPLO:

#include<stdio.h>
#include<conio.h>
main()
{
 int temp;
 int arreglo[10]={8,4,2,9,6,3,5,7,1,10};
 for (int b=0;b<11;b++)/*esto sirve para que el arreglo pueda compararce las veces nesesarias y asi poder imprimir los numeros ordenados ejemplo de esto aqui
 {
   for (int i=0;i<8;i++)
   {
  if (arreglo[i+1]<arreglo[i])
  {
   temp=arreglo[i];
   arreglo[i]=arreglo[i+1];
   arreglo[i+1]=temp;
  
  }
   }
    }
    printf("\nordenamiento por el emtodo de burbuja (bubblesort)");
 for (int x=0;x<9;x++)
 {
  printf("\n%d",arreglo[x]);
 }
}




MÉTODO DE ORDENACIÓN POR INSERCIÓN:

#include<conio.h>
#include<stdio.h>
int num[100000],n;
void insercion()
{
 int tem;
 for (int q=1;q<n;q++)
 {
  tem=num[q];
  for (int j=q;j>0 && tem<num[j-1];j--)
  {
   num[j]=num[j-1];
   num[j-1]=tem;
  }
 }
void imprimir()
{
 for (int h=0;h<n;h++)
 {
  printf("\t%d",num[h]);
 }
}
main()
{
 printf("cant. de numeros: ");
 scanf("%d",&n);
 for (int y=0;y<n;y++)
 {
  printf("valor %d: ",y+1);
  scanf("%d",&num[y]);
 }
 printf("\norden ingresados:\n\n");
 imprimir();
 insercion();
 printf("\n\nmetodo de insercion:\n\n");
 imprimir();
 getch();
}




miércoles, 9 de julio de 2014

EVAP6


MATRIZ

Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es C++ es similar a un vector:
1
int matrix[rows][cols];
int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:
1
2
3
4
5
for(int i = 0; i < rows; i++) {
  for(int j = 0; j < cols; j++) {
    matrix[i][j] = i % j;
  }
}

EJEMPLO:

*   Suma de Matrices
#include <iostream>
using namespace std;
int row,fil,i,j;
int
main()
{
cout <<"Ingrese el numero de filas "<<endl;
cin >>fil;

cout <<"Ingrese el numero de columnas "<<endl;
cin >>row;
int matriz1[fil][row];
for  (i=0;i<=fil-1;i++)
{
for  (j=0;j<=row-1;j++)
{
cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 1"<<endl;
cin >>matriz1[i][j];

}
}
system("pause");
int matriz2[fil][row];
for  (i=0;i<=fil-1;i++)
{
for  (j=0;j<=row-1;j++)
{
  cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 2"<<endl;
cin >>matriz2[i][j];

}
}
system("pause");
cout << "A continuacion se sumaran las matrices ingresadas "<<endl;
system("pause")
int matriz3[fil][row];
for  (i=0;i<=fil-1;i++)
{
for  (j=0;j<=row-1;j++)
{
matriz3[i][j]= matriz1[i][j]+matriz2[i][j];
 cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz3[i][j]<<endl;
 }
}
cout << "Gracias por usar este programa "<<endl;
system("pause");
return  0;

}