Sistemas / Computacion / Programacion
Posts sobre temas relacionados al mundo de la computacion
#14 C# Ordenamiento QuickSort
Programa que usa el algoritmo QuickSort para ordenar valores random
class Program
{
int h;
int[] vector;
private void mostrar()
{
Console.WriteLine("\nVector ordenados en forma ascendente");
for (int i = 0; i < h; i++)
{
Console.Write("\nValor= "+ vector[i]);
}
Console.ReadLine();
}
public void llenar(int n)
{
h = n;
vector = new int[h];
Random r = new Random();
for (int i = 0; i < h; i++)
{
vector[i] = r.Next(0,3000);
Console.Write("\nValor random= "+vector[i]);
}
quicksort(vector, 0, h - 1);
mostrar();
}
static void Main(string[] args)
{
int n;
Console.WriteLine("Quick Sort");
Console.Write("Cuantos longitud del vector: ");
n = Int32.Parse(Console.ReadLine());
Program h = new Program();
h.llenar(n);
h.mostrar();
Console.ReadKey();
}
public void quicksort(int[] vec,int izq, int der)
{
int i, j, pivote, aux;
i = izq;
j = der;
pivote = vec[(izq + der) / 2];
do
{
while (vec[i] < pivote && i < der)
{
i++;
}
while (vec[j] > pivote && j > izq)
{
j--;
}
if (i <= j)
{
aux = vec[i];
vec[i] = vec[j];
vec[j] = aux;
i++;
j--;
}
} while (i <= j);
if (izq < j)
quicksort(vec,izq, j);
if (i < der)
quicksort(vec,i, der);
}
}
#13 C# Cadena codificada
Botón que codifica
private void button1_Click(object sender, EventArgs e)
{
StringBuilder cad = new StringBuilder(textBox1.Text);
int val = 1;
for (int i = 0; i < cad.Length; i++)
{
if (cad[i] >= 10 && cad[i] <= 122)
{
if (cad[i] == 122)
cad[i] = (char)(cad[i] - 10);
cad[i] = (char)(cad[i] + val);
}
}
textBox2.Text = Convert.ToString(cad);
}
Boton que descodifica
private void button2_Click(object sender, EventArgs e)
{
StringBuilder cad = new StringBuilder(textBox2.Text);
int val = 1;
for (int i = 0; i < cad.Length; i++)
{
if (cad[i] >= 10 && cad[i] <= 122)
{
if (cad[i] == 10)
cad[i] = (char)(cad[i] + 10);
cad[i] = (char)(cad[i] - val);
}
}
textBox3.Text = Convert.ToString(cad);
}
Clase cadena
class Cadena
{
char[] cad;
public Cadena(int n)
{
cad = new char[n];
}
public Cadena(Char[] aux)
{
cad = new char[aux.Length];
for (int i = 0; i < aux.Length; i++)
cad[i] = aux[i];
}
public Cadena(Cadena c)
{
cad = new char[c.tam];
for (int i = 0; i < c.tam; i++)
cad[i] = c[i];
}
public char this[int i]
{
get
{
return cad[i];
}
set
{
cad[i] = value;
}
}
public Cadena subcadena(int pos, int num)
{
Cadena sub = new Cadena(num);
for (int i = pos, j = 0; j < num; i++, j++)
sub[j] = cad[i];
return sub;
}
public int tam
{
get
{
return cad.Length;
}
}
public Cadena(string str)
{
cad = new char[str.Length];
//for (int i = 0; i < str.Length; i++)
// cad[i] = str[i];
cad = str.ToCharArray();
}
public Cadena(StringBuilder str)
{
cad = new char[str.Length];
for (int i = 0; i < str.Length; i++)
cad[i] = str[i];
}
public void copiar(Cadena c)
{
c = new Cadena(cad);
}
public void copiar(Cadena c1, Cadena c2)
{
c1 = new Cadena(c2);
}
public char[] encriptar()
{
Cadena enc = new Cadena(cad);
//for (int i = 0; i < cad.Length; i++)
// cad[i] -= '6';
//return cad;
int val = 1;
for (int i = 0; i < cad.Length; i++)
{
if (cad[i] >= 10 && cad[i] <= 122)
{
if (cad[i] == 122)
cad[i] = (char)(cad[i] - 6);
cad[i] = (char)(cad[i] + val);
}
}
return cad;
}
public char[] desencriptar()
{
Cadena enc = new Cadena(cad);
//for (int i = 0; i < cad.Length; i++)
// cad[i] += '6';
//return cad;
int val = 1;
for (int i = 0; i < cad.Length; i++)
{
if (cad[i] >= 10 && cad[i] <= 122)
{
if (cad[i] == 10)
cad[i] = (char)(cad[i] + 6);
cad[i] = (char)(cad[i] - val);
}
}
return cad;
}
public void invertir()
{
for (int i = 0; i < cad.Length; i++)
if (cad[i] >= 'a' && cad[i] <= 'z')
cad[i] -= ' ';
else if (cad[i] >= 'A' && cad[i] <= 'Z')
cad[i] += ' ';
}
public char[] a_minus()
{
for (int i = 0; i < cad.Length; i++)
if (cad[i] >= 'A' && cad[i] <= 'Z')
cad[i] += ' ';
return cad;
}
public char[] a_mayus()
{
for (int i = 0; i < cad.Length; i++)
if (cad[i] >= 'a' && cad[i] <= 'z')
cad[i] -= ' ';
return cad;
}
public bool es_mayus(int i)
{
if (Char.ToUpper(cad[i]) == cad[i])
{
return true;
}
else
return false;
}
public bool es_minus(int i)
{
if (Char.ToLower(cad[i]) == cad[i])
{
return true;
}
else
return false;
}
public static bool es_digito(char car)
{
if (Char.IsDigit(car))
return true;
else
return false;
}
public bool esta_en(char c)
{
int j = 0;
for (int i = 0; i < cad.Length; i++)
if (c == cad[i])
j++;
if (j < 0)
return true;
else
return false;
}
public int veces_que_esta(char c)
{
int j = 0;
for (int i = 0; i < cad.Length; i++)
if (c == cad[i])
j++;
return j;
}
public override string ToString()
{
string cade = "";
for (int i = 0; i < cad.Length; i++)
cade += cad[i];
return cade;
}
}
#12 C# Cola simple plantilla
namespace cola_simple_plantilla
{
class Cola
{
T[] vec;
int p;
int u;
int tam;
public Cola(int n)
{
p = u = -1;
tam = n;
vec = new T[tam];
}
public bool esta_llena()
{
if (u >= tam - 1)
return true;
return false;
}
public bool esta_vacia()
{
if (p == -1)
return true;
return false;
}
public bool Agregar(T dato)
{
if (!esta_llena())
{
vec[++u] = dato;
if (u == 0)
p = 0;
return true;
}
return false;
}
public bool extraer(ref T dato, T n)
{
if (!esta_vacia())
{
dato = vec[p];
vec[p] = n;
if (p == u)
{
p = -1;
u = p;
}
else
p++;
return true;
}
return false;
}
public void mostrar(DataGridView dgv)
{
dgv.ColumnCount = tam;
for (int i = 0; i < tam; i++)
{
dgv[i, 0].Value = vec[i];
}
}
}
}
namespace cola_simple_plantilla
{
public partial class Form1 : Form
{
Cola cola;
int i;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(textBox1.Text);
cola = new Cola(n);
}
private void button2_Click(object sender, EventArgs e)
{
int num = Convert.ToInt32(textBox2.Text);
if(cola.Agregar(num))
{
cola.mostrar(dataGridView1);
}
else
{
MessageBox.Show("Cola llena");
i++;
}
}
private void button3_Click(object sender, EventArgs e)
{
int dato = 0;
if(cola.extraer(ref dato,0))
{
label1.Text = dato.ToString();
cola.mostrar(dataGridView1);
}
else
{
MessageBox.Show("Cola vacia");
}
}
}
}
#11 C# Pila Enlazada Visual
class N
{
public int v;
public N s;
public N(int vv, N ss)
{
v = vv;
s = ss;
}
}
class PE
{
N u;
public PE()
{
u = null;
}
public void metodo1(int vv)
{
N nu = new N(vv, u);
u = nu;
}
public int metodo2()
{
N naux;
int val;
if (u == null)
return -1;
naux = u;
u = naux.s;
val = naux.v;
return val;
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dataGridView1.RowCount = 4;
dataGridView1.Rows.Add();
}
PE exam = new PE();
int tam = 4;
private void button2_Click(object sender, EventArgs e)
{
if(tam>=0&&tam<4)
{
textBox2.Text = exam.metodo2().ToString();
dataGridView1[0, tam].Value = "";
dataGridView1[0, ++tam].Value = "";
}
else
{
dataGridView1[0, tam].Value = "no hay datos";
return;
}
if (tam >= 0)
dataGridView1[0, tam].Value = "Tope";
}
private void button1_Click(object sender, EventArgs e)
{
int dato;
dato = Convert.ToInt32(textBox1.Text);
textBox1.Text = "";
if(tam!=0)
{
exam.metodo1(dato);
dataGridView1[0, tam].Value = "";
dataGridView1[0, tam--].Value = dato;
}
else
{
dataGridView1[0, tam].Value = "Lista llena";
return;
}
if (tam <= 0)
dataGridView1[0, tam].Value = "Tope";
textBox1.Select();
}
}
#10 C# Pila Enlazada
class N
{
public int v;
public N s;
public N(int vv,N ss)
{
v = vv;
s = ss;
}
}
class PE
{
N u;
public PE()
{
u = null;
}
public void metodo1(int vv)
{
N nu = new N(vv, u);
u = nu;
}
public int metodo2()
{
N naux;
int val;
if (u == null)
return -1;
naux = u;
u = naux.s;
val = naux.v;
return val;
}
}
class Program
{
static void Main(string[] args)
{
PE objeto = new PE();
objeto.metodo1(20);
Console.WriteLine("Valor enviado: " + 20);
objeto.metodo1(10);
Console.WriteLine("Valor enviado: " + 10);
objeto.metodo1(40);
Console.WriteLine("Valor enviado: " + 40);
Console.WriteLine("\n\n");
Console.WriteLine("Valor retornado : " + objeto.metodo2());
Console.WriteLine("Valor retornado : " + objeto.metodo2());
Console.WriteLine("Valor retornado : " + objeto.metodo2());
if (objeto.metodo2() == -1)
Console.WriteLine("Valor retornado : " + "no hay datos");
Console.ReadKey();
}
}
#9 C# Colas
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Colas
{
class Program
{
static void Main(string[] args)
{
int i, n, dato = 0;
Console.Write("¿CUANTOS ELEMENTOS? ");
n = Convert.ToInt32(Console.ReadLine());
Cola cola = new Cola(n);
Random r = new Random();
Console.WriteLine("\nINCERTANDO EN LA COLA");
for (i = 0; i < n; i++)
{
dato = r.Next(100);
if (cola.agregar(dato))
Console.WriteLine("Dato agregado: " + dato);
else
{
Console.WriteLine("Desbordamiento, cola llena");
}
}
Console.WriteLine("\nEXTRAYENDO DATOS DE LA COLA");
while (cola.extraer(ref dato))
{
Console.WriteLine("Dato extraido: " + dato);
}
Console.ReadKey();
}
}
class Cola
{
//ATRIBUTOS
int[] vec;
int p, u, tam;
//CONSTRUCTOR
public Cola(int n)
{
p = u = -1;
tam = n;
vec = new int[tam];
}
public bool esta_llena()
{
if (u >= tam - 1)
return true;
return false;
}
public bool esta_vacia()
{
if (p == -1)
return true;
return false;
}
public bool agregar(int dato)
{
if (!esta_llena())
{
vec[++u] = dato;
if (u == 0)
p = 0;
return true;
}
return false;
}
public bool extraer(ref int dato)
{
if (!esta_vacia())
{
dato = vec[p];
if (u == p)
{
p = u = -1;
}
else
{
p++;
}
return true;
}
return false;
}
}
}
Suscribirse a:
Comentarios (Atom)
.png)
.png)

.png)
.png)
.png)
.png)

.png)
.png)
.jpg)
.png)
.png)