jueves, 3 de octubre de 2019

Ejercicio 2

//Capturar un numero y nosotros vamos a imprimir los siguientes 2 numeros pero al cuadrado
#include<iostream>
#include<stdio.h>
using namespace std;
int n1,j,r;
int main (){
cout<<"dijite un numero entero"<<endl;
cin>>n1;
for(j=n1+1;j<=n1+10;j++){
r=j*j;
cout<<r<<" ";
}
}

Ejercicio 1

#include<iostream>
#include<stdio.h>
using namespace std;
int n1,n2,j;
int main(){
cout<<"DIJITE EL PRIMER NUMERO:"<<endl;
cin>>n1;
cout<<"DIJITE EL SEGUNDO NUMERO:"<<endl;
cin>>n2;
for(j=n1+1;j<=n2-1;j++){
cout<<j;
}
}

martes, 1 de octubre de 2019

ALLEGRO

ALLEGRO

Allegro (pronunciado alegro) es una biblioteca libre y de código abierto para la programación de videojuegos desarrollada en lenguaje C. Allegro es un acrónimo de «Atari Low Level Game Routines» (rutinas de bajo nivel para videojuegos).

La biblioteca cuenta con funciones para gráficos, manipulación de imágenes, texto, sonidos, dispositivos de entrada (teclado, ratón y mandos de juego) y temporizadores, así como rutinas para aritmética de punto fijo y acceso al sistema de archivos. Hasta agosto de 2011, hay 2 versiones de Allegro que cuentan con soporte oficial por parte de los desarrolladores, la versión clásica (Allegro 4) y la nueva versión (Allegro 5). La versión más reciente de Allegro 4 incluye soporte para el manejo de archivos de datos y una implementación por software de funciones para gráficos en 3D. La versión 5 de Allegro cuenta con una nueva API y cambia la implementación por software de las rutinas gráficas por una implementación basada en OpenGL o Direct3D.

Aunque Allegro ofrece una API en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarlo en otros lenguajes como C++, Java, C#, Visual Basic.NET, Python, D, Lua, Pascal, Perl, Ruby, Go, Scheme, Common Lisp, Ocaml, Forth y Mercury.

Instrucción
Propósito
Ejemplo
install_allegro
Inicializa Allegro. Debe llamar a esta función o a allegro_init() antes de hacer
otra cosa
int install_allegro(int system_id, int *errno_ptr, int (*atexit_ptr)());
allegro_init
Esta función es equivalente a la llamada install_allegro(SYSTEM_AUTODETECT, &errno, atexit).
int allegro_init();
allegro_exit
Cierra el sistema Allegro
void allegro_exit();
allegro_id
Cadena de texto que contiene la fecha y número de versión de Allegro, en caso de que quiera enseñar estos datos en alguna parte.
extern char allegro_id[];
allegro_error
Cadena de texto usada por set_gfx_mode() e install_sound() para indicar
mensajes de error. Si éstas funciones fallan y quiere decirle al usuario porqué,
éste es el lugar en el que se encuentra una descripción del problema.
extern char allegro_error[ALLEGRO_ERROR_SIZE];
os_type
Variable ajustada por allegro_init() a uno de los siguientes valores:
·         OSTYPE_UNKNOWN - desconocido, o MSDOS normal
·         OSTYPE_WIN3 - Windows 3.1 o versiones anteriores
·         OSTYPE_WIN95 - Windows 95
·         OSTYPE_WIN98 - Windows 98 OSTYPE_WINME – Windows ME OSTYPE_WINNT - Windows NT
·         OSTYPE_WIN2000 - Windows 2000 OSTYPE_WINXP - Windows XP OSTYPE_OS2 - OS/2 OSTYPE_WARP –
·         OS/2 Warp 3 OSTYPE_DOSEMU - Linux DOSEMU
·         OSTYPE_OPENDOS - Caldera OpenDOS
·         OSTYPE_LINUX - Linux OSTYPE_FREEBSD - FreeBSD
·         OSTYPE_UNIX - variante Unix desconocida
·         OSTYPE_BEOS - BeOS OSTYPE_QNX – QNX
·         OSTYPE_MACOS - MacOS
extern int os_type;
os_version
La versión mayor y menor del Sistema Operativo usado. Ajustado por allegro_init(). Si Allegro por alguna razón no es capaz de obtener la versión de su Sistema Operativo, os_version y os_revision valdrán -1. Por ejemplo: bajo Win98 SE (v4.10.2222) os_version valdrá 4 y os_revision valdrá 10.
extern int os_version;
extern int os_revision;
os_multitasking
Ajustado por allegro_init() a TRUE o FALSE dependiendo de si su Sistema Operativo es multitarea o nó.
extern int os_multitasking;
allegro_message
Muestra un mensaje usando una cadena con formato printf(). Esta función sólo debe ser utilizada cuando no esté en un modo gráfico, es decir, antes de llamar a set_gfx_mode() o después de llamar a set_gfx_mode(GFX_TEXT).
void allegro_message(char *msg, ...);
set_window_title
En las plataformas que sean capaces de ello, esta rutina cambia el título de la ventana utilizada para su programa. Tenga en cuenta que Allegro no es capaz de modificar el título de la ventana cuando ejecute una ventana DOS en Windows.
void set_window_title(const char *name);
set_window_close_button
En las plataformas que sean capaces de ello, esta rutina activa o desactiva el botón de cerrar ventana de su programa Allegro. Si lo desea, puede llamar esta rutina antes de que la ventana sea creada. Si el botón de cerrar ventana es desactivado con éxito, esta función devolverá cero.
int set_window_close_button(int enable);
set_window_close_hook
En las plataformas que tengan botón de cierre, esta rutina instala una función de enganche en el evento de cierre. En otras palabras, cuando el usuario pinche en el botón que cerraría la ventana de su programa, se llamará a la función que especifique aquí. Puede usar esta función para mostrar un diálogo ofreciendo salvar los datos o verificar que el usuario realmente desea salir, o puede usarla para salvar los datos, liberar memoria y salir.
void set_window_close_hook(void (*proc)());
desktop_color_depth
En plataformas que pueden ejecutar programas de Allegro en una ventana de un escritorio existente, devuelve la profundidad de color usada por el escritorio en ese momento (su programa posiblemente correrá más si usa la misma profundidad de color. En plataformas donde esta información no es disponible o no tiene sentido, devuelve cero.
int desktop_color_depth();
get_desktop_resolution
En plataformas que pueden ejecutar programas de Allegro en una ventana de un escritorio existente, permite obtener la resolución actual usada por el escritorio (ej: le itneresará llamar a esta función antes de crear una gran ventana, porque en algunos drivers de modo ventana, ésta no puede ser creada si es mayor que el escritorio). Devuelve cero si hubo éxito, o un número negativo si la información no está disponible o no es aplicable a su situación, en cuyo caso los valores almacenados en width y heigth serán indefinidos.
int get_desktop_resolution(int *width, int *height);
yield_timeslice
En los sistemas que lo soportan, libera el resto de la "rebanada temporal" (timeslice) que la CPU le había asignado.
void yield_timeslice();
check_cpu
Detecta el tipo de CPU, asignando valores a las siguientes variables globales. Normalmente no necesita llamar a esta función, ya que allegro_init() lo hará por usted.
void check_cpu();
cpu_vendor
Contiene el nombre del proveedor de la CPU si éste es conocido. En
plataformas no-Intel, contiene una cadena vacía.
extern char cpu_vendor[];
cpu_family
Contiene el tipo de CPU Intel, en las CPUs donde sea aplicable: 3=386, 4=486, 5=Pentium, 6=PPro, etc.
extern int cpu_family;
cpu_model
Contiene el submodelo de una CPU Intel, en las CPUs donde sea aplicable. En un 486 (cpu_family=4), cero o uno indica un chip DX, 2 un SX, 3 indica la presencia de un coprocesador matemático (486 SX + 487 ó 486 DX), 4 un SL, 5 un SX2, 7 un DX2 write-back enhanced, 8 un DX4 o un overdrive DX4, 14 un Cyrix y 15 desconocido. En un chip Pentium (cpu_family=5), 1 indica un Pentium (510\66, 567\66), 2 un Pentium P54C, 3 un procesador Pentium overdrive, 5 un Pentium overdrive para IntelDX4, 14 un Cyrix y 15 desconocido.
extern int cpu_model;
cpu_capabilities
Contiene bits de la CPU que indican qué características están disponibles. Los bits pueden ser una combinación de:
·         CPU_ID - Indica que la instrucción "cpuid" está disponible. Si este bit está activo, entonces todas las variables CPU de Allegro son fiables al 100%, en caso contrario podría haber fallos.
·         CPU_FPU -Hay disponible una FPU x87. CPU_MMX -Conjunto de instrucciones Intel MMX disponible.
·         CPU_MMXPLUS -Conjunto de instrucciones Intel MMX+ disponible.
·         CPU_SSE -Conjunto de instrucciones Intel SSE disponible. CPU_SSE2 -Conjunto de instrucciones Intel SSE2 disponible. CPU_3DNOW -Conjunto de instrucciones AMD 3DNow! disponible.
·         CPU_ENH3DNOW -Conjunto de instrucciones AMD Enhanced 3DNow! disponible.
·         CPU_CMOV -Instrucción "cmov" del Pentium Pro disponible

set_uformat
Establece el formato de codificación de texto a utilizar. Esta operación afectará a todos las funciónes de Allegro que devuelvan un puntero a carácter (char *) o acepten un puntero a carácter como parámetro.
El parámetro type debe ser uno de los siguientes:
·         U_ASCII -carácteres ASCII de 8 bits de tamaño fijo
·         U_ASCII_CP -página de códigos alternativa de 8 bits (ver set_ucodepage())
·         U_UNICODE -carácteres Unicode de 16 bits de tamaño fijo
·         U_UTF8 -carácteres Unicode UTF-8 de tamaño variable

get_uformat
Devuelve el formato de codificación de texto actualmente seleccionado.
int get_uformat(void);
register_uformat
Instala un conjunto de funciones para el manejo de un nuevo formato de codificación de carácteres. El parámetro type identifica el nuevo formato, que debería ser una cadena de 4 carácteres como las producidas por la macro AL_ID().
void register_uformat(int type, int (*u_getc)(const char *s), int (*u_getx)(char **s), int (*u_setc)(char *s, int c), int (*u_width)(const char *s), int (*u_cwidth)(int c), int (*u_isok)(int c));
set_ucodepage
Cuando se selecciona el modo U_ASCII_CP, los carácteres de 8 bits son convertidos a sus equivalentes en Unicode a través de un conjunto de tablas. Se puede usar esta función para especificar un conjunto de tablas personalizadas que permitan la utilización de páginas de códigos de 8 bits alternativas.
void set_ucodepage(const unsigned short *table, const unsigned short *extras);
need_uconvert
Dado un puntero a una cadena, el tipo de la cadena y el tipo al que se desea convertir, esta función indica si dicha conversión es necesaria.
int need_uconvert(const char *s, int type, int newtype);
uconvert_size
Devuelve el número de bytes que serán necesarios para almacenar la cadena especificada tras una conversión al nuevo tipo, incluyendo el carácter terminador nulo. Los parámetros type pueden usar el valor U_CURRENT para indicar el tipo actualmente seleccionado.
int uconvert_size(const char *s, int type, int newtype);
do_uconvert
Convierte la cadena especificada del tipo type al tipo newtype, guardando como mucho size bytes en el buffer buf. Los parámetros type pueden utilizar el valor U_CURRENT para indicar el tipo actualmente seleccionado.
void do_uconvert(const char *s, int type, char *buf, int newtype, int size);
uconvert
Esta es una función de alto nivel que sirve como ayuda para ejecutar do_uconvert(). Al igual que do_uconvert(), convierta la cadena especificada del tipo type al tipo newtype, guardando como mucho size bytes en el buffer buf.
char *uconvert(const char *s, int type, char *buf, int newtype, int size);
uconvert_ascii
Macro auxiliar para convertir cadenas desde ASCII al formato actual de codificación. Se expande a uconvert(s, U_ASCII, buf, U_CURRENT, sizeof(buf)).
char *uconvert_ascii(const char *s, char buf[]);
uconvert_toascii
Macro auxiliar para convertir cadenas desde el formato actual de codificación a ASCII. Se expande a uconvert(s, U_CURRENT, buf, U_ASCII, sizeof(buf)).
char *uconvert_toascii(const char *s, char buf[]);
empty_string
No se puede fiar de que "" sea una cadena vacía válida en todos los formatos de codificación. Este búffer global contiene un número de ceros consecutivos, así que siempre será una cadena vacía válida, sin tener importancia si el programa se está ejecutando en modo ASCII, Unicode o UTF-8.
extern char empty_string[];



ugetc
Función auxiliar de bajo nivel para leer datos de texto en Unicode. Dado un puntero a una cadena en el formato de codificación actual devuelve el siguiente caracter de la cadena.
int ugetc(const char *s);
ugetx
Función auxiliar de bajo nivel para leer datos de texto en Unicode. Dada la dirección de un puntero a un string en el formato de codificación actual devuelve el siguiente caracter de la cadena y avanza el puntero al siguiente caracter.
int ugetx(char **s); int ugetxc(const char **s);

usetc
Función auxiliar de bajo nivel para escribir datos de texto en Unicode. Escribe el caracter especificado en la dirección dada usando el formato de codificación actual y devuelve el número de bytes escritos.
int usetc(char *s, int c);
uwidth
Función auxiliar de bajo nivel para comprobar datos de texto en Unicode. Devuelve el número de bytes ocupados por el primer caracter de la cadena especificada en el formato de codificación actual.
int uwidth(const char *s);

ucwidth
Función auxiliar de bajo nivel para comprobar datos de texto en Unicode. Devuelve el número de bytes que ocuparía el caracter especificado en caso de codificarse en el formato actual.
int ucwidth(int c);
uisok
Función auxiliar de bajo nivel para comprobar datos de texto en Unicode. Comprueba que el valor especificado puede ser codificado correctamente en en el formato actual
int uisok(int c);
uoffset
Devuelve el desplazamiento en bytes desde el comienzo de la cadena hasta el caracter correspondiente al índice especificado. Si el índice es negativo, cuenta hacía atrás desde el final de la cadena, así que un índice de -1 devolverá un desplazamiento al último caracter.
int uoffset(const char *s, int index);
ugetat
Devuelve el valor del caracter de la cadena correspondiente al índice especificado. Un parámetro indice igual a 0 devolverá el primer caracter de la cadena. Si el índice es negativo, cuenta hacia atrás desde el final de la cadena. Así pues un índice de -1 devolverá el ultimo caracter de la cadena.
int ugetat(const char *s, int index);
usetat
Reemplaza el caracter del string con el índice especificado por el valor c, haciendo los ajustes necesarios debido a la anchura de la variable (ej: si c se codifica con una anchura diferente que el valor que había antes en esa posición). Devuelve el número de bytes que ha sido desplazada la parte derecha de la cadena. Si el índice es negativo cuenta hacia atrás desde el final de la cadena.
int usetat(char *s, int index, int c);
uinsert
Inserta el caracter c en la posición de la cadena especificada por index, desplazando el resto de los datos para hacer sitio. Devuelve el número de bytes que ha desplazado la parte derecha. Si el índice es negativo cuenta hacia atras desde el final de la cadena.
int uinsert(char *s, int index, int c);
uremove
Borra el caracter que hay en la posición index de la cadena, desplazando el resto de los datos para llenar la posición vacía. Devuelve el número de bytes que se ha tenido que desplazar la parte derecha de la cadena, si index es negativo empieza a contar desde el final de la cadena
int uremove(char *s, int index);
ustrsize
Devuelve el tamaño de la cadena especificada en bytes, sin incluir el caracter nulo finalizador de cadena.
int ustrsize(const char *s);
ustrsizez
Devuelve el tamaño de la cadena especificada en bytes, incluyendo el caracter nulo finalizador de cadena.
int ustrsizez(const char *s);
uwidth_max
Rutinas ayudantes de bajo nivel para trabajar con texto Unicode. Devuelven el mayor número de bytes que un carácter puede ocupar en el formato de codificación especificado. Pase U_CURRENT para indicar el formato de codificación actual.
int uwidth_max(int type);
utolower
Esta función devuelve c, convirtiéndola a minúsculas si estaba en mayúsculas.
int utolower(int c);
utoupper
Esta función devuelve c, convirtiéndola a mayúsculas si estaba en minúsculas.
int utoupper(int c);
uisspace
Devuelve distinto de cero si c es carácter de espaciado, es decir, un retorno de carro, una nueva línea, página, un tabulador, un tabulador vertical o un espacio.
int uisspace(int c);

uisdigit
Devuelve distinto de cero si c es un dígito.
int uisdigit(int c);

Numeros Aleatorios

Números Aleatorio  

Un número aleatorio es un resultado de una combinación variable al azar especificada por una función de distribución. Cuando no se especifica ninguna distribución, se presupone que se utiliza la distribución uniforme continua en el intervalo [0,1). En los ordenadores personales es fácil simular la generación de números aleatorios, mediante mecanismos de generación de números seudoaleatorios, que, sin ser aleatorios (siguen una fórmula), lo aparentan. (Ran#) Los números seudo-aleatorios aparentan ser aleatorios porque solo puede medirse la equiprobabilidad de un número aleatorio, mientras que su impredecibilidad es inmensurable.



CÓDIGO


#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
int num, n;
cout<<"Escoge numero"<<endl;
cin>> num;
n=rand()%6+1;
cout<<"El numero es "<<n<<endl;
system("PAUSE");
return EXIT_SUCCESS;

}

Cadenas

#include<stdlib.h> #include<stdio.h> #include<iostream> #include<string.h> using namespace std; char nom[...