class Ordenamiento
{
int[] _vec;
int interc, comp;
public Ordenamiento(int[] v)
{
interc = 0;
comp = 0;
_vec = new int[v.Length];
for (int i = 0; i < v.Length; i++)
{
_vec[i] = v[i];
}
}
public int Comp
{
get { return comp; }
}
public int Inter
{
get { return interc; }
}
public int[] BurbujaA()
{
comp = 0;
interc = 0;
int temp = 0;
bool listo = true;
for (int i = 1; i < _vec.Length; i++)
{
listo = true;
for (int j = 0; j < _vec.Length - i; j++)
{
comp++;
if (_vec[j] > _vec[j + 1])
{
interc++;
temp = _vec[j];
_vec[j] = _vec[j + 1];
_vec[j + 1] = temp;
listo = false;
}
}
if (listo)
return _vec;
}
return _vec;
}
public int[] BurbujaD()
{
comp = 0;
interc = 0;
int temp = 0;
bool listo = true;
for (int i = 1; i < _vec.Length; i++)
{
listo = true;
for (int j = 0; j < _vec.Length - i; j++)
{
comp++;
if (_vec[j] < _vec[j + 1])
{
interc++;
temp = _vec[j];
_vec[j] = _vec[j + 1];
_vec[j + 1] = temp;
listo = false;
}
}
if (listo)
return _vec;
}
return _vec;
}
}
Tareas de programación
viernes, 25 de noviembre de 2011
Orddenamiento Burbija (Bubblesort)
El ordenamiento de burbuja es uno de los tipos de ordenamiento más sencillos por su facilidad de comprensión, a continuación una clase que lo implementa
Recursividad Invertir Cadenas
Este proyecto sirve para invertir cadenas de texto, está implementado usando recursividad,
Esta clase sirve para invertir las cadenas de texto
puedes descargar el proyecto completo desde el enlace
http://www.mediafire.com/?z3lkef5k9zo2fm6
class Cadena
{
char[] aux;
int i;
public Cadena()
{
aux = new char[50];
i = 0;
}
public Cadena(int n)
{
aux = new char[n];
i = 0;
}
public char[] Copiar(char[] cad, int n)
{
if (n == 0)
aux[n] = cad[n];
else
{
aux[n] = cad[n];
Copiar(cad, n - 1);
}
return aux;
}
public char[] Invertir(char[] cad, int n)
{
if (n == 0)
aux[i] = cad[n];
else
{
aux[i++] = cad[n];
Invertir(cad, n - 1);
}
return aux;
}
public char[] Invertir(string cad, int n)
{
if (n == 0)
aux[i] = cad[n];
else
{
aux[i++] = cad[n];
Invertir(cad, n - 1);
}
return aux;
}
}
Esta clase sirve para invertir las cadenas de texto
puedes descargar el proyecto completo desde el enlace
http://www.mediafire.com/?z3lkef5k9zo2fm6
Recursividad
Esta clase Matemáticas contiene varios métodos que hacen uso de la recursividad para resolver problemas, el código es el siguiente:
Puedes descargar el proyecto completo desde acá:
http://www.mediafire.com/?irk282e4w4ty7wr
class MatematicasREste método obtiene el factorial de un número
{
static public int Factorial(int n)Este método obtiene la sumatoria de los numeros hasta el limite proporcionado
{
int f = 1;
if (n == 0 || n == 1)
return 1;
else
f = n * Factorial(n - 1);
return f;
}
static public int Sumatoria(int n)Este método invierte un número
{
int f = 1;
if (n == 0 || n == 1)
return 1;
else
f = n + Sumatoria(n - 1);
return f;
}
static public int Fibonacci(int n)
{
if (n == 1 || n == 2)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
static public void Invertir(int n, ref int r)
{
r += n % 10;
if (n >= 10)
{
r *= 10;
Invertir(n / 10, ref r);
}
}
}
Puedes descargar el proyecto completo desde acá:
http://www.mediafire.com/?irk282e4w4ty7wr
Movimiento de gráficos
Este pequeño proyecto es un juego en el que se usan elementos de la clase graphics, además se usan las medidas de la forma para poder dar movimiento a los gráficos, a continuación el proyecto:
Puedes descargar el proyecto completo de aquí:
http://www.mediafire.com/?a4x2n536yyr8nzh
Puedes descargar el proyecto completo de aquí:
http://www.mediafire.com/?a4x2n536yyr8nzh
Aplicacion de las Pilas Zapatería
Este es un simulador de una zapateria donde se puede trabajar con los elementos del alamacen de zapatos, el proyecto es el siguiente
Puedes descargar el proyecto desde el siguiente enlace:
http://www.mediafire.com/?vvwbtkk3413mot8
Puedes descargar el proyecto desde el siguiente enlace:
http://www.mediafire.com/?vvwbtkk3413mot8
Aplocación de colas
Este es un ejemplo sencillo del uso de las colas, es un simulador de una cola de impresión,
Puedes descargarlo para analizarlo aquí
http://www.mediafire.com/?z3fh8c0jl2wy2ul
Puedes descargarlo para analizarlo aquí
http://www.mediafire.com/?z3fh8c0jl2wy2ul
Notación Polaca
En este ejemplo se encuentra el código par convertir de una notacion normal a una notación polaca, el código es el siguiente
Si deseas revisar el proyecto descárgalo aquí:
http://www.mediafire.com/?7527lugw7beh1b6
using System;Este método es el que realiza todo el trabajo de convertir de una notación infija a una posfija (polaca)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
enum Simbolo { OPRENANDO=0, PIZQ, PDER,SUMRES, MULTDIV, POW};
class Polaca
{
public StringBuilder Convertir_a_Posfija(string Ei)
{
char[] Epos = new char[Ei.Length];
int tam = Ei.Length;
Pila<int> stack = new Pila<int>(Ei.Length);//para guardar el valor del operando
int i, pos = 0;
for (i = 0; i < Epos.Length; i++)
{
char car = Ei[i];
//simbolo actual = tipo y precedencia(car);
Simbolo actual = Tipo_y_Precedencia(car);
switch (actual)
{
case Simbolo.OPRENANDO: Epos[pos++] = car; break;
case Simbolo.SUMRES:
{
while(!stack.Vacia && Tipo_y_Precedencia((char)stack.Tope())>=actual)
Epos[pos++]= (char)stack.Pop();
stack.Push(car);
}
break;
case Simbolo.MULTDIV:
{
while (!stack.Vacia && Tipo_y_Precedencia((char)stack.Tope()) >= actual)
Epos[pos++] = (char)stack.Pop();
stack.Push(car);
}
break;
case Simbolo.POW:
{
while (!stack.Vacia && Tipo_y_Precedencia((char)stack.Tope()) >= actual)
Epos[pos++] = (char)stack.Pop();
stack.Push(car);
}
break;
case Simbolo.PIZQ: stack.Push(car); break;
case Simbolo.PDER:
{
char x = (char)stack.Pop();
while (Tipo_y_Precedencia(x) != Simbolo.PIZQ)
{
Epos[pos++] = x;
x = (char)stack.Pop();
}
}
break;
}
}
while (!stack.Vacia)
{
//por que esta ocasionando problemas con indice fuera de rango
if (pos < Epos.Length)
Epos[pos++] = (char)stack.Pop();
else
break;
}
StringBuilder regresa = new StringBuilder(Ei);
for(int r=0;r<Epos.Length;r++)
regresa[r] = Epos[r];
return regresa;
}
public Simbolo Tipo_y_Precedencia(char s)
{
Simbolo simbolo;
switch (s)
{
case '+': simbolo = Simbolo.SUMRES; break;
case '-': simbolo = Simbolo.SUMRES; break;
case '*': simbolo = Simbolo.MULTDIV; break;
case '/': simbolo = Simbolo.MULTDIV; break;
case '^': simbolo = Simbolo.POW; break;
case '(': simbolo = Simbolo.PIZQ; break;
case ')': simbolo = Simbolo.PDER; break;
default: simbolo = Simbolo.OPRENANDO; break;
}
return simbolo;
}
}
Si deseas revisar el proyecto descárgalo aquí:
http://www.mediafire.com/?7527lugw7beh1b6
Suscribirse a:
Comentarios (Atom)


