Está en la página 1de 33

Unidad II

Introducción a los tipos de datos,


operaciones matemáticas y uso de
estructuras de control
Tipos de datos en c#
• C# contiene dos categorías generales de tipos de datos: tipo de datos por valor y por
referencia.
• Tipos de valor:
Estos son los tipos de datos primitivos integrados, como char, int y float, así como
también los tipos definidos por el usuario declarados con la estructura.

• Tipos de referencia:
Clases y otros tipos de datos complejos que se construyen a partir de los tipos
primitivos. Las variables de estos tipos no contienen una instancia del tipo, sino sólo una
referencia a una instancia.
Tipos de datos por valor
Nombre corto Clase .NET Tipo Ancho Intervalo (bits)
byte Byte Entero sin signo 8 0 a 255
sbyte SByte Entero con signo 8 -128 a 127
int Int32 Entero con signo 32 -2.147.483.648 a 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
long Int64 Entero con signo 64 -922337203685477508 a
922337203685477507
ulong UInt64 Entero sin signo 64 0 a 18446744073709551615
float Single Tipo de punto flotante de precisión simple 32 -3,402823e38 a 3,402823e38

double Double Tipo de punto flotante de precisión doble 64 -1,79769313486232e308 a


1,79769313486232e308
char Char Un carácter Unicode 16 Símbolos Unicode utilizados en
el texto
bool Boolean Tipo Boolean lógico 8 True o false
object Object Tipo base de todos los otros tipos
string String Una secuencia de caracteres
decimal Decimal Tipo preciso fraccionario o integral, que puede representar 128 ±1.0 × 10e−28 a ±7.9 × 10e28
números decimales con 29 dígitos significativos.
Ejemplos
3) decimal precio, descuento, precio_descuento;
1) long pies, pulgadas; precio = 19.95m;
pies = 485; descuento = 0.15m;
precio_descuento = precio – (precio * descuento);
pulgadas = pies * 12;
Console.WriteLine( “El precio con descuento es: $ " +
Console.WriteLine(pies + " pies son " + precio_descuento);
pulgadas + " pulgadas");
Observe que las constantes decimales están seguidas por
el sufijo m. Esto es necesario porque sin el sufijo, estos
2) double radio, area; valores serían interpretados como constantes de punto
radio = 4.0; flotante estándar, lo cual no es compatible con el tipo de
area = 3.1416 * Math.Pow(radio,2); datos decimal.
Console.WriteLine( “El area de un circulo 4) char car; 5) bool b;
de radio " + radio + “ es ” + area); car = 'a '; b = false;
Cuando C# tiene que evaluar una expresión en la que intervienen
operandos de diferentes tipos, primero se convierte, sólo para
realizar las operaciones solicitadas, los valores de los operandos
al tipo del operando cuya precisión sea más alta. Cuando se trate
de una asignación, convierte el valor de la derecha al tipo de la
variable de la izquierda siempre que no haya pérdida de
información; de lo contrario C# exige que la conversión se realice
explícitamente. En la figura siguiente se muestran los tipos de
dato con signo, colocados de izquierda a derecha, de menos a
más precisos; las flechas indican las conversiones implícitas
permitidas:
Conversión entre
tipos de datos
Ejemplo de conversión implícita
// Conversión implícita
sbyte bDato = 1; short sDato = 0; int iDato = 0; long lDato = 0;
float fDato = 0; double dDato = 0; decimal mDato = 0;
sDato = bDato;
iDato = sDato;
lDato = iDato;
fDato = lDato;
mDato = bDato;
dDato = fDato + lDato – iDato * sDato / bDato;
Console.WriteLine(dDato);
¿Cuál es el resultado?
Conversión implícita
Para que un tipo de datos sea asignado a una variable de un tipo de datos diferente, una
conversión implícita se llevará a cabo de forma automática si:
• Los dos tipos de datos son compatibles.
• El tipo de datos de destino tiene un rango que es mayor que el tipo de datos origen.
Cuando estas dos condiciones son cumplidas, una conversión de ampliación se lleva a cabo.
Por ejemplo, el tipo de datos int es siempre lo suficientemente grande para cualquier valor
byte, y ambos int y byte son tipos enteros compatibles, por lo que una conversión puede
ser aplicada.
Además de las restricciones descritas, no hay conversión implícita entre decimal y float o
double, o desde los tipos de datos numéricos hacia char o bool. También, los tipos de datos
char y bool no son compatibles entre sí.
Convirtiendo datos incompatibles
Cuando la conversión de datos no puede ser implícita, se necesita realizar un cast. Un cast
es una instrucción hacia el compilador para que convierta el resultado de una expresión a
un tipo de datos específico. Así, se requiere un tipo de conversión explícito.
La forma general de un cast es la siguiente:

(tipoDeDatosDestino) expresión

Donde: tipoDeDatosDestino especifica el tipo de datos deseado para convertir la


expresión especificada. Por ejemplo, si se tiene:
double x, y;
si desea que el tipo de la expresión x/y sea int, puede escribir:
(int) (x / y)
Cuando un cast involucra una conversión de estrechamiento, parte de la información puede
ser perdida. Por ejemplo, cuando se convierte de long a int, parte de la información puede ser
perdida si el valor de long es mayor que el rango de un int porque sus bits más significativos
son eliminados. Cuando un valor de punto flotante es convertido a un tipo de datos int, el
componente fraccional también será perdido debido al truncamiento.
// Conversión explícita
sbyte bDato = 0; short sDato = 0; int iDato = 0; long lDato = 0; float fDato = 0; double dDato = 2; decimal
mDato=0;

fDato = (float) dDato;


lDato = (long) fDato;
iDato = (int) lDato;
sDato = (short) iDato;
mDato = (decimal) dDato;
bDato = (sbyte) (sDato + iDato – lDato * fDato / dDato);
System.Console.WriteLine(bDato);
¿Cuál es el resultado?
Conversión de valores capturados desde el teclado

Cuando un valor es capturado desde el teclado, el tipo de datos


asignado es cadena (string), ya que es el tipo de datos que asigna el
método ReadLine(). Para poder usar valores capturados desde el teclado
en operaciones dentro de un programa, es necesario realizar una
conversión al tipo de datos deseado.

Considere el siguiente programa:


El programa modificado queda de la siguiente manera:

Clase .NET
necesaria para
la conversión.
Revisar la tabla
de los tipos de
datos
En las líneas 11 y 13 del código que tiene borde rojo es donde se realiza la
conversión del tipo de datos cadena (el resultado del método ReadLine()) a
entero. Algunas otras conversiones disponibles son: ToBoolean, ToByte,
ToChar, ToDecimal, ToDouble, ToInt16, ToInt64, ToSByte, ToUInt16, ToUInt32,
ToUInt64.
También se puede usar la clase Int32.Parse para realizar la operación de las
líneas 11 y 13. Por ejemplo,
num1 = Int32.Parse( Console.ReadLine() );
Algunas otras conversiones que se pueden hacer son: Boolean.Parse,
Byte.Parse, Char.Parse, Decimal.Parse, Double.Parse, Int16.Parse, Int64.Parse,
SByte.Parse, UInt16.Parse, UInt32.Parse, UInt64.Parse.
Identificadores
• Son nombres que los programadores eligen para sus tipos (clases), métodos,
variables, constantes, objetos, etc.
• Microsoft sugiere una nomenclatura utilizando la notación camel(camello)
para nombres de variables y notación Pascal para nombres de métodos y la
mayoría de los identificadores.
• Notación camel: precioDeCompra
• Notación Pascal: CalculoArea
• Los identificadores son sensibles a mayúsculas y minúsculas
Variables
• Una variable es una ubicación de almacenamiento que tiene asociado
un tipo.
• A las variables se les pueden asignar(almacenar), valores que pueden
ser cambiados programáticamente.
• Se declara una variable indicando el tipo asociado y el nombre que se le
da a la variable. Opcionalmente se le puede asignar un valor inicial.
• Antes de utilizar una variable debe haber sido inicializada en su
declaración, o en caso contrario debió asignársele posteriormente un
valor.
Reglas y recomendaciones para nombrar variables
Constantes

• Es un identificador cuyo valor no puede ser modificado.


• Las constantes pueden ser:
✓ Literales
✓ Constantes simbólicas
✓ Enumeraciones
Constantes literales

• Su valor se escribe literalmente en el código


int x = 5;

• El valor 5 es una constante literal, pues no puede ser


modificado
Constantes simbólicas

• Las constantes simbólicas asignan un nombre a un valor constante


• Se declaran de manera similar a una variable inicializada, pero poniendo
como prefijo la palabra reservada const.
• Su sintaxis es:
const tipo identificador = valor;
• Ejemplo :
• const double pi=3.1416
Enumeraciones
• Es un tipo de valores distintos, que consiste de un conjunto de constantes con nombre
denominado (lista enumerador).
• Un operador es un símbolo
que causa que C# realice una
acción.
• Existen diversas clases de
operadores.
Operadores
✓Aritméticos
✓Incremento y
decremento
✓Relacionales
✓Lógicos
Operadores aritméticos
Sean int num1= 10, num2 = 3;

Operación Operador Ejemplo Resultado


Adición + suma=num1 + num2 suma = 13
Substracción - resta=num1 – num2 resta = 7
Multiplicación * multi = num1 * num2 multi = 30
División / divi= num1 / num2 divi = 3
Dará como resultado un valor entero
porque las variables son de tipo int
División Modular % mod = num1 % num2 mod = 1
Proporciona el residuo del primer numero
dividido entre el segundo
Incremento ++ ++num1 num1 = 11

Decremento -- --num2 num2 = 2


Operadores relacionales
Operadores
lógicos
• Las combinaciones de caracteres que
consisten en una barra diagonal inversa ( \ )
seguida de una letra o una combinación de
dígitos se denominan "secuencias de escape".
• Las secuencias de escape se suelen utilizar
para especificar acciones como retornos de
carro y movimientos de tabulación en
terminales e impresoras. También se emplean
Secuencias para proporcionar representaciones literales
de caracteres no imprimibles y de caracteres
de Escape que normalmente tienen significados
especiales, como las comillas dobles ( " ).

• Ver el siguiente enlace:


https://docs.microsoft.com/es-es/cpp/c-language/escape-
sequences?view=vs-2019
Secuencias de escape más
utilizadas
EJEMPLOS CON SECUENCIAS DE ESCAPE

• Hacer un programa que muestre el nombre y apellido concatenados con salto de tabulador.

• Observe que se ha hecho uso de la secuencia de escape \t. Las secuencias de escape deben ir entre comillas,
pero como se ha aperturado las comillas para la impresión del mensaje, ya no se debe encerrar entre
comillas el \t, además, no debe dejar espacios entre las cadenas y la secuencia de escape.
• Otra forma de utilizar \t sería:
• Console.WriteLine(“Verónica” + “\t”+ “Rosa”); en este caso las cadenas van concatenadas por
separado y \t debe ir entre comillas.
CONTINUACIÓN

• Hacer un programa que permita desplegar en pantalla lo siguiente, haciendo uso de una sola línea de código.
Asignatura: Programación I
Sección:“01”
Aula:Virtual

• Observe que se ha hecho uso de 2 secuencias de escape \n y \”. Cuando las utilice no deje espacios, tal y como lo
observa en el ejercicio. A continuación la salida del programa:
Ejercicios con captura de datos
1. Crear un programa que permita capturar el nombre, apellido y la
edad de una persona y luego que muestre dichos datos.
2. Crear un programa que pida dos números de tipo double a través
de teclado, que permita realizar la división de dichos números y que
muestre en pantalla solamente la parte entera de la división cuando
no sea exacta.
3. Crear un programa que calcule el área de un triangulo. Tome en
cuenta que los datos deberán ser capturados desde teclado.
4. Encontrar la superficie y la longitud de un círculo. Conociendo la
fórmula de la superficie: S=𝜋𝑅2 y la longitud L =2𝜋R
SOLUCIÓN EJERCICIO 1

Salida del programa


SOLUCIÓN DE EJERCICIO 2

Salida del programa


EJERCICIO 3

Tenga cuidado al digitar los


datos con decimales, porque
Salida del programa: puede ser que el punto
decimal sea la coma en su
computadora.
Les queda a ustedes hacer el ejercicio 4, lo cual sería
una buena práctica para ver si han comprendido el
tema de tipos de datos y captura desde teclado.

También podría gustarte