Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arreglosc 1224190931391987 9
Arreglosc 1224190931391987 9
ESCUELA DE INGENIERA
DEPARTAMENTO DE CIENCIA DE LA COMPUTACIN
IIC 1102 INTRODUCCIN A LA PROGRAMACIN
Profesor: Rodrigo Sandoval U.
ARREGLOS ......................................................................................................................................................... 1
1.1
DECLARACIN DE ARREGLOS UNIDIMENSIONALES ........................................................................................ 2
1.2
USO DE ARREGLOS UNIDIMENSIONALES ......................................................................................................... 3
1.2.1
Funciones ms comunes con arreglos.................................................................................................... 4
1.2.2
Foreach para el manejo de arreglos...................................................................................................... 5
1.2.3
Ejemplos de declaracin y uso de arreglos............................................................................................ 6
1.2.4
Ejemplo: Clculo de mnimo, mximo y promedio de una lista de notas de estudiantes....................... 7
1.2.5
Ejemplo: Programa de simulacin de conjuntos con arreglos .............................................................. 9
ENUMERACIONES .......................................................................................................................................... 23
Rodrigo Sandoval U.
1 Arreglos
Los arreglos son estructuras de datos complejas (en el sentido de que no son atmicas) que agrupan
datos de un mismo tipo en particular, llamado el tipo base del arreglo. El tipo base de un arreglo puede
ser cualquiera de los tipos bsicos de C#, o incluso algunos tipos complejos como las clases.
Un arreglo es tambin ejemplo de un modelo. Un arreglo puede considerarse como ejemplo de una
variable compuesta capaz de almacenar uno o ms datos al mismo tiempo.
La sintaxis del lenguaje permite referirse a cada uno de los elementos que constituyen el arreglo
empleando ndices. Esto es posible pues los elementos del arreglo estn numerados en forma jerrquica
y consecutiva, empezando en 0 en cada dimensin.
El siguiente grfico ilustra un ejemplo de un arreglo llamado numeros, cuya posicin 0 almacena el valor
10, la posicin 1 el valor de 21, etc. Este arreglo en total almacena n+1 elementos. El valor de n, depende
de la memoria que pueda tener el computador y el tipo de elementos que se almacenen en el arreglo.
IIC 1102
Pgina: 1
Rodrigo Sandoval U.
Los arreglos, al igual que el resto de las variables se identifican con un nombre. Al emplear ese nombre,
se hace referencia a la estructura de datos como un todo, es decir, con todos sus elementos. El lenguaje
interpreta dicho nombre como un puntero. Cuando se utiliza el nombre del arreglo en forma indexada, es
decir, combinado con ndices, se hace referencia a un elemento particular, del tipo base, dentro de la
estructura compleja.
Importante: El lenguaje C# no controla la validez de los ndices que se emplean para referenciar un
arreglo. Esto quiere decir que es posible cometer errores graves y difciles de detectar en este sentido.
Ms adelante se presenta un ejemplo en este sentido.
1.1
Los arreglos, al igual que las dems variables deben declararse antes de poder utilizarlas, y cumplen con
las mismas reglas de alcance y vida.
Los arreglos de una sola dimensin reciben tambin el nombre de vectores. La sintaxis de la declaracin
de un arreglo unidimensional es la siguiente:
<tipo-base>[] <identificador>;
Observaciones:
El <tipo-base> puede ser cualquiera de los tipos bsicos del lenguaje, o incluso algunos
complejos como estructuras.
Los corchetes [] son obligatorios y denotan que el identificador descrito, del tipo-base indicado,
es un arreglo (lista de elementos del tipo base).
En esta declaracin NO se define el tamao que tendr el arreglo (aunque se puede determinar
las dimensiones, lo que se ver ms adelante).
El tamao del arreglo se determina en una segunda declaracin, que puede ir en la siguiente lnea, como
se muestra a continuacin.
Adicionalmente es factible declarar, dimensionar, e inicializar un arreglo con todos sus elementos, en una
sola declaracin:
<tipo-base>[] <identificador> = {valor1, valor2, ..., valorN};
Esta ltima declaracin implcitamente dimensiona el arreglo para almacenar los N elementos descritos,
por lo que no se requiere dimensionarlo aparte.
Es decir:
Con los valores indicados entre llaves {} se inicializarn los elementos del arreglo.
IIC 1102
Pgina: 2
Rodrigo Sandoval U.
Tambin es factible declarar, dimensionar, e inicializar un arreglo con todos sus elementos, en una sola
declaracin, pero slo indicando un subconjunto de los valores que el arreglo puede guardar:
<tipo-base>[] <identificador> =
new <tipo-base>[N] {valor1, ..., valorM};
... donde M<N, y N debe ser una expresin constante, como por ejemplo 10. Es factible hacer una
declaracin donde M>N, en cuyo caso, el real dimensionamiento del arreglo se regir por M.
Algunos ejemplos:
1.2
Los elementos de un arreglo son variables del tipo base del vector, por lo que se utilizan de la misma
manera en expresiones y dems instrucciones, como la asignacin. Por ejemplo, para asignar un valor a
un elemento de un arreglo basta con escribir:
<arreglo>[indice] = <expresion>;
donde <arreglo> es el nombre de la variable e indice hace referencia a la posicin del elemento al que se
le quiere asignar el <expresion>. La referencia de valores en un arreglo, se indexa desde el 0 al N-1.
Importante: Puesto que los arreglos son estructuras complejas (es decir, no bsicas), no es posible
asignar un arreglo a otro mediante una simple asignacin (=). Para hacer esto es necesario escribir
un ciclo y asignar elemento a elemento.
Como se mencion anteriormente, el lenguaje C# no controla la validez de los ndices que se
emplean para referenciar un arreglo. Esto quiere decir que es posible cometer errores muy difciles de
detectar en este sentido. Es necesario prestar especial inters a los valores que toman los ndices para
evitar estos problemas.
Por ejemplo, la siguiente porcin de cdigo compila sin problemas (es decir, sin errores
sintcticos), pero probablemente produzca un error en tiempo de ejecucin al referenciarse
posiciones inexistentes del arreglo.
// 10 elementos
int i;
for (i=0; i<20; i++)
arreglo[i] = 0;
IIC 1102
Pgina: 3
Rodrigo Sandoval U.
Tambin es comn cometer estos errores olvidando que las posiciones de los arreglos estn
numeradas a partir del ndice cero. Es decir, en un arreglo de tamao N las posiciones estn
numeradas de 0 a N-1.
Ordenamiento de un Arreglo
En el caso de los arreglos que sean de uno de los tipos predefinidos (int, float, char, etc.), es factible
ordenarlos en forma creciente, aprovechando el mtodo bsico Sort() de la clase Array:
int [] numeros = { 4,5,2,3,1,6 }
Array.Sort(numeros); // 1,2,3,4,5,6
IIC 1102
Pgina: 4
Rodrigo Sandoval U.
}
class MainApp {
static void Main() {
int[] numeros = { 2,5,6,1,3,4 };
Arreglo a = new Arreglo(numeros);
a.Imprimir();
a.Ordenar();
a.Imprimir();
a.Reordenar();
a.Imprimir();
Console.ReadLine();
}
}
<variable> es un identificador de una variable local del foreach() que se usar para ver un
elemento del arreglo en cada iteracin.
Ejemplo:
using System;
class MainClass {
public static void Main() {
int impares = 0, pares = 0;
int[] arr = new int [] {0,1,2,5,7,8,11};
foreach (int i in arr) {
if (i%2 == 0)
pares++;
else
impares++;
}
Console.WriteLine("Hay {0} impares y {1} pares.", impares, pares);
IIC 1102
Pgina: 5
Rodrigo Sandoval U.
Console.ReadLine();
}
}
A continuacin se incluyen ejemplos, tanto de declaracin y uso de arreglos, como del uso de foreach.
2.
3.
4.
5.
6.
7.
8.
IIC 1102
Pgina: 6
Rodrigo Sandoval U.
IIC 1102
Pgina: 7
Rodrigo Sandoval U.
2. 3 Instancias:
La nica instancia requerida es notas1, de la clase Curso.
4. Validacin
Es importante analizar casos extremos en los que el usuario pueda ingresar valores poco usuales. Por
ejemplo, si la cantidad de alumnos es cero o si es muy grande. Esto es particularmente importante para
validar el programa en C#. Por lo tanto, deben definirse dominios de validacin que representan estas
situaciones.
Adems, deben considerarse dominios que incluyan distintos valores para las notas. Por ejemplo, varias
notas distintas y repetidas, todas las notas iguales, etc. Tambin debe definirse un dominio en el que el
nmero de estudiantes es uno, pues podra presentar algn problema.
5. Limitaciones
Las limitaciones de este algoritmo se presentan principalmente en su implementacin en el lenguaje de
programacin C#. Dado que se va a utilizar un arreglo para almacenar las distintas notas, el mximo
nmero de notas que podrn ingresarse estar limitado por la dimensin mxima factible de almacenar
en un arreglo, aunque dado el caso de C# y el contexto, se asumo que la cantidad de notas difcilmente
ser tan grande.
Por otra parte, no se planean controles de validez sobre los nmeros que ingresa el usuario, de modo
que se supone que se ingresarn valores correctos, en el rango de 1 a 7. De no ser as, el
comportamiento del programa no est definido (es decir, puede pasar cualquier cosa).
Tambin se supone que el nmero de alumnos es mayor que cero, o el comportamiento del programa no
est definido. Por ejemplo, si se ingresa como nmero de alumnos un cero, esto producir una divisin
por cero al calcular el promedio.
////////////////////////////////////////////////////////////////
// Programa que lee del usuario una lista de notas correspondientes a los
// alumnos de un curso, y calcula el promedio, mnimo y mximo. Se ilustra
// el uso de arreglos para el almacenamiento de la informacin de entrada.
// Este programa podra reescribirse sin el uso de arreglos: Como?
////////////////////////////////////////////////////////////////
using System;
class Curso {
const float MAX_NOTA = 7.0F;
const float MIN_NOTA = 1.0F;
float[] notas;
float promedio;
float minimo;
float maximo;
public Curso() {
int n;
Console.Write("Ingrese el nmero de alumnos en la seccin: ");
n = int.Parse(Console.ReadLine());
IIC 1102
Pgina: 8
Rodrigo Sandoval U.
Ejemplo de ejecucin:
IIC 1102
Pgina: 9
Rodrigo Sandoval U.
IIC 1102
Pgina: 10
Rodrigo Sandoval U.
class MainApp {
static void Main()
Conjunto c1
Conjunto c2
Conjunto c3
Conjunto c4
{
=
=
=
=
new
new
new
new
Conjunto();
Conjunto();
Conjunto();
Conjunto();
Conjunto3");
IIC 1102
Pgina: 11
Rodrigo Sandoval U.
Ejemplo de ejecucin:
3 elementos: ( 2 3 4 )
5 es elemento del conjunto 0? --> False
Se ingresa 5 al conjunto c1
5 es elemento del conjunto 0? --> True
4 elementos: ( 2 3 4 5 )
--------------------------Ingrese elementos del conjunto 2
CARGA DE DATOS (0 para terminar)
Ingrese el elemento 1 del conjunto
1
Ingrese el elemento 2 del conjunto
2
Ingrese el elemento 3 del conjunto
3
Ingrese el elemento 4 del conjunto
4
Ingrese el elemento 5 del conjunto
0
--------------------------Ingrese elementos del conjunto 3
CARGA DE DATOS (0 para terminar)
Ingrese el elemento 1 del conjunto
2
Ingrese el elemento 2 del conjunto
4
Ingrese el elemento 3 del conjunto
6
Ingrese el elemento 4 del conjunto
8
Ingrese el elemento 5 del conjunto
0
--------------------------Conjunto 2:
4 elementos: ( 1 2 3 4 )
Conjunto 3:
4 elementos: ( 2 4 6 8 )
Conjunto2 U Conjunto3
6 elementos: ( 1 2 3 4 6 8 )
Conjunto2 Intersec. Conjunto3
2 elementos: ( 2 4 )
IIC 1102
Pgina: 12
Rodrigo Sandoval U.
2 Arreglos Multidimensionales
Los arreglos que se estudiaron anteriormente son estructuras de datos vectoriales de una sola dimensin.
En C# tambin es posible manejar arreglos de ms de una dimensin. Particularmente en este lenguaje,
existen dos maneras de declarar arreglos multidimensionales, por un lado aquellos en que todas las
dimensiones son fijas, tambin conocidos como matrices, y en segundo lugar, los que tienen filas (o
columnas) de largo distinto. En forma rigurosa, estos ltimos arreglos no son ms que arreglos en los que
cada elemento es a la vez otro arreglo, que puede ser de diferente dimensin que su vecino.
Los arreglos de dos dimensiones reciben el nombre de matrices. Gran parte del desarrollo de esta
seccin se limita a las matrices, es decir, a arreglos de dos dimensiones, de filas del mismo tamao. Sin
embargo, tanto la sintaxis para la declaracin como la forma de utilizar estos arreglos puede
generalizarse sin problema a dimensiones mayores (3D, 4D, etc).
Para referirse a cada uno de los elementos que constituyen el arreglo es necesario emplear una serie de
ndices. En el caso de las matrices, dos. Esto es posible pues los elementos de la matriz, al igual que en
el caso de los vectores unidimensionales, estn numerados en forma jerrquica consecutiva, empezando
en 0,0. Cada par de ndices referencia tanto una fila, como una columna de la matriz, identificando de
manera nica cada elemento de la estructura.
2.1
Declaracin de Matrices
Como se mencion anteriormente, las matrices no son ms que arreglos en los que cada elemento es a
su vez otro arreglo. La sintaxis de la declaracin de una matriz es la siguiente:
<tipo-base>[,] <identificador>;
Observaciones:
El <tipo-base> puede ser cualquiera de los tipos bsicos del lenguaje, o incluso algunos
complejos como estructuras. Cada elemento de la matriz ser del tipo definido aqu.
Al igual que en el caso de arreglos unidimensionales, es posible declarar una matriz y al mismo tiempo
inicializar sus elementos con valores del tipo base. La sintaxis para hacer esto es la siguiente:
<tipo-base>[M,N] identif = { { valor1-1, valor1-2, ..., valor1-N },
Con los valores indicados entre llaves {} se inicializarn los MxN elementos de la matriz.
IIC 1102
Pgina: 13
2.2
Rodrigo Sandoval U.
Uso de Matrices
Los elementos de una matriz se pueden entender como un casillero o una celda, determinada por fila y
columna. Para asignar un valor a un elemento de una matriz basta con escribir:
matriz[indice1,indice2] = valor;
en donde matriz es el nombre de la variable y las expresiones indice1 e indice2 hacen referencia a la
posicin del elemento al que se le quiere asignar el valor.
El nombre de una matriz tambin puede emplearse sin ndice, bajo ciertas circunstancias, por ejemplo,
para pasar la matriz completa como argumento a una funcin.
// 2 filas, 3 col.
IIC 1102
Pgina: 14
Rodrigo Sandoval U.
2.2.4 Ejemplo: Clculo de las notas finales de un curso (mnimo, mximo, promedio)
Se desea calcular las notas finales de los alumnos de un curso, as como tambin el promedio, mnimo y
mximo de stas. Se recibir el nmero de alumnos y las notas parciales de cada uno de stos. Las
notas parciales corresponden a la I1, I2, T1, T2 y Exmen. La nota final se calcula empleando la frmula:
NF = 0.7*NP + 0.3*Ex
en donde NP es la nota de presentacin calculada como:
NP = (I1+I2+T1+T2)/4
2. Conceptualizacin de la solucin
2.1 Entidades: El Curso es la nica entidad relevante, la cual se conceptualiza como la agrupacin
de notas correspondientes a los alumnos.
2.2 Clases: La clase Curso, ser la representacin de las notas de un curso cuyo promedio se quiere
calcular. Esta clase se compone de los siguientes:
Atributos de la Clase Curso
notas: una matriz que almacenar todas las notas parciales (en forma de nmero real, con
decimales).
promedio (PROM): el valor resultante del promedio de notas del curso
minimo (MIN): el valor de la mnima de todas las notas del curso
maximo (MAX): el valor de la mnima de todas las notas del curso
Mtodos de la Clase Curso
Curso: (constructor) obtiene los valores de todas las notas parciales ingresadas por el usuario. El
algoritmo de este mtodo es:
1. Obtener la cantidad de alumnos: N
2. Iterar para cada uno de los N alumnos
2.1 Iterar para cada nota parcial del alumno
2.1.1 Obtener la nota parcial del alumno
2.2 Calcular la Nota P del Alumno
2.3 Calcular la Nota Final del Alumno y agregarlo a la matriz
Calcular: recorre la lista de notas, calculando el mnimo, el mximo y el promedio de estos
valores. El algoritmo de este mtodo es:
IIC 1102
Pgina: 15
Rodrigo Sandoval U.
2. 3 Instancias:
La nica instancia requerida es notas1, de la clase Curso.
Cdigo de la Solucin
////////////////////////////////////////////////////////////////
// Programa que lee del usuario una lista de notas parciales correspondientes a los alumnos
// de un curso, y calcula la nota final de cada alumno, y el promedio, mnimo y mximo.
// Se ilustra el uso de arreglos 2D (matrices) para el almacenamiento de la info. de entrada.
////////////////////////////////////////////////////////////////using System;
class Curso {
const float MAX_NOTA = 7.0F;
const float MIN_NOTA = 1.0F;
float[,] notas;
float promedio;
float minimo;
float maximo;
public Curso() {
int n;
float notap;
Console.Write("Ingrese el nmero de alumnos en la seccin: ");
n = int.Parse(Console.ReadLine());
notas = new float[n,6]; // 6 notas (5 parciales y 1 final) de n alumnos
for(int i=1; i<=n; i++) {
Console.WriteLine("Alumno N {0}", i);
for(int j=1; j<=5; j++) { // Slo se asignan 5 notas parciales
Console.Write("Ingrese la nota {0}: ", j);
notas[i-1,j-1] = float.Parse(Console.ReadLine());
}
// Nota P, con las primeras 4 notas
notap = (notas[i-1,0]+notas[i-1,1]+notas[i-1,2]+notas[i-1,3]) / 4.0F;
// Nota final: 0.7*NotaP + 0.3*Examen (la 5a)
IIC 1102
Pgina: 16
Rodrigo Sandoval U.
Ejemplo de ejecucin:
Ingrese el nmero de alumnos en la seccin: 3
Alumno N 1
Ingrese la nota 1: 4,3
Ingrese la nota 2: 4,4
Ingrese la nota 3: 4,5
Ingrese la nota 4: 5,2
Ingrese la nota 5: 5,6
Alumno N 2
Ingrese la nota 1: 5,4
Ingrese la nota 2: 6,2
Ingrese la nota 3: 5,8
Ingrese la nota 4: 5,5
Ingrese la nota 5: 5,7
Alumno N 3
Ingrese la nota 1: 3,4
Ingrese la nota 2: 6,2
Ingrese la nota 3: 5,6
Ingrese la nota 4: 4,5
Ingrese la nota 5: 6,0
Notas Finales:
4,9 5,7 5,2 Promedio de las 3 notas = 5,288333
Mnimo de las 3 notas = 4,9
Mximo de las 3 notas = 5,7175
IIC 1102
Pgina: 17
Rodrigo Sandoval U.
IIC 1102
Pgina: 18
Rodrigo Sandoval U.
2. Conceptualizacin de la solucin
Entidades: la nica entidad relevante es Matriz, que representa precisamente una matriz de NxN
Clases: para representar esta nica entidad, la clase Matriz ser la encargada de exponer la
informacin y funcionalidad para distinguir una matriz de otra, as como los mtodos para operar con
ellas, en particular el mtodo de multiplicacin entre matrices.
Atributos: la estructura para manejar los datos de la matriz: datos.
Mtodos:
-
Instancias:
A: Primera de las matrices a multiplicar
B: Segunda de las matrices a multiplicar
C: Matriz resultado (AxB)
IIC 1102
Pgina: 19
Rodrigo Sandoval U.
4. Validacin
En primera instancia se debe considerar las situaciones extremas para la dimensin de las matrices, tal
es el caso en que se defina como cero como para comprometer la implementacin en C# (segn la
definicin de la matriz).
Por otra parte, otros dominios deben incluir distintos valores para la dimensin de las matrices y para los
elementos dentro de las matrices. Algunos casos interesante de estudiar son aquellos en que alguna de
las matrices (o ambas) son cero (todos sus elementos) o uno (la diagonal). Tambin debe estudiarse el
caso en que la dimensin de las matrices es uno, lo cual es correcto pero podra presentar problemas.
5. Limitaciones
No se incluyen controles de validez de los nmeros que ingresa el usuario como elementos de las
matrices, de modo que se supone que se ingresarn valores correctos. De no ser as, el comportamiento
del programa no est definido (es decir, puede pasar cualquier cosa). Tambin se supone que la
dimensin de las matrices es mayor que cero, o el comportamiento del programa no est definido.
Cdigo de la Solucin
/////////////////////////////////////////////////////////////////////////
// Programa que hace la multiplicacin AxB de dos matrices cuadradas A y B.
// El programa pide al usuario que ingrese la dimensin de las matrices, es
// decir, la longitud de los lados, as como los valores para las entradas de
// ambas matrices (A y B), calcula la multiplicacin empleando un ciclo for
// con anidamiento de tres niveles, y finalmente despliega el resultado de
// la multiplicacin A*B, el cual se almaceno en una tercera matriz: C.
/////////////////////////////////////////////////////////////////////////
using System;
class Matriz {
int[,] datos;
public Matriz(int n) {
datos = new int[n,n]; // Se crea la matriz del tamao indicado
}
public void Cargar() {
int i,j;
Console.WriteLine("\nIngrese los Valores para la matriz:");
for (i=0; i<datos.GetLength(0); i++) {
Console.WriteLine("Fila {0}:", i);
for (j=0; j<datos.GetLength(1); j++) {
Console.Write("\tCelda {0}: ", j);
datos[i,j] = int.Parse(Console.ReadLine());
}
}
}
int Tamano() { return(datos.GetLength(0)); }
public static Matriz Multiplicar(Matriz A, Matriz B) {
Matriz m = new Matriz(A.Tamano());
// El siguiente ciclo con anidamiento de 3 nivel realiza la multiplicacin
for (int i=0; i<m.Tamano(); i++) {
for (int j=0; j<m.Tamano(); j++) {
m.datos[i,j] = 0;
for (int k=0; k<m.Tamano(); k++)
m.datos[i,j] += (A.datos[i,k] * B.datos[k,j]);
}
}
return(m);
}
IIC 1102
Pgina: 20
Rodrigo Sandoval U.
Matriz C = Matriz.Multiplicar(A,B);
C.Mostrar();
Console.Write("Presione ENTER para terminar..."); Console.ReadLine();
}
}
Ejemplo de ejecucin:
Multiplicacin de A(NxN) X B(NxN)
Ingrese el valor de N (de 1 a 10): 3
Ingrese los Valores para la matriz:
Fila 0:
Celda 0: 1
Celda 1: 2
Celda 2: 3
Fila 1:
Celda 0: 4
Celda 1: 5
Celda 2: 6
Fila 2:
Celda 0: 7
Celda 1: 8
Celda 2: 9
Ingrese los Valores para la matriz:
Fila 0:
Celda 0: 9
Celda 1: 8
Celda 2: 7
Fila 1:
Celda 0: 6
Celda 1: 5
Celda 2: 4
IIC 1102
Pgina: 21
Rodrigo Sandoval U.
Fila 2:
Celda 0: 3
Celda 1: 2
Celda 2: 1
| 30 24 18 |
| 84 69 54 |
| 138 114 90 |
IIC 1102
Pgina: 22
Rodrigo Sandoval U.
3 Enumeraciones
Existe una versin simplificada de arreglos, que se declaran con datos incluidos. Estos se utilizan
esencialmente para listar opciones fijas para un programa. Por definicin, todos los elementos de las
enumeraciones son de tipo entero.
En otras palabras, al declarar una enumeracin, se est definiendo un conjunto de valores aceptados,
dndole nombres ms entendibles, y como consecuencia, el compilador dar aviso cuando se intente
usar un valor no definido.
La sintaxis para la declaracin de una enumeracin es la siguiente:
enum <identificador> {
<nombre1> = <valorEntero1>,
<nombre2> = <valorEntero2>,
...
<nombreN> = <valorEnteroN>
}
Por ejemplo, una til enumeracin se puede definir al utilizar una clase con un atributo que slo puede
tomar los valores Femenino o Masculino.
Ejemplo:
public enum Sexo {
Femenino = 1,
Masculino = 2
}
class Persona {
string nombre;
int edad;
Sexo sexo;
Public void Mostrar() {
Console.WriteLine(Nombre: {0}, nombre);
Console.WriteLine(Edad: {0}, edad);
if ( sexo == Sexo.Masculino )
Console.WriteLine(Sexo: Masculino);
else
Console.WriteLine(Sexo: Femenino);
}
}
IIC 1102
Se hace ms fcil de mantener el cdigo, al permitir asegurar que las variables slo reciben
valores dentro de un rango definido, sin posibilidad de valores invlidos.
Pgina: 23