Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2019
INGENIERÍA EN
DESARROLLO DE
SOFTWARE.
PROGRAMACIÓN .NET I
5º. SEMESTRE
Instrucciones
Los tipos de datos y operadores son importantes en la tecnología de .NET porque
constituyen las herramientas básicas para la declaración de las variables que
utilizarás en tu programa así como para implementar las diversas operaciones
aritméticas, lógicas y relacionales que te permitirán obtener un resultado y validar
condiciones para la ejecución de una determinada tarea.
Analizarás también los mecanismos para la conversión entre los diversos tipos de
datos, su sintaxis y restricciones, para ello, espera las instrucciones de tu docente
en línea, una vez que cuentes con ellas, sigue estos pasos:
C# proporciona todos los tipos de datos que están disponibles en Java y agrega
compatibilidad para los números sin signo y un nuevo tipo de punto flotante de 128
bits de alta precisión.
Para cada tipo de datos primitivo en Java, la biblioteca de clases principal
proporciona una clase contenedora, que lo representa como un objeto de Java.
Por ejemplo, la clase Int32 contiene el tipo de datos int y la clase Double contiene
el tipo de datos double.
Por otro lado, todos los tipos de datos primitivos en C# son objetos en el espacio
de nombres System. Para cada tipo de datos, se proporciona un nombre corto o
alias. Por ejemplo, int es el nombre corto correspondiente
a System.Int32 y double es la forma abreviada de System.Double.
En la tabla siguiente se proporciona la lista de tipos de datos de C# y sus alias.
Como puede ver, los primeros ocho de estos tipos corresponden a los tipos
primitivos disponibles en Java. Sin embargo, tenga en cuenta que el
tipo boolean de Java se denomina bool en C#.
Nombre Clase
Tipo Ancho Intervalo (bits)
corto .NET
byte Byte Entero sin signo 8 0 a 255
sbyte SByte Entero con signo 8 -128 a 127
-2.147.483.648 a
int Int32 Entero con signo 32
2.147.483.647
uint UInt32 Entero sin signo 32 0 a 4294967295
short Int16 Entero con signo 16 -32.768 a 32.767
ushort UInt16 Entero sin signo 16 0 a 65535
-922337203685477508 a
long Int64 Entero con signo 64
922337203685477507
0a
ulong UInt64 Entero sin signo 64
18446744073709551615
Tipo de punto flotante -3,402823e38 a
float Single
de precisión simple
32
3,402823e38
Tipo de punto flotante -1,79769313486232e308 a
double Double
de precisión doble
64
1,79769313486232e308
Símbolos Unicode
char Char Un carácter Unicode 16
utilizados en el texto
bool Boolean Tipo Boolean lógico 8 True o false
Tipo base de todos los
object Object
otros tipos
Una secuencia de
string String
caracteres
Tipo preciso fraccionario
o integral, que puede
±1.0 × 10e−28 a
decimal Decimal representar números 128
±7.9 × 10e28
decimales con 29
dígitos significativos
En este caso el operador es el signo mas ( + ) que indica que se debe hacer una
suma o un incremento de dos valores dados. Los operadores
en programación están en categorías dependiendo de su funcionalidad, los
primeros son los operadores aritméticos que a su vez se dividen en binarios y
unarios, los operadores relacionales y los operadores Lógicos.
OPERADORES ARITMÉTICOS
BINARIOS
DEFINICION FUNCIONALIDAD CARACTERISTICAS
Representa la suma de
+ dos o más valores o
variables.
Representa la resta de
Binarios: los operadores
- dos o más valores o
binarios indican
variables.
operaciones sencillas de
Representa la
incremento (suma
* multiplicación de dos o
o multiplicación ) y
más valores o variables
decremento
Representa la división de
(resta, división y modulo),
/ dos o más valores o
estos son los operadores
variables.
binarios:
Representa el modulo
(obtención del residuo de
% una división) de dos o
más valores o variables.
UNUARIOS
DEFINICION FUNCIONALIDAD CARACTERISTICAS
Unarios: los operadores Incrementa el valor de
unarios representan ++ una variable en una
operaciones simplificadas unidad.
de incremento Decrementa el valor de
decremento y -- una variable en una
modificación de signos, unidad.
estos son los operadores Cambia el signo de una
unarios: - variable, es como
multiplicar por -1.
EJEMPLOS
3+3=6
10 - 5 = 5
5 * 5 = 25
8/2=4
8 % 2 = 0 (cero es el residuo de la división 8/2)
c=4;
c++; //c=5 (c inicia siendo igual a 4, después del incremento [c++], c vale 5)
d=10;
d--; //d=9 se le resto 1
e = -(4) // e = -4
f = -(-6) // f = 6 (por regla de signos menos por menos igual a mas)
En conclusión los operadores unarios, simplifican el proceso de modificación de
valores ya que al escribir c++ se hace lo mismo que c=c+1.
OPERADORES RELACIONALES
OPERADORES LÓGICOS
Dim k As Integer
Dim q As Double
' Integer widens to Double, so you can do this with Option Strict
On.
k = 432
q = k
Una conversión explícita usa una palabra clave de conversión de tipos. Visual
Basic proporciona varias palabras clave de este tipo, que convierten una expresión
entre paréntesis en el tipo de datos deseado. Estas palabras clave actúan como
funciones, pero el compilador genera el código en la misma línea, de modo que la
ejecución es un poco más rápida que con una llamada de función.
En esta extensión del ejemplo anterior, la palabra clave CInt convierte el valor
de q de nuevo en un entero antes de asignarlo a k.
ULong (Tipo de Cualquier tipo numérico (incluidos Byte, SByte y los tipos
CULng
datos, Visual Basic) enumerados), Boolean, String,Object
UShort (Tipo de Cualquier tipo numérico (incluidos Byte, SByte y los tipos
CUShort
datos, Visual Basic) enumerados), Boolean, String,Object
La función CType
Tipos básicos
El siguiente ejemplo muestra el uso de CType.
k = CType(q, Integer)
' The following statement coerces w to the specific object class
Label.
f = CType(w, Label)
Tipos compuestos
Puede utilizar CType para convertir valores en tipos de datos compuestos así
como en tipos básicos. También puede utilizarlo para convertir una clase de
objeto en el tipo de una de sus interfaces, como en el ejemplo siguiente.
Tipos de matriz
CType también puede convertir tipos de datos de matrices, como en el ejemplo
siguiente.
Variable
Una variable representa un valor numérico o de cadena o un objeto de una clase.
El valor que la variable almacena puede cambiar, pero el nombre sigue siendo el
mismo. Una variable es un tipo de campo. El código siguiente es un ejemplo
sencillo de cómo declarar una variable de entero, asignarle un valor y, a
continuación, asignarle un nuevo valor.
C#
int x = 1; // x holds the value 1
x = 2; // now x holds the value 2
En C#, las variables se declaran con un tipo de datos y una etiqueta concretos. Si
hasta ahora sólo ha utilizado lenguajes con tipos definidos de forma imprecisa
como JScript, estará acostumbrado a emplear el mismo tipo "var" para todas las
variables, pero en C# tiene que especificar si la variable es de
tipo int, float, byte, short u otro cualquiera entre más de 20 tipos de datos
diferentes. El tipo específica, entre otras cosas, la cantidad de memoria exacta
que se debe asignar para almacenar el valor cuando la aplicación se ejecuta. El
lenguaje C# fuerza ciertas reglas al convertir una variable de un tipo en otro. Para
obtener más información, vea Tipos de datos integrados (Visual C# Express).
C#
int answer = 42;
string greeting = "Hello, World!";
double bigNumber = 1e100;
Constantes
Una constante es otro tipo de campo. Contiene un valor que se asigna cuando se
compila el programa y nunca cambia después. Las constantes se declaran con la
palabra clave const; son útiles para que el código sea más legible.
C#
const int speedLimit = 55;
const double pi = 3.14159265358979323846264338327950;
Una variable readonly es como una constante pero su valor se asigna al iniciar el
programa. Esto le permite establecer el valor basándose en alguna otra condición
que no conoce hasta que se ejecuta el programa. Pero después de esa primera
asignación, el valor no puede cambiar de nuevo mientras el programa se está
ejecutando.
Enteros
Los tipos que sirven para almacenar números enteros son: byte, sbyte. short,
ushort, int, uint, long y ulong. Como se aprecia en la tabla, C# define versiones con
y sin signo para tipos con los mismos bytes utilizados. Cada tipo se distingue por
la capacidad de almacenaje.
Existen tres clases de tipos de punto flotante : float, double y decimal. De los dos,
el más usado es double, púes es el valor que devuelven la mayoría de las
funciones matemáticas de la librería base.
class Flotante{
public static void Main()
{
int a = 2;
double log2 = Math.Log(a);
double raiz2 = Math.Sqrt(a);
Console.WriteLine("El logaritmo de dos es {0}", log2 );
Console.WriteLine("La raiz de dos es {0}", raiz2 );
}
}
si intentamos cambiar el tipo de log2 a otro de menos precisión, como float o int, el
compilador protestará. Esto se debe, como hemos dicho a que el valor devuelto
por Math.Log() es de tipo double y si se quiere convertir a float, pués se perderán
datos. Lo mismo ocurre con la mayoría de los miembros de la clase Math, como
Math.Sin(), Math.Tan(), etc.
El tipo decimal
El tipo decimal es un tipo "nuevo" en el sentido de que no tiene equivalente en
C/C++. Es muy parecido a los tipo de coma flotante float y double.
El tipo bool
El tipo bool sirve para expresar los valores verdadero/falso, que en C# se
muestran con las palabras reservadas true y false.
En C#, por ejemplo, una instrucción de condición solo puede estar gobernada por
un valor bool, no como en C/C++, que lo puede estar también por un entero. De
esta forma se ayuda a eliminar el error tan frecuente en programadores de C/C++
cuando usa "=" en lugar de "==". En definitiva, la inclusión del tipo bool en el
lenguaje ayuda a la claridad del código y evita algunos errores muy comunes.
b es True
esto saldrá
2==2 es True
El tipo char
El tipo char permite almacenar un carácter en formato simple, unicode de 16 bits o
caracteres de escape. Usando el formato unicode nos garantiza que los acentos
se ven de forma adecuada y además permite la representación de otros alfabetos,
como el japonés, griego, cirílico, etc. Para introducir un carácter se utilizan
comillas simples, de forma que declarar un carácter sigue la estructura
\' apostrofe
\" Comillas
\\ Backslash
\0 Null (nulo)
\a Alerta
\b Retroceso
\f Form feed
\n Línea nueva
\r Retorno del carro
\t Tabulación Horizontal
\v Tabulación Vertical
Tipo Cadenas
Los tipos cadena (palabra clave string) son tipos que almacenan un grupo de
caracteres. En C# los tipos cadena se crean con la palabra clave string seguido
por el nombre de la variable que deseamos instanciar. Para asignar un valor a
este tipo debemos hacerlo entre comillas de la siguiente forma:
Convirtiendo tipos
En nuestros programas muchas veces necesitaremos cambiar de tipo a los
objetos que hayamos creado. Esto lo podremos hacer implícitamente o
explícitamente. Una conversión de tipos implícita sucede automáticamente, es
decir el compilador se hará cargo de esto. Una conversión explicita en cambio se
llevará a cabo únicamente cuando nosotros lo especifiquemos. Hay que tomar en
cuenta que no siempre podremos hacer una conversión de un tipo hacia otro.
Como regla general las conversiones implícitas se llevan a cabo cuando se desea
cambiar un tipo de menor capacidad hacia un tipo de mayor capacidad de la
misma especie. Por ejemplo si deseamos crear 2 tipos enteros (misma clase) el
uno que lleve el tipo short (menor capacidad) y el otro que lleve el tipo int (mayor
capacidad) una conversión implícita de short a int se lleva a cabo en el siguiente
ejemplo:
short corto = 3;
int entero = corto; //compilará sin ningún problema
aquí sucede una conversión implícita, el valor de la variable corto (en este caso 3)
que es de tipo short es asignado a la variable de tipo int sin que el compilador nos
de ningún problema ya que hará una conversión de short a int implícitamente por
nosotros debido a la regla anteriormente citada.
En el caso que queramos hacer de forma inversa, es decir asignar un valor int a
una variable short, estaríamos violando la regla de asignar un tipo de menor
capacidad a una variable de tipo de mayor capacidad aunque sean de la misma
clase (enteros). Asi el siguiente ejemplo no compilará dándonos un error:
En estos casos es cuándo podremos hacer una conversión explícita. Debido a que
la información almacenada en la variable entero de tipo int está también en el
rango de capacidad del tipo short y los dos tipos son de la misma clase (enteros)
podremos hacer una conversión explicita designando entre paréntesis a que tipo
queremos convertir de la siguiente manera:
Arreglos
En C# se pueden construir arreglos de prácticamente cualquier tipo de dato. Los
arreglos, también llamados vectores o arrays, no son más que una sucesión de
datos del mismo tipo. Por ejemplo, el concepto matemático de vector es una
sucesión de números y por lo tanto es un arreglo unidimensional. Así, podemos
construir arreglos de objetos, de cadenas de texto, y, por supuesto, arreglos de
enteros:
using System;
class Arreglo{
public static void Main()
{
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
Console.WriteLine( arr[1] );
}
}
Para crear un arreglo debemos especificar de qué tipo deseamos crear el arreglo
seguido por corchetes [ ] que es el distintivo del arreglo (en nuestro ejemplo
usamos int[]), seguido por la palabra clave new y el tipo y la cantidad de
parámetros que tendrá nuestro arreglo. En el ejemplo anterior, por ejemplo, se
creó un arreglo arr unidimensional con capacidad para 3 enteros (especificado por
new int[3]), y luego se le asignó a cada parámetro un entero distinto (nótese que
se comienza a contar a partir de 0 y el número del parámetro se encuentran entre
corchetes).
Existe una forma más corta para declarar el arreglo y asignarle los valores:
using System;
class Arreglo2{
public static void Main()
{
int[,] arr = new int[2,2];
arr[0,0] = 1;
arr[1,0] = 2;
arr[0,1] = 3;
arr[1,1] = 4;
Console.WriteLine("El valor que posee la variable arr[1,1] es
{0}", arr[1,1] );
}
}
el resultado será:
Fuentes consultadas:
http://loscharp.blogspot.mx/2008/06/csharp.html
https://msdn.microsoft.com/es-mx/library/ms228360(v=vs.90).aspx
https://msdn.microsoft.com/es-es/library/kca3w8x6.aspx
https://msdn.microsoft.com/es-MX/library/wew5ytx4(v=vs.90).aspx