Publicado el 5 de Julio del 2018
487 visualizaciones desde el 5 de Julio del 2018
2,6 MB
20 paginas
Creado hace 10a (22/05/2013)
PROGRAMACIÓN EN C# .NET
PROGRAMACIÓN EN C# .NET
Módulo 4 .- Arreglos y
Módulo 4 .- Arreglos y
cadenas
cadenas
Ing. Bruno López Takeyas
Ing. Bruno López Takeyas
Instituto Tecnológico de Nuevo Laredo
Instituto Tecnológico de Nuevo Laredo
1
ARREGLOS
Conjunto homogéneo
y estático
de datos relacionados
e indexados
Homogéneo significa
que todas sus celdas
son del mismo tipo de
dato
A
43
23
12
68
97
0
1
2
3
4
Índices
Estático se refiere
a que, una vez
declarado,
no cambia su tamaño
Celdas
2
DIMENSIONES DE
ARREGLOS
Unidimensionales (Vectores)
– 1 índice
Bidimensionales (Matrices)
– 2 índices (renglón y columna)
Tridimensionales (Cubos)
– 3 índices (renglón, columna y plano)
Multidimensionales
3
DECLARACIÓN DE
ARREGLOS
No sólo basta con declararlo, sino también
debe crearse con el operador new
int [ ] arreglo;
arreglo = new int[12];
// declara el arreglo
// reserva memoria
double [ ] arreglo2 = new double[10];
4
MANEJO DEL TAMAÑO DEL
ARREGLO
Declarar una constante con el tamaño del
arreglo
const int tamano_arreglo = 15;
int [ ] arreglo;
arreglo = new int[tamano_arreglo];
// reserva memoria
// declara el arreglo
5
ARREGLOS “DINÁMICOS”
Se pueden crear arreglos cuyo tamaño se
pueda establecer dinámicamente a partir
de una expresión que produzca un valor
entero
int x = 15; // variable
int [ ] arreglo;
arreglo = new int[x];
// declara el arreglo
// reserva memoria
6
INICIALIZACIÓN DE
ARREGLOS
int [ ] a = { 1, 2, 3, 4, 5, 6 };
string [ ] nom = { “Emilio”, “Pedro” };
double [ ] x = { 3.45, -4.556, 7.0 };
7
RECORRIDO DE ARREGLOS
int [ ] a = { 1, 2, 3, 4, 5, 6 };
for(int i=0; i<= a.Length; i++)
Console.Write(“\n{0}”, a[i]);
La longitud de un arreglo se obtiene con la
expresión Length
8
RECORRIDO DE UN ARREGLO
CON CICLO FOREACH
string[] Alumno= new string[]{"Pepe",
“Rodolfo", "Maria", “Fabiola",
"Miguel"};
foreach(string nombre in Alumno)
{
Console.WriteLine("\n{0}",nombre);
}
9
LA CLASE System.Array
Propiedad
Length
Rank
int GetLength(int dimension)
CopyTo(Arreglo_destino, posicion) Copia todos los elementos de un arreglo a
Descripción
Cantidad de elementos del arreglo
Cantidad de dimensiones del arreglo
Número de elementos de la dimensión
Sort()
otro a partir de una posición
Ordena los elementos de un arreglo
10
LECTURAS ADICIONALES
Capítulo Tema
Libro
Autor
Págs.
7
Variables y Tipos de Datos
El lenguaje de
Programación
C#
José Antonio
101 - 102
González
Seco
Se recomiendan estas lecturas para conocer el detalle
de uso de algunos métodos de la clase System.Array
11
CADENAS (STRINGS)
Secuencia de caracteres que se puede
considerar como un arreglo de caracteres
Ejemplo:
string escuela = “Tec Laredo”; // variable
12
CADENAS VERBATIM
Una cadena puede contener secuencias
de escape:
string x = “\x0041BCDE\a”;
Console.WriteLine(x); // Imprime ABCDE
• A una cadena Verbatim se le antepone un @
string y = @“\x0041BCDE\a”;
Console.WriteLine(x);
// Imprime \x0041BCDE\a
13
ASIGNACIÓN DE CADENAS
CON EL OPERADOR =
En C# se pueden asignar cadenas con el
operador = (lo que no se podía con los
arreglos de caracteres en C++, solamente
con los apuntadores de caracteres)
string s1 = “Tec Laredo”, s2;
s2 = s1;
Console.WriteLine(s2); // Tec Laredo
14
ASIGNACIÓN DE CADENAS CON
EL MÉTODO String.Copy()
Método String.Copy()
string s1 = “Tec Laredo”, s2;
s2= String.Copy(s1);
Console.WriteLine(s2); // Tec Laredo
15
COMPARACIÓN DE CADENAS
CON EL OPERADOR ==
En C# se pueden comparar cadenas con
el operador == (lo que no se podía con los
arreglos de caracteres en C++, solamente
con los apuntadores de caracteres)
string s1 = “Tec Laredo”, s2=“Tec Laredo”;
if(s1 == s2)
Console.WriteLine(“Son iguales”);
16
COMPARACIÓN DE CADENAS
CON EL MÉTODO Equals()
Método Equals()
string s1 = “Tec”, s2=“Tec”;
if( s1.Equals(s2) )
Console.WriteLine(“Son iguales”);
17
COMPARACIÓN DE CADENAS
CON EL MÉTODO CompareTo()
Método CompareTo()
string Cadena1, Cadena2;
int Resultado;
Resultado = Cadena1.CompareTo(Cadena2);
switch (Resultado)
{
case -1: Console.Write(Cadena1 + " < " + Cadena2); break;
case 0 : Console.Write(Cadena1 + " = " + Cadena2); break;
case 1: Console.Write(Cadena1 + " > " + Cadena2); break;
18
}
EDICIÓN DE CADENAS
Las cadenas pueden ser tratadas como un
arreglo de caracteres
string s1 = “Tec”;
char primer_caracter;
primer_caracter = s1[0]; // ‘T’
Console.WriteLine(primer_caracter);
SUBCADENAS
Método Substring()
string s1 = “Tec”, s2;
s2 = s1.Subtring(1,2);
Console.WriteLine(s2); // s2 = “ec”
19
20
LONGITUD DE CADENAS
Método Length()
string s = “Tec Laredo”;
Console.WriteLine(“Longitud=“+s.Length);
// Longitud = 10
21
MAYÚSCULAS Y MINÚSCULAS
Métodos ToUpper() y ToLower()
string s = “Tec Laredo”;
s = s.ToUpper();
Console.WriteLine(s); // TEC LAREDO
s = s.ToLower();
Console.WriteLine(s); // tec laredo
22
ELIMINACIÓN DE ESPACIOS DE
CADENAS (TRIMMING)
Método Trim()
Elimina los espacios en blanco al principio y
al final
string s = “ Tec Laredo ”;
s = s.Trim();
Console.WriteLine(s); //Tec Laredo
23
CONCATENACIÓN DE CADENAS
Agregar una cadena al final de otra
string s1 = “Tec”, s2 = “Laredo”;
s1 = s1 + s2;
Console.WriteLine(s1);// TecLaredo
24
MÉTODOS DE CADENAS
string escuela = “Tec Laredo”;
Buscar una cadena
if(escuela.Contains(“Tec”))
Conocer la cadena con la que empieza
if(escuela.StartsWith(“T”))
Conocer la cadena con la que termina
if(escuela.EndsWith(“.”))
25
GENERAR CADENAS
ALEATORIAS
string cadena =
Guid.NewGuid().ToString().Substring(0,
Longitud);
La variable Longitud
representa
el tamaño de la cadena
26
OTROS MÉTODOS DE CADENAS
Propiedad
Descripción
int IndexOf(string subcadena)
int LastIndex(string subcadena)
Indica el índice de la primera aparición de la
subcadena
Semejante a IndexOf(), sólo que devuelve la
posición de la última aparición de la
subcadena
string Insert(int posicion, string
subcadena)
Devuelve la cadena resultante de insertar la
subcadena en la posición indicada
string Remove(int posicion, int
numero)
string Replace(string aSustituir, string
Sustituta)
Devuelve la cadena resultante de eliminar el
número de caracteres indicada que hubiese
a partir de la posición especificada
Devuelve la cadena resultante de sustituir en
la cadena sobre la que se aplica toda
aparición de la cadena aSustituir indicada
por la cadena sustituta especificada como
segundo parámetro
27
LECTURAS ADICIONALES
Capítulo Tema
15
Strings, Characters and
Regular Expressions
Libro
Programming
in C#
Autor
Deitel &
Deitel
Págs.
632 - 660
Se recomiendan estas lecturas para reforzar el uso de
las cadenas (strings)
28
ARREGLOS BIDIMENSIONALES
(MATRICES)
29
DECLARACIÓN DE MATRICES
No sólo basta con declararlo, sino también
debe crearse con el operador new
Se declara primero la cantidad de renglones
seguido de la cantidad de columnas
int [ , ] matriz;
matriz = new int[2,3];
// declara la matriz
// reserva memoria
double [ , ] matriz2 = new double[3,4];
30
INICIALIZACIÓN DE MATRICES
Se declara e inicializa una matriz de
3 X 2
3 renglones
2 columnas
int [ , ] Matriz = { { 1, 2 },
{ 3, 4 },
{ 5, 6 } };
31
RECORRIDO DE MATRICES
int [ , ] Matriz = { { 1, 2 },
{ 3, 4 },
{ 5, 6 } };
for(int r=0; r<= Matriz.GetLength(0); r++)
{
Console.Write(“\n”);
for(int c=0; c<= Matriz[r].GetLength(1); c++)
Console.Write(“\t{0}”, Matriz[r,c]);
}
32
RECORRIDO DE UNA MATRIZ
MEDIANTE FOREACH
int [ , ] Matriz = { { 1, 2 },
{ 3, 4 },
{ 5, 6 } };
foreach(int numero in Matriz)
{
Console.WriteLine(“\t”+numero);
}
// Imprime 1 2 3 4 5 6
33
ARREGLOS TRIMENSIONALES
(CUBOS)
Renglones
Columnas
Planos
34
DECLARACIÓN DE CUBOS
No sólo basta con declararlo, sino también
debe crearse con el operador new
Se declara primero la cantidad de renglones
seguido de la cantidad de columnas y luego
los planos
int [ , , ] cubo;
cubo = new int[2,3,4];
// declara el cubo
// reserva memoria
double [ , , ] cubo2 = new double[3,4,5];
35
MANEJO DE CUBOS
int[, ,] Cubo = new int[2, 3, 4];
for(int r=0; r < Cubo.GetLength(0); r++)
for(int c=0; c < Cubo.GetLength(1); c++)
for (int p = 0; p < Cubo.GetLength(2); p++)
{
Console.Write("\nCubo[{0},{1},{2}] ---> ", r, c, p);
Cubo[r, c, p] = Int.Parse(Console.ReadLine());
}
36
RECORRIDO DE UN CUBO
MEDIANTE FOREACH
int [ , , ] Cubo = new int [2,3,4];
foreach(int numero in Cubo)
{
Console.WriteLine(“\t”+numero);
}
37
38
DIRECTIVAS DE
PREPROCESADO
#define
#error
#undef
#if
#elif
#else
#endif
#warning
#region
#endregion
COMPILACIÓN CONDICIONAL
Random x = new Random();
int[] Arreglo = new int[10];
for(int i=0; i<10; i++)
{
#define Capturar
Console.Write("\nArreglo[{0}] ---> ", i);
#if Capturar
Arreglo[i]=int.Parse(Console.ReadLine());
#else
Arreglo[i] = x.Next();
Console.Write(Arreglo[i]);
#endif
}
39
Comentarios de: Módulo 4 - Arreglos y cadenas - Programación en C# .NET (0)
No hay comentarios