lunes, 30 de marzo de 2020

1102 PROGRAMACIÓN DE SOFTWARE

Continuando con el trabajo en C#

Datos por el usuario: ReadLine

Hasta ahora hemos utilizado datos prefijados, pero eso es poco frecuente en el mundo real. Es mucho más habitual que los datos los introduzca el usuario, o que se lean desde un fichero, o desde una base de datos, o se reciban de Internet o cualquier otra red. El primer caso que veremos será el de interaccionar directamente con el usuario.

Si queremos que sea el usuario de nuestro programa quien teclee los valores, necesitamos una nueva orden, que nos permita leer desde teclado. Pues bien, al igual que tenemos System.Console.WriteLine ("escribir línea"), también existe System.Console.ReadLine ("leer línea"). Para leer textos, haríamos

texto = System.Console.ReadLine();

Pero eso ocurrirá un poco más adelante, cuando veamos cómo manejar textos. De momento, nosotros sólo sabemos manipular números enteros, así que deberemos convertir ese dato a un número entero, usando Convert.ToInt32:

primerNumero = System.Convert.ToInt32( System.Console.ReadLine() );

Un ejemplo de programa que sume dos números tecleados por el usuario sería:



En el siguiente Link pueden descargar el Taller: Link Taller 

Using System 


Va siendo hora de hacer una pequeña mejora: no es necesario repetir "System." al principio de la mayoría de las órdenes que tienen que ver con el sistema (por ahora, las de consola y las de conversión), si al principio del programa utilizamos "using System":

// Ejemplo en C#: "using System" en vez de "System.Console" 
using System; 

public class Ejemplo_01_10a 
      public static void Main() 
      { 
             int primerNumero; 
             int segundoNumero; 
             int suma; 
             
             Console.WriteLine("Introduce el primer número"); 
             primerNumero = Convert.ToInt32(Console.ReadLine()); 
             Console.WriteLine("Introduce el segundo número"); 
             segundoNumero = Convert.ToInt32(Console.ReadLine()); 
             suma = primerNumero + segundoNumero; 

             Console.WriteLine("La suma de {0} y {1} es {2}", primerNumero, segundoNumero, suma);        }  
}

Si además declaramos varias variables a la vez, el programa podría ser aún más compacto:


// Ejemplo en C#: "using System" y declaraciones múltiples de variables 
using System; 

public class Ejemplo_01_10b 
   public static void Main() 
   { 
         int primerNumero, segundoNumero, suma; 

         Console.WriteLine("Introduce el primer número"); 
         primerNumero = Convert.ToInt32(Console.ReadLine()); 
         Console.WriteLine("Introduce el segundo número");
         segundoNumero = Convert.ToInt32(Console.ReadLine()); 
         suma = primerNumero + segundoNumero; 

         Console.WriteLine("La suma de {0} y {1} es {2}", primerNumero, segundoNumero, suma); 
   } 
}


Escribir sin avanzar de línea


En clases anteriores vimos cómo usar {0} para escribir en una misma línea datos calculados y textos prefijados. Pero hay otra alternativa, que además nos permite también escribir un texto y pedir un dato a continuación, en la misma línea de pantalla: emplear "Write" en vez de "WriteLine", así:

// Ejemplo en C#: escribir sin avanzar de línea 
using System; 

public class Ejemplo_01_11a 
 public static void Main() 
 { 
      int primerNumero, segundoNumero, suma; 

      Console.Write("Introduce el primer número: ");
      primerNumero = Convert.ToInt32(Console.ReadLine()); 
      Console.Write("Introduce el segundo número: "); 
      segundoNumero = Convert.ToInt32(Console.ReadLine()); 
      suma = primerNumero + segundoNumero; 

     Console.WriteLine("La suma de {0} y {1} es {2}", primerNumero, segundoNumero,                suma); 
  } 
}


Incluso el último "WriteLine" de varios datos se podría convertir en varios Write (aunque generalmente eso hará el programa más largo y no necesariamente más legible), así:


// Ejemplo en C#: escribir sin avanzar de línea (2) 
using System; 

public class Ejemplo_01_11b 
      public static void Main() 
      { 
            int primerNumero, segundoNumero, suma; 

            Console.Write("Introduce el primer número: "); 
            primerNumero = Convert.ToInt32(Console.ReadLine()); 
            Console.Write("Introduce el segundo número: "); 
            segundoNumero = Convert.ToInt32(Console.ReadLine()); 
            suma = primerNumero + segundoNumero; 
            Console.Write("La suma de "); 
            Console.Write(primerNumero); 
            Console.Write(" y "); 
            Console.Write(segundoNumero); 
            Console.Write(" es "); 
            Console.WriteLine(suma); 
      } 
}

Link para descargar el segundo taller: Taller 2


No hay comentarios.:

Publicar un comentario