2. 2.1. Tipos de datos.
2.1.1. Enteros cortos: byte, sbyte.
2.1.2. Enteros: short, int, long.
2.1.3. Punto flotante: float, double, decimal.
2.1.4. Lógicos: bool.
2.1.5. Otros: char, object y string.
2.2. Trabajo con variables.
2.2.1. Declaración e inicialización.
2.2.2. Visibilidad global y local.
2.2.3. Modificadores de accesibilidad: public, private,
internal, protected y protected internal.
2.2.4. Conversión de tipos (Casteo).
2.2.5. Arreglos.
3. 2.3. Constantes.
2.4. Operadores aritméticos y lógicos.
2.5. Sentencias condicionales
2.5.1. Selección simple if
2.5.2. Selección multiple switch
2.6. Manejo estructurado de excepciones.
2.6.1. Concepto de excepción.
2.6.2. Sentencias: try, catch, finally, throws.
2.7. La sentencia for.
2.8. La sentencia foreach.
2.9. La sentencia while.
2.10. La sentencia do-while.
2.11. Instrucciones break, continue y goto.
4. 2.1. Tipos de datos.
El tipo de un dato es el conjunto de valores que puede
tomar durante el programa. Si se le intenta dar un valor
fuera del conjunto se producirá un error.
La asignación de tipos a los datos tiene dos objetivos
principales:
Por un lado, detectar errores en las operaciones
Por el otro, determinar cómo ejecutar estas operaciones
Una ventaja de los lenguajes fuertemente tipeados es que
se gasta mucho menos esfuerzo en depurar (corregir) los
programas gracias a la gran cantidad de errores que
detecta el compilador.
5. 2.1.1. Enteros cortos: byte, sbyte.
Byte.- Contiene enteros de 8 bits sin signo (1 bytes) que se
sitúan en el intervalo entre 0 y 255
1. Números negativos
2. Conversiones de formato
3. Ampliación
4. Caracteres de tipo
Sbyte.- Contiene enteros de 8 bits con signo (1 bytes) que se
sitúan en el intervalo entre -128 y 127.
6. PROGRAMA 1
1. Cree un programa que pida el ingreso de un
número y muestre las tablas de multiplicar de
este desde el uno al 15. Ejemplo, si ingreso el
3 tiene que mostrar, 3 x1 = 3, 3 x 2 = 6 , 3 x 3 =
9, si ingresa el 4 mostraría, 4 x 1=4, 4 x 2=8, 4
x 3 = 12, hasta el 4 x 15.
Nota: deberan usar el tipo de dato byte
7. PROGRAMA 2
2. Crear un programa que muestre el valor máximo y
mínimo que puede almacenar cada tipo de dato
entero en C#
Enteros cortos: byte, sbyte.
Enteros: short, int, long
Punto flotante: float, double, decimal
Usar MinValue y Maxvalue (nos permiten acceder a
los valores minimos y maximos)
8. Enteros: short, int, long.
Short. - Contiene enteros de 16 bits con signo (2
bytes) que se sitúan en el intervalo entre -32,768 y
32,767.
Int.- Contiene enteros de 32 bits con signo (4 bytes)
que se sitúan en el intervalo entre -2,147,483,648 y
2,147,483,647
Long.- Contiene enteros de 64 bits (8 bytes) con
signo cuyo valor se sitúa entre -
9.223.372.036.854.775.808 y
9.223.372.036.854.775.807 (9,2... E+18).
9. 2.1.3. Punto flotante: float, double,
decimal.
Se usan para representar números con partes
fraccionarias. Hay dos tipos de coma flotante: float y
double. El primero reserva almacenamiento para un
número de precisión simple de 4 bytes y el segundo lo
hace para un numero de precisión doble de 8 bytes.
10. 2.1.4. Lógicos: bool.
Se usa para almacenar variables que presenten dos
estados, que serán representados por los valores true y
false.
2.1.5. Otros: char, object y string.
Char.- Contiene puntos de código de 16 bits (2 bytes) sin
signo comprendidos entre 0 y 65535. Cada punto de código
o código de carácter representa un único carácter
Unicode.
11. Object.- Contiene direcciones de 32 bits (4 bytes) que
hacen referencia s objetos. Se puede asignar cualquier
tipo de referencia (cadena, matriz, clase o interfaz) a
una variable Object. Una variable Object también puede
hacer referencia a datos de cualquier tipo de valor
(numérico, Boolean, Char, Date, estructura o
enumeración).
String.- Contiene secuencias de puntos de código de 16
bits sin signo (2 bytes) que van de un valor de 0 a 65535.
Cada punto de código, o código de carácter, representa
un carácter Unicode único. Una cadena puede contener
de 0 a 2.000 millones (2^31) de caracteres Unicode,
aproximadamente
12. 2.2. Trabajo con variables.
En programación, las variables son espacios reservados en la
memoria que, como su nombre indica, pueden cambiar de
contenido a lo largo de la ejecución de un programa. Una
variable corresponde a un área reservada en la memoria
principal del ordenador.
Para que nuestro código sea más entendible y claro, el
identificador de la variable debe ser mnemotécnico, es decir
que debe reflejar el uso dentro del programa de la misma.
13. 2.2.1. Declaración e inicialización.
Declaración:
• Reserva de espacios de memoria
• La variable no debe ser usada aun
Inicialización:
• Primera asignación de contenido a la variable
• Necesaria siempre antes del uso de la variable
Utilización:
• La variable es utilizada en procesos del programa
• Su contenido puede cambiar en veces
14. 2.2.2. Visibilidad global y local.
Local: Cuando la misma sólo es accesible desde un único
procedimiento hijo, no pudiendo ser leída o modificada
desde otro procedimiento hermano o desde el propio
procedimiento padre. Es posible declarar variables en
bloques de condición, bucles, etc de tal modo que sólo
pueda accederse a ellas en el propio bloque.
Global: Cuando la misma es accesible tanto desde rutinas o
macros de la aplicación, como en todos los procedimientos y
funciones de la misma.
15. 2.2.3. Modificadores de accesibilidad:
public, private, internal, protected y
protected internal.
Public: Puede obtener acceso al tipo o miembro
cualquier otro código del mismo ensamblado o de
otro ensamblado que haga referencia a éste.
Private: Solamente puede obtener acceso al tipo o
miembro código de la misma clase o struct.
Protected: Solamente puede obtener acceso al tipo
o miembro el código de la misma clase o struct, o
bien de una clase derivada de dicha clase.
16. Internal: Puede obtener acceso al tipo o miembro
cualquier código del mismo ensamblado, pero no de un
ensamblado distinto.
Protected Internal: Puede obtener acceso al tipo o
miembro cualquier código del ensamblado en el que se
declara, o bien desde una clase derivada de otro
ensamblado. El acceso desde otro ensamblado debe
realizarse dentro de una declaración de clase derivada
de la clase en la que se declara el elemento interno
protegido y a través de una instancia del tipo de clase
derivada.
17. 2.2.4. Conversión de tipos (Casteo).
Se refiere a la transformación de un tipo de dato en otro. Esto se
hace para tomar las ventajas que pueda ofrecer el tipo a que se va
a convertir. Por ejemplo, los valores de un conjunto más limitado,
como números enteros, se pueden almacenar en un formato más
compacto y más tarde convertidos a un formato diferente que
permita las operaciones que anteriormente no eran posibles, tales
como la división con decimales.
Hay dos tipos de conversión:
1. La implícita: se convierte un tipo de dato de menor rango a un
supertipo (tipo de dato de mayor rango); este tipo de conversión lo
realiza el compilador, ya que no hay pérdida de datos si, por
ejemplo, se pasa un int (tipo entero) a long.
2. La explícita: el compilador no es capaz de realizarla por sí solo y
por ello debe definirse explícitamente en el programa.
18. 2.2.5. Arreglos.
Una matriz o vector (llamados en inglés arrays) es una zona
de almacenamiento continuo, que contiene una serie de
elementos del mismo tipo, los elementos de la matriz.
Desde el punto de vista lógico una matriz se puede ver
como un conjunto de elementos ordenados en fila (o filas y
columnas si tuviera dos dimensiones).
Existen tres formas de indexar los elementos de una matriz:
Indexación base-cero (0):
Indexación base-uno (1):
Indexación base-n (n):
19. 2.3 Constantes
En programación, una constante es un valor que no puede ser
alterado durante la ejecución de un programa.
Una constante corresponde a una longitud fija de un área
reservada en la memoria principal del ordenador, donde el
programa almacena valores fijos.
Por ejemplo:
El valor de pi = 3.1416
20. 2.4. Operadores aritméticos y
lógicos.
OPERADORES ARITMÉTICOS: Binarios: los operadores binarios indican
operaciones sencillas de incremento (suma o multiplicación) y
decremento (resta, división y modulo), estos son los operadores
binarios.
OPERADORES LÓGICOS: Son operadores de unión, también llamados
compuertas lógicas, estos operadores pueden unir dos o más pares de
valores comparados por medio de los operadores relaciones y están
dados por estos símbolos:
&&: Operador AND (Y)
||: Operador OR (O)
! : Operador NOT (NO)
21. 2.5. Sentencias condicionales:
2.5.1. Selección simple if:
Se trata de una estructura de control que permite redirigir un
curso de acción según la evaluación de una condición simple,
sea falsa o verdadera.
2.5.2. Selección múltiple switch:
También conocido como estructura de decisión múltiple per
mite seleccionar un camino entre varios caminos posibles t
eniendo como base el valor de la variable seleccionada la
cual es comparada con una lista de constantes (case n) entera
s o de carácter.
23. 2.6. Manejo estructurado de
excepciones
El manejo de excepciones es técnica de programación que permite al progra
mador controlar los errores ocasionados durante la ejecución del programa.
public static void main(String[] args) {
try {
// Se ejecuta algo que puede producir una excepción
} catch (IOException e) {
// manejo de una excepción de entrada/salida
} catch (Exception e) {
// manejo de una excepción cualquiera
} finally {
// código a ejecutar haya o no excepción
}
}
24. 2.6.1. Concepto de excepción
Una excepción en términos de lenguaje
de programación es la indicación de un pro
blema que ocurre durante la ejecución de
un programa. Sin embargo, la palabra
excepción se refiere a que este proble
ma ocurre con poca frecuencia generalme
nte cuando existe algún dato o instrucción
que no se apega al funcionamiento del pro
grama por lo que se produce un error.
25. 2.6.2. Sentencias: try, catch,
finally, throws.
Try: utiliza cuando se desean prever excepciones en
el transcurso de la ejecución de un programa.
try
{
/*Instrucciones
a realizar*/
}
catch(parametros)
{
/*Imprimir reporte de excepcion*/
}
26. try: para poner en alerta al programa a cerca
del código que puede lanzar una excepción.
catch: para capturar y manejar cada
excepción que se lance.
finally: código que se ejecutará haya o no
excepciones.
27. try
{
[Bloque de código que puede causar errores]
}
catch
{
[Qué hacer si sucede un error]
}
finally
{
[De cualquier manera, hacer lo siguiente…]
}
29. EJEMPLO SIN MANEJO DE EXCEPCIONES
static void Main(string[] args)
{
int a = 5, b = 0, c;
c = a / b;
Console.Write("c=" + a+"/"+b+"="+c);
Console.ReadKey();
}
30. static void Main(string[] args)
{
int a = 5, b = 0, c;
try
{
c = a / b;
}
catch (DivideByZeroException x)
{
Console.WriteLine(x.Message);
Console.ReadKey();
return;
}
Console.Write("c=" + a+"/"+b+"="+c);
Console.ReadKey();
}
31. TIPOS DE EXCEPCIONES
Excepciones de sistema:
Cuando se realiza alguna operación no válida se lanza
automáticamente.
Acceso a algún objeto que no existe, división por
cero…
Excepciones de programador:
Se define una clase que herede de Throwable o de Exception.
Excepciones de usuario:
Gestiona la excepción mediante los bloques de código
try, catch, finally.
Indica que el código producirá una excepción que no se
tratará dentro de él y se pasará al método superior utilizando
throw.
32. 2.7. La sentencia for.
Ejemplo: El siguiente programa inicializa un array llamada “lista”
de longitud 10 con los valores 1- 10.
{
for (i=0; i<=9; i+=1) lista[i] = i+1;
}
33. 2.8. La sentencia foreach.
La sentencia foreach permite recorrer un grupo de elementos
pertenecientes a un arreglo o algún objeto colección.
using System;
class Program
{
public static void Main()
{
int[] arreglo = new int [] {1,2,3,4,5};
foreach (int i in arreglo)
{
Console.WriteLine(i);
} }
}/*
Resultado
1
2
3
4
5
*/
34. 2.9. La sentencia while.
La instrucción while ejecuta una instrucción o un bloque de
instrucciones repetidamente hasta que una expresión
especificada se evalúa como false.
classWhileTest
{
staticvoid Main()
{
int n = 1;
while (n < 6)
{
Console.WriteLine(“Valor actual de n es {0}", n);
n++;
}
}
}
35. 2.10. La sentencia do-while.
La instrucción do ejecuta una
instrucción o un bloque de
instrucciones repetidamente hasta
que una determinada
expresión se evalúa como false. El
cuerpo del bucle se debe
incluir entre llaves, {}, a menos que
esté compuesto por una
sola instrucción. En ese caso, las
llaves son opcionales.
Public classTestDoWhile
{
Public staticvoid Main ()
{
int x = 0;
do
{
Console.WriteLine(x);
x++;
} while (x < 5);
}
}
36. 2.11. Instrucciones
Break: permite terminar el bucle envolvente más cercano o la
instrucción switch en la cual aparece. El control se transfiere a
la instrucción que sigue a la instrucción terminada, si existe
alguna.
Continue: pasa el control a la siguiente iteración de mientras
que agrega, de haga, de para, o la instrucción de foreach en la
que aparece.
Goto:La instrucción goto transfiere el control del programa
directamente a una instrucción identificada por una etiqueta.
37. PROGRAMA 3
Elaborar un programa que pida el ingreso de 20 números
y muestre cual es el mayor y menos de ellos, usando:
IF THEN ELSE
WHILE
FOR
Escriba un programa que solicite el ingreso de dos
números enteros y que luego permita seleccionar si se
sumarán, restarán dividirán o multiplicarán y muestre el
resultado por pantalla.