gentoo linux, java, software libre y otras hierbas
dic, 10 2007 - 3:18 pm

[código] C#, programas básicos (1)

En esta entrada pondré el código fuente de algunos programas muy básicos desarrollados en C#. Los programas corren tanto en plataformas Microsoft usando Visual Studio, como en cualquier otra plataforma usando Mono. Tal vez quieras visitar leer estas entradas: Cómo crear aplicaciones en C# usando Visual Studio o C#, crear una aplicación usando Mono.

Tal como pueden apreciar, los en ejemplos se muestra cómo compilar y ejecutar con Mono, pero si lo que quieres es hacerlo con Visual Studio, no te preocupes, aquí te explico como se hace.

Mi primer programa en C#

//Mi primer programa en C#
using System;
class Hola
{
	static void Main(string[] args)
	{
		Console.WriteLine("Hola Bill, no me gustan tu sistema");
	}
}

casidiablo@punko:~/c#> mcs Hola.cs
casidiablo@punko:~/c#> mono Hola.exe
Hola Bill, no me gusta tu sistema

Descargar código fuente

Un mensaje en un MessageBox con C#

//Un mensaje en un MessageBox con C#
using System.Windows.Forms;
class Hola3
{
	static void Main(string[] args)
	{
		MessageBox.Show("Hola Bill, no me gusta tu sistema");
	}
}

casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll Hola3.cs
casidiablo@punko:~/c#> mono Hola3.exe


Descargar código fuente

Programa de suma en C#

//Programa de suma en C#
using System;
class Suma
{
	static void Main(string[] args) {
		string primerNumero, //primer número digitado por el usuario
		segundoNumero;  //segundo número digitado por el usuario

		int numero1,  //primer número a añadir
		numero2,  //segundo número a añadir
		suma;  //resultado de numero1 + numero2

		//Pedir al usuario que ingrese el primer número
		Console.WriteLine("Por favor, digite el primer número:");
		primerNumero = Console.ReadLine();

		Console.WriteLine("Por favor, digite el segundo número:");
		segundoNumero = Console.ReadLine();

		//convertir los strings a enteros
		numero1 = Int32.Parse(primerNumero);
		numero2 = Int32.Parse(segundoNumero);

		//sumar los números
		suma = numero1 + numero2;

		//mostrar los resultados
		Console.WriteLine("El resutado de la suma es {0}",suma);
	}
}

casidiablo@punko:~/c#> mcs Suma.cs
casidiablo@punko:~/c#> mono Suma.exe
Por favor, digite el primer número:
12
Por favor, digite el segundo número:
32
El resutado de la suma es 44

Descargar código fuente

Uso del if, operadores de relación e igualdad

//Uso del if, operadores de relación e igualdad
using System;
class InstruccionesControl
{
	static void Main(string[] args)
	{
		int numero1,	//primer número a comparar
		numero2;	//segundo número a comparar

		//capturar el primer número
		Console.WriteLine("Digite el primer número:");
		numero1 = Int32.Parse(Console.ReadLine());

		//capturar el segundo número
		Console.WriteLine("Digite el segundo número:");
		numero2 = Int32.Parse(Console.ReadLine());

		if( numero1 == numero2 )
			Console.WriteLine( numero1 + " == " + numero2);
		if( numero1 != numero2 )
			Console.WriteLine( numero1 + " != " + numero2);
		if( numero1 < numero2 )
			Console.WriteLine( numero1 + " < " + numero2);
		if( numero1 > numero2 )
			Console.WriteLine( numero1 + " > " + numero2);
		if( numero1 <= numero2 )
			Console.WriteLine( numero1 + " <= " + numero2);
		if( numero1 >= numero2 )
			Console.WriteLine( numero1 + " >= " + numero2);
	}
}

casidiablo@punko:~/c#> mcs InstruccionesControl.cs
casidiablo@punko:~/c#> mono InstruccionesControl.exe
Digite el primer número:
21
Digite el segundo número:
23
21 != 23
21 < 23
21 <= 23
casidiablo@punko:~/c#> mono InstruccionesControl.exe
Digite el primer número:
66
Digite el segundo número:
66
66 == 66
66 <= 66
66 >= 66
casidiablo@punko:~/c#> mono InstruccionesControl.exe
Digite el primer número:
32
Digite el segundo número:
12
32 != 12
32 > 12
32 >= 12

Descargar código fuente

Saber si una palabra es Capicua

using System;

namespace Aplicacion
{
    class Programa
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Digite la palabra");
            string palabra = Console.ReadLine();
            string invertida = invertir(palabra);
            if(palabra.Equals(invertida))
                Console.WriteLine("La palabra es Capicúa");
            else
                Console.WriteLine("La palabra NO es Capicúa");
        }

        private static string invertir(string cadena)
        {
            string invertido = "";
            for (int i = cadena.Length-1; i >= 0; i--)
                invertido = invertido + cadena.Substring(i, 1);
            return invertido;
        }
    }
}
Los ejercicios utilizados en este post están basados en ejemplos del libro C# How to Program de Deitel. Se pone a disposición la descargar del programa original, desarrollado para trabajar sobre Visual Studio de Microsoft en plataformas Windows, y se encuentra en inglés. La versión simplificada está basada en la original, pero sin código basura insertado por Visual Studio, se encuentra en español y ha sido probada sobre Gnu/Linux usando Mono.

191 Comentarios | deja el tuyo

Un enlace entrante

190 Comentarios en “[código] C#, programas básicos (1)”

  1. ANGEL dice:

    bueno quisiera que de mas ejemplos en aplicacion de windows forms y cual es su sintaxis de de cada herramienta en forms gracias a y como puedo puedo graficar en c#

  2. Areas dice:

    Hola un codigo para hallar areas de un cuadrado y de un rectangulo hecho con un formulario:

    // Esta es la clase

    namespace Primero
    {
    class Rectangulo
    {
    int BASE;
    int ALTURA;
    /*defino el constructor, para crear el objeto*/
    public Rectangulo(int param1, int param2)
    {
    this.BASE = param1;
    this.ALTURA = param2;
    }
    /*crear el metodo area*/
    public int area()
    {
    return (BASE * ALTURA);

    }

    public int peri()
    {
    return(2*BASE+2*ALTURA);
    }

    }
    }

    //Este es el codigo del formulario:

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

    private void button1_Click(object sender, EventArgs e)
    {
    int a, b;
    Rectangulo obj; /*para utilizar el objeto “obj” en la clase rectangulo */
    obj = new Rectangulo(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));

    a = Convert.ToInt32(textBox1.Text);
    b = Convert.ToInt32(textBox2.Text);

    if ((a > 20) || (a 20) || (b <= 0))
    {
    textBox3.Text = Convert.ToString(0);
    textBox4.Text = Convert.ToString(0);
    MessageBox.Show("Valor de la altura incorrecto");

    }
    else
    {

    textBox3.Text = obj.area().ToString();
    textBox4.Text = obj.peri().ToString();
    }
    }

    }
    }

  3. leo dice:

    son unos genios
    mis respetos

  4. juan bernardo dice:

    alguien que me ayude a hacer un programa en c# que lea un conjunto de 100 numeros enteros los almacene en un arreglo e imprima el numero de veces que se repita cada numero

  5. andlo dice:

    Primero debes ordenar el arreglo que contiene los numeros q han ingresado. Con el metodo de la burbuja.

    Despues utilizando el mismo metodo de la burbuja hacemos un pequeno cambio.

    //declaramos un datatable
    DataTable htResultados=new DataTable();

    for (int i=0;i<100;i++)
    {
    repetidos=1;
    for(int j=i+1;j++;j<101)
    {
    if(vector[i]==vector[j])
    {
    //sube uno a los repetidos
    repetidos=repetidos+1;
    }
    else
    {
    DataRow fila=dtResultados.newRow();
    fila[0]=vector[i];
    fila[1]=repetidos;
    //modificamos el valor de i para no revisar los //mismos numeros
    i=j-1;
    }
    }
    }
    para terminar debes recorrer el datatable que creamos

    for(int i=0;i<dtResultados.Rows.Count;i++)
    {
    messagebox.show("El numero "+dtResultados.Rows[i][0].ToString()+" se repite "+dtResultados.Rows[i][1].ToString()+" veces");
    }

  6. andlo dice:

    Me olvide algo importante despues de alterar el valor de i. debes poner la siguiente linea de codigo
    break;
    para que salga del segundo for. Si no pones eso no te va a contar correctamente.

    Suerte me avisas si no entiendes algo

    • juan bernardo dice:

      gracias andlo, pero me arias un gran favor no puedes ser mas explicito y decirme desde el ordenamiento del arreglo de numeros aleatorios y ponerme el programa tal y como lo tengo que poner en el visual estudi 2008 y que corra el programa.

      Me arias un gran favor lo que pasa es que es un trabajo para pasar una materia y la verdad no se nada de p’rogramacion si me arias ese gran favor.

  7. favio_23 dice:

    alguien me puede ayudar hacer un programa en c# donde ingrese el dia de nacimiento y el mes de nacimiento, que me imprima el signo zodiacal que pertenece en consola… gracias es para hoy

  8. irving carrera dice:

    alguno de ustedes me puede hacer un programa en c# que reserve y cancele asientos para una linea de autobuses, de preferencia lo mas sencillo posible.

  9. gary dice:

    un favor me pedieron aser un progama q tenga doble operador if porfa ayudenme

  10. erika dice:

    me puede ayudar en esto.. un programa que pueda realizar las herramientas de apoyo….. plis

  11. Alonso dice:

    Si me podrían ayudar con este problema, porfa me urge para mañana:
    Elabora la clase producto con los campos:

    · Id (L, E)
    · Cantidad (L)
    · Descripción (L, E)
    · Precio de Compra (E)
    · Precio de Venta (L)

    Elabora los siguientes métodos

    · para realizar ventas por determinada cantidad de productos y que devuelva el valor de la compra
    · para mostrar los datos del producto Id, Cantidad y Descripción devueltos en una cadena
    · para calcular el Precio de Venta del producto, considerando que es calculado a partir del Precio de Compra aumentando un 25% si el producto no excede de 500, si fuera el caso de exceder dicha cantidad, solo se aumenta el 18%
    · Elabora el método constructor de la clase producto

    Elabora la interfaz para el ejercicio con los botones (eventos) necesarios para:

    - Dar de alta el producto
    - Realizar la compra por cierta cantidad del mismo producto
    - Mostrar el precio de Venta
    - Mostrar la cantidad del producto
    - Mostrar los datos del producto

  12. Javier dice:

    Alguien me sabria dar el codigo para dibujar un circulo en modo consola. El lenguaje que utilizo es c#

  13. mauricio dice:

    porfa ayudenme acer un programa en c# que calcule el costo promedio de las entradas y salidas de un almacen xfa si me urge

  14. Anny dice:

    me podrían ayudar a hace un programa que lea un # de 4 dígitos, y que luego este muestre los dígitos por separado, por favor :)

  15. andlo dice:

    Recibe el numero de cuatro digitos y luego lo divides para 1000,100 y 10.

    Ejemplo Recibimos el numero 5489
    utilizamos el DivRem que esta en la libreria de matematicas
    Numero =Escriba un numero de 4 digitos
    divisor=1000;
    a=Numero;
    int [] miVector=new int[4];
    i=0;
    while(divisor>10)
    {
    if(a>=1000){divisor=1000;}
    else if(a>=100){divisor=100;}
    else if(a>=10){divisor=10;}
    else{divisor=1}
    a=divrem(a,divisor,out resto)
    miVector[i]=a;
    i=i+1;
    a=resto;
    }

¡Déjanos tu comentario!