COMANDOS RAPTOR: Set Conjunto Enter an assignment Introducir una asignación Call Llamada Input Entrada Output Salida Selection Selección Loop Ciclo Assignment Asignación enter loop exit condition introducir condición de salida del bucle Count Contar score array Puntuación Middle Medio set coins monedas de ajuste set count el número del grupo set board tablero de juego Run complete Ejecutar completar exact text texto exacto COMANDOS coins number of coins monedas número de monedas Board bordo Start Inicio End Fin end current line Terminar línea actual Done hecho COMANDOS C#: Tipo de datos de enteros Tipo Equivalent e BCL Tam año byt e System.Byt e 8-bit (1byte) 0 a 255 Entero sin signo sbyt e System.SB yte 8-bit (1byte) -128 a 127 Entero con signo sho rt System.Int 16 16bit (2byte) -32.768 a 32.767 Entero corto con signo ush ort System.UIn 16bit t16 (2byte) 0 a 65.535 Entero corto sin signo int System.Int 32 -2.147.483.648 a 2.147.483.647 Entero medio con signo uint System.UIn 32bit t32 (4- 0 a 4.294.967.295 Entero medio sin 32bit (4byte) Rango Signifi cado COMANDOS byte) long System.Int 64 ulo ng 64bit (8byte) System.UIn 64bit t64 (8byte) signo 9.223.372.036.854. 775.808 a 9.223.372.036.854. 775.807 Entero largo con signo 0a 18.446.744.073.70 9.551.615 Entero largo sin signo Tipo de datos de coma flotante Tipo Equivalen Tam te BCL año Rango floa t ±1.401298E−45 a System.Si 32bit ±3.402823E+38 ngle (4byte) dou ble System.D ouble 64bit (8byte) ±4.94065645841246E −324 a ±1.79769313486232E +308 Signifi cado Coma flotant e corto Coma flotant e largo COMANDOS deci mal 128bit (16byte) System.D ecimal −7.922816251426433 7593543950335 a +7.922816251426433 7593543950335 Coma flotant e monet ario Los caracteres en C# no tienen un tamaño de 8 bits como en otros muchos lenguajes de programación, sino que usa un tamaño de 16 bits llamado Unicode al cual se le llamachar. No existen conversiones automáticas de tipo entero a char. Tipo de datos de caracteres Tip o Equivalente BCL Tama ño ch ar System.Char 16-bit (2byte) Rango Significa do '\u0000' a '\uF Carácter unicode FFF' Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a bool. Tipo de datos lógicos Tip o Equivalente BCL bo ol System.Boole an Tamaño 8-bit (1byte) Rango Significado true o fa lse Verdadero o falso COMANDOS Enteros decimal 245, [0..9]+ hexadecim al 0xF5, 0x[0..9, A..F, a..f]+ entero largo 12L entero largo sin signo 654UL Coma flotante float 23.5F, 23.5f ; 1.72E3F, 1.72E3f , 1.72e3F , 1.72e3f double 23.5, 23.5D , 23.5d, 1.72E3, 1.72E3D decimal 9.95M Caracteres char 'a' , 'Z' , '\u0231' Cadenas COMANDOS String "Hello, world"; "C:\\Windows\\", @"C:\Windows \" Secuencias de escape Alerta (timbre) \a Retroceso \b Avance de página \f Nueva línea \n Retorno de \r carro Tabulador horizontal \t Tabulador vertical \v Nulo \0 Comilla simple \' COMANDOS Comilla doble \" Barra inversa \\ Si un operando es decimal, el otro operando se transforma a decimal. Si un operando es double, el otro operando se transforma a double. Si un operando es float, el otro operando se transforma a float. Si un operando es ulong, el otro operando se transforma a ulong. Si un operando es long, el otro operando se transforma a long. Si un operando es uint, y si el otro operando es de tipo sbyte, short o int, los dos se transforman a long. Si un operando es uint, el otro operando se transforma a uint. Si no es ninguno de los casos anteriores, los dos operandos se transforman a int. COMANDOS Categoría Operadores Aritmético +-*/% Lógico y a nivel de bits ^ ! ~ && || Concatenación + Incremento, decremento ++ -Desplazamiento << >> Relacional == != < > <= >= Asignación = ^= <<= >>= Acceso a miembro . Indexación [] Conversión () Condicional ?: Creación de objeto new Información de tipo as is sizeof typeof COMANDOS Los operadores aritméticos funcionan igual que en C y C++. El resultado de los operadores relacionales y lógicos es un valor de tipo bool. Los operadores de cortocircuito evalúan el segundo operando solo cuando es necesario. Los operadores a nivel de bits no se pueden aplicar a tipos bool, float, double o decimal. COMANDOS JAVA: Una variable en Java es un identificador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable. Una variable se declara usando la misma sintaxis de C. Por ejemplo la siguiente tabla indica una declaración, el nombre de la variable introducida y el tipo de información que almacena la variable: Declaración int i; String s; int a[]; int[] b; identificador i entero s referencia a referencia enteros b referencia enteros tipo a string a arreglo de a arreglo de Java posee dos grandes categorías de tipos para las variables: Tipos Primitivos int, short, byte, long char, boolean float, double referencias a Objetos Strings Arreglos otros objetos Las variables de tipos primitivos almacenan directamente un valor que siempre pertenece al rango de ese tipo. Por ejemplo una variable int almacena un valor entero como 1, 2, 0, -1, etc. Esto significa que al asignar una variable entera a otra variable entera, se copia el valor de la primera en el espacio que ocupa la segunda variable. COMANDOS Las variables de tipo referencia a objetos en cambio almacenan direcciones y no valores directamente. Una referencia a un objeto es la dirección de un área en memoria destinada a representar ese objeto. El área de memoria se solicita con el operador new. Al asignar una variable de tipo referencia a objeto a otra variable se asigna la dirección y no el objeto referenciado por esa dirección. Esto significa que ambas variables quedan refenciando el mismo objeto. La diferencia entre ambas asignaciones se observa en la siguiente figura: Esto tiene implicancias mayores ya que si se modifica el objeto referenciado por r, entonces también se modifica el objeto referenciado por s, puesto que son el mismo objeto. En Java una variable no puede almacenar directamente un objeto, como ocurre en C y C++. COMANDOS Por lo tanto cuando se dice en Java que una variable es un string, lo que se quiere decir en realidad es que la variable es una referencia a un string. Tipos primitivos En la siguiente tabla se indica para cada tipo primitivo el número de bits que se emplea en su representación y el rango de valores que se puede almacenar en las variables de estos tipos. Tipo Bits Rango Ejemplos int 32 -2**31 .. 2**31-1 0, 1, 5, -120, ... short 16 -2**15 .. 2**15-1 0, 1, 5, -120, ... byte 8 -2**7 .. 2**7-1 long 64 -2**63 .. 2**63-1 0, 1, 5, -120, ... 0, 1, 5, -120, ... boolean 1 n/a false, true char 16 n/a 'a', 'A', '0', '*', ... float 32 IEEE 1.2 double 64 IEEE 1.2 Se dice que un tipo A es de mayor rango que un tipo B si A es un superconjunto de B. Esto quiere decir que las variales de tipo B siempre se pueden asignar a variables de tipo A (eventualmente con pérdida de significancia). Por ejemplo int es de mayor rango que short, que a su vez es de mayor rango que byte. Float y double son de mayor rango que int. Double es de mayor rango que float. COMANDOS Esto se puede resumir en: double > float > long > int > short > byte Expresiones En Java cada expresión tiene un tipo que se determina durante la compilación, es decir es independiente del valor durante la ejecución. Una expresión puede ser: Una constante: 1, 1.0, true, etc. El tipo de esta expresión es el tipo de la constante. En el ejemplo los tipos son int, double y boolean respectivamente. Una variable: i, s, a El tipo de esta expresión es el tipo con que se declaró aquella variable. En el ejemplo los tipos son entero, referencia a string y referencia a arreglo. El resultado de una operación: i+1, a[1], etc. El tipo se determina en función de los tipos de las expresiones que se indican como argumentos de la operación. Java tiene prácticamente los mismos operadores de C y C++. Cada operador acepta una, dos o tres expresiones de diversos tipos. A veces un operador no está definido para argumentos de ciertos tipos. Por ejemplo la resta entre strings no esta definida. Pero la suma de strings esta definida como la concatenación. A continuación veremos los operadores más frecuentes en Java. Operadores binarios entre expresiones numéricas COMANDOS Símbolo Operación + Suma - Resta * Multiplicación / División % Resto Los operandos y el resultado de estos operadores pueden ser: Dominio Rango int*int int long*long long float*float float double*double double Al operar con byte y short, estos se convierten implícitamente a int. Cuando los tipos de los operandos no coinciden, el operando de menor rango se convierte implícitamente al tipo de mayor rango. El resultado de la operación es del tipo de mayor rango. Ejemplos: int a=1, b=2; int c= a + b; short s= 1; int d= s + c; // s se convierte a int COMANDOS float f= 1.0 + a; // a se convierte a float Operadores unarios sobre expresiones numéricas Símbolo Operación Argumento + exp nada int | long | float | double - exp cambio de signo int | long | float | double El resultado de estas operaciones es siempre del mismo tipo del operando. Si el operando es byte o short entonces se convierte a int, se realiza la operación y el resultado es un int. Operadores sobre variables enteras Símbolo Operación Argumento ++ var preincremento int | short | byte | long -- var predecremento int | short | byte | long var ++ postincremento int | short | byte | long var -- postdecremento int | short | byte | long El resultado de estas operaciones es siempre del mismo tipo del operando. Ejemplos: int a=1, b=2; int c= +a; int d= -(c+1); COMANDOS b= a++; // b= 1, a=2 a= --b; // a=b= 0 (a+1)++; // error a+1 no es una variable float f= a; f++; // error f no es entero Operadores binarios relacionales Símbolo Operación > mayor < menor >= mayor igual <= menor igual == igual != distinto Los operandos y el resultado de estos operadores pueden ser: Dominio Rango int*int boolean long*long boolean float*float boolean double*double boolean Operadores entre valores booleanos COMANDOS Operación Significado exp && exp y-lógico exp || exp o-lógico ! exp negación Los operandos y el resultado de estos operadores son siempre booleanos. Los operadores && y || evalúan la expresión del lado derecho sólo si es necesario. Ejemplos: