VARIABLES. FORMATOS DE SALIDA


Variables
Una variable es una celda en la memoria de la computadora que tiene un nombre y almacena algún valor correspondiente a el tipo .

La palabra "variable" nos dice que su valor puede cambiar durante la ejecución del programa.  Cuando se guarda un nuevo valor de variable, el antiguo se borra.


Para una computadora, toda la información son datos en su memoria: conjuntos de ceros y unos (en pocas palabras, cualquier información en una computadora son solo números y los procesa de la misma manera). Sin embargo, sabemos que los números enteros y fraccionarios funcionan de manera diferente. Por lo tanto, cada lenguaje de programación tiene diferentes tipos de datos, que se procesan utilizando diferentes métodos.

Por ejemplo,
- variables enteras – type int (del inglés integer – whole), ocupa 4 bytes en memoria;
- variables reales que pueden tener una parte fraccionaria (tipo float – del inglés punto flotante – punto flotante) ocupan 4 bytes en memoria;
- caracteres (escriba char – del carácter inglés – símbolo), ocupan 1 byte en la memoria.

Intentemos agregar alguna variable a nuestro programa.
Antes de usar una variable, debe decirle a la computadora que le asigne espacio en la memoria. Para hacer esto, debe declarar una variable, es decir, especificar qué tipo de valor almacenará y darle un nombre.
Además, si es necesario, puede asignarle valores iniciales. 

Tomemos un programa como ejemplo: utilizando el sistema; programa de clase {     vacío estático principal ()     {         int a = 6, b; // declaró dos variables de tipo entero, en la variable a guardó inmediatamente el valor 6.   // La variable b no fue inicializada; // lo que habrá en la memoria en este caso, no lo sabemos.     } } Una computadora no sería necesaria si no tuviera la capacidad de almacenar información diversa en su memoria y poder procesar información del mismo tipo utilizando los mismos algoritmos. 
Para crear programas más interesantes, uno debe aprender a almacenar información en la memoria de la computadora. Al mismo tiempo, necesitamos aprender a acceder de alguna manera a las celdas de memoria de la computadora. 
En programación, como en la vida, para referirse a cualquier parte de la memoria de la computadora, se da por nombre. Usando este nombre, puede leer información y escribirla allí.

Ejemplo
Intentemos escribir una calculadora para números primos.

Nuestra tarea es mostrar alguna expresión aritmética en la pantalla y hacer que la computadora la calcule.
Por ejemplo: 
5+7=12
Además, en lugar de 5 y 7, puede haber números diferentes, dependiendo de los valores de las variables a y b en el programa.

En la declaración de salida, puede mostrar no solo texto, sino también los valores de las variables, así como el resultado de una expresión aritmética. Además, la secuencia de salida puede ser diferente. Por ejemplo, para mostrar la expresión anterior, debe escribirla así: Consola.WriteLine(a + "+" + b + "=" + (a+b)); Si queremos mostrar el valor de una variable, solo necesitamos especificar su nombre sin comillas. Si queremos mostrar el resultado de una expresión aritmética, basta con escribir la expresión aritmética correctamente. Tenga en cuenta: 
Las variables y el texto se separan entre sí mediante el operador "+", mientras que el texto se escribe entre comillas y las variables sin ellas.
 

Ingresar declaración
Para que el usuario pueda establecer él mismo el valor de la variable, es necesario poder introducir valores desde el teclado. 
C# tiene dos operadores de entrada de valor: Console.Read(); y Console.ReadLine();
 
Read lee solo un carácter de los valores ingresados, o -1 si no quedan más caracteres para leer. Además, el método devuelve un código de carácter entero, por lo que para obtener una variable de carácter, debe realizar una conversión mediante Convert.ToChar().
  int x = Consola.Read(); // leer código de carácter char a = Convert.ToChar(x); // convertir el código recibido en el valor de una variable de carácter  
Con ReadLine() , puede leer una secuencia de cadenas antes de ingresar una nueva línea. Como resultado, el método puede devolver una cadena o nullsi no hay más cadenas.

Por ejemplo, la entrada dice la línea: cadena de caracteres = Console.ReadLine();
Para leer un valor entero, debe leer la cadena y convertirla en un número:
  int a = int.Parse(Console.ReadLine());  
Si los números van en una línea, debe contar la línea, & nbsp; y obtenga una matriz de cadenas usando el carácter de espacio como separador. Y luego cada elemento de la matriz se convierte en un número: cadena[] números = Console.ReadLine().Split(' '); int a = int Parse(números[0]); int b = int.Parse(números[1]);

Especificadores de salida
Para generar valores reales, simplemente llame al método Console.WriteConsole.WriteLine:
  doble a = 0,9999; Consola.Escribir(a);  
Pero a veces es necesario formatear previamente la salida de valores, es conveniente hacerlo usando el método String.Format, más detalles aquí.
Salida con cierta precisión
Para formatear números fraccionarios, se usa el especificador f, el número después del cual indica cuántos caracteres habrá después del separador. doble a = 12.123; Console.WriteLine(String.Format("{0:f2}", a)); El resultado será 12,12, pero si utiliza el valor 0,9999, se producirá un redondeo descontrolado y   1,00.

Por lo tanto, se utiliza el siguiente algoritmo para descartar signos en lugar de redondear:
1) multiplica el valor original por 10, tantas veces como necesites dejando decimales;
2) usando el método   Math.Truncate, dejamos solo la parte entera;
3) divide el valor resultante entre 10, tantas veces como necesites dejando decimales.

Ejemplo de salida con precisión de dos decimales: 
doble a = 0,9999; a = a * Math.Pow(10, 2); a = Matemáticas.Truncar(a); a = a / Math.Pow(10, 2);
 
El tipo de separador al generar el resultado (punto o coma) depende de la configuración regional de la computadora, por lo que para usar siempre un punto como separador, debe cambiar la configuración regional a invariante, ejemplo resultante:
 
CultureInfo ci = new CultureInfo(""); doble a = 0,9999; a = a * Math.Pow(10, 2); a = Matemáticas.Truncar(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));