Guardado en: TeorÃa el 25 de noviembre del 2009
Etiquetas: rand
Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso.
Asà que lo primero que tenemos que hacer es incluir la librerÃa:
#include<stdlib.h>
Luego inicializar los números aleatorios incluyendo esto:
srand(time(NULL));
*Actualización: No se porqué con algunos IDE’s tira error con la función time. Solo hay que utilizar además la librerÃa time.h:
#include<time.h>
Luego guardar el número aleatorio en alguna parte:
num=rand();
Eso es básicamente. Para ajustar el rango de número aleatorios podemos hacer varias cosas.
Número aleatorios entre 0 y 50:
num=rand()%51;
Número aleatorios entre 1 y 100:
num=1+rand()%(101-1);
Número aleatorios entre 250 y 420:
num=250+rand()%(421-250);
De forma general es:
variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;
Asà que un programa que muestre 10 números aleatorios entre 1 y 10 quedarÃa asÃ:
#include<stdlib.h>
#include<iostream>
using namespace std;
int main()
{
int num,c;
srand(time(NULL));
for(c=1;c<=10;c++)
{
num=1+rand()%(11-1);
cout<<num<<" ";
}
cin.get();
}
La librerÃa <conio.h>, es propiedad de Borland y sólo sus compiladores pueden usarla. Por lo tanto significa que conio.h, no es una librerÃa estandar.
La librerÃa conio se utiliza más que nada por sus comandos: getch(), clrscr(), gotoxy(), textcolor(), y textbackground(), los cuales usamos para darle mejor presentación a nuestros programas. Pero pensandolo bien, ¿en verdad necesitamos que los programas en consola se vean bien? La verdad es que no, lo que importa es que funcionen.
Aún asÃ, algunas funciones de la librerÃa conio.h se pueden sustituir con funciones estándares, por ejemplo.
- Para sustituir getch(), solo necesitamos: cin.get(); la cual está en <stdio.h>. Si no funciona entonces tendremos que ponerla dos veces: cin.get();cin.get();, la cuestión es algo complicada de explicar.
- Para sustituir clrscr(), solo necesitamos escribir system(“cls”); la cual está en <iostream> (es sin .h, se definirÃa asÃ: #include<iostream>).
- Gotoxy() es algo vanal, y además se puede sustituir usando \n (espacio hacia abajo) y \t (espacio hacia la derecha) dentro de un printf();
- Y la verdad es que cualquiera te agradecerá que no le pongas fondo rosa y letras amarillas a tus programas.
Goto significa ir a y en c++ nos sirve para que mandar al compilador a alguna parte arbitrariamente, es decir nada más porque sÃ. No se suele usar mucho pero nos puede sacar de algunos apuros.
Su uso es más o menos asÃ:
codigo codigo
LUGAR: codigo
mas codigo
codigo
goto LUGAR;
codigo
Primero tenemos que definir un marcador, en este caso yo usé LUGAR (recuerden que ‘LUGAR’ no es lo mismo que ‘lugar’) e inmediatamente después poner dos puntos (:). Cuando sea necesario escribiremos goto seguido de nuestro identificador y punto y como (;).
¿Para qué nos podrÃa servir? Pues en el siguiente post veremos un programa que usa goto.
Gotoxy significa go to (x, y), es decir ir a (x, y), donde (x, y) es una coordenada de nuestra pantalla. Se suele usar antes de un printf, para poner el texto en una cierta parte de la pantalla.
La pantalla de C++, tiene 24 renglones y 80 columnas, por lo que los valores que le pongamos a nuestro gotoxy no deberán pasar de esos valores. 
¿Cómo usar gotoxy()?
Su sintáxis es la siguiente:
gotoxy ( columna , renglón ) ;
AsÃ, si queremos que un mensaje salga en la parte inferior de la pantalla, nuestro programa serÃa el siguiente:
#include<stdio.h>
#include<conio.h>
int main() {
gotoxy(5,24);printf("Hola mundo");
getch();
}
¡Qué fácil! ¿no?