Sistemas

Solo disponible en BuenasTareas
  • Páginas : 6 (1368 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de mayo de 2011
Leer documento completo
Vista previa del texto
5.8. El orden no importa
En algunos lenguajes, una función debe estar declarada antes de usarse. Esto no es necesario en C#. Por ejemplo, podríamos rescribir el fuente anterior, de modo que "Main" aparezca en primer lugar y "duplica" aparezca después, y seguiría compilando y funcionando igual:
/*---------------------------*/
/* Ejemplo en C# nº 55: */
/* ejemplo55.cs */
/**/
/* Función tras Main */
/* */
/* Introduccion a C#, */
/* Nacho Cabanes */
/*---------------------------*/

using System;

public class Ejemplo55
{

public static void Main()
{
int n = 5;
Console.WriteLine("n vale {0}", n);
duplica(ref n);
Console.WriteLine("Ahora n vale {0}",n);
}

public static void duplica(ref int x) {
Console.WriteLine(" El valor recibido vale {0}", x);
x = x * 2;
Console.WriteLine(" y ahora vale {0}", x);
}

}

5.9. Algunas funciones útiles
5.9.1. Números aleatorios
En un programa de gestión o una utilidad que nos ayuda a administrar un sistema, no es habitual que podamos permitir que las cosas ocurran al azar.Pero los juegos se encuentran muchas veces entre los ejercicios de programación más completos, y para un juego sí suele ser conveniente que haya algo de azar, para que una partida no sea exactamente igual a la anterior.
Generar números al azar ("números aleatorios") usando C# no es difícil: debemos crear un objeto de tipo "Random", y luego llamaremos a "Next" para obtener valores entre dosextremos:

// Creamos un objeto random
Random r = new Random();

// Generamos un número entre dos valores dados
int aleatorio = r.Next(1, 100);

Podemos hacer que sea realmente un poco más aleatorio si en la primera orden le indicamos que tome como semilla el instante actual:

Random r = new Random(DateTime.Now.Millisecond);

De hecho, una forma muy simple de obtener un número "casi alazar" entre 0 y 999 es tomar las milésimas de segundo de la hora actual:

int falsoAleatorio = DateTime.Now.Millisecond;

Vamos a ver un ejemplo, que muestre en pantalla un número al azar entre 1 y 10:
/*---------------------------*/
/* Ejemplo en C# nº 56: */
/* ejemplo56.cs */
/* */
/* Números al azar */
/**/
/* Introduccion a C#, */
/* Nacho Cabanes */
/*---------------------------*/

using System;

public class Ejemplo56
{

public static void Main()
{

Random r = new Random(DateTime.Now.Millisecond);
int aleatorio = r.Next(1, 10);
Console.WriteLine("Un número entre 1 y 10: {0}",
aleatorio);
}

}

Ejercicios propuestos:Crear un programa que genere un número al azar entre 1 y 100. El usuario tendrá 6 oportunidades para acertarlo.
Mejorar el programa del ahorcado propuesto en el apartado 4.4.8, para que la palabra a adivinar no sea tecleado por un segundo usuario, sino que se escoja al azar de un "array" de palabras prefijadas (por ejemplo, nombres de ciudades).
5.9.2. Funciones matemáticas
En C# tenemos muchasfunciones matemáticas predefinidas, como:
Abs(x): Valor absoluto
Acos(x): Arco coseno
Asin(x): Arco seno
Atan(x): Arco tangente
Atan2(y,x): Arco tangente de y/x (por si x o y son 0)
Ceiling(x): El valor entero superior a x y más cercano a él
Cos(x): Coseno
Cosh(x): Coseno hiperbólico
Exp(x): Exponencial de x (e elevado a x)
Floor(x): El mayor valor entero que es menor que xLog(x): Logaritmo natural (o neperiano, en base "e")
Log10(x): Logaritmo en base 10
Pow(x,y): x elevado a y
Round(x, cifras): Redondea un número
Sin(x): Seno
Sinh(x): Seno hiperbólico
Sqrt(x): Raíz cuadrada
Tan(x): Tangente
Tanh(x): Tangente hiperbólica
(casi todos ellos usan parámetros X e Y de tipo "double")
y una serie de constantes como
E, el número "e", con un valor de...
tracking img