Ejercicios resueltos 1- Implemente un método que dado un string s
cualquiera, devuelva un nuevo string que se el inverso de s. (ej: entrada:
“puntopeek”; salida: “keepotnup”)
namespace ejercicio1
{
class Program
{
public void cargarvalores()
{
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Clear();
Console.WriteLine("\n\t\t\t\tBienvenidos");
Console.WriteLine("\nIngrese una frase");
string a = Console.ReadLine();
Invierte(a);
Console.WriteLine(Invierte(a));
Console.ReadKey();
}
static void Main(string[] args)
{
Program inv = new Program();
inv.cargarvalores();
}
public string Invierte(string a)
{
string b = "";
for (int i = 0; i < a.Length; i++)
b = a[i] + b;
return b;
}
}
}
2-
Implemente una función que dado un string, una posición de comienzo y una
cantidad de caracteres, devuelva una subcadena (substring) de una cadena dada a
partir de los parámetros dados (ej: entrada: “puntopeek”, pos= 2, cant= 4;
salida: “ntop”.)
namespace ejercicio2
{
class Program
{
public void cargarvalores()
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Clear();
Console.WriteLine("\n\t\t\t\tBienvenidos");
Console.WriteLine("\n Ingrese una palabra:");
string a = Console.ReadLine();
Console.WriteLine("\nIngrese la posicion de frase:");
int pos = int.Parse(Console.ReadLine());
Console.WriteLine("\nIngrese la cantidad:");
int cant = int.Parse(Console.ReadLine());
SubString(a, pos, cant);
string algo;
algo = SubString(a, pos, cant);
Console.WriteLine("La frase corta es: " + algo);
Console.ReadLine();
}
public string SubString(string a, int pos, int cant)
{
string pedazo = "" ;
if((pos + cant) > a.Length)
throw new Exception("");
else
{
for (int j = pos; j < cant + pos ; j ++ )
pedazo += a[j];
return pedazo;
}
}
static void Main(string[] args)
{
Program inv = new Program();
inv.cargarvalores();
}
}
}
3-
Implemente un método Replace, que reciba un string s, y dos caracteres old y
new. Dicha función debe reemplazar todas las ocurrencias del caracter old por
el carácter new, y devolver un nuevo string con dicha característica. (ej: entrada: “programacion”, old= ‘a’, new=’i’; salida: “progrimicion”)
namespace ejercicio3
{
class Program
{
public void cambiarletras()
{
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.White;
Console.Clear();
Console.WriteLine("\n\t\t\t\tBienvenidos");
Console.WriteLine("\nIngrese la palabra");
string a = Console.ReadLine();
Console.WriteLine("\nIngrese la letra que va a cambiar");
char b = char.Parse(Console.ReadLine());
Console.WriteLine("\nIngrese la letra nueva");
char c = char.Parse(Console.ReadLine());
Replace (a, b, c);
string r = Replace(a, b, c);
Console.WriteLine("\nLa frase nueva es:" + r);
Console.ReadLine();
}
static void Main(string[] args)
{
Program inv = new Program();
inv.cambiarletras();
}
public string Replace (string a, char old, char nuevo)
{
string result = "";
for (int i = 0; i < a.Length ; i++)
{
if(a[i] == old)
result += nuevo;
else
result += a[i];
}
return result;
}
}
}
4*-
Implemente un método Combinar, que dado un string s, devuelva todas las
combinaciones posibles que se pueden formar a partir de los caracteres de s.
Este método es un poco más complicado, pero muy útil y práctico. Para esto
usaremos recursividad, para ir generando todas las posibles combinaciones. (ej:
entrada: “hoy”; salida: “hoy”, “hyo”, “ohy”, “oyh”, “yho”, “yoh”)
namespace ejercicio4
{
class Program
{
public void cargar()
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Clear();
Console.WriteLine("\n\t\t\t\tBienvenidos");
Console.WriteLine("\n Ingrese una palabra:");
string a = Console.ReadLine();
Combina(a);
Console.WriteLine("\nLas combinaciones posibles son:" + a);
Console.ReadLine();
}
static void Main(string[] args)
{
Program inv = new Program();
inv.cargar();
}
public void Combina(string s)
{
bool[] marcas = new bool[s.Length];
Combina(s, "", marcas);
}
void Combina(string original, string combinado, bool[] marcas)
{
if (original.Length == combinado.Length)
Console.WriteLine(combinado);
for (int i = 0; i < marcas.Length; i++)
{
if (!marcas[i])
{
marcas[i] = true;
Combina(original, combinado + original[i], marcas);
marcas[i] = false;
}
}
}
}
}