domingo, 13 de noviembre de 2011

recursividad consola

class Mate
{
public uint Factorial(uint n)
{
uint f = 1;
if (n == 0 || n == 1)
return f;
else
f = n * Factorial(n - 1);
return f;
}



//---------Opcion 1---------//
public void Invertir(int n)
{

Console.Write(n % 10);
if (n >= 10)
Invertir(n / 10);
//return n;
}

//--------Opcion 2---------//
public int []Invertir2(int[] num)
{
int[] resp = new int[num.Length];
for (int i = 0; i < num.Length; i++)
resp[i] = num[num.Length - i - 1];
return resp;

}

//public string Invertir_Cadena(string cadena)
//{
// string invertir = " ";
// for (int i = cadena.Length - 1; i >= 0; i--)
// {
// invertir = invertir + cadena.Substring(i, 1);

// }
// return invertir;

//}

public string invertir_Cadena(string s)
{
string cad = "";
for (int i = s.Length - 1; i >= 0; i--)
cad += s[i];
return cad;
}

public string InvertirCad(string s, int lenght)
{
if (lenght == 1)
return s;
else
return InvertirCad(s.Substring(1, s.Length - 1), lenght - 1) + s[0].ToString();
}

public int Fiboniacci(int n)
{
int F;
if (n == 1 || n == 2)
return 1;
else
F = Fiboniacci(n - 1) + Fiboniacci(n - 2);
return F;

}

static public int Stifel(int n, int r)
{
if (n == r || n == 1 || r == 0)
return 1;
else
return Stifel(n - 1, r) + Stifel(n - 1, r - 1);
}

/*static public int Stifel2(int n, int r)
{
if (n == r || n == 1 || r == 0)
return 1;
else
return 1;
}*/

}
}

Main:


class Program
{
static void Main(string[] args)
{
Mate num = new Mate();
Mate cad = new Mate();
string a = "hola";
Mate fib = new Mate();




uint Fac = num.Factorial(4);
Console.WriteLine("\n Factorial de 4 es: " + Fac);

Console.WriteLine("\n Invertir numero 1234");
num.Invertir(1234);


int n = fib.Fiboniacci(6);
Console.WriteLine("\n Fiboniacci " + n);

int coe = Mate.Stifel(8, 2);
Console.WriteLine("\n Coeficiente Binomial de (8, 2): " + coe);

//-------


Console.WriteLine("\nFrase a invertir HOLA: " + cad.InvertirCad(a,4));




Console.ReadKey();

domingo, 6 de noviembre de 2011

listas enlazadas

class Nodo_Lista{



{
dato = d;
sig =
}

{

{

nodo.sig =
}
}

{

p1 =

{

p1 = p1.sig;
}

}
}
int dato;Nodo_Lista sig;public Nodo_Lista(int d)null;public void Insertar(Nodo_Lista nodo)if (this.sig == null)this.sig = nodo;null;public void Muestra()Nodo_Lista p1;this;while (p1 != null)Console.Write(p1.dato + " -> ");Console.WriteLine("\n");

{



{

n.Insertar(o);
n = o;
}
p.Muestra();
n.Muestra();

}
static void Main(string[] args)Nodo_Lista p = new Nodo_Lista(52);Nodo_Lista n = p;for (int i = 0; i < 10; i++)Nodo_Lista o = new Nodo_Lista(i * i);Console.ReadKey();

Aqui se muestra la cola simple

class Cola{



{
p = u = -1;
tam = t;
vec =
}

{

{
vec[++u] = dato;

p = 0;

}

}

{

{
dato = vec[p];

{
p = -1;
u = p;
}
int p, u, tam;int[] vec;public Cola(int t)new int[tam];public bool agregar(int dato)if (!LLENA())if (u == 0)return true;return false;public bool extraer(ref int dato)if (!VACIA())if (p == 0)elsep++;

}

}

{



}

{



}
}


{
static void Main(string[] args)Cola cola = new Cola(5);//int i;



Random r = new Random();Console.WriteLine("\tAgregando Datos a la Cola...\n");for (int i = 0; i < 7; i++)if (cola.agregar(r.Next(1, 10)))Console.WriteLine("Dato Agregado " + i + 6);else


Console.WriteLine("Desbordamiento, Cola Llena.");int d = -1;Console.WriteLine("Extrayendo Datos de la Cola: ");int Cont = 0;while (true)//Para Probar la Extracción Cuando ya no hay Datos.{

cola.agregar(10);

if (Cont > 2)if (cola.extraer(ref d))Console.WriteLine("Dato Extraido: " + d);else{


}
}
}
}
Console.WriteLine("Subdesbordamiento, Cola Vacia");break;
return true;return false;public bool VACIA()if (p == -1)return true;return false;public bool LLENA()if (u >= tam - 1)return true;return false;

liztas enlasadas que se comportan como una cola

class Program
{
static void Main(string[] args)
{
Est_de_Datos examen = new Est_de_Datos();//Se declara el objeto
examen.Agregar(50);//Se agrega a la lista
Console.WriteLine("Agregar (50)");//_Muestra en pantalla el atributo del nodo agregado
examen.Agregar(65);//Se agrega a la lista despues del nodo anterior
Console.WriteLine("Agregar (65)");
examen.Agregar(70);
Console.WriteLine("Agregar (70)");
Console.WriteLine();
Console.WriteLine("Eliminar" + examen.Eliminar());/_Muestra en pantalla el atributo del primer nodo agreado y lo eliminado
Console.WriteLine("Eliminar" + examen.Eliminar());
Console.WriteLine("Eliminar" + examen.Eliminar());
Console.ReadKey();

}
}
}
class Elemento
{
public int val;
public Elemento next;
public Elemento(int i)
{
val = i;
next = null;
}
public Elemento()
{
next = null;
}
}
class Est_de_Datos
{
Elemento first, last;
public Est_de_Datos()
{

}
public void Agregar(int dato)
{
Elemento nuevo;
nuevo = new Elemento(dato);
if (last != null)
last.next = nuevo;
last = nuevo;
if (first == null)
first = nuevo;
}
public int Eliminar()
{
Elemento temp = new Elemento();
int d;
temp = first;
if (temp == null)
return 0;
first = temp.next;
d = temp.val;
if (first == null)
last = null;
return d;

}
}

aplicacion que usa pilas con listas

class Elemento
{
public int v;
public Elemento s;
public Elemento(int v1, Elemento s1)
{
v = v1;
s = s1;
}
}
class ExaU3
{
Elemento e1;
public ExaU3()
{
e1 = null;
}
public void metodo1(int v1)
{
Elemento nuevo = new Elemento(v1, e1);
e1 = nuevo;

}
public int metodo2()
{
Elemento naux;
int v1;
if (e1 == null)
return -1;
naux = e1;
e1 = naux.s;
v1 = naux.v;
return v1;
}
}

Main:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tarea_PilaListas
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ExaU3 examen = new ExaU3();
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
examen.metodo1(Convert.ToInt32(textBox1.Text));
//MessageBox.Show("Agregado " + textBox1.Text);

}
private void button2_Click(object sender, EventArgs e)
{
label2.Text = examen.metodo2().ToString();
}
}
}

miércoles, 2 de noviembre de 2011

notacion polca visual

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
String exp_infija = textBox1.Text;
//StringBuilder result = new StringBuilder(exp_infija);
Not_Polaca exp = new Not_Polaca();
StringBuilder posfija = exp.ConvertPosFija(textBox1.Text);
//string result;


//result = exp.ConvertPosFija(textBox2.Text);
textBox2.Text = posfija.ToString();
}

private void button2_Click(object sender, EventArgs e)
{
String exp_infija = textBox1.Text;
Not_Polaca exp = new Not_Polaca();
StringBuilder posfija = exp.ConvertPosFija(textBox1.Text);
textBox2.Text = posfija.ToString();
textBox3.Text = exp.ResolverPosFija(textBox2.Text);


}

miércoles, 26 de octubre de 2011

Este programa es de archivos

class Program{//METODO PARA MANEJAR ARCHIVOS
{
public static void Escribirarchivo(string nomarch)//SE INICIALIZAN A NULL
FileStream fs = null;BinaryWriter bw = null;try{//LA TRANSMISION DE DATOS ES DE ESCRITURAfs =
new FileStream(nomarch, FileMode.Create, FileAccess.Write);//FS ES DONDE SE ENCUENTRA EL ARCHIVO SI ES DE UNA USB O DE EL DISCO DURObw =


new BinaryWriter(fs);Random r = new Random();int n = 5, i = 0;int val;do{
val = r.Next(10, 100);

bw.Write(val);
i++;
}

}

{

}
Console.WriteLine("Dato insertado en el archivo: ");while (i < n);catch (IOException ex)Console.WriteLine("ERROR " + ex.Message);finally{

{
fs.Close();
bw.Close();
}
}
}

{
if (bw != null)public static void LeerArchivo(string nomarch)//alternativa sin crear el objeto filestream;//files fs=null;
BinaryReader br = null;try{

{
br =
if (File.Exists(nomarch))new BinaryReader(new FileStream(nomarch, FileMode.Open, FileAccess.Read));int val;do{
val = br.ReadInt32();

}
}
Console.WriteLine("Dato : " + val);while (true);else{

}
}

{

}
Console.WriteLine("El archivo no existe");catch (EndOfStreamException)Console.WriteLine("Fin del archivo");finally{

{
br.Close();
}
}
}

{
if (br != null)public static void Agregar_a_archivo(string nomarch)//SE INICIALIZAN A NULL
FileStream fs = null;BinaryWriter bw = null;try{//LA TRANSMISION DE DATOS ES DE ESCRITURAfs = new FileStream(nomarch, FileMode.Append, FileAccess.Write);//FS ES DONDE SE ENCUENTRA EL ARCHIVO SI ES DE UNA USB O DE EL DISCO DURObw =


new BinaryWriter(fs);Random r = new Random();int n = 5, i = 0;int val;do{
val = r.Next(10, 100);

bw.Write(val);
i++;
}

}

{

}
Console.WriteLine("Dato insertado en el archivo: "+ val);while (i < n);catch (IOException ex)Console.WriteLine("ERROR " + ex.Message);finally{

{
fs.Close();
bw.Close();
}
}
}

{










}

{



Escribirarchivo(archivo);

LeerArchivo(archivo);
Agregar_a_archivo(archivo);

LeerArchivo(archivo);



}
}
if (bw != null)public static int Menu()Console.Clear();Console.WriteLine("1. Nuevo");Console.WriteLine("2. Abrir");Console.WriteLine("3. Agregar");Console.WriteLine("4. Cerrar");Console.WriteLine("5. Salir");int menu = int.Parse(Console.ReadLine());if (menu < 0)Console.Write("No es valido");return menu;static void Main(string[] args)int m = Menu();string archivo = "E:\\Estructura\\leerarchivos\\archivitO.ar";Console.ReadKey();