lunes, 15 de abril de 2013
C# Demonstrate the fail-soft array
class FSDemo {
static void Main() {
FailSoftArray fs = new FailSoftArray(5, -1);
int x;
// Show quiet failures.
Console.WriteLine("Fail quietly.");
for(int i=0; i < (fs.Length * 2); i++)
fs.Put(i, i*10);
for(int i=0; i < (fs.Length * 2); i++) {
x = fs.Get(i);
if(x != -1) Console.Write(x + " ");
}
Console.WriteLine("");
// Now, handle failures.
Console.WriteLine("\nFail with error reports.");
for(int i=0; i < (fs.Length * 2); i++)
if(!fs.Put(i, i*10))
Console.WriteLine("Index " + i + " out-of-bounds");
for(int i=0; i < (fs.Length * 2); i++) {
x = fs.Get(i);
if(x != -1) Console.Write(x + " ");
else
Console.WriteLine("Index " + i + " out-of-bounds");
}
}
}
C# Public vs private access.
using System;
class MyClass {
private int alpha; // private access explicitly specified
int beta; // private access by default
public int gamma; // public access
/* Methods to access alpha and beta. It is OK for a member
of a class to access a private member of the same class. */
public void SetAlpha(int a) {
alpha = a;
}
public int GetAlpha() {
return alpha;
}
public void SetBeta(int a) {
beta = a;
}
public int GetBeta() {
return beta;
}
}
class AccessDemo {
static void Main() {
MyClass ob = new MyClass();
// Access to alpha and beta is allowed only through methods.
ob.SetAlpha(-99);
ob.SetBeta(19);
Console.WriteLine("ob.alpha is " + ob.GetAlpha());
Console.WriteLine("ob.beta is " + ob.GetBeta());
// You cannot access alpha or beta like this:
// ob.alpha = 10; // Wrong! alpha is private!
// ob.beta = 9; // Wrong! beta is private!
// It is OK to directly access gamma because it is public.
ob.gamma = 99;
}
}
Program C# Compute your weight on the moon.
using System;
class Moon {
static void Main() {
double earthweight; // weight on earth
double moonweight; // weight on moon
earthweight = 165.0;
moonweight = earthweight * 0.17;
Console.WriteLine(earthweight + " earth-pounds is equivalent to " +
moonweight + " moon-pounds.");
}
}
Numeros primos C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace numerosprimos
{
class Program
{
static void Main(string[] args)
{
int numero = 2;
for (numero = 2; numero < 100; numero++)
{
Console.WriteLine("Numeros primos del 1 al 100"+numero);
}
Console.ReadLine();
}
}
}
Tabla de la verdad C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TablaDeLaVerdad
{
class Program
{
static void Main(string[] args)
{
//encuentra los numeros primos entre 2 y 100
int i, j;
bool esPrimo;
for (i = 2; i < 100;i++ )
{
esPrimo = true;
//prueba si un numero uniformemente es divisible
for(j=2;j<=i/j;j++)
if((i%j) == 0)
esPrimo=false;
if(esPrimo)
Console.WriteLine(i+" es primo");
Console.ReadLine();
}
}
}
}
Tablero Ajedrez C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TableroAjedres
{
class Program
{
static void Main(string[] args)
{
int falfil, calfil; // posición inicial del alfil
int fila, columna; // posición actual del alfil
Console.WriteLine("Posición del alfil:");
Console.Write(" fila ");
falfil = Convert.ToInt32(Console.ReadLine());
Console.Write(" columna ");
calfil = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(); // dejar una línea en blanco
// Pintar el tablero de ajedrez
for (fila = 1; fila <= 8; fila++)
{
for (columna = 1; columna <= 8; columna++)
{
if ((fila + columna == falfil + calfil) ||
(fila - columna == falfil - calfil))
Console.Write("* ");
else if ((fila + columna) % 2 == 0)
Console.Write("B ");
else
Console.Write("N ");
}
Console.WriteLine(); // cambiar de fila
}
Console.ReadLine();
}
}
}
Teorema Newton C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TeoremaDeNewton
{
class Program
{
static void Main(string[] args)
{
double n; //numero
double aprox; //aproximacion de la raiz cuadrada
double antaprox; //anterior aproximacion a la raiz cuadrada
double epsilon; //coeficiente de error
do
{
Console.Write("Número: ");
n = Convert.ToDouble(Console.Read());
}
while (n < 0);
do
{
Console.WriteLine("Raiz cuadrada aproximada: ");
aprox = Convert.ToDouble(Console.Read());
}
while (aprox <= 0);
do
{
Console.WriteLine("Coeficiente de error: ");
epsilon = Convert.ToDouble(Console.Read());
}
while (epsilon <= 0);
do
{
antaprox = aprox;
aprox = (n/antaprox + antaprox) / 2;
}
while (Math.Abs(aprox - antaprox) >= epsilon);
Console.WriteLine("La raiz cuadrada de {0:F2} es {1:F2}", n, aprox);
}
}
}
Factorial recursivo C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RecursionFact
{
class Recursivo
{
static int Factorial(int n)
{
if (n == 0)
{
return (1);
}
else
return (n * Factorial(n - 1));
}
static void Main(string[] args)
{
int n;
Console.WriteLine("Introduce un numero: ");
n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("El facotrial de: "+n+" es "+Factorial(n));
Console.ReadLine();
//Console.WriteLine("el factorial es: "+Factorial(5));
}
}
}
Factorial Java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package factorial;
import java.util.Scanner;
public class Factorial {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner leer=new Scanner(System.in);
double numero;
int i=0;
double factorial=1;
System.out.print("Introduce un numero: ");
numero=leer.nextInt();
for(i=1;i<numero+1;i++)
{
factorial=factorial*i;
}
System.out.println("El factorial es:"+factorial);
}
}
Menus paralelos C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MENUPARALELOS
{
class Program
{
static void Main(string[] args)
{
string[] NOMBRE = new string[5];
int[] CALIFICACION1 = new int[5];
int[] CALIFICACION2 = new int[5];
int j = 0, w = 0;
string b = "", nom = "", x;
int i = 0, cali1, cali2;
string Opcion = "";
Random objeto = new Random();
float numero = objeto.Next(5, 10);
while (Opcion != "X" )
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.BackgroundColor = ConsoleColor.Cyan;
Console.WriteLine();
Console.WriteLine("****___MENU DE ARREGLOS PARALELOS____****:");
Console.WriteLine();
Console.WriteLine("A) !!-INSERTAR");
Console.WriteLine("B) !!-MODIFICAR");
Console.WriteLine("C) !!-ELIMINAR");
Console.WriteLine("X) !!-SALIR");
Console.Write("SELECCIONA UNA OPCION:");
Opcion = Console.ReadLine();
switch (Opcion)
{
case "A":
do
{
if (j < 5)
{
Console.Write("Introduzca Un Nombre:");
NOMBRE[j] = Console.ReadLine();
// Console.Write("ingrese calificacion 1:");
//cal1[j] = int.Parse(Console.ReadLine());
CALIFICACION1[j] = objeto.Next(5, 10);
Console.WriteLine("CALIFICACION 1: " + CALIFICACION1[j]);
CALIFICACION2[j] = objeto.Next(5, 10);
Console.WriteLine("CALIFICACION 1: "+CALIFICACION2[j]);
//Console.Write("ingrese calificacion 2:");
//cal2[j] = int.Parse(Console.ReadLine());
Console.WriteLine();
j++;
}
else
Console.WriteLine("!!!!!!----------Los Arreglos Están Llenos ^__^------!!!!!");
Console.WriteLine("Desea Ingresar Otro Dato (SI/NO)");
b = Console.ReadLine();
} while (b == "SI");
break;
case "B":
Console.Write("Alumno Que Desea Modificar: ");
x = Console.ReadLine();
for (i = 0; i < 5; i++)
if (NOMBRE[i] == x)
{
Console.WriteLine();
Console.WriteLine("-------!!!!!...NUEVOS DATOS!!!!!!! -------- ");
Console.WriteLine("Ingrese Nombre:");
nom = Console.ReadLine();
NOMBRE[i] = nom;
//Console.WriteLine("ingrese calificacion 1:");
CALIFICACION1[i] = objeto.Next(5, 10);
//cali1 = int.Parse(Console.ReadLine());
//cal1[i] = cali1;
//Console.WriteLine("ingrese calificacion 2: ");
//cali2 = int.Parse(Console.ReadLine());
//al2[i] = cali2;
CALIFICACION2[i] = objeto.Next(5, 10);
Console.WriteLine();
for (i = 0; i < 5; i++)
{
Console.WriteLine();
Console.WriteLine(NOMBRE[i]);
Console.WriteLine(CALIFICACION1[i]);
Console.WriteLine(CALIFICACION2[i]);
}
}
else
Console.WriteLine("El Alumno No Existe");
break;
case "C":
Console.WriteLine();
Console.WriteLine("Elemento Que Desea Borrar");
x = Console.ReadLine();
for (i = 0; i < j; i++)
if (NOMBRE[i] == x)
{
for (i = 0; i < 5 - 1; i++)
{
NOMBRE[i] = NOMBRE[i + 1];
CALIFICACION1[i] = CALIFICACION1[i + 1];
CALIFICACION2[i] = CALIFICACION2[i + 1];
}
j = j - 1;
}
for (i = 0; i < 5; i++)
{
Console.WriteLine(NOMBRE[i]);
Console.WriteLine(CALIFICACION1[i]);
Console.WriteLine(CALIFICACION2[i]);
}
break;
}
}
}
}
}
Adivinar numero asignado C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Adivinador
{
class Program
{
static void Main(string[] args)
{
int secreto = 21;
int numero;
string Opcion = "SI";
//Console.WriteLine("\t\t!!!!!-PROGRAMA DE LA SUERTE-!!!!!\n\n\n");
do
{
Console.WriteLine("\t\t!!!!!-PROGRAMA DE LA SUERTE-!!!!!\n\n\n");
/*
Console.WriteLine("Queres Jugar (SI/NO)?");
Opcion = Convert.ToString(Console.ReadLine());
*/
Console.Write(" Adivina un numero del 1 al- 100: ");
numero =Convert.ToInt32(Console.ReadLine());
if (numero == secreto)
{
Console.WriteLine("Felicidades haz ganado");
}
else if (numero !=secreto)
{
Console.WriteLine("No haz adivinado");
}
Console.WriteLine("Queres Jugar (SI/NO)?");
Opcion = Convert.ToString(Console.ReadLine());
} while (Opcion == "SI" | Opcion == "si");
}
}
}
Arreglos paralelos calcular promedio C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arreglos_Pararelos
{
class Program
{
static void Main(string[] args)
{
int i;
float PROM = 0.0f;
float AC = 0;
//le puse la dimension de 5 para comprobar mas rapido el funcionamiento del programa.
//el programa original es 30 calif y alumnos solo tendriamos que cambiar los numeros 5 por 30...
Random objeto = new Random();
float numero = objeto.Next(5, 10);
string[] nombre = new string[5];
float[] calif = new float[5];
for (i = 0; i < 5; i++)
{
for (i = 0; i < 5; i++)
{
Console.WriteLine("Introduce el nombre: ");
nombre[i] = Convert.ToString(Console.ReadLine());
calif[i] = objeto.Next(5, 10);
AC += calif[i];
}
}
PROM = AC / 5;
Console.WriteLine("El promedio dle grupo es: " + PROM);
for (i = 0; i < 5; i++)
{
if (calif[i] < PROM)
{
Console.WriteLine("El nombre de los alumnos con calificacion menor al promedio: "+nombre[i]);
}
}
Console.ReadLine();
}
}
}
Serie Fibonacci Java
/*
*/
package fibonacci;
import java.util.Scanner;
public class Fibonacci {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
int c;
int a=0;
int b=1;
int numero,i;
System.out.print("Introduce un numero para fibonnaci: ");
numero=leer.nextInt();
for(i=0;i<numero;i++){
c=a+b;
a=b;
b=c;
System.out.print(" "+a);
}
// TODO code application logic here
}
}
Numero primo Java
package primo;
import java.util.Scanner;
public class Primo {
public static void main(String[] args) {
int numero, i;
boolean primo;
Scanner entrada = new Scanner(System.in);
do
{
System.out.println("Introduzca un número >2: ");
numero = entrada.nextInt();
if(numero<=0)
System.out.println("ERROR: no ha introducido un número entero positivo");
}while(numero<=0);
if(numero==1)
primo = true;
else{i = 2;
while (numero%i!=0)
i++;
if (numero==i)
primo=true;
else
primo=false;
}
System.out.print("\nEl número "+numero);
if(!primo)System.out.print(" no");
System.out.println(" es primo");
}
}
Tabla de multiplicar Java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package calculadora;
import java.util.Scanner;
/**
*
* @author gamma4
*/
public class Calculadora {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int i,dato, Tablas;
Scanner LEER = new Scanner(System.in);
System.out.print("Intoduce un numero:");
dato = LEER.nextInt();
for(i=1;i<11;i++)
{
Tablas = (i) * dato;
System.out.println(dato + "*" + i + "="+ Tablas);
}
// TODO code application logic here
}
}
Arbol Binario Consola C#
//ClaseArbolBinarioBusqueda
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arbol_Binario_Consola
{
class ClaseArbolBinarioBusqueda
{
// Declaración privada de la raíz del ABB
private ClaseNodoArbolBinarioBusqueda raiz;
// Constructor
public ClaseArbolBinarioBusqueda()
{
Raiz = null; // Inicializa el ABB vacío
}
// Propiedad pública para acceder a la raíz
public ClaseNodoArbolBinarioBusqueda Raiz
{
get { return (raiz); }
set { raiz = value; }
}
// Método público para detectar si el ABB está vacío
public bool EstaVacio()
{
if (Raiz == null)
return (true);
else
return (false);
}
// Método público que recibe como argumento el Nodo que se desea insertar
public bool Insertar(ClaseNodoArbolBinarioBusqueda Nodo)
{
ClaseNodoArbolBinarioBusqueda NuevoNodo;
if (EstaVacio()) // Si el ABB está vacío
{
// Creación del NuevoNodo
NuevoNodo = new ClaseNodoArbolBinarioBusqueda();
NuevoNodo = Nodo;
Raiz = NuevoNodo; // Establecer la Raíz
return (true); // Inserción exitosa
}
else
{
ClaseNodoArbolBinarioBusqueda NodoActual = Raiz;
ClaseNodoArbolBinarioBusqueda Padre = null;
// Inicia el recorrido del ABB hasta llegar a una hoja
while (NodoActual != null)
{
// Verifica si está duplicado
if (NodoActual.Dato == Nodo.Dato)
return (false); // No se insertó ... duplicado
// Verifica el subárbol que debe recorrer
if (Nodo.Dato < NodoActual.Dato)
{
Padre = NodoActual; // Recorre el subárbol izquierdo
NodoActual = NodoActual.HijoIzq;
}
else
{
Padre = NodoActual; // Recorre el subárbol derecho
NodoActual = NodoActual.HijoDer;
}
}
// Creación del nuevo nodo
NuevoNodo = new ClaseNodoArbolBinarioBusqueda();
NuevoNodo = Nodo;
if (Nodo.Dato < Padre.Dato)
Padre.HijoIzq = NuevoNodo; // Se inserta por la Izquierda
else
Padre.HijoDer = NuevoNodo; // Se inserta por la Derecha
return (true); // Inserción exitosa
}
}
// Método público que recibe como argumento el Nodo que se desea eliminar
public bool Eliminar(ClaseNodoArbolBinarioBusqueda Nodo)
{
if (EstaVacio()) // Verifica si el ABB está vacío
return (false); // No se eliminó... está vacío
ClaseNodoArbolBinarioBusqueda NodoActual = Raiz, Padre = null;
// Búsqueda del nodo que se desea eliminar
while (NodoActual.Dato != Nodo.Dato)
{
if (Nodo.Dato < NodoActual.Dato)
{
Padre = NodoActual;
NodoActual = NodoActual.HijoIzq; // Recorre el subárbol izquierdo
}
else
{
if (Nodo.Dato > NodoActual.Dato)
{
Padre = NodoActual;
NodoActual = NodoActual.HijoDer; // Recorre el subárbol derecho
}
}
if (NodoActual == null)
return (false); // No se eliminó ... no existe el nodo
}
// Se encontró el nodo que se desea eliminar
// Caso 1: Si el NodoActual no tiene hijo derecho entonces su hijo izquierdo se convierte en
// el nodo apuntado por su Padre
if (NodoActual.HijoDer == null)
{
if (Padre == null)
Raiz = NodoActual.HijoIzq;
else
{
if (Padre.Dato > NodoActual.Dato)
Padre.HijoIzq = NodoActual.HijoIzq;
else
{
if (Padre.Dato < NodoActual.Dato)
Padre.HijoDer = NodoActual.HijoIzq;
}
}
}
else
{
// Caso 2: Si el hijo derecho del NodoActual no tiene hijo izquierdo entonces el hijo derecho
// del NodoActual reemplaza al NodoActual
if (NodoActual.HijoDer.HijoIzq == null)
{
NodoActual.HijoDer.HijoIzq = NodoActual.HijoIzq;
if (Padre == null)
Raiz = NodoActual.HijoDer;
else
{
if (Padre.Dato > NodoActual.Dato)
Padre.HijoIzq = NodoActual.HijoDer;
else
{
if (Padre.Dato < NodoActual.Dato)
Padre.HijoDer = NodoActual.HijoDer;
}
}
}
else
{
// Caso 3: Si el hijo derecho del NodoActual tiene hijo izquierdo se reemplaza el
// NodoActual con el hijo menor del subárbol derecho
// Inicia la búsqueda del nodo ubicado más a la izquierda de la rama derecha
ClaseNodoArbolBinarioBusqueda NodoMenor = NodoActual.HijoDer.HijoIzq, PadreDelNodoMenor = NodoActual.HijoDer;
while (NodoMenor.HijoIzq != null)
{
PadreDelNodoMenor = NodoMenor;
NodoMenor = NodoMenor.HijoIzq;
}
// El subárbol izquierdo de su padre se convierte en el subárbol derecho del NodoMenor
PadreDelNodoMenor.HijoIzq = NodoMenor.HijoDer;
// Asigna los hijos del NodoMenor a los hijos del NodoActual
NodoMenor.HijoIzq = NodoActual.HijoIzq;
NodoMenor.HijoDer = NodoActual.HijoDer;
if (Padre == null)
Raiz = NodoMenor;
else
{
if (Padre.Dato > NodoActual.Dato)
Padre.HijoIzq = NodoMenor;
else
{
if (Padre.Dato < NodoActual.Dato)
Padre.HijoDer = NodoMenor;
}
}
}
}
return (true);
}
// Método público que recibe como argumento el Nodo que se desea buscar
public bool Buscar(ClaseNodoArbolBinarioBusqueda Nodo)
{
if (EstaVacio())
return (false); // No se encontró... el ABB está vacío
// Inicia la búsqueda del Nodo en la Raíz
ClaseNodoArbolBinarioBusqueda NodoActual = Raiz;
while (NodoActual != null)
{
if (NodoActual.Dato == Nodo.Dato)
return (true); // Búsqueda exitosa
else
if (Nodo.Dato > NodoActual.Dato)
NodoActual = NodoActual.HijoDer; // Recorre el subárbol derecho
else
NodoActual = NodoActual.HijoIzq; // Recorre el subárbol izquierdo
}
return (false); // No se encontró el nodo
}
// Método público recursivo para recorrer el ABB en modo PreOrden
public void PreOrden(ClaseNodoArbolBinarioBusqueda NodoActual, ref string Resultado)
{
if (NodoActual != null)
{
Resultado = Resultado + "-> " + NodoActual.Dato.ToString(); // Visita el NodoActual
PreOrden(NodoActual.HijoIzq, ref Resultado); // Llamada recursiva para recorrer PreOrden el subárbol izquierdo
PreOrden(NodoActual.HijoDer, ref Resultado);// Llamada recursiva para recorrer PreOrden el subárbol derecho
}
}
// Método público recursivo para recorrer el ABB en modo InOrden
public void InOrden(ClaseNodoArbolBinarioBusqueda NodoActual, ref string Resultado)
{
if (NodoActual != null)
{
InOrden(NodoActual.HijoIzq, ref Resultado); // Llamada recursiva para recorrer InOrden el subárbol izquierdo
Resultado = Resultado + "-> " + NodoActual.Dato.ToString(); // Visita el NodoActual
InOrden(NodoActual.HijoDer, ref Resultado); // Llamada recursiva para recorrer InOrden el subárbol derecho
}
}
// Método público recursivo para recorrer el ABB en modo PostOrden
public void PostOrden(ClaseNodoArbolBinarioBusqueda NodoActual, ref string Resultado)
{
if (NodoActual != null)
{
PostOrden(NodoActual.HijoIzq, ref Resultado); // Llamada recursiva para recorrer PostOrden el subárbol izquierdo
PostOrden(NodoActual.HijoDer, ref Resultado); // Llamada recursiva para recorrer PostOrden el subárbol derecho
Resultado = Resultado + "-> " + NodoActual.Dato.ToString(); // Visita el NodoActual
}
}
// Método público recursivo para vaciar el Árbol Binario de Búsqueda
public void Vaciar()
{
if (!EstaVacio()) // Si no está vacío ...
{
// Se invoca el método recursivo para recorrer el ABB y eliminar cada uno de sus nodos
// (iniciando en la Raiz)
RecorrerYBorrar(Raiz);
Raiz = null; // Se inicializa el ABB vacío
}
}
// Método recursivo privado para recorrer el ABB y eliminar cada nodo
private void RecorrerYBorrar(ClaseNodoArbolBinarioBusqueda NodoActual)
{
if (NodoActual != null)
{
RecorrerYBorrar(NodoActual.HijoIzq); // Llamada recursiva para recorrer PostOrden el subárbol izquierdo
RecorrerYBorrar(NodoActual.HijoDer); // Llamada recursiva para recorrer PostOrden el subárbol derecho
Eliminar(NodoActual); // Elimina el NodoActual
}
}
}
}
/////////////////////ClaseNodoArbolBinarioBusqueda
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arbol_Binario_Consola
{
class ClaseNodoArbolBinarioBusqueda
{
private ClaseNodoArbolBinarioBusqueda hijoizq;
private int dato;
private ClaseNodoArbolBinarioBusqueda hijoder;
// Constructor
public ClaseNodoArbolBinarioBusqueda()
{
HijoDer = null;
HijoIzq = null;
}
// Propiedad pública para acceder al dato
public int Dato
{
get { return (dato); }
set { dato = value; }
}
// Propiedad pública para acceder al hijo izquierdo
public ClaseNodoArbolBinarioBusqueda HijoIzq
{
get { return (hijoizq); }
set { hijoizq = value; }
}
// Propiedad pública para acceder al hijo derecho
public ClaseNodoArbolBinarioBusqueda HijoDer
{
get { return (hijoder); }
set { hijoder = value; }
}
}
}
/////////////////////////program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arbol_Binario_Consola
{
class Program
{
static ClaseArbolBinarioBusqueda ArbolBinarioBusqueda = new ClaseArbolBinarioBusqueda();
static void Main(string[] args)
{
int opcion = 0;
ClaseNodoArbolBinarioBusqueda Nodo;
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 90; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 50; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 150; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 20; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 75; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 95; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 175; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 5; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 25; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 66; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 80; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 92; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 111; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 166; ArbolBinarioBusqueda.Insertar(Nodo);
Nodo = new ClaseNodoArbolBinarioBusqueda(); Nodo.Dato = 200; ArbolBinarioBusqueda.Insertar(Nodo);
do
{
Console.Clear();
Console.WriteLine("ÁRBOLES BINARIOS DE BÚSQUEDA\n");
Console.WriteLine("1.- Insertar nodo");
Console.WriteLine("2.- Eliminar nodo");
Console.WriteLine("3.- Buscar nodo");
Console.WriteLine("4.- Recorrido Pre-Orden");
Console.WriteLine("5.- Recorrido In-Orden");
Console.WriteLine("6.- Recorrido Post-Orden");
Console.WriteLine("7.- Vaciar");
Console.WriteLine("0.- Salir");
Console.Write("\n¿Opción? ");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1: InsertarNodo(); break;
case 2: EliminarNodo(); break;
case 3: BuscarNodo(); break;
case 4: RecorrerPreOrden(); break;
case 5: RecorrerInOrden(); break;
case 6: RecorrerPostOrden(); break;
case 7: VaciarArbol(); break;
}
} while (opcion != 0);
}
// Método para capturar un dato e insertarlo en el árbol binario de búsqueda
static void InsertarNodo()
{
// Declaración del objeto local
ClaseNodoArbolBinarioBusqueda Nodo = new ClaseNodoArbolBinarioBusqueda();
Console.Clear();
Console.WriteLine("INSERTAR DATO EN EL ÁRBOL BINARIO DE BÚSQUEDA");
Console.Write("\nNúmero ? ");
Nodo.Dato = int.Parse(Console.ReadLine()); // Captura del dato del nodo que se desea insertar
if (ArbolBinarioBusqueda.Insertar(Nodo)) //Se invoca el método para insertar el nodo en el árbol binario de búsqueda
Console.WriteLine("\nDato insertado en el Árbol Binario de Búsqueda");
else
Console.WriteLine("\nNo se insertó el dato (duplicado)");
Console.ReadKey();
}
// Método para capturar un dato, buscarlo y eliminarlo del árbol binario de búsqueda
static void EliminarNodo()
{
// Declaración del objeto local
ClaseNodoArbolBinarioBusqueda Nodo = new ClaseNodoArbolBinarioBusqueda();
Console.Clear();
Console.WriteLine("ELIMINAR DATO DEL ÁRBOL BINARIO");
Console.Write("\nNúmero ? ");
Nodo.Dato = int.Parse(Console.ReadLine()); // Captura del dato del nodo que se desea eliminar
if (ArbolBinarioBusqueda.Eliminar(Nodo)) //Se invoca el método para insertar el nodo en el ABB
Console.WriteLine("\nDato eliminado del Árbol Binario de Búsqueda");
else
Console.WriteLine("\nNo se eliminó el dato (no existe)");
Console.ReadKey();
}
// Método para buscar un dato en el árbol binario de búsqueda
static void BuscarNodo()
{
// Declaración del objeto local
ClaseNodoArbolBinarioBusqueda Nodo = new ClaseNodoArbolBinarioBusqueda();
Console.Clear();
Console.WriteLine("BUSCAR DATO EN EL ÁRBOL BINARIO");
Console.Write("\nNúmero ? ");
Nodo.Dato = int.Parse(Console.ReadLine()); // Captura del dato del nodo que se desea buscar
if (ArbolBinarioBusqueda.Buscar(Nodo)) // Se invoca el método para buscar el nodo en el ABB
Console.WriteLine("\nEl Dato sí está almacenado en el Árbol Binario de Búsqueda");
else
Console.WriteLine("\nNo se encontró el dato (no existe)");
Console.ReadKey();
}
static void RecorrerPreOrden()
{
string Resultado = " "; // Cadena que almacena los nodos visitados
Console.Clear();
Console.WriteLine("RECORRIDO PRE-ORDEN DEL ÁRBOL BINARIO DE BÚSQUEDA\n");
if (!ArbolBinarioBusqueda.EstaVacio())
{
// Se ejecuta el método para recorrer los nodos almacenados en el árbol binario de búsqueda
ArbolBinarioBusqueda.PreOrden(ArbolBinarioBusqueda.Raiz, ref Resultado);
}
else
Resultado = "Árbol Binario de Búsqueda vacío ...";
Console.WriteLine(Resultado+"\n"); // Despliega el Resultado
Console.ReadKey();
}
static void RecorrerInOrden()
{
string Resultado = ""; // Cadena que almacena los nodos visitados
Console.Clear();
Console.WriteLine("RECORRIDO IN-ORDEN DEL ÁRBOL BINARIO DE BÚSQUEDA\n");
if (!ArbolBinarioBusqueda.EstaVacio())
{
// Se ejecuta el método para recorrer los nodos almacenados en el árbol binario de búsqueda
ArbolBinarioBusqueda.InOrden(ArbolBinarioBusqueda.Raiz, ref Resultado);
}
else
Resultado = "Árbol Binario de Búsqueda vacío ...";
Console.WriteLine(Resultado); // Despliega la cadena con los nodos visitados
Console.ReadKey();
}
static void RecorrerPostOrden()
{
string Resultado = ""; // Cadena que almacena los nodos visitados
Console.Clear();
Console.WriteLine("RECORRIDO POST-ORDEN DEL ÁRBOL BINARIO DE BÚSQUEDA\n");
if (!ArbolBinarioBusqueda.EstaVacio())
{
// Se ejecuta el método para recorrer los nodos almacenados en el árbol binario de búsqueda
ArbolBinarioBusqueda.PostOrden(ArbolBinarioBusqueda.Raiz, ref Resultado);
}
else
Resultado = "Árbol Binario de Búsqueda vacío ...";
Console.WriteLine(Resultado); // Despliega la cadena con los nodos visitados
Console.ReadKey();
}
static void VaciarArbol()
{
Console.Clear();
Console.WriteLine("VACIAR EL ÁRBOL BINARIO DE BÚSQUEDA\n");
// Se ejecuta el método para recorrer el ABB y eliminar cada uno de sus nodos e
// inicializarlo vacío
ArbolBinarioBusqueda.Vaciar();
Console.WriteLine("Se eliminaron todos los nodos del ABB (Árbol vaciado)");
Console.ReadKey();
}
}
}
C# Pila Consola mediante la clase generica Stack
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Pila_Consola_Generica
{
class Program
{
static Stack<int> Pila = new Stack<int>();
static void Main(string[] args)
{
UInt16 opcion = 0;
do
{
Console.Clear();
Console.WriteLine("PILA USANDO COLECCIONES GENÉRICAS\n");
Console.WriteLine("1.- Insertar dato (Push)");
Console.WriteLine("2.- Eliminar dato (Pop)");
Console.WriteLine("3.- Mostrar datos de la pila");
Console.WriteLine("4.- Eliminar todos los datos de la pila (Vaciar)");
Console.WriteLine("0.- Salir");
Console.Write("\nOpción ? ");
opcion = UInt16.Parse(Console.ReadLine());
switch (opcion)
{
case 1: InsertarEnPila(); break;
case 2: EliminarEnPila(); break;
case 3: MostrarDatos(); break;
case 4: VaciarPila(); break;
}
} while (opcion != 0);
}
public static void InsertarEnPila()
{
int Dato=0;
Console.Clear();
Console.WriteLine("INSERTAR DATO EN LA PILA GENÉRICA");
Console.Write("\n\nNúmero entero ? ");
Dato = int.Parse(Console.ReadLine()); // Captura el dato que se desea insertar
// Invoca el método Push del objeto Pila de la clase genérica Stack
Pila.Push(Dato); // Inserta el Dato en la Pila
}
public static void EliminarEnPila()
{
Console.Clear();
Console.WriteLine("ELIMINAR EL ÚLTIMO DATO ALMACENADO EN LA PILA GENÉRICA");
// Intenta ejecutar el método Pop
try
{
// Invoca el método Pop del objeto Pila de la clase genérica Stack
int Dato=Pila.Pop(); // Elimina el dato de la pila y lo recibe la variabla Dato
Console.WriteLine("\n\nDato eliminado: " + Dato.ToString());
}
catch(InvalidOperationException e) // Si ocurre una excepción ...
{
// Despliega el mensaje de error
Console.WriteLine("\n\nNo se realizó la eliminación... "+e.Message);
}
Console.ReadKey();
}
public static void MostrarDatos()
{
Console.Clear();
Console.WriteLine("DATOS ALMACENADOS EN LA PILA GENÉRICA\n");
// Intenta recorrer la Pila
try
{
// Recorre cada Dato de la Pila
foreach (int Dato in Pila)
Console.WriteLine(Dato);
// Muestra la cantidad de elementos usando el método Count()
Console.WriteLine("\nTop = " + Pila.Count());
}
catch (InvalidOperationException e) // Si ocurre una excepción ...
{
// Despliega el mensaje correspondiente
Console.WriteLine("\n\nPila vacía... " + e.Message);
}
Console.ReadKey();
}
public static void VaciarPila()
{
char sn;
Console.Clear();
Console.WriteLine("ELIMINAR TODOS LOS ELEMENTOS DE LA PILA (VACIAR)\n");
// Solicita al usuario que confirme la operación
do
{
Console.Write("¿Está seguro que desea vaciar la pila [S/N] ?");
sn = char.Parse(Console.ReadLine());
sn = Char.ToUpper(sn); // Convierte a mayúsculas el caracter capturado
} while (sn != 'S' && sn != 'N');
if (sn == 'S') // Si se confirma la operación ...
{
Pila.Clear(); // Invoca el método para limpiar la pila
Console.WriteLine("\n\nSe eliminaron todos los elementos de la pila !!!");
Console.ReadKey();
}
}
}
}
Pila Consola C#
//////////////////////////clase pila
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Pilas
{
public class ClasePila
{
private readonly int Max; // Tamaño de la pila
private int Top; // Cantidad de datos almacenados
private int[] Arreglo; // Arreglo de la pila
// Constructor que recibe el Tamaño de la pila
public ClasePila(int Tamaño)
{
Top = 0; // Inicializa la pila vacía
Max = Tamaño; // Define el tamaño de la pila
Arreglo = new int[Tamaño]; // Crea el arreglo
}
// Método para determinar si la pila está llena
private bool EstaLlena()
{
if (Top == Max)
return (true);
else
return (false);
}
// Método para determinar si la pila está vacía
private bool EstaVacia()
{
if (Top == 0)
return (true);
else
return (false);
}
// Método para insertar un dato en la pila
public bool Push(int dato)
{
if (!EstaLlena()) // Si no está llena ...
{
Arreglo[Top] = dato; // Inserta el dato
Top++; // Incrementa la cantidad de datos almacenados
return (true); // Dato insertado con éxito
}
else
return (false); // No se insertó el dato
}
// Método para eliminar el último dato insertado en la pila
public bool Pop()
{
if (!EstaVacia()) // Si no está vacía ...
{
Top--; // Disminuye la cantidad de datos almacenados
return (true); // Dato eliminado con éxito
}
else
return (false); // No se eliminó el dato
}
// Método para mostrar en pantalla los datos de la pila
public string Mostrar()
{
string Resultado = "\n"; // Inicializa el resultado
if (!EstaVacia()) // Si no está vacía ...
{
// Ciclo para recorrer el arreglo de la pila
for (int i = 0; i <= Top - 1; i++)
Resultado = Resultado + "\n[" + i.ToString()+"] -> "+Arreglo[i].ToString();
Resultado = Resultado + "\n\nTop = " + Top.ToString(); // Mostrar el Top
Resultado = Resultado + "\nMax = " + Max.ToString(); // Mostrar el Max
}
else
Resultado="\n\nPila vacía !!!";
return (Resultado); // Devolver el Resultado
}
// Método para eliminar todos los datos de la pila
public void Vaciar()
{
// Se inicializa a cero la cantidad de elementos almacenados en la pila
Top = 0;
}
}
}
///////////////////////program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Pilas
{
class Program
{
static ClasePila Pila = new ClasePila(10); // Declaración del objeto de la Pila
public static void Main(string[] args)
{
Int16 opcion = 0;
do
{
Console.Clear();
Console.WriteLine("P I L A S");
Console.WriteLine("\n1.- Insertar dato (PUSH)");
Console.WriteLine("2.- Eliminar dato (POP)");
Console.WriteLine("3.- Mostrar datos de la Pila");
Console.WriteLine("4.- Eliminar todos los datos de la Pila (VACIAR)");
Console.WriteLine("0.- Salir");
Console.Write("\n\nOpcion ? ");
opcion = Int16.Parse(Console.ReadLine());
switch (opcion)
{
case 1: InsertarEnPila(); break;
case 2: EliminarEnPila(); break;
case 3: MostrarDatos(); break;
case 4: VaciarPila(); break;
}
} while (opcion != 0);
}
public static void InsertarEnPila()
{
int Dato = 0;
Console.Clear();
Console.WriteLine("INSERTAR DATO EN LA PILA");
Console.Write("\nNúmero entero ? ");
Dato = int.Parse(Console.ReadLine()); // Se captura el número que se desea insertar
// Se ejecuta el método Push del objeto Pila
if(Pila.Push(Dato))
Console.WriteLine("\nDato insertado en la pila !!!");
else
Console.WriteLine("\nPila llena ...");
Console.ReadKey();
}
public static void EliminarEnPila()
{
Console.Clear();
Console.WriteLine("ELIMINAR El ÚLTIMO DATO ALMACENADO EN LA PILA");
// Se ejecuta el método Push del objeto Pila
if (Pila.Pop())
Console.WriteLine("\nDato eliminado de la pila !!!");
else
Console.WriteLine("\nPila vacía ...");
Console.ReadKey();
}
public static void MostrarDatos()
{
Console.Clear();
Console.WriteLine("DATOS ALMACENADOS EN LA PILA");
// Se ejecuta el método para mostrar los datos de la pila
Console.WriteLine(Pila.Mostrar());
Console.ReadKey();
}
public static void VaciarPila()
{
char sn;
Console.Clear();
Console.WriteLine("ELIMINAR TODOS LOS ELEMENTOS DE LA PILA (VACIAR)\n");
// Solicita al usuario que confirme la operación
do
{
Console.Write("¿Está seguro que desea vaciar la pila [S/N] ?");
sn = char.Parse(Console.ReadLine());
sn = Char.ToUpper(sn); // Convierte a mayúsculas el caracter capturado
} while (sn != 'S' && sn != 'N');
if (sn == 'S')
{
Pila.Vaciar(); // Invoca el método correspondiente
Console.WriteLine("\n\nSe eliminaron todos los elementos de la pila !!!");
Console.ReadKey();
}
}
}
}
Suscribirse a:
Entradas (Atom)