Software y Aplicaciones Web

Blog de desarrollo de software y aplicaciones web

Comentarios Recientes

Comment RSS

MSDN Home Page (Argentina)


C# Corner


AspAlliance.com

Declaración

Las opiniones en este blog se proporcionan "TAL CUAL", sin garantías,  no confieren derechos y no reflejan, necesariamente, la opinión de quienes me contratan.
Algunas cuestiones que se comentan en el blog no son reales, cualquier similitud con alguna persona viva o muerta no es más que una coincidencia, tampoco significa que necesite terapia, soy asi.

© Copyright 2007-2010

Propaganda

Este sitio implementa publicidad basada en intereses
Jun
20.
2009

  Diferencias entre Visual Basic y C#

En este post me interesa mostrar un par de aspectos básicos que me llaman la atención en la programación con Visual Basic y C#

Más allá de mi preferencia por los lenguajes de programación C#, C++ o simplemente C; cuando se desarrolla en la plataforma .NET siempre es posible encontrarse con código escrito en Visual Basic. De manera que debemos conocer algunas pequeñas diferencias que se encuentran. A medida que encuentre estos tips iré comentándolos.

En el siguiente ejercicio lo que me llama la atención es cómo Visual Basic tiene la capacidad de convertir una cadena de texto en un entero directamente desde la consola, lo que en C# debe especificarse con Convert.ToInt32(...)

Otra cosa que es importante destacar es la posibilidad que brinda Visual Basic de realizar divisiones enteras o no, esto lo pueden ver en el resultado de las líneas 19 y 20 del código en Visual Basic, esto tampoco es posible en C# que al dividir enteros presenta un resultado entero. Por supuesto que si deseamos el resultado con decimales hay que hacer una conversión (cast) entonces la división se realizará en ese otro tipo de dato.


Ejercicio 1 en Visual Basic

   1:    ''' <summary>
   2:    ''' Escriba un programa que solicite al usuario que introduzca dos números, 
   3:    ''' tome los dos números del usuario, e imprima la suma, el producto, 
   4:    ''' la diferencia, el cociente y el módulo del número
   5:    ''' </summary>
   6:    Sub Ejercicio1()
   7:      Console.Clear()
   8:      Console.WriteLine("Laboratorio 1 - Ejercicio 1")
   9:   
  10:      Dim num1, num2 As Integer
  11:      Console.WriteLine("Ingrese dos números")
  12:      Console.Write("Número 1: ")
  13:      num1 = Console.ReadLine()
  14:      Console.Write("Número 2: ")
  15:      num2 = Console.ReadLine()
  16:      Console.WriteLine("Suma       : {0}", num1 + num2)
  17:      Console.WriteLine("Producto   : {0}", num1 * num2)
  18:      Console.WriteLine("Diferencia : {0}", num1 - num2)
  19:      Console.WriteLine("Cociente   : {0}", num1 / num2)
  20:      Console.WriteLine("Cociente(*): {0}", num1 \ num2)
  21:      Console.WriteLine("Módulo     : {0}", num1 Mod num2)
  22:      Console.ReadKey()
  23:    End Sub

Ejercicio 1 en C#

   1:      /// <summary>
   2:      /// Escriba un programa que solicite al usuario que introduzca dos números, 
   3:      /// tome los dos números del usuario, e imprima la suma, el producto, 
   4:      /// la diferencia, el cociente y el módulo del número
   5:      /// </summary>
   6:      static void Ejercicio1()
   7:      {
   8:        Console.Clear();
   9:        Console.WriteLine("Laboratorio 1 - Ejercicio 1");
  10:   
  11:        int num1, num2;
  12:        Console.WriteLine("Ingrese dos números");
  13:        Console.Write("Número 1: ");
  14:        num1 = Convert.ToInt32(Console.ReadLine());
  15:        Console.Write("Número 2: ");
  16:        num2 = Convert.ToInt32(Console.ReadLine());
  17:        Console.WriteLine("Suma       : {0}", num1 + num2);
  18:        Console.WriteLine("Producto   : {0}", num1 * num2);
  19:        Console.WriteLine("Diferencia : {0}", num1 - num2);
  20:        Console.WriteLine("Cociente   : {0}", num1 / num2);
  21:        Console.WriteLine("Módulo     : {0}", num1 % num2);
  22:        Console.ReadKey();
  23:      }

 


El siguiente ejercicio permite mostrar una alternativa o técnica para validar el ingreso efectivo de un tipo de dato. En este caso se pretende ingresar un número entero y se utiliza un bucle que itera hasta que se produce el ingreso efectivo del número.

He codificado el mismo ejercicio en C# y en Visual Basic, observen que salvo las pequeñas diferencias de sintáxis son iguales. Sin embargo Visual Basic tiene la posibilidad de utilizar el "Do ... Loop Until ..." que no necesita de la negación porque es similar a la estructura que nos enseñan en pseudocódigo "Repetir ... Hasta que ...", mientras que la estructura de C# sería algo como "Repetir ... Mientras ..." lo que la mayoría de las veces confunde a los que no están acostumbrados.

Ejercicio 7 en C#

    /// <summary>
    /// Escriba un programa que entre un número de cinco digitos, separe el número 
    /// en sus dígitos individuales e imprima los digitos separados unos de otros 
    /// mediante tres espacios. 
    /// Por ejemplo, si el usuario escribe 42339 el programa debería imprimir 4 2 3 3 9
    /// </summary>
    static void Ejercicio7()
    {
      Console.Clear();
      Console.WriteLine("Laboratorio 1 - Ejercicio 7");
 
      int num1, dig1, dig2, dig3, dig4, dig5;
      //num1 = Convert.ToInt32(Console.ReadLine());
      do
      {
        Console.Write("Ingrese un Número: ");
      } while (!Int32.TryParse(Console.ReadLine(), out num1));
 
      dig5 = num1 % 10;
      dig4 = (num1 / 10) % 10;
      dig3 = (num1 / 100) % 10;
      dig2 = (num1 / 1000) % 10;
      dig1 = (num1 / 10000) % 10;
      Console.WriteLine("Digitos: {0}   {1}   {2}   {3}   {4}", dig1, dig2, dig3, dig4, dig5);
      Console.ReadKey();
    }

Ejercicio 7 en Visual Basic

  ''' <summary>
  ''' Escriba un programa que entre un número de cinco digitos, separe el número 
  ''' en sus dígitos individuales e imprima los digitos separados unos de otros 
  ''' mediante tres espacios. 
  ''' Por ejemplo, si el usuario escribe 42339 el programa debería imprimir 4 2 3 3 9
  ''' </summary>
  Sub Ejercicio7()
    Console.Clear()
    Console.WriteLine("Laboratorio 1 - Ejercicio 7")
 
    Dim num1, dig1, dig2, dig3, dig4, dig5 As Integer
    ''num1 = Convert.ToInt32(Console.ReadLine())
    Do
      Console.Write("Ingrese un Número: ")
    Loop While Not Integer.TryParse(Console.ReadLine(), num1)
 
    dig5 = num1 Mod 10
    dig4 = (num1 \ 10) Mod 10
    dig3 = (num1 \ 100) Mod 10
    dig2 = (num1 \ 1000) Mod 10
    dig1 = (num1 \ 10000) Mod 10
    Console.WriteLine("Digitos: {0}   {1}   {2}   {3}   {4}", dig1, dig2, dig3, dig4, dig5)
    Console.ReadKey()
  End Sub

Para probarlo deben cambiar en el código anterior las siguientes líneas

    Do
      Console.Write("Ingrese un Número: ")
    Loop Until Integer.TryParse(Console.ReadLine(), num1)

 




Categorías: ASP.NET | Programacion



Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading