Kharchenko Lina Ex 5y6

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

1 //Ejercicio 1. Kharchenko Lina.

Arrays y expresiones regulares (5 puntos)


2
3 using System;
4 using System.Text.RegularExpressions;
5
6 class Program
7 {
8 public static void Main()
9 {
10 string[] cadenas = {
11 "10 7 8/9*23",
12 "12Hola, mundo24 37 11 80",
13 "En un lugar de la Mancha de cuyo nombre no quiero acordarme",
14 "10 20 30 40 50"
15 };
16
17 int[,] matrizNumerosPares = ObtenerMatrizNumerosPares(cadenas);
18
19 ImprimirArray("Array de cadenas:", cadenas);
20 Console.WriteLine();
21 ImprimirMatriz("Matriz de números pares:", matrizNumerosPares);
22
23 Console.ReadLine();
24 }
25
26 static int[,] ObtenerMatrizNumerosPares(string[] cadenas)
27 {
28 int[,] matriz = new int[cadenas.Length, 3];
29
30 for (int i = 0; i < cadenas.Length; i++)
31 {
32 string[] numerosEnCadena = ObtenerNumerosPares(cadenas[i]);
33
34 for (int j = 0; j < 3; j++)
35 {
36 if (j < numerosEnCadena.Length)
37 {
38 matriz[i, j] = int.Parse(numerosEnCadena[j]);
39 }
40 else
41 {
42 matriz[i, j] = default(int);
43 }
44 }
45 }
46
47 return matriz;
48 }
49
50 static string[] ObtenerNumerosPares(string cadena)
51 {
52 Regex regex = new Regex(@"\b[24680]+\b");
53 MatchCollection matches = regex.Matches(cadena);
54
55 string[] numerosPares = new string[matches.Count];
56
57 for (int i = 0; i < matches.Count; i++)
58 {
59 numerosPares[i] = matches[i].Value;
60 }
61
62 return numerosPares;
63 }
64
65 static void ImprimirArray(string titulo, string[] array)
66 {
67 Console.WriteLine(titulo);
68
69 for (int i = 0; i < array.Length; i++)
70 {
71 Console.WriteLine($"[{i}] = \"{array[i]}\"");
72 }
73 }
74
75 static void ImprimirMatriz(string titulo, int[,] matriz)
76 {
77 Console.WriteLine(titulo);
78
79 for (int i = 0; i < matriz.GetLength(0); i++)
80 {
81 Console.Write("[");
82 for (int j = 0; j < matriz.GetLength(1); j++)
83 {
84 Console.Write($" {matriz[i, j]} ");
85 }
86 Console.WriteLine("]");
87 }
88 }
89 }
90
91
92
93
94 // // Ejercicio 2. Kharchenko Lina. Expresiones regulares (1 puntos)
95 // //----------------------------------------------------------------------------
96 // Crea un programa que pida al usuario una cadena de texto y que elimine de dicha
97 // cadena todos los comentarios tipo C# (// -> hasta final de linea y /* ... * / ->
98 // texto entre los símbolos /* y * /). Imprime la cadena resultante. No se permiten
99 // comentarios anidados. No es necesario ni controlar errores ni usar métodos.
100
101 // Nota 1: no se permiten comentarios anidados
102 // Nota 2: puedes usar expresiones regulares o recorrer la cadena de texto carácter a
carácter,
103 // pero la solución con expresiones regulares es mucho más sencilla y corta.
104
105 // Ejemplo de ejecución:
106 // Introduce una cadena de texto: En un // lugar /*de la Mancha*/ de cuyo nombre no
quiero acordarme
107 // Cadena sin comentarios: En un
108
109 // Ejemplo de ejecución:
110 // Introduce una cadena de texto: En un lugar /*de la Mancha*/ de cuyo /*nombre * /
no quiero*/ acordarme
111 // Cadena sin comentarios: En un lugar de cuyo acordarme
112
113 // Nota: Los comentarios estarán siempre bien formados. Todo par /* tendrá su par */
114 // pero podrían haber caracteres * o / sueltos dentro de la cadena.
115
116
117 // ----------------------------------------------------------------------------
118 //
119 using System;
120 using System.Text.RegularExpressions;
121
122 class Program
123 {
124 static void Main()
125 {
126 Console.Write("Introduce una cadena de texto: ");
127 string cadenaOriginal = Console.ReadLine();
128
129 string cadenaSinComentarios = EliminarComentarios(cadenaOriginal);
130
131 Console.WriteLine($"Cadena sin comentarios: {cadenaSinComentarios}");
132
133 Console.ReadLine();
134 }
135
136 static string EliminarComentarios(string cadena)
137 {
138
139 cadena = Regex.Replace(cadena, @"//.*", "");
140
141
142 cadena = Regex.Replace(cadena, @"/\*.*?\*/", "");
143
144 return cadena;
145 }
146 }
147
148
149 // ----------------------------------------------------------------------------
150 //Kharchenko Lina
151 // Ejercicio 3. Cadenas (4 puntos)
152 /* ----------------------------------------------------------------------------
153 Crea un método al que le pasamos una cadena y devolverá otra cadena con los caracteres
154 que estén repetidos en la cadena original convertidos a un único carácter.
155 Por ejemplo:
156 Convertirá la cadena "Hoolaa, muuuundo" en "Hola, mundo"
157 Crea un main que pida al usuario una cadena de texto y que imprima la cadena
resultante.
158 Usa stringbuilder para crear la cadena resultante.
159 Si al método se le pasa la cadena vacía o null, devolverá la cadena vacía o null.
160 */
161
162
163 using System;
164 using System.Text;
165
166 class Program
167 {
168 static void Main()
169 {
170 Console.Write("Introduce una cadena de texto: ");
171 string cadenaOriginal = Console.ReadLine();
172
173 string cadenaResultante = EliminarRepetidos(cadenaOriginal);
174
175 Console.WriteLine($"Cadena resultante: {cadenaResultante}");
176
177 Console.ReadLine();
178 }
179
180 static string EliminarRepetidos(string cadena)
181 {
182 if (string.IsNullOrEmpty(cadena))
183 {
184 return cadena;
185 }
186
187 StringBuilder resultado = new StringBuilder();
188
189 for (int i = 0; i < cadena.Length; i++)
190 {
191 char caracterActual = cadena[i];
192
193
194 if (resultado.ToString().IndexOf(caracterActual) == -1)
195 {
196 resultado.Append(caracterActual);
197 }
198 }
199
200 return resultado.ToString();
201 }
202 }

También podría gustarte